diff --git a/EGkVolZmap.h b/EGkVolZmap.h index e423f2c..0a4d897 100644 --- a/EGkVolZmap.h +++ b/EGkVolZmap.h @@ -15,17 +15,34 @@ #include "/EgtDev/Include/EGkGeoObj.h" #include "/EgtDev/Include/EGkPolyLine.h" +#include "/EgtDev/Include/EGkCurveComposite.h" #include "/EgtDev/Include/EGkTriangle3d.h" //---------------------------------------------------------------------------- class __declspec( novtable) IVolZmap : public IGeoObj { + +// Tipi utensile + public : + enum ToolType { GenericTool = 0, // generico da profilo -> usare SetTool + CylindricalMill = 1, // cilindrica + BallEndMill = 2, // sferica + BullNoseMill = 3, // naso di toro + ConusMill = 4} ; // con parte terminale conica + public : virtual bool CopyFrom( const IGeoObj* pGObjSrc) = 0 ; virtual bool CreateMap( const Point3d& ptO, double dPrec, double dLenX, double dLenY, double dLenZ) = 0 ; virtual bool GetAllTriangles( TRIA3DLIST& lstTria) const = 0 ; virtual bool GetDexelLines( int nDir, int nPos1, int nPos2, POLYLINELIST& lstPL) const = 0 ; + virtual bool SetTolerances( double dLinTol, double dAngTolDeg = 90) = 0 ; + virtual bool SetTool( const std::string& sToolName, const ICurveComposite* pToolOutline) = 0 ; + virtual bool SetStdTool( const std::string& sToolName, unsigned int nToolType, + double dH, double dTipH, double dR, double dTipR, double dRc = 0) = 0 ; + virtual bool MillingStep( const Point3d& ptPs, const Point3d& ptPe, Vector3d& vtDs, Vector3d& vtDe) = 0 ; + virtual bool Deepness( const Point3d& ptP, const Vector3d& vtDir, double& dInLength, double& dOutLength) = 0 ; + virtual bool BBoxZmapIntersection( const Frame3d& frBBox, const Point3d& ptMax) = 0 ; } ; //-----------------------------------------------------------------------------