Include :
- aggiunta SurfFlatRegion.
This commit is contained in:
+3
-1
@@ -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
@@ -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
@@ -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)) ; }
|
||||
} ;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
@@ -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)) ; }
|
||||
@@ -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) ;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user