diff --git a/EGkGeoConst.h b/EGkGeoConst.h index 3e90033..ce11f4c 100644 --- a/EGkGeoConst.h +++ b/EGkGeoConst.h @@ -39,6 +39,11 @@ const double SIN_EPS_ANG_ZERO = EPS_ANG_ZERO * DEGTORAD ; const double COS_ORTO_ANG_SMALL = SIN_EPS_ANG_SMALL ; const double COS_ORTO_ANG_ZERO = SIN_EPS_ANG_ZERO ; +// angoli notevoli (in gradi) +const double ANG_RIGHT = 90 ; +const double ANG_STRAIGHT = 180 ; +const double ANG_FULL = 360 ; + // altre costanti const double SQRT2 = 1.41421356237309504880 ; const double SQRT1_2 = 1 / SQRT2 ; diff --git a/EGkPolyLine.h b/EGkPolyLine.h index 9b17125..8a098d8 100644 --- a/EGkPolyLine.h +++ b/EGkPolyLine.h @@ -70,6 +70,8 @@ class PolyLine EGK_EXPORT bool GetNextLine( Point3d& ptIni, Point3d& ptFin) const { return GetNextULine( nullptr, &ptIni, nullptr, &ptFin) ; } EGK_EXPORT bool IsPlanar( Plane3d& plPlane, double dToler = EPS_SMALL) const ; + EGK_EXPORT bool GetMaxDistanceFromLine( double& dMaxDist, const Point3d& ptAx, + const Vector3d& vtAx, double dLen, bool bIsSegment = true) const ; private : bool NewellPlane( Plane3d& plPlane) const ; diff --git a/EgkSurfTriMesh.h b/EgkSurfTriMesh.h index 6e19ed7..163dc65 100644 --- a/EgkSurfTriMesh.h +++ b/EgkSurfTriMesh.h @@ -33,6 +33,8 @@ class __declspec( novtable) ISurfTriMesh : public ISurf virtual bool AdjustTopology( void) = 0 ; virtual bool CreateByTriangulation( const PolyLine& PL) = 0 ; virtual bool CreateByExtrusion( const PolyLine& PL, const Vector3d& vtExtr) = 0 ; + virtual bool CreateByRevolution( const PolyLine& PL, const Point3d& ptAx, const Vector3d& vtAx, + double dAngRot, double dStepRot) = 0 ; virtual int GetVertexNum( void) const = 0 ; virtual int GetTriangleNum( void) const = 0 ; virtual int GetFirstVertex( Point3d& ptP) const = 0 ;