Include :

- aggiunta SurfFlatRegion.
This commit is contained in:
Dario Sassi
2015-08-07 10:48:59 +00:00
parent 5fe3a66f40
commit bcab2c29e0
5 changed files with 77 additions and 3 deletions
+3 -1
View File
@@ -1,7 +1,7 @@
//----------------------------------------------------------------------------
// EgalTech 2014-2015
//----------------------------------------------------------------------------
// File : EGkGeoObjType.h Data : 21.01.15 Versione : 1.6a4
// File : EGkGeoObjType.h Data : 05.08.15 Versione : 1.6h2
// Contenuto : Definizione Tipo degli Oggetti Geometrici.
//
//
@@ -9,6 +9,7 @@
// Modifiche : 30.04.13 DS Creazione modulo.
// 27.05.14 DS Agg. EXT_TEXT.
// 21.01.15 DS Agg. VOL_ZMAP e cambiato valore di EXT_TEXT.
// 05.08.15 DS Agg. SRF_FLATRGN.
//----------------------------------------------------------------------------
#pragma once
@@ -32,5 +33,6 @@ enum GeoObjType { GEO_NONE = 0,
CRV_BEZ = ( GEO_CURVE + 2),
CRV_COMPO = ( GEO_CURVE + 3),
SRF_TRIMESH = ( GEO_SURF + 0),
SRF_FLATRGN = ( GEO_SURF + 1),
VOL_ZMAP = ( GEO_VOLUME + 0),
EXT_TEXT = ( GEO_EXTRA + 0)} ;
+3 -1
View File
@@ -74,9 +74,11 @@ struct CrvClass {
double dParS ;
double dParE ;
int nClass ;
// costruttore
// costruttori
CrvClass( void)
: dParS( 0), dParE( 0), nClass( 0) {}
CrvClass( double dPS, double dPE, int nC)
: dParS( dPS), dParE( dPE), nClass( nC) {}
} ;
//! Vettore di CrvClass
typedef std::vector<CrvClass> CRVCVECTOR ;
+17 -1
View File
@@ -13,7 +13,7 @@
#pragma once
#include "/EgtDev/Include/EGkPoint3d.h"
#include "/EgtDev/Include/EGkFrame3d.h"
//-----------------------------------------------------------------------------
class Plane3d
@@ -21,6 +21,22 @@ class Plane3d
public :
Vector3d vtN ;
double dDist ;
public :
bool ToGlob( const Frame3d& frRef)
{ Point3d ptP = ORIG + dDist * vtN ;
if ( ! ptP.ToGlob( frRef) || ! vtN.ToGlob( frRef))
return false ;
dDist = ( ptP - ORIG) * vtN ; }
bool ToLoc( const Frame3d& frRef)
{ Point3d ptP = ORIG + dDist * vtN ;
if ( ! ptP.ToLoc( frRef) || ! vtN.ToLoc( frRef))
return false ;
dDist = ( ptP - ORIG) * vtN ; }
bool LocToLoc( const Frame3d& frOri, const Frame3d& frDest)
{ if ( AreSameFrame( frOri, frDest))
return true ;
return ( ToGlob( frOri) && ToLoc( frDest)) ; }
} ;
//-----------------------------------------------------------------------------
+51
View File
@@ -0,0 +1,51 @@
//----------------------------------------------------------------------------
// EgalTech 2015-2015
//----------------------------------------------------------------------------
// File : EgkSurfFlatRegion.h Data : 05.08.15 Versione : 1.6h2
// Contenuto : Dichiarazione della interfaccia ISurfFlatRegion.
//
//
//
// Modifiche : 05.08.15 DS Creazione modulo.
//
//
//----------------------------------------------------------------------------
#pragma once
#include "/EgtDev/Include/EGkSurf.h"
#include "/EgtDev/Include/EGkIntersCurves.h"
class ISurfTriMesh ;
//----------------------------------------------------------------------------
class __declspec( novtable) ISurfFlatRegion : public ISurf
{
public :
virtual bool CopyFrom( const IGeoObj* pGObjSrc) = 0 ;
virtual bool Clear( void) ;
virtual bool SetExtLoop( const ICurve& cCrv) = 0 ;
virtual bool SetExtLoop( ICurve* pCrv) = 0 ;
virtual bool AddIntLoop( const ICurve& cCrv) = 0 ;
virtual bool AddIntLoop( ICurve* pCrv) = 0 ;
virtual ICurve* GetLoop( int nLoop) const = 0 ; // nLoop=0 esterno, successivi interni
virtual int GetIntLoopNumber( void) const = 0 ;
virtual const ISurfTriMesh* GetAuxSurf( void) const = 0 ;
virtual bool GetCurveClassification( const ICurve& Crv, CRVCVECTOR& ccClass) const = 0 ;
} ;
//-----------------------------------------------------------------------------
inline ISurfFlatRegion* CreateSurfFlatRegion( void)
{ return (static_cast<ISurfFlatRegion*>( CreateGeoObj( SRF_FLATRGN))) ; }
inline ISurfFlatRegion* CloneSurfFlatRegion( const IGeoObj* pGObj)
{ if ( pGObj == nullptr || pGObj->GetType() != SRF_FLATRGN)
return nullptr ;
return (static_cast<ISurfFlatRegion*>(pGObj->Clone())) ; }
inline const ISurfFlatRegion* GetSurfFlatRegion( const IGeoObj* pGObj)
{ if ( pGObj == nullptr || pGObj->GetType() != SRF_FLATRGN)
return nullptr ;
return (static_cast<const ISurfFlatRegion*>(pGObj)) ; }
inline ISurfFlatRegion* GetSurfFlatRegion( IGeoObj* pGObj)
{ if ( pGObj == nullptr || pGObj->GetType() != SRF_FLATRGN)
return nullptr ;
return (static_cast<ISurfFlatRegion*>(pGObj)) ; }
+3
View File
@@ -190,6 +190,7 @@ EXE_EXPORT int ExeCreatePolygonFromApothem( int nParentId, int nNumSides, const
EXE_EXPORT int ExeCreatePolygonFromSide( int nParentId, int nNumSides, const Point3d& ptIni,
const Point3d& ptFin, int nRefType) ;
// GeomDB Create Surf
EXE_EXPORT int ExeCreateSurfFlatRegion( int nParentId, INTVECTOR& vCrvIds) ;
EXE_EXPORT int ExeCreateSurfTmBBox( int nParentId, const BBox3d& b3Box, int nRefType) ;
EXE_EXPORT int ExeCreateSurfTmBox( int nParentId, const Point3d& ptIni, const Point3d& ptCross,
const Point3d& ptDir, double dHeight, int nRefType) ;
@@ -348,6 +349,7 @@ EXE_EXPORT bool ExeTrimCurveStartEndAtParam( int nId, double dParS, double dParE
EXE_EXPORT bool ExeExtendCurveStartByLen( int nId, double dLen) ;
EXE_EXPORT bool ExeExtendCurveEndByLen( int nId, double dLen) ;
EXE_EXPORT bool ExeTrimExtendCurveByLen( int nId, double dLen, const Point3d& ptNear, int nRefType) ;
EXE_EXPORT int ExeTrimCurveWithRegion( int nCrvId, int nRegId, bool bInVsOut, bool bOn, int* pnCount) ;
EXE_EXPORT int ExeSplitCurve( int nId, int nParts) ;
EXE_EXPORT int ExeSplitCurveAtPoint( int nId, const Point3d& ptOn, int nRefType) ;
EXE_EXPORT int ExeSplitCurveAtSelfInters( int nId, int* pnCount) ;
@@ -362,6 +364,7 @@ EXE_EXPORT bool ExeMergeCurvesInCurveCompo( int nId, double dLinTol) ;
// GeomDb Surf Modify
EXE_EXPORT bool ExeInvertSurface( const INTVECTOR& vIds) ;
EXE_EXPORT int ExeExtractSurfFrLoop( int nId, int nLoop, int nDestGrpId) ;
EXE_EXPORT int ExeExtractSurfTmFacetLoops( int nId, int nFacet, int nDestGrpId, int* pnCount) ;
EXE_EXPORT int ExeExplodeSurfTm( int nId, int* pnCount) ;