EgtGeomKernel 2.1c4 :
- migliorie a Zmap per calcolo triangoli.
This commit is contained in:
Binary file not shown.
@@ -87,12 +87,12 @@
|
||||
<IncludePath>C:\;$(IncludePath)</IncludePath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<TargetName>$(ProjectName)R$(PlatformArchitecture)</TargetName>
|
||||
<OutDir>$(SolutionDir)$(Configuration)$(PlatformArchitecture)\</OutDir>
|
||||
<IntDir>$(Configuration)$(PlatformArchitecture)\</IntDir>
|
||||
<IncludePath>C:\;$(IncludePath)</IncludePath>
|
||||
<RunCodeAnalysis>false</RunCodeAnalysis>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
@@ -190,18 +190,17 @@ copy $(TargetPath) \EgtProg\DllD64</Command>
|
||||
</AdditionalOptions>
|
||||
<EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
|
||||
<EnableParallelCodeGeneration>true</EnableParallelCodeGeneration>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<WholeProgramOptimization>false</WholeProgramOptimization>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>false</GenerateDebugInformation>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<ModuleDefinitionFile>
|
||||
</ModuleDefinitionFile>
|
||||
<AdditionalDependencies>C:\EgtDev\Extern\OxySec\Lib\x32\xnodus32.obj;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<GenerateMapFile>false</GenerateMapFile>
|
||||
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
|
||||
<LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
</Link>
|
||||
<Midl>
|
||||
<MkTypLibCompatible>false</MkTypLibCompatible>
|
||||
@@ -235,17 +234,16 @@ copy $(TargetPath) \EgtProg\Dll32</Command>
|
||||
<FloatingPointModel>Precise</FloatingPointModel>
|
||||
<EnableParallelCodeGeneration>true</EnableParallelCodeGeneration>
|
||||
<EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<WholeProgramOptimization>false</WholeProgramOptimization>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>false</GenerateDebugInformation>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<ModuleDefinitionFile>
|
||||
</ModuleDefinitionFile>
|
||||
<AdditionalDependencies>C:\EgtDev\Extern\OxySec\Lib\x64\xnodus.obj;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
|
||||
<LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
</Link>
|
||||
<Midl>
|
||||
<MkTypLibCompatible>false</MkTypLibCompatible>
|
||||
|
||||
+7
-3
@@ -1972,7 +1972,7 @@ VolZmap::ExtMarchingCubes( int nBlock, VoxelContainer& vVox) const
|
||||
vtNlm.Normalize() ;
|
||||
double dDotl = vtNlm * CompoVert[nComp][l].vtVec ;
|
||||
double dDotm = vtNlm * CompoVert[nComp][m].vtVec;
|
||||
if ( dDotl < - 0.8 || dDotm < - 0.8) {
|
||||
if ( dDotl < - 0.85 || dDotm < - 0.85) {
|
||||
bOverTurning = true ;
|
||||
break ;
|
||||
}
|
||||
@@ -1986,10 +1986,10 @@ VolZmap::ExtMarchingCubes( int nBlock, VoxelContainer& vVox) const
|
||||
( ( k + 1) * N_DEXVOXRATIO + 0.5) * m_dStep) ;
|
||||
double dNewU1, dNewU2 ;
|
||||
if ( IntersLineBox( ptSol, vtNullSpace, ptMinDiag, ptMaxDiag, dNewU1, dNewU2)) {
|
||||
if ( dNewU1 < dNewU2) {
|
||||
if ( dNewU1 > 0.) {
|
||||
ptSol += ( dNewU1 + EPS_SMALL * ( dNewU2 - dNewU1)) * vtNullSpace ;
|
||||
}
|
||||
else {
|
||||
else if ( dNewU2 < 0.) {
|
||||
ptSol += ( dNewU2 + EPS_SMALL * ( dNewU1 - dNewU2)) * vtNullSpace ;
|
||||
}
|
||||
}
|
||||
@@ -2224,6 +2224,8 @@ VolZmap::RegulateFeaturesChain( vector<VoxelContainer>& vVecVox) const
|
||||
for ( int nComp = 0 ; nComp < CurVox.nNumComp ; ++ nComp) {
|
||||
// Vertice fuori dal suo voxel
|
||||
if ( ! CurVox.Compo[nComp].bInside) {
|
||||
if ( IsPointInsideVoxelApprox( CurVox.i, CurVox.j, CurVox.k, CurVox.Compo[nComp].ptVert, 1.5 * EPS_SMALL))
|
||||
continue ;
|
||||
// Caso corner
|
||||
if ( CurVox.Compo[nComp].bCorner) {
|
||||
// Cerco i primi vicini
|
||||
@@ -2397,6 +2399,8 @@ VolZmap::RegulateFeaturesChain( vector<VoxelContainer>& vVecVox) const
|
||||
for ( int nComp = 0 ; nComp < CurVox.nNumComp ; ++ nComp) {
|
||||
// Vertice fuori dal suo voxel
|
||||
if ( ! CurVox.Compo[nComp].bInside) {
|
||||
if ( IsPointInsideVoxelApprox( CurVox.i, CurVox.j, CurVox.k, CurVox.Compo[nComp].ptVert, 1.5 * EPS_SMALL))
|
||||
continue ;
|
||||
// Caso feature
|
||||
if ( ! CurVox.Compo[nComp].bCorner) {
|
||||
INTVECTOR vNearInn, vNearBord ;
|
||||
|
||||
@@ -118,6 +118,16 @@ VolZmap::SubtractIntervals( int nGrid, int nI, int nJ,
|
||||
if ( ! bModified)
|
||||
return true ;
|
||||
|
||||
// Elimino residui di intervalli inutili
|
||||
for ( int i = 0 ; i < int( vDexel.size()) ; ++ i) {
|
||||
if ( abs( vDexel[i].dMax - vDexel[i].dMin) < 2 * EPS_SMALL) {
|
||||
if ( int( abs( vDexel[i].dMax - 0.5 * m_dStep) / m_dStep) == int( abs( vDexel[i].dMin - 0.5 * m_dStep) / m_dStep)) {
|
||||
vDexel.erase( vDexel.begin() + i) ;
|
||||
-- i ;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Imposto ricalcolo della grafica
|
||||
m_OGrMgr.Reset() ;
|
||||
// Imposto forma generica
|
||||
|
||||
Reference in New Issue
Block a user