Files
Include/EGkVolZmap.h
T
Dario Sassi 6fc6aaeb93 Include :
- aggiornamento prototipi
- aggiunto IntersLineSphere.
2018-02-05 07:19:18 +00:00

74 lines
4.3 KiB
C++

//----------------------------------------------------------------------------
// EgalTech 2015-2015
//----------------------------------------------------------------------------
// File : EgkVolZmap.h Data : 22.01.15 Versione : 1.6a4
// Contenuto : Dichiarazione della interfaccia IVolZmap.
//
//
//
// Modifiche : 22.01.15 DS Creazione modulo.
//
//
//----------------------------------------------------------------------------
#pragma once
#include "/EgtDev/Include/EGkGeoObj.h"
#include "/EgtDev/Include/EGkPolyLine.h"
#include "/EgtDev/Include/EGkCurveComposite.h"
#include "/EgtDev/Include/EGkSurfFlatRegion.h"
#include "/EgtDev/Include/EGkSurfTriMesh.h"
#include "/EgtDev/Include/EGkTriangle3d.h"
//----------------------------------------------------------------------------
class __declspec( novtable) IVolZmap : public IGeoObj
{
public :
virtual bool CopyFrom( const IGeoObj* pGObjSrc) = 0 ;
virtual bool Clear( void) = 0 ;
virtual bool Create( const Point3d& ptO, double dDimX, double dDimY, double dDimZ, double dPrec, bool bTriDex) = 0 ;
virtual bool CreateFromFlatRegion( const ISurfFlatRegion& Surf, double dDimZ, double dPrec, bool bTriDex) = 0 ;
virtual bool CreateFromTriMesh( const ISurfTriMesh& Surf, double dPrec, bool bTriDex) = 0 ;
virtual bool GetAllTriangles( TRIA3DEXLIST& lstTria) const = 0 ;
virtual int GetBlockCount( void) const = 0 ;
virtual bool GetVolume( double& dVol) const = 0 ;
virtual int GetPartCount( void) const = 0 ;
virtual bool GetPartVolume( int nPart, double& dVol) const = 0 ;
virtual bool GetTriangles( bool bAllBlocks, INTVECTOR& nModifiedBlocks, TRIA3DEXLISTVECTOR& vLstTria) const ;
virtual bool GetDexelLines( int nDir, int nPos1, int nPos2, POLYLINELIST& lstPL) const = 0 ;
virtual bool SetTolerances( double dLinTol, double dAngTolDeg = 90) = 0 ;
virtual bool SetStdTool( const std::string& sToolName, double dH, double dR, double dCornR, int nFlag) = 0 ;
virtual bool SetAdvTool( const std::string& sToolName,
double dH, double dR, double dTipH, double dTipR, double dCornR, int nFlag) = 0 ;
virtual bool SetGenTool( const std::string& sToolName, const ICurveComposite* pToolOutline, int nFlag) = 0 ;
virtual bool SetMortiserTool( const std::string& sToolName, double dH, double dW, double dTh, double dRc, int nFlag) = 0 ;
virtual bool SetChiselTool( const std::string& sToolName, double dH, double dW, double dTh, int nFlag) = 0 ;
virtual bool MillingStep( const Point3d& ptPs, const Vector3d& vtDs, const Point3d& ptPe, const Vector3d& vtDe) = 0 ;
virtual bool MillingStep( const Point3d& ptPs, const Vector3d& vtDs, const Vector3d& vtAs,
const Point3d& ptPe, const Vector3d& vtDe, const Vector3d& vtAe) = 0 ;
virtual bool GetDepth( const Point3d& ptP, const Vector3d& vtDir, double& dInLength, double& dOutLength, bool bExact) const = 0 ;
virtual bool GetPlaneIntersection( const Plane3d& plPlane, POCRVVECTOR& vpLoop) const = 0 ;
virtual bool AvoidBox( const Frame3d& frBox, const Vector3d& vtDiag) const = 0 ;
virtual bool AvoidSphere( const Point3d& ptCenter, double dRad) const = 0 ;
virtual bool AvoidCylinder( const Frame3d& frCyl, double dL, double dR) const = 0 ;
virtual IVolZmap* ClonePart( int nPart) const = 0 ;
virtual bool RemovePart( int nPart) = 0 ;
} ;
//-----------------------------------------------------------------------------
inline IVolZmap* CreateVolZmap( void)
{ return (static_cast<IVolZmap*>( CreateGeoObj( VOL_ZMAP))) ; }
inline IVolZmap* CloneVolZmap( const IGeoObj* pGObj)
{ if ( pGObj == nullptr || pGObj->GetType() != VOL_ZMAP)
return nullptr ;
return (static_cast<IVolZmap*>(pGObj->Clone())) ; }
inline const IVolZmap* GetVolZmap( const IGeoObj* pGObj)
{ if ( pGObj == nullptr || pGObj->GetType() != VOL_ZMAP)
return nullptr ;
return (static_cast<const IVolZmap*>(pGObj)) ; }
inline IVolZmap* GetVolZmap( IGeoObj* pGObj)
{ if ( pGObj == nullptr || pGObj->GetType() != VOL_ZMAP)
return nullptr ;
return (static_cast<IVolZmap*>(pGObj)) ; }