EgtGeomKernel 1.8e1 :

- modifiche a visualizzazione Zmap.
This commit is contained in:
Dario Sassi
2017-05-03 15:54:08 +00:00
parent ddc16d0a3b
commit 291dffc11e
5 changed files with 985 additions and 1258 deletions
+11 -10
View File
@@ -74,8 +74,7 @@ class VolZmap : public IVolZmap, public IGeoObjRW
bool CreateFromTriMesh( const ISurfTriMesh& Surf, double dPrec, bool bTriDex) override ;
bool GetAllTriangles( TRIA3DLIST& lstTria) const override ;
int GetBlockCount( void) const override ;
bool GetBlockInfo( std::vector<bool> & bModified) const override ;
bool GetBlockTriangles( int nBlock, TRIA3DLIST& lstTria) const override ;
bool GetTriangles( bool bAllBlocks, INTVECTOR& nModifiedBlocks, TRIA3DLISTVECTOR& vLstTria) const override ;
bool GetDexelLines( int nDir, int nPos1, int nPos2, POLYLINELIST& lstPL) const override ;
bool SetTolerances( double dLinTol, double dAngTolDeg = 90) override ;
bool SetStdTool( const std::string& pToolName, double dH, double dR, double dCornR) override ;
@@ -117,15 +116,15 @@ class VolZmap : public IVolZmap, public IGeoObjRW
const Vector3d& vtZ, const Vector3d& vtNorm, TRIA3DLIST& lstTria) const ;
bool MarchingCubes( TRIA3DLIST& lstTria) const ;
bool MarchingCubes( int nBlock, TRIA3DLIST& lstTria) const ;
bool ExtMarchingCubes( const int nLimits[], TRIA3DLIST& lstTria, TriHolder& triHold) const ;
bool ExtMarchingCubes( const std::vector <int> VoxelsIndexes, TriHolder& triHold) const ;
bool FlipEdges( TriHolder& triHold) const ;
bool FlipEdgesLocalFlipEdges( TriaStruct& triStrCurr, TriaStruct& triStrAdj) const ;
bool ExtMarchingCubes( const int nLimits[], TRIA3DLIST& lstTria, TriHolder& triHold) const ;
bool FlipEdges( std::vector<TriHolder>& VecTriHold) const ;
bool IsThereMat( int nI, int nJ, int nK) const ;
bool IsThereMat( const int nMatr[][3], int nNum, double & dHx, double & dHy, double & dHz) const ;
bool IntersPos( int nVec1[], int nVec2[], Point3d & ptInt) const ;
bool IntersPos( int nVec1[], int nVec2[], Point3d & ptInt, Vector3d & vtNormal) const ;
bool NewIntersPos( int nVec1[], int nVec2[], bool bFirstCorner, Point3d& ptInt, Vector3d& vtNormal) const ;
bool IntersPos( int nVec1[], int nVec2[], bool bFirstCorner, Point3d& ptInt, Vector3d& vtNormal) const ;
bool IsPointInsideVoxel( int nI, int nJ, int nK, const Point3d& ptP) const ;
bool IsPointInsideVoxelApprox( int nI, int nJ, int nK, const Point3d& ptP) const ;
bool GetPointVoxel( Point3d& ptP, int& nVoxI, int& nVoxJ, int& nVoxK) const ;
// OPERAZIONI SU INTERVALLI
bool SubtractIntervals( unsigned int nGrid, unsigned int nI, unsigned int nJ,
@@ -215,6 +214,8 @@ class VolZmap : public IVolZmap, public IGeoObjRW
// Intersezioni
bool IntersLineBox( const Point3d& ptP, const Vector3d& vtV,
const Point3d& ptMin, const Point3d& ptMax, double& dU1, double& dU2) const ;
bool IntersLineVoxel( const Point3d& ptP, const Vector3d& vtV, int nIndI, int nIndJ, int nIndK,
int& nFace1, int& nFace2, double& dU1, double& dU2) const ;
bool IntersLineZMapBBox( unsigned int nGrid, const Point3d& ptP, const Vector3d& vtV, double& dU1, double& dU2) ;
bool IntersLineDexel( unsigned int nGrid, const Point3d& ptP, const Vector3d& vtV, unsigned int nI, unsigned int nJ,
double& dU1, double& dU2) ;
@@ -244,13 +245,13 @@ class VolZmap : public IVolZmap, public IGeoObjRW
Point3d& ptInt1, Point3d& ptInt2, Vector3d& vtN1, Vector3d& vtN2) ;
// Funzioni di gestione dei blocchi
bool GetBlockIJK( int nIJK[], int nBlock) const ;
bool GetBlockIJK( int nBlock, int nIJK[]) const ;
bool GetBlockLimitsIJK( const int nIJK[], int nLimits[]) const ;
private :
enum Status { ERR = 0, OK = 1, TO_VERIFY = 2} ;
static const int N_MAPS = 3 ;
static const int N_DEXBLOCK = 32;//20;//32 ;
static const int N_DEXBLOCK = 32 ; // 10000 ;//20 ;//32 ;
private :
ObjGraphicsMgr m_OGrMgr ; // gestore grafica dell'oggetto