Compare commits
96 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| b385f19273 | |||
| 5525970ea1 | |||
| 0deab361c2 | |||
| f4d5bb773e | |||
| f9f1e61a52 | |||
| 3c02ee2dc0 | |||
| d3528e3660 | |||
| 0399218643 | |||
| 83cfdfc50e | |||
| fe30d8316d | |||
| 9b3ee95672 | |||
| 67e90e56dd | |||
| 41671e933f | |||
| d5b6c5c278 | |||
| a9b5a7285f | |||
| e07eaed52b | |||
| 398a083be6 | |||
| 843f69c529 | |||
| 415493927e | |||
| d87a1037e6 | |||
| 9891ab1d29 | |||
| 32b9ee9f24 | |||
| 6944705676 | |||
| 00f5e38f61 | |||
| 020dca78bd | |||
| 65b3fe80d1 | |||
| c57e44db02 | |||
| 30a394960c | |||
| 50df61a97a | |||
| 992b4d1562 | |||
| 74c9c8d04e | |||
| e51df31d13 | |||
| dd0a2818ee | |||
| d6e6531d92 | |||
| 5919ebd8ec | |||
| f0968a8d40 | |||
| ba10a0cd58 | |||
| f81bb32e20 | |||
| 7d0a641b6d | |||
| d026cc2db7 | |||
| b691854993 | |||
| fe25f6e009 | |||
| 1c088f9e50 | |||
| 88bbc2580b | |||
| 2468e5c1c5 | |||
| af000e7c37 | |||
| 9464b52c0b | |||
| 6534f7bc32 | |||
| 5ba17dda50 | |||
| 64e225c11c | |||
| 26869b633d | |||
| fef9dd4ae5 | |||
| 1c6d7ed4ff | |||
| dec545da2e | |||
| c4241bfb88 | |||
| 77b84fdd17 | |||
| 9a8be81fd6 | |||
| e148024db1 | |||
| 4ede19d2ee | |||
| b4ee9e2b42 | |||
| 5644f837ed | |||
| d731ea7164 | |||
| ca4eb9f166 | |||
| 29bc318eaa | |||
| fda893f8e2 | |||
| 675c09e36b | |||
| e5873f66ce | |||
| d2880b5167 | |||
| a933bea836 | |||
| 9dbb6fac60 | |||
| d3c44f2241 | |||
| e6f0be1896 | |||
| 5d2497bc9c | |||
| b4c5b74e8a | |||
| 38b0309079 | |||
| 60f71c0601 | |||
| b3f6bd148a | |||
| 3ded442847 | |||
| 756f13e6d7 | |||
| 127fbb4be6 | |||
| f72ee830ff | |||
| fa91c10973 | |||
| 85e69405f1 | |||
| 88a4a91835 | |||
| a78f73f1f1 | |||
| 37768dc318 | |||
| 82e86fcdee | |||
| bdd2f34184 | |||
| 987a84181d | |||
| 9617f36230 | |||
| 14fe1a913a | |||
| f1ce998815 | |||
| c3d3c1e0bc | |||
| ad87ee5da8 | |||
| 079e9e027a | |||
| 88fa15f216 |
@@ -0,0 +1,39 @@
|
|||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// EgalTech 2024-2024
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// File : EGkCAvSilhouetteSurfTm.h Data : 08.06.24 Versione : 2.6f2
|
||||||
|
// Contenuto : Dichiarazione della funzione calcolo silhouette.
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// Modifiche : 08.06.24 DS Creazione modulo.
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "/EgtDev/Include/EGkSurfTriMesh.h"
|
||||||
|
|
||||||
|
//----------------------- Macro per import/export ----------------------------
|
||||||
|
#undef EGK_EXPORT
|
||||||
|
#if defined( I_AM_EGK) // da definirsi solo nella DLL
|
||||||
|
#define EGK_EXPORT __declspec( dllexport)
|
||||||
|
#else
|
||||||
|
#define EGK_EXPORT __declspec( dllimport)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
EGK_EXPORT bool CAvSilhouetteSurfTm( const ISurfTriMesh& Stm, const Plane3d& plPlane, double dTol, POLYLINEVECTOR& vPL) ;
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
class __declspec( novtable) ICAvParSilhouettesSurfTm
|
||||||
|
{
|
||||||
|
public :
|
||||||
|
virtual ~ICAvParSilhouettesSurfTm( void) {}
|
||||||
|
virtual bool SetData( const CISURFTMPVECTOR& vpStm, const Frame3d& frPlanes, double dTol) = 0 ;
|
||||||
|
virtual bool GetSilhouette( double dLevel, POLYLINEVECTOR& vPL) = 0 ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
EGK_EXPORT ICAvParSilhouettesSurfTm* CreateCAvParSilhouettesSurfTm( void) ;
|
||||||
+6
-2
@@ -23,6 +23,8 @@
|
|||||||
#define EGK_EXPORT __declspec( dllimport)
|
#define EGK_EXPORT __declspec( dllimport)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
class ICurveComposite ;
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
class __declspec( novtable) ICAvToolSurfTm {
|
class __declspec( novtable) ICAvToolSurfTm {
|
||||||
public :
|
public :
|
||||||
@@ -36,8 +38,10 @@ class __declspec( novtable) ICAvToolSurfTm {
|
|||||||
virtual double GetToolRadius( void) const = 0 ;
|
virtual double GetToolRadius( void) const = 0 ;
|
||||||
virtual double GetToolHeight( void) const = 0 ;
|
virtual double GetToolHeight( void) const = 0 ;
|
||||||
virtual const ICurveComposite& GetToolOutline( bool bApprox = false) const = 0 ;
|
virtual const ICurveComposite& GetToolOutline( bool bApprox = false) const = 0 ;
|
||||||
virtual bool TestPosition( const Point3d& ptT, const Vector3d& vtDir, const Vector3d& vtMove, double& dTotDist) = 0 ;
|
virtual bool TestPosition( const Point3d& ptT, const Vector3d& vtDir, const Vector3d& vtMove,
|
||||||
virtual bool TestPath( PNTULIST& lPntM, const Vector3d& vtDir, const Vector3d& vtMove, double dLinTol) = 0 ;
|
double& dTotDist, Vector3d* pvtTriaN = nullptr) const = 0 ;
|
||||||
|
virtual bool TestSeries( PNTUVECTOR& vPntM, const Vector3d& vtDir, const Vector3d& vtMove, double dProgCoeff = 1) = 0 ;
|
||||||
|
virtual bool TestPath( PNTULIST& lPntM, const Vector3d& vtDir, const Vector3d& vtMove, double dLinTol, double dProgCoeff = 1) = 0 ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|||||||
+23
-2
@@ -25,7 +25,28 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
EGK_EXPORT bool CalcPocketing( const ISurfFlatRegion* pSfr, double dRad, double dStep, double dAngle, int nType,
|
EGK_EXPORT bool CalcPocketing( const ISurfFlatRegion* pSfr, double dRad, double dRadOffs, double dStep,
|
||||||
bool bSmooth, ICRVCOMPOPOVECTOR& vCrv) ;
|
double dAngle, int nType, bool bSmooth, bool bInvert, bool bAvoidOpt,
|
||||||
|
bool bAllowZigZagOneWayBorders, const Point3d& ptEndPrec, const ISurfFlatRegion* pSfrLimit,
|
||||||
|
ICRVCOMPOPOVECTOR& vCrv) ;
|
||||||
EGK_EXPORT bool CalcZigZagInfill( const ISurfFlatRegion* pSfr, double dStep, bool bSmooth, bool bRemoveOverlapLink,
|
EGK_EXPORT bool CalcZigZagInfill( const ISurfFlatRegion* pSfr, double dStep, bool bSmooth, bool bRemoveOverlapLink,
|
||||||
ICRVCOMPOPOVECTOR& vCrvCompoRes) ;
|
ICRVCOMPOPOVECTOR& vCrvCompoRes) ;
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
enum { POCKET_ZIGZAG = 0,
|
||||||
|
POCKET_ONEWAY = 1,
|
||||||
|
POCKET_SPIRALIN = 2,
|
||||||
|
POCKET_SPIRALOUT = 3,
|
||||||
|
POCKET_CONFORMAL_ZIGZAG = 4,
|
||||||
|
POCKET_CONFORMAL_ONEWAY = 5} ;
|
||||||
|
|
||||||
|
enum { TEMP_PROP_SMOOTH = -2,
|
||||||
|
TEMP_PROP_INVALID = -1,
|
||||||
|
TEMP_PROP_CLOSE_EDGE = 0,
|
||||||
|
TEMP_PROP_OPEN_EDGE = 1,
|
||||||
|
TEMP_PROP_OUT_START = 2,
|
||||||
|
TEMP_PROP_SINGLE_CURVE = 3,
|
||||||
|
TEMP_PROP_OPT_TRAPEZOID = 4,
|
||||||
|
TEMP_PROP_BORDER_CURVE = 5,
|
||||||
|
TEMP_PROP_CURVE_ACTIVE = 6,
|
||||||
|
TEMP_PROP_CURVE_INACTIVE = 7} ;
|
||||||
|
|||||||
+37
-7
@@ -48,19 +48,39 @@ struct CNurbsData
|
|||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
//! Trasforma una linea in una nuova curva di Bezier semplice
|
//! Trasforma una linea in una nuova curva di Bezier semplice
|
||||||
EGK_EXPORT ICurveBezier* LineToBezierCurve( const ICurveLine* pLine) ;
|
EGK_EXPORT ICurve* CurveToBezierCurve( const ICurve* pCrv, int nDeg = 3, bool bMakeRatOrNot = true) ;
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
//! Trasforma una linea in una nuova curva di Bezier semplice
|
||||||
|
EGK_EXPORT ICurveBezier* LineToBezierCurve( const ICurveLine* pLine, int nDeg = 3, bool bMakeRatOrNot = true) ;
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
//! Trasforma un arco in una nuova curva di Bezier semplice o composta
|
//! Trasforma un arco in una nuova curva di Bezier semplice o composta
|
||||||
EGK_EXPORT ICurve* ArcToBezierCurve( const ICurve* pArc, bool bDeg3OrDeg2 = true) ;
|
EGK_EXPORT ICurve* ArcToBezierCurve( const ICurve* pArc, int nDeg = 3, bool bMakeRatOrNot = true) ;
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
//! Trasforma una curva compo in una nuova curva di Bezier semplice o composta
|
//! Trasforma una curva compo in una nuova curva di Bezier semplice o composta
|
||||||
EGK_EXPORT ICurve* CompositeToBezierCurve( const ICurveComposite* pCrvCompo) ;
|
EGK_EXPORT ICurve* CompositeToBezierCurve( const ICurveComposite* pCrvCompo, int nDeg = 3, bool bMakeRatOrNot = true) ;
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
//! Trasforma una curva bezier in una nuova curva di Bezier semplice o composta di grado 2 e razionale
|
//! Trasforma una curva bezier in una nuova curva di Bezier semplice o composta della razionalità e grado desiderato ( minimo 3)
|
||||||
EGK_EXPORT ICurve* BezierToBasicBezierCurve( const ICurveBezier* pCrvBezier) ;
|
EGK_EXPORT ICurve* EditBezierCurve( const ICurveBezier* pCrvBezier, int nDeg = 3, bool bMakeRatOrNot = true, double dTol = 10 * EPS_SMALL) ;
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
//! Approssima una bezier con una serie di bezier cubiche
|
||||||
|
EGK_EXPORT ICurve* ApproxBezierWithCubics( const ICurveBezier* pCrvBezier, double dTol) ;
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
//! Approssima una bezier con una serie di bezier cubiche
|
||||||
|
EGK_EXPORT ICurveBezier* ApproxArcCurveBezierWithSingleCubic( const ICurveBezier* pCrvBezier, const Point3d& ptCen) ;
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
//! Campiona una serie di punti dalla curva e li approssima con una o più curve di bezier
|
||||||
|
EGK_EXPORT ICurve* ApproxCurveWithBezier( const ICurve*, double dTol) ;
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
//! Interpola un set di punti e li approssima con una o più curve di bezier cubiche
|
||||||
|
EGK_EXPORT ICurve* InterpolatePointSetWithBezier( const PNTVECTOR& vPnt, double dTol) ;
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
//! Aumento il grado della curva di Bezier
|
//! Aumento il grado della curva di Bezier
|
||||||
@@ -70,6 +90,10 @@ EGK_EXPORT ICurveBezier* BezierIncreaseDegree( const ICurveBezier* pCrvBezier) ;
|
|||||||
//! Riduco il grado della curva di Bezier
|
//! Riduco il grado della curva di Bezier
|
||||||
EGK_EXPORT ICurveBezier* BezierDecreaseDegree( const ICurveBezier* pCrvBezier, double dTol) ;
|
EGK_EXPORT ICurveBezier* BezierDecreaseDegree( const ICurveBezier* pCrvBezier, double dTol) ;
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
//! Misura l'errore di approsimazione tra la curva originale e quella modificata
|
||||||
|
EGK_EXPORT bool CalcBezierApproxError( const ICurveBezier* pCrvOri, const ICurveBezier* pCrvNew, double& dErr, int nPoints = 20) ;
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
//! Trasforma una curva in una nuova curva semplice o composta senza archi (solo linee o curve di Bezier)
|
//! Trasforma una curva in una nuova curva semplice o composta senza archi (solo linee o curve di Bezier)
|
||||||
EGK_EXPORT ICurve* CurveToNoArcsCurve( const ICurve* pCrv) ;
|
EGK_EXPORT ICurve* CurveToNoArcsCurve( const ICurve* pCrv) ;
|
||||||
@@ -102,21 +126,27 @@ EGK_EXPORT ICurve* ProjectCurveOnPlane( const ICurve& crCrv, const Plane3d& plPl
|
|||||||
EGK_EXPORT bool AdjustCurveSlope( ICurveComposite* pCrv, double dNini, double dNfin) ;
|
EGK_EXPORT bool AdjustCurveSlope( ICurveComposite* pCrv, double dNini, double dNfin) ;
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
//! Calcolo del diagramma di Voronoi della curva, nei TempParam dei risultati la distanza
|
//! Calcolo del diagramma di Voronoi della curva/e, nei TempParam dei risultati la distanza
|
||||||
//! Per nBound tenere valore di default.
|
//! Per nBound tenere valore di default.
|
||||||
EGK_EXPORT bool CalcCurveVoronoiDiagram( const ICurve& crvC, ICURVEPOVECTOR& vCrvs, int nBound = 3) ;
|
EGK_EXPORT bool CalcCurveVoronoiDiagram( const ICurve& crvC, ICURVEPOVECTOR& vCrvs, int nBound = 3) ;
|
||||||
|
EGK_EXPORT bool CalcCurvesVoronoiDiagram( const CICURVEPVECTOR& vCrvC, ICURVEPOVECTOR& vCrvs, int nBound = 3) ;
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
//! Calcolo del Medial Axis della curva (sottoinsieme del diagramma di Voronoi), nei TempParam dei risultati la distanza
|
//! Calcolo del Medial Axis della curva/e (sottoinsieme del diagramma di Voronoi), nei TempParam dei risultati la distanza
|
||||||
const int WMAT_BOTHSIDES = 0 ;
|
const int WMAT_BOTHSIDES = 0 ;
|
||||||
const int WMAT_LEFT = 1 ;
|
const int WMAT_LEFT = 1 ;
|
||||||
const int WMAT_RIGHT = 2 ;
|
const int WMAT_RIGHT = 2 ;
|
||||||
EGK_EXPORT bool CalcCurveMedialAxis( const ICurve& crvC, ICURVEPOVECTOR& vCrvs, int nSide) ;
|
EGK_EXPORT bool CalcCurveMedialAxis( const ICurve& crvC, ICURVEPOVECTOR& vCrvs, int nSide) ;
|
||||||
|
EGK_EXPORT bool CalcCurvesMedialAxis( const CICURVEPVECTOR& vCrvC, ICURVEPOVECTOR& vCrvs, int nSide) ;
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
//! Calcola l'offset completo di una curva
|
//! Calcola l'offset completo di una curva
|
||||||
EGK_EXPORT bool CalcCurveFatCurve( const ICurve& crvC, ICURVEPOVECTOR& vCrvs, double dRadius, bool bSquareEnds, bool bSquareMids) ;
|
EGK_EXPORT bool CalcCurveFatCurve( const ICurve& crvC, ICURVEPOVECTOR& vCrvs, double dRadius, bool bSquareEnds, bool bSquareMids) ;
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
//! Calcola, nel caso di curve chiuse, il valore limite di offset ( in valore assoluto) che fa sparire la curva
|
||||||
|
EGK_EXPORT bool CalcCurveLimitOffset( const ICurve& crvC, double& dOffs) ;
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
//! Resetta l'oggetto voronoi associato alla curva liberandone la memoria
|
//! Resetta l'oggetto voronoi associato alla curva liberandone la memoria
|
||||||
EGK_EXPORT void ResetCurveVoronoi( const ICurve& crvC) ;
|
EGK_EXPORT void ResetCurveVoronoi( const ICurve& crvC) ;
|
||||||
@@ -28,6 +28,7 @@ class __declspec( novtable) ICurveBezier : public ICurve
|
|||||||
virtual bool Init( int nDeg, bool bIsRational) = 0 ;
|
virtual bool Init( int nDeg, bool bIsRational) = 0 ;
|
||||||
virtual bool SetControlPoint( int nInd, const Point3d& ptCtrl) = 0 ;
|
virtual bool SetControlPoint( int nInd, const Point3d& ptCtrl) = 0 ;
|
||||||
virtual bool SetControlPoint( int nInd, const Point3d& ptCtrl, double dW) = 0 ;
|
virtual bool SetControlPoint( int nInd, const Point3d& ptCtrl, double dW) = 0 ;
|
||||||
|
virtual bool SetControlWeight( int nInd, double dW) = 0 ;
|
||||||
virtual bool FromArc( const ICurveArc& crArc) = 0 ;
|
virtual bool FromArc( const ICurveArc& crArc) = 0 ;
|
||||||
virtual bool FromLine( const ICurveLine& crLine) = 0 ;
|
virtual bool FromLine( const ICurveLine& crLine) = 0 ;
|
||||||
virtual int GetDegree( void) const = 0 ;
|
virtual int GetDegree( void) const = 0 ;
|
||||||
@@ -37,6 +38,10 @@ class __declspec( novtable) ICurveBezier : public ICurve
|
|||||||
virtual double GetControlWeight( int nInd, bool* pbOk = NULL) const = 0 ;
|
virtual double GetControlWeight( int nInd, bool* pbOk = NULL) const = 0 ;
|
||||||
virtual bool GetControlPolygonLength( double& dLen) const = 0 ;
|
virtual bool GetControlPolygonLength( double& dLen) const = 0 ;
|
||||||
virtual int GetSingularParam( double& dPar) const = 0 ;
|
virtual int GetSingularParam( double& dPar) const = 0 ;
|
||||||
|
virtual bool MakeRational( void) = 0 ;
|
||||||
|
virtual bool MakeRationalStandardForm( void) = 0 ;
|
||||||
|
virtual bool MakeNonRational( double dTol) = 0 ;
|
||||||
|
virtual bool IsALine( void) const = 0 ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -0,0 +1,72 @@
|
|||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// EgalTech 2024-2024
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// File : EGkDistPointSurfFr.h Data : 18.07.24 Versione : 2.6g5
|
||||||
|
// Contenuto : Dichiarazione della classe distanza Punto da FlatRegion.
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// Modifiche : 18.07.24 DS Creazione modulo.
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "/EgtDev/Include/EGkSurfFlatRegion.h"
|
||||||
|
|
||||||
|
//----------------------- Macro per import/export ----------------------------
|
||||||
|
#undef EGK_EXPORT
|
||||||
|
#if defined( I_AM_EGK) // da definirsi solo nella DLL
|
||||||
|
#define EGK_EXPORT __declspec( dllexport)
|
||||||
|
#else
|
||||||
|
#define EGK_EXPORT __declspec( dllimport)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// Calcola la distanza tra punto e Flat Region.
|
||||||
|
// Risultati :
|
||||||
|
// - distanza
|
||||||
|
// - punto sulla superficie a minima distanza
|
||||||
|
// - indici del chunk e del loop e parametro del punto di frontiera a minima distanza
|
||||||
|
// - indicazione se il punto passato è sul bordo (PRS_ON), interno (PRS_IN) o esterno (PRS_OUT) alla regione.
|
||||||
|
// Note :
|
||||||
|
// - nel caso di più punti di frontiera vicini, ne viene calcolato solo uno
|
||||||
|
// - se il punto non giace nel piano della Regione
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
enum PrSide { PRS_IN = -1, PRS_ON = 0, PRS_OUT = +1} ;
|
||||||
|
// Corrispondono a MDS_LEFT, MDS_ON e MDS_RIGHT per giacitura punto rispetto a curva.
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
class DistPointSurfFr
|
||||||
|
{
|
||||||
|
public :
|
||||||
|
EGK_EXPORT DistPointSurfFr( const Point3d& ptP, const ISurfFlatRegion& frSurf) ;
|
||||||
|
|
||||||
|
public :
|
||||||
|
EGK_EXPORT bool GetDist( double& dDist) const ;
|
||||||
|
EGK_EXPORT bool GetDistOnRegionPlane( double& dDist) const ;
|
||||||
|
EGK_EXPORT bool GetPointAtMinDist( Point3d& ptMinDistPoint) const ;
|
||||||
|
EGK_EXPORT bool GetParamAtMinDist( int& nMinChunk, int& nMinLoop, double& dMinPar) const ;
|
||||||
|
EGK_EXPORT bool GetSideAtMinDist( int& nSide) const ;
|
||||||
|
|
||||||
|
private :
|
||||||
|
void Calculate( const Point3d& ptP, const ISurfFlatRegion& frSurf) ;
|
||||||
|
|
||||||
|
private :
|
||||||
|
double m_dDist ;
|
||||||
|
double m_dDistOnPlane ;
|
||||||
|
int m_nMinChunk ;
|
||||||
|
int m_nMinLoop ;
|
||||||
|
double m_dMinPar ;
|
||||||
|
Point3d m_ptMinDistPoint ;
|
||||||
|
int m_nSide ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// Verifica velocizzata
|
||||||
|
EGK_EXPORT bool IsPointInsideSurfFr( const Point3d& ptP, const ISurfFlatRegion* pSfr, double dMinDist, bool& bInside, int& nChunk) ;
|
||||||
|
inline bool IsPointInsideSurfFr( const Point3d& ptP, const ISurfFlatRegion* pSfr, double dMinDist, bool& bInside)
|
||||||
|
{ int nChunk ; return IsPointInsideSurfFr( ptP, pSfr, dMinDist, bInside, nChunk) ;}
|
||||||
@@ -29,8 +29,8 @@
|
|||||||
// - distanza
|
// - distanza
|
||||||
// - punto sulla superficie a minima distanza
|
// - punto sulla superficie a minima distanza
|
||||||
// - indice del triangolo su cui giace il punto
|
// - indice del triangolo su cui giace il punto
|
||||||
// - indicazione se il punto di riferimento è dalla parte interna o esterna della superficie ( se chiusa ).
|
// - indicazione se il punto di riferimento è dalla parte interna o esterna della superficie ( se chiusa ).
|
||||||
// - indicazione se il punto di riferimento è a destra o sinistra della superficie ( se aperta )
|
// - indicazione se il punto di riferimento è a destra o sinistra della superficie ( se aperta )
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
class DistPointSurfTm
|
class DistPointSurfTm
|
||||||
{
|
{
|
||||||
|
|||||||
+12
-1
@@ -116,11 +116,22 @@ operator/( const Frame3d& frRef, const Frame3d& frDest)
|
|||||||
return frNew ;
|
return frNew ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
//! Restituisce il frame inverso di quello passato
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
inline const Frame3d
|
||||||
|
GetInvert( const Frame3d& frRef)
|
||||||
|
{
|
||||||
|
Frame3d frNew = GLOB_FRM ;
|
||||||
|
frNew.ToLoc( frRef) ;
|
||||||
|
return frNew ;
|
||||||
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
//! Restituisce una copia in locale del frame passato
|
//! Restituisce una copia in locale del frame passato
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
inline const Frame3d
|
inline const Frame3d
|
||||||
GetToLoc ( const Frame3d& frRef, const Frame3d& frDest)
|
GetToLoc( const Frame3d& frRef, const Frame3d& frDest)
|
||||||
{
|
{
|
||||||
Frame3d frNew = frRef ;
|
Frame3d frNew = frRef ;
|
||||||
frNew.ToLoc( frDest) ;
|
frNew.ToLoc( frDest) ;
|
||||||
|
|||||||
+2
-1
@@ -58,7 +58,8 @@ enum GdbStatus { GDB_ST_OFF = 0,
|
|||||||
|
|
||||||
//----------------- Costanti marcatura oggetti del DB geometrico ---------------
|
//----------------- Costanti marcatura oggetti del DB geometrico ---------------
|
||||||
enum GdbMark { GDB_MK_OFF = 0,
|
enum GdbMark { GDB_MK_OFF = 0,
|
||||||
GDB_MK_ON = 1} ;
|
GDB_MK_ON = 1,
|
||||||
|
GDB_MK_ON_2 = 2} ;
|
||||||
|
|
||||||
//----------------- Costante per numero proprietà temporanee -------------------
|
//----------------- Costante per numero proprietà temporanee -------------------
|
||||||
const int GDB_NUM_TEMP_PROP = 2 ;
|
const int GDB_NUM_TEMP_PROP = 2 ;
|
||||||
|
|||||||
+1
-1
@@ -80,7 +80,7 @@ CalcMark( int nObjMark, int nParentMark)
|
|||||||
if ( nObjMark == GDB_MK_OFF && nParentMark == GDB_MK_OFF)
|
if ( nObjMark == GDB_MK_OFF && nParentMark == GDB_MK_OFF)
|
||||||
return GDB_MK_OFF ;
|
return GDB_MK_OFF ;
|
||||||
|
|
||||||
return GDB_MK_ON ;
|
return ( nParentMark != GDB_MK_OFF ? nParentMark : nObjMark) ;
|
||||||
}
|
}
|
||||||
// ovviamente la marcatura si combina con lo stato, nel senso che un oggetto
|
// ovviamente la marcatura si combina con lo stato, nel senso che un oggetto
|
||||||
// non visibile non viene nemmeno marcato
|
// non visibile non viene nemmeno marcato
|
||||||
+1
-1
@@ -104,7 +104,7 @@ class __declspec( novtable) IGdbIterator
|
|||||||
virtual bool RevertStatus( void) = 0 ;
|
virtual bool RevertStatus( void) = 0 ;
|
||||||
virtual bool GetStatus( int& nStat) const = 0 ;
|
virtual bool GetStatus( int& nStat) const = 0 ;
|
||||||
virtual bool GetCalcStatus( int& nStat) const = 0 ;
|
virtual bool GetCalcStatus( int& nStat) const = 0 ;
|
||||||
virtual bool SetMark( void) = 0 ;
|
virtual bool SetMark( int nMark = GDB_MK_ON) = 0 ;
|
||||||
virtual bool ResetMark( void) = 0 ;
|
virtual bool ResetMark( void) = 0 ;
|
||||||
virtual bool GetMark( int& nMark) const = 0 ;
|
virtual bool GetMark( int& nMark) const = 0 ;
|
||||||
virtual bool GetCalcMark( int& nMark) const = 0 ;
|
virtual bool GetCalcMark( int& nMark) const = 0 ;
|
||||||
|
|||||||
+171
-2
@@ -21,7 +21,7 @@
|
|||||||
bool
|
bool
|
||||||
SaveGeoObj( IGeoObj* pGObj, const std::string& sFile, int nFlag = GDB_SV_BIN)
|
SaveGeoObj( IGeoObj* pGObj, const std::string& sFile, int nFlag = GDB_SV_BIN)
|
||||||
{
|
{
|
||||||
// verifico validità oggetto
|
// verifico validità oggetto
|
||||||
if ( pGObj == nullptr || ! pGObj->IsValid())
|
if ( pGObj == nullptr || ! pGObj->IsValid())
|
||||||
return false ;
|
return false ;
|
||||||
// creo GeomDB temporaneo
|
// creo GeomDB temporaneo
|
||||||
@@ -47,7 +47,7 @@ bool
|
|||||||
SaveGeoObj( std::vector<IGeoObj*> vpGObj, const std::string& sFile, int nFlag = GDB_SV_BIN)
|
SaveGeoObj( std::vector<IGeoObj*> vpGObj, const std::string& sFile, int nFlag = GDB_SV_BIN)
|
||||||
{
|
{
|
||||||
for ( int i = 0 ; i < int( vpGObj.size()); ++i) {
|
for ( int i = 0 ; i < int( vpGObj.size()); ++i) {
|
||||||
// verifico validità oggetto
|
// verifico validità oggetto
|
||||||
if ( vpGObj[i] == nullptr || ! vpGObj[i]->IsValid() )
|
if ( vpGObj[i] == nullptr || ! vpGObj[i]->IsValid() )
|
||||||
return false ;
|
return false ;
|
||||||
}
|
}
|
||||||
@@ -74,5 +74,174 @@ SaveGeoObj( std::vector<IGeoObj*> vpGObj, const std::string& sFile, int nFlag =
|
|||||||
for ( int i = 0 ; i < int( vIds.size()); ++i)
|
for ( int i = 0 ; i < int( vIds.size()); ++i)
|
||||||
bOk = ( pGeomDB->RemoveGeoObjAndErase( vIds[i]) != nullptr ) && bOk ;
|
bOk = ( pGeomDB->RemoveGeoObjAndErase( vIds[i]) != nullptr ) && bOk ;
|
||||||
|
|
||||||
|
return bOk ;
|
||||||
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
bool
|
||||||
|
SaveGeoObj( std::vector<std::vector<IGeoObj*>> vvpGObj, std::vector<Color> vCol,
|
||||||
|
const std::string& sFile, int nFlag = GDB_SV_BIN)
|
||||||
|
{
|
||||||
|
// verifico validità oggetti
|
||||||
|
for ( int i = 0 ; i < int( vvpGObj.size()) ; ++ i) {
|
||||||
|
for ( int j = 0 ; j < int( vvpGObj[i].size()) ; ++ j) {
|
||||||
|
if ( vvpGObj[i][j] == nullptr || ! vvpGObj[i][j]->IsValid())
|
||||||
|
return false ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ( int( vCol.size()) <= int( vvpGObj.size())) {
|
||||||
|
for ( int i = int( vCol.size()) ; i < int( vvpGObj.size()) ; ++ i)
|
||||||
|
vCol.push_back( BLACK) ;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return false ;
|
||||||
|
|
||||||
|
// creo GeomDB temporaneo
|
||||||
|
PtrOwner<IGeomDB> pGeomDB( CreateGeomDB()) ;
|
||||||
|
if ( IsNull( pGeomDB))
|
||||||
|
return false ;
|
||||||
|
INTVECTOR vIds ;
|
||||||
|
int nLayId = 0 ;
|
||||||
|
|
||||||
|
// creo il part
|
||||||
|
int nPartId = pGeomDB->AddGroup( GDB_ID_NULL, GDB_ID_ROOT, Frame3d()) ;
|
||||||
|
|
||||||
|
// per ogni elemento i-esimo, creo un layer
|
||||||
|
for ( int i = 0 ; i < int( vvpGObj.size()) ; ++i) {
|
||||||
|
// creo il layer
|
||||||
|
nLayId = pGeomDB->AddGroup( GDB_ID_NULL, nPartId, Frame3d()) ;
|
||||||
|
pGeomDB->SetMaterial( nLayId, vCol[i]) ;
|
||||||
|
|
||||||
|
for ( int j = 0 ; j < int( vvpGObj.size()) ; ++ j) {
|
||||||
|
// inserisco gli oggetti corrispondenti
|
||||||
|
int nId = pGeomDB->AddGeoObj( GDB_ID_NULL, nLayId, vvpGObj[i][j]) ;
|
||||||
|
vIds.push_back( nId) ;
|
||||||
|
if ( nId == GDB_ID_NULL)
|
||||||
|
return false ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// eseguo il salvataggio
|
||||||
|
bool bOk = pGeomDB->Save( vIds, sFile, nFlag) ;
|
||||||
|
// rimuovo l'oggetto dal GeomDB
|
||||||
|
for ( int i = 0 ; i < int( vIds.size()) ; ++i)
|
||||||
|
bOk = ( pGeomDB->RemoveGeoObjAndErase( vIds[i]) != nullptr) && bOk ;
|
||||||
|
|
||||||
|
return bOk ;
|
||||||
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
bool
|
||||||
|
SaveCurveCompo( ICRVCOMPOPOVECTOR& vCompo, bool bUniform, const std::string& sFile, int nFlag = GDB_SV_BIN)
|
||||||
|
{
|
||||||
|
// controllo validità delle curve
|
||||||
|
std::vector<IGeoObj*> vpGObj ;
|
||||||
|
for ( int i = 0 ; i < int( vCompo.size()) ; ++ i) {
|
||||||
|
if ( vCompo[i] == nullptr || ! vCompo[i]->IsValid())
|
||||||
|
return false ;
|
||||||
|
vpGObj.emplace_back( static_cast<IGeoObj*>( vCompo[i]->Clone())) ;
|
||||||
|
}
|
||||||
|
// creo GeomDB temporaneo
|
||||||
|
PtrOwner<IGeomDB> pGeomDB( CreateGeomDB()) ;
|
||||||
|
if ( IsNull( pGeomDB))
|
||||||
|
return false ;
|
||||||
|
INTVECTOR vIds ;
|
||||||
|
|
||||||
|
// se curve con colore uniforme
|
||||||
|
if ( bUniform)
|
||||||
|
return SaveGeoObj( vpGObj, sFile, nFlag) ;
|
||||||
|
|
||||||
|
// altrimenti scorro le sottocurve e le coloro in base alle temp prop
|
||||||
|
int nPartId = pGeomDB->AddGroup( GDB_ID_NULL, GDB_ID_ROOT, Frame3d()) ;
|
||||||
|
int nLayId = 0 ;
|
||||||
|
for ( int i = 0 ; i < int( vCompo.size()) ; ++i) {
|
||||||
|
// inserisco l'oggetto nel GeomDB (sotto pezzo/layer)
|
||||||
|
nLayId = pGeomDB->AddGroup( GDB_ID_NULL, nPartId, Frame3d()) ;
|
||||||
|
for ( int u = 0 ; u < vCompo[i]->GetCurveCount() ; ++ u) {
|
||||||
|
const ICurve* pCrv = vCompo[i]->GetCurve( u) ;
|
||||||
|
if ( pCrv == nullptr)
|
||||||
|
return false ;
|
||||||
|
int nId = pGeomDB->AddGeoObj( GDB_ID_NULL, nLayId, pCrv->Clone()) ;
|
||||||
|
pGeomDB->SetMaterial( nId, ( pCrv->GetTempProp( 0) == 1 ? RED :
|
||||||
|
( pCrv->GetTempProp( 0)) == 0 ? BLUE : WHITE)) ;
|
||||||
|
vIds.push_back( nId) ;
|
||||||
|
if ( nId == GDB_ID_NULL)
|
||||||
|
return false ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// eseguo il salvataggio
|
||||||
|
bool bOk = pGeomDB->Save( vIds, sFile, nFlag) ;
|
||||||
|
// rimuovo l'oggetto dal GeomDB
|
||||||
|
for ( int i = 0 ; i < int( vIds.size()); ++i)
|
||||||
|
bOk = ( pGeomDB->RemoveGeoObjAndErase( vIds[i]) != nullptr) && bOk ;
|
||||||
|
|
||||||
|
return bOk ;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool SaveVoronoi( const ICRVCOMPOPOVECTOR& vCrvsCompo, const ICURVEPOVECTOR& vBisectors,
|
||||||
|
bool bUniform, const std::string& sFile, int nFlag = GDB_SV_BIN)
|
||||||
|
{
|
||||||
|
// controllo validità delle curve
|
||||||
|
std::vector<IGeoObj*> vpGObj_crv ;
|
||||||
|
for ( int i = 0 ; i < int( vCrvsCompo.size()) ; ++ i) {
|
||||||
|
if ( vCrvsCompo[i] == nullptr || ! vCrvsCompo[i]->IsValid())
|
||||||
|
return false ;
|
||||||
|
vpGObj_crv.emplace_back( static_cast<IGeoObj*>( vCrvsCompo[i]->Clone())) ;
|
||||||
|
}
|
||||||
|
std::vector<IGeoObj*> vpGObj_bisect ;
|
||||||
|
for ( int i = 0 ; i < int( vBisectors.size()) ; ++ i) {
|
||||||
|
if ( vBisectors[i] == nullptr || ! vBisectors[i]->IsValid())
|
||||||
|
return false ;
|
||||||
|
vpGObj_bisect.emplace_back( static_cast<IGeoObj*>( vBisectors[i]->Clone())) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
// creo GeomDB temporaneo
|
||||||
|
PtrOwner<IGeomDB> pGeomDB( CreateGeomDB()) ;
|
||||||
|
if ( IsNull( pGeomDB))
|
||||||
|
return false ;
|
||||||
|
INTVECTOR vIds ;
|
||||||
|
|
||||||
|
// salvo le curve
|
||||||
|
int nPartId = pGeomDB->AddGroup( GDB_ID_NULL, GDB_ID_ROOT, Frame3d()) ;
|
||||||
|
int nLayId = pGeomDB->AddGroup( GDB_ID_NULL, nPartId, Frame3d()) ;
|
||||||
|
pGeomDB->SetName( nLayId, "Curves") ;
|
||||||
|
for ( int i = 0 ; i < int( vpGObj_crv.size()) ; ++i) {
|
||||||
|
// inserisco l'oggetto nel GeomDB
|
||||||
|
int nId = pGeomDB->AddGeoObj( GDB_ID_NULL, nLayId, vpGObj_crv[i]->Clone()) ;
|
||||||
|
if ( nId == GDB_ID_NULL)
|
||||||
|
return false ;
|
||||||
|
vIds.push_back( nId) ;
|
||||||
|
pGeomDB->SetMaterial( nId, LIME) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
// salvo i bisettori
|
||||||
|
nLayId = pGeomDB->AddGroup( GDB_ID_NULL, nPartId, Frame3d()) ;
|
||||||
|
pGeomDB->SetName( nLayId, "Bisectors") ;
|
||||||
|
for ( int i = 0 ; i < int( vpGObj_bisect.size()) ; ++i) {
|
||||||
|
// inserisco l'oggetto nel GeomDB
|
||||||
|
int nId = pGeomDB->AddGeoObj( GDB_ID_NULL, nLayId, vpGObj_bisect[i]->Clone()) ;
|
||||||
|
if ( nId == GDB_ID_NULL)
|
||||||
|
return false ;
|
||||||
|
vIds.push_back( nId) ;
|
||||||
|
if ( bUniform)
|
||||||
|
pGeomDB->SetMaterial( nId, RED) ;
|
||||||
|
else {
|
||||||
|
if ( vBisectors[i]->GetTempParam( 0) < EPS_SMALL ||
|
||||||
|
vBisectors[i]->GetTempParam( 1) < EPS_SMALL)
|
||||||
|
pGeomDB->SetMaterial( nId, ORANGE) ;
|
||||||
|
else
|
||||||
|
pGeomDB->SetMaterial( nId, RED) ;
|
||||||
|
}
|
||||||
|
pGeomDB->SetInfo( nId, "START_PARAM", vBisectors[i]->GetTempParam( 0)) ;
|
||||||
|
pGeomDB->SetInfo( nId, "END_PARAM", vBisectors[i]->GetTempParam( 1)) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
// eseguo il salvataggio
|
||||||
|
bool bOk = pGeomDB->Save( vIds, sFile, nFlag) ;
|
||||||
|
// rimuovo l'oggetto dal GeomDB
|
||||||
|
for ( int i = 0 ; i < int( vIds.size()); ++i)
|
||||||
|
bOk = ( pGeomDB->RemoveGeoObjAndErase( vIds[i]) != nullptr) && bOk ;
|
||||||
|
|
||||||
return bOk ;
|
return bOk ;
|
||||||
}
|
}
|
||||||
+1
-1
@@ -134,7 +134,7 @@ class __declspec( novtable) IGeomDB
|
|||||||
virtual bool RevertStatus( int nId) = 0 ;
|
virtual bool RevertStatus( int nId) = 0 ;
|
||||||
virtual bool GetStatus( int nId, int& nStat) const = 0 ;
|
virtual bool GetStatus( int nId, int& nStat) const = 0 ;
|
||||||
virtual bool GetCalcStatus( int nId, int& nStat) const = 0 ;
|
virtual bool GetCalcStatus( int nId, int& nStat) const = 0 ;
|
||||||
virtual bool SetMark( int nId) = 0 ;
|
virtual bool SetMark( int nId, int nMark = GDB_MK_ON) = 0 ;
|
||||||
virtual bool ResetMark( int nId) = 0 ;
|
virtual bool ResetMark( int nId) = 0 ;
|
||||||
virtual bool GetMark( int nId, int& nMark) const = 0 ;
|
virtual bool GetMark( int nId, int& nMark) const = 0 ;
|
||||||
virtual bool GetCalcMark( int nId, int& nMark) const = 0 ;
|
virtual bool GetCalcMark( int nId, int& nMark) const = 0 ;
|
||||||
|
|||||||
+3
-3
@@ -56,11 +56,11 @@ private :
|
|||||||
typedef std::list<ObjData> ObjList ;
|
typedef std::list<ObjData> ObjList ;
|
||||||
typedef std::vector<ObjData*> PtrObjVector ;
|
typedef std::vector<ObjData*> PtrObjVector ;
|
||||||
typedef std::unordered_map<int,ObjData*> IntPObjUmap ;
|
typedef std::unordered_map<int,ObjData*> IntPObjUmap ;
|
||||||
|
typedef std::list<HashGrid1d*> GridList ;
|
||||||
|
|
||||||
private :
|
private :
|
||||||
typedef std::list<HashGrid1d*> GridList ; // Tipo per lista di hash grid
|
HashGrids1d( const HashGrids1d&) = delete ;
|
||||||
|
HashGrids1d& operator=( const HashGrids1d&) = delete ;
|
||||||
private :
|
|
||||||
void addGrid( ObjData& obj) ;
|
void addGrid( ObjData& obj) ;
|
||||||
void addList( ObjData& obj) ;
|
void addList( ObjData& obj) ;
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -56,11 +56,11 @@ class HashGrids2d
|
|||||||
typedef std::list<ObjData> ObjList ;
|
typedef std::list<ObjData> ObjList ;
|
||||||
typedef std::vector<ObjData*> PtrObjVector ;
|
typedef std::vector<ObjData*> PtrObjVector ;
|
||||||
typedef std::unordered_map<int,ObjData*> IntPObjUmap ;
|
typedef std::unordered_map<int,ObjData*> IntPObjUmap ;
|
||||||
|
typedef std::list<HashGrid2d*> GridList ;
|
||||||
|
|
||||||
private :
|
private :
|
||||||
typedef std::list<HashGrid2d*> GridList ; // Tipo per lista di hash grid
|
HashGrids2d( const HashGrids2d&) = delete ;
|
||||||
|
HashGrids2d& operator=( const HashGrids2d&) = delete ;
|
||||||
private :
|
|
||||||
void addGrid( ObjData& obj) ;
|
void addGrid( ObjData& obj) ;
|
||||||
void addList( ObjData& obj) ;
|
void addList( ObjData& obj) ;
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -56,11 +56,11 @@ class HashGrids3d
|
|||||||
typedef std::list<ObjData> ObjList ;
|
typedef std::list<ObjData> ObjList ;
|
||||||
typedef std::vector<ObjData*> PtrObjVector ;
|
typedef std::vector<ObjData*> PtrObjVector ;
|
||||||
typedef std::unordered_map<int,ObjData*> IntPObjUmap ;
|
typedef std::unordered_map<int,ObjData*> IntPObjUmap ;
|
||||||
|
typedef std::list<HashGrid3d*> GridList ;
|
||||||
|
|
||||||
private :
|
private :
|
||||||
typedef std::list<HashGrid3d*> GridList ; // Tipo per lista di hash grid
|
HashGrids3d( const HashGrids3d&) = delete ;
|
||||||
|
HashGrids3d& operator=( const HashGrids3d&) = delete ;
|
||||||
private :
|
|
||||||
void addGrid( ObjData& obj) ;
|
void addGrid( ObjData& obj) ;
|
||||||
void addList( ObjData& obj) ;
|
void addList( ObjData& obj) ;
|
||||||
|
|
||||||
|
|||||||
+30
-3
@@ -323,7 +323,16 @@ DirDist( const Point3d& ptP1, const Point3d& ptP2, Vector3d& vtDir, double& dDis
|
|||||||
inline bool
|
inline bool
|
||||||
AreSamePointEpsilon( const Point3d& ptP1, const Point3d& ptP2, double dToler)
|
AreSamePointEpsilon( const Point3d& ptP1, const Point3d& ptP2, double dToler)
|
||||||
{
|
{
|
||||||
return ( SqDist( ptP1, ptP2) < ( dToler * dToler)) ;
|
double dX = ptP1.x - ptP2.x ;
|
||||||
|
if ( abs( dX) > dToler)
|
||||||
|
return false ;
|
||||||
|
double dY = ptP1.y - ptP2.y ;
|
||||||
|
if ( abs( dY) > dToler)
|
||||||
|
return false ;
|
||||||
|
double dZ = ptP1.z - ptP2.z ;
|
||||||
|
if ( abs( dZ) > dToler)
|
||||||
|
return false ;
|
||||||
|
return ( ( dX * dX + dY * dY + dZ * dZ) < ( dToler * dToler)) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
@@ -341,7 +350,16 @@ AreSamePointXYEpsilon( const Point3d& ptP1, const Point3d& ptP2, double dToler)
|
|||||||
inline bool
|
inline bool
|
||||||
AreSamePointApprox( const Point3d& ptP1, const Point3d& ptP2)
|
AreSamePointApprox( const Point3d& ptP1, const Point3d& ptP2)
|
||||||
{
|
{
|
||||||
return ( SqDist( ptP1, ptP2) < SQ_EPS_SMALL) ;
|
double dX = ptP1.x - ptP2.x ;
|
||||||
|
if ( abs( dX) > EPS_SMALL)
|
||||||
|
return false ;
|
||||||
|
double dY = ptP1.y - ptP2.y ;
|
||||||
|
if ( abs( dY) > EPS_SMALL)
|
||||||
|
return false ;
|
||||||
|
double dZ = ptP1.z - ptP2.z ;
|
||||||
|
if ( abs( dZ) > EPS_SMALL)
|
||||||
|
return false ;
|
||||||
|
return ( ( dX * dX + dY * dY + dZ * dZ) < SQ_EPS_SMALL) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
@@ -359,7 +377,16 @@ AreSamePointXYApprox( const Point3d& ptP1, const Point3d& ptP2)
|
|||||||
inline bool
|
inline bool
|
||||||
AreSamePointExact( const Point3d& ptP1, const Point3d& ptP2)
|
AreSamePointExact( const Point3d& ptP1, const Point3d& ptP2)
|
||||||
{
|
{
|
||||||
return ( SqDist( ptP1, ptP2) < SQ_EPS_ZERO) ;
|
double dX = ptP1.x - ptP2.x ;
|
||||||
|
if ( abs( dX) > EPS_ZERO)
|
||||||
|
return false ;
|
||||||
|
double dY = ptP1.y - ptP2.y ;
|
||||||
|
if ( abs( dY) > EPS_ZERO)
|
||||||
|
return false ;
|
||||||
|
double dZ = ptP1.z - ptP2.z ;
|
||||||
|
if ( abs( dZ) > EPS_ZERO)
|
||||||
|
return false ;
|
||||||
|
return ( ( dX * dX + dY * dY + dZ * dZ) < SQ_EPS_ZERO) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -0,0 +1,49 @@
|
|||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// EgalTech 2024-2024
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// File : EGkSbzFromCurves.h Data : 07.05.24 Versione : 2.6d2
|
||||||
|
// Contenuto : Prototipi funzioni di creazione TriMesh a partire da curve.
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// Modifiche : 07.05.24 DB Creazione modulo.
|
||||||
|
//
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "/EgtDev/Include/EGkCurve.h"
|
||||||
|
#include "/EgtDev/Include/EGkSurfFlatRegion.h"
|
||||||
|
#include "/EgtDev/Include/EGkSurfTriMesh.h"
|
||||||
|
#include "/EgtDev/Include/EGkSurfBezier.h"
|
||||||
|
|
||||||
|
//----------------------- Macro per import/export ----------------------------
|
||||||
|
#undef EGK_EXPORT
|
||||||
|
#if defined( I_AM_EGK) // da definirsi solo nella DLL
|
||||||
|
#define EGK_EXPORT __declspec( dllexport)
|
||||||
|
#else
|
||||||
|
#define EGK_EXPORT __declspec( dllimport)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
////----------------------------------------------------------------------------
|
||||||
|
//enum RS_CAP { RSCAP_NONE = 0, RSCAP_FLAT = 1, RSCAP_ROUND = 2, RSCAP_BEVEL = 3} ;
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
EGK_EXPORT ISurfBezier* GetSurfBezierByFlatContour( const ICurve* pCurve, double dLinTol = 10 * EPS_SMALL) ;
|
||||||
|
EGK_EXPORT ISurfBezier* GetSurfBezierByRegion( const CICURVEPVECTOR& vpCurve, double dLinTol = 10 * EPS_SMALL) ;
|
||||||
|
EGK_EXPORT ISurfBezier* GetSurfBezierByExtrusion( const ICurve* pCurve, const Vector3d& vtExtr,
|
||||||
|
bool bCapEnds, double dLinTol = 10 * EPS_SMALL) ;
|
||||||
|
//EGK_EXPORT ISurfBezier* GetSurfBezierByRegionExtrusion( const CICURVEPVECTOR& vpCurve, const Vector3d& vtExtr,
|
||||||
|
// double dLinTol = 10 * EPS_SMALL) ;
|
||||||
|
EGK_EXPORT ISurfBezier* GetSurfBezierByRevolve( const ICurve* pCurve, const Point3d& ptAx,
|
||||||
|
const Vector3d& vtAx, bool bCapEnds, double dLinTol = 10 * EPS_SMALL) ;
|
||||||
|
EGK_EXPORT ISurfBezier* GetSurfBezierByScrewing( const ICurve* pCurve, const Point3d& ptAx, const Vector3d& vtAx,
|
||||||
|
double dAngRotDeg, double dMove, bool bCapEnds, double dLinTol = 10 * EPS_SMALL) ;
|
||||||
|
//EGK_EXPORT ISurfBezier* GetSurfBezierRectSwept( double dDimH, double dDimV, double dBevelH, double dBevelV,
|
||||||
|
// const ICurve* pGuide, int nCapType, double dLinTol = 10 * EPS_SMALL) ;
|
||||||
|
//EGK_EXPORT ISurfBezier* GetSurfBezierTransSwept( const ICurve* pSect, const ICurve* pGuide, bool bCapEnds, double dLinTol = 10 * EPS_SMALL) ;
|
||||||
|
EGK_EXPORT ISurfBezier* GetSurfBezierRuled( const Point3d& ptP, const ICurve* pCurve, double dLinTol = 10 * EPS_SMALL) ;
|
||||||
|
EGK_EXPORT ISurfBezier* GetSurfBezierRuled( const ICurve* pCurve1, const ICurve* pCurve2, int nType, double dLinTol = 10 * EPS_SMALL) ;
|
||||||
|
EGK_EXPORT ISurfBezier* GetSurfBezierSkinned( const CICURVEPVECTOR& vCrv, double dLinTol = 10 * EPS_SMALL) ;
|
||||||
|
EGK_EXPORT ISurfBezier* GetSurfBezierSweptInPlane( const ICurve* pSect, const ICurve* pGuide, const Vector3d& vtNorm, bool bCapEnds, double dLinTol = 10 * EPS_SMALL) ;
|
||||||
|
EGK_EXPORT ISurfBezier* GetSurfBezierSwept3d( const ICurve* pSect, const ICurve* pGuide, const Vector3d& vtNorm, bool bCapEnds, double dLinTol = 10 * EPS_SMALL) ;
|
||||||
+1
-1
@@ -24,4 +24,4 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
EGK_EXPORT ISurfBezier* CreateBezierSphere( const Point3d& ptCenter, double dR) ;
|
EGK_EXPORT ISurfBezier* GetSurfBezierSphere( const Point3d& ptCenter, double dR) ;
|
||||||
@@ -35,6 +35,8 @@ EGK_EXPORT ISurfFlatRegion* GetSurfFlatRegionFromFatCurve( ICurve* pCrv, double
|
|||||||
EGK_EXPORT ISurfFlatRegion* GetSurfFlatRegionFromTriangle( const Triangle3d& Tria) ;
|
EGK_EXPORT ISurfFlatRegion* GetSurfFlatRegionFromTriangle( const Triangle3d& Tria) ;
|
||||||
EGK_EXPORT ISurfFlatRegion* GetSurfFlatRegionFromPolyLine( const PolyLine& ContourPolyLine) ;
|
EGK_EXPORT ISurfFlatRegion* GetSurfFlatRegionFromPolyLine( const PolyLine& ContourPolyLine) ;
|
||||||
EGK_EXPORT ISurfFlatRegion* GetSurfFlatRegionFromPolyLineVector( const POLYLINEVECTOR& vContoursPolyLineVec) ;
|
EGK_EXPORT ISurfFlatRegion* GetSurfFlatRegionFromPolyLineVector( const POLYLINEVECTOR& vContoursPolyLineVec) ;
|
||||||
|
EGK_EXPORT bool CalcRegionPolyLines( const POLYLINEVECTOR& vPL, Vector3d& vtN, INTMATRIX& vnPLIndMat, BOOLVECTOR& vbInvert) ; // la funzione restituisce una matrice con la struttura dei chunk e un vettore che indica se invertire le polyline
|
||||||
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
class SurfFlatRegionByContours
|
class SurfFlatRegionByContours
|
||||||
|
|||||||
+17
-1
@@ -28,7 +28,16 @@ class __declspec( novtable) ISurfBezier : public ISurf
|
|||||||
public :
|
public :
|
||||||
enum Side { FROM_MINUS = -1, // da valori inferiori del parametro
|
enum Side { FROM_MINUS = -1, // da valori inferiori del parametro
|
||||||
FROM_PLUS = 1} ; // da valori superiori del parametro
|
FROM_PLUS = 1} ; // da valori superiori del parametro
|
||||||
public : // IGeoObj
|
public :
|
||||||
|
enum RuledType { RLT_B_ISOPAR = 0, // con parametrizzazione simile tra le due curve
|
||||||
|
RLT_B_MINDIST = 1, // con distanza minima tra le due curve, usando start e end delle curve presenti
|
||||||
|
RLT_B_MINDIST_PLUS = 2, // con distanza minima tra le due curve, aggiungendo punti lungo le curve dove necessario
|
||||||
|
RLT_B_LENPAR = 3} ; // aggiungo punti alla curve in modo da matchare meglio le sottocurve, inoltre parametrizzo le curve in base alla lunghezza e non al numero di curve
|
||||||
|
enum Is_Planar { NOT_CALCULATED = -1,
|
||||||
|
NOT_PLANAR_SURF = 0 ,
|
||||||
|
PLANAR_SURF = 1};
|
||||||
|
|
||||||
|
public : // IGeoObj
|
||||||
ISurfBezier* Clone( void) const override = 0 ;
|
ISurfBezier* Clone( void) const override = 0 ;
|
||||||
public :
|
public :
|
||||||
virtual bool CopyFrom( const IGeoObj* pGObjSrc) = 0 ;
|
virtual bool CopyFrom( const IGeoObj* pGObjSrc) = 0 ;
|
||||||
@@ -73,6 +82,13 @@ class __declspec( novtable) ISurfBezier : public ISurf
|
|||||||
virtual bool IncreaseUV( Point3d& ptUV, Vector3d vtH , Point3d* ptUVCopy, bool bModifyOrig) const = 0 ;
|
virtual bool IncreaseUV( Point3d& ptUV, Vector3d vtH , Point3d* ptUVCopy, bool bModifyOrig) const = 0 ;
|
||||||
virtual bool GetLoops( ICRVCOMPOPOVECTOR& vCC, bool bLineOrBezier, int nEdge = -1) const = 0 ;
|
virtual bool GetLoops( ICRVCOMPOPOVECTOR& vCC, bool bLineOrBezier, int nEdge = -1) const = 0 ;
|
||||||
virtual bool IsPlanar( void) const = 0 ;
|
virtual bool IsPlanar( void) const = 0 ;
|
||||||
|
virtual bool CreateByFlatContour( const PolyLine& PL) = 0 ;
|
||||||
|
virtual bool CreateByRegion( const POLYLINEVECTOR& vPL) = 0 ;
|
||||||
|
virtual bool CreateByExtrusion( const ICurve* pCrv, const Vector3d& vtExtr, bool bDeg3OrDeg2 = false) = 0 ;
|
||||||
|
virtual bool CreateByScrewing( const ICurve* pCurve, const Point3d& ptAx, const Vector3d& vtAx, double dAngRotDeg, double dMove) = 0 ;
|
||||||
|
virtual bool CreateByPointCurve( const Point3d& pt, const ICurve* pCurve) = 0 ;
|
||||||
|
virtual bool CreateByTwoCurves( const ICurve* pCurve1, const ICurve* pCurve2, int nType) = 0 ;
|
||||||
|
virtual bool CreateBySetOfCurves( const ICURVEPOVECTOR& vCrvBez, bool bReduceToDeg3 = true) = 0 ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|||||||
+23
-11
@@ -1,7 +1,7 @@
|
|||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
// EgalTech 2015-2015
|
// EgalTech 2015-2024
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
// File : EGkSurfFlatRegion.h Data : 05.08.15 Versione : 1.6h2
|
// File : EGkSurfFlatRegion.h Data : 18.07.24 Versione : 2.6g5
|
||||||
// Contenuto : Dichiarazione della interfaccia ISurfFlatRegion.
|
// Contenuto : Dichiarazione della interfaccia ISurfFlatRegion.
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
@@ -27,7 +27,7 @@ class __declspec( novtable) ISurfFlatRegion : public ISurf
|
|||||||
ISurfFlatRegion* Clone( void) const override = 0 ;
|
ISurfFlatRegion* Clone( void) const override = 0 ;
|
||||||
public :
|
public :
|
||||||
virtual bool CopyFrom( const IGeoObj* pGObjSrc) = 0 ;
|
virtual bool CopyFrom( const IGeoObj* pGObjSrc) = 0 ;
|
||||||
virtual bool Clear( void) ;
|
virtual bool Clear( void) = 0 ;
|
||||||
virtual bool AddExtLoop( const ICurve& cCrv) = 0 ;
|
virtual bool AddExtLoop( const ICurve& cCrv) = 0 ;
|
||||||
virtual bool AddExtLoop( ICurve* pCrv) = 0 ;
|
virtual bool AddExtLoop( ICurve* pCrv) = 0 ;
|
||||||
virtual bool AddIntLoop( const ICurve& cCrv) = 0 ;
|
virtual bool AddIntLoop( const ICurve& cCrv) = 0 ;
|
||||||
@@ -40,18 +40,30 @@ class __declspec( novtable) ISurfFlatRegion : public ISurf
|
|||||||
virtual bool GetGrossArea( double& dArea) const = 0 ;
|
virtual bool GetGrossArea( double& dArea) const = 0 ;
|
||||||
virtual const Point3d& GetPlanePoint( void) const = 0 ;
|
virtual const Point3d& GetPlanePoint( void) const = 0 ;
|
||||||
virtual const Vector3d& GetNormVersor( void) const = 0 ;
|
virtual const Vector3d& GetNormVersor( void) const = 0 ;
|
||||||
|
virtual bool CalcVoronoiDiagram( ICURVEPOVECTOR& vCrvs, int nBound = 3) const = 0 ;
|
||||||
|
virtual void ResetVoronoiObject( void) const = 0 ;
|
||||||
|
virtual bool GetMaxOffset( double& dOffs) const = 0 ;
|
||||||
|
virtual bool CalcMedialAxis( ICURVEPOVECTOR& vCrvs, int nSide = 1) const = 0 ;
|
||||||
|
virtual const ISurfTriMesh* GetAuxSurf( void) const = 0 ;
|
||||||
|
virtual bool GetCurveClassification( const ICurve& Crv, double dLenMin, CRVCVECTOR& ccClass) const = 0 ;
|
||||||
virtual int GetChunkCount( void) const = 0 ;
|
virtual int GetChunkCount( void) const = 0 ;
|
||||||
|
virtual ISurfFlatRegion* CloneChunk( int nChunk) const = 0 ;
|
||||||
|
virtual bool EraseChunk(int nChunk) = 0 ;
|
||||||
|
virtual bool GetChunkCentroid( int nChunk, Point3d& ptCen) const = 0 ;
|
||||||
|
virtual bool GetChunkArea( int nChunk, double& dArea) const = 0 ;
|
||||||
|
virtual bool GetChunkPerimeter( int nChunk, double& dLen) const = 0 ;
|
||||||
|
virtual int GetChunkSimpleClassification( int nChunk, const ISurfFlatRegion& Other, int nOthChunk) const ; // compare only outsides
|
||||||
|
virtual bool GetChunkMaxOffset( int nChunk, double& dOffs) const = 0 ;
|
||||||
virtual int GetLoopCount( int nChunk) const = 0 ;
|
virtual int GetLoopCount( int nChunk) const = 0 ;
|
||||||
|
virtual int GetLoopCurveCount( int nChunk, int nLoop) const = 0 ;
|
||||||
virtual ICurve* GetLoop( int nChunk, int nLoop) const = 0 ; // nChunk 0-based, nLoop 0-based (1°esterno, successivi interni)
|
virtual ICurve* GetLoop( int nChunk, int nLoop) const = 0 ; // nChunk 0-based, nLoop 0-based (1°esterno, successivi interni)
|
||||||
virtual bool ApproxLoopWithLines( int nChunk, int nLoop, double dLinTol, double dAngTolDeg, int nType, PolyLine& PL) const = 0 ;
|
virtual bool ApproxLoopWithLines( int nChunk, int nLoop, double dLinTol, double dAngTolDeg, int nType, PolyLine& PL) const = 0 ;
|
||||||
virtual const ISurfTriMesh* GetAuxSurf( void) const = 0 ;
|
virtual bool SetCurveTempProp( int nChunk, int nLoop, int nCrv, int nProp, int nPropInd = 0) = 0 ;
|
||||||
virtual ISurfFlatRegion* CloneChunk( int nChunk) const = 0 ;
|
virtual bool GetCurveTempProp( int nChunk, int nLoop, int nCrv, int& nProp, int nPropInd = 0) const = 0 ;
|
||||||
virtual bool GetChunkCentroid( int nChunk, Point3d& ptCen) const ;
|
virtual bool ResetAllCurveTempProps( void) = 0 ;
|
||||||
virtual bool GetCurveClassification( const ICurve& Crv, double dLenMin, CRVCVECTOR& ccClass) const = 0 ;
|
virtual bool SetCurveTempParam( int nChunk, int nLoop, int nCrv, double dParam, int nParamInd = 0) = 0 ;
|
||||||
virtual int GetChunkSimpleClassification( int nChunk, const ISurfFlatRegion& Other, int nOthChunk) const ; // compare only outsides
|
virtual bool GetCurveTempParam( int nChunk, int nLoop, int nCrv, double& dParam, int nParamInd = 0) const = 0 ;
|
||||||
virtual bool CalcVoronoiDiagram( ICURVEPOVECTOR& vCrvs, int nBound = 3) const = 0 ;
|
virtual bool ResetAllCurveTempParams( void) = 0 ;
|
||||||
virtual bool CalcMedialAxis( ICURVEPOVECTOR& vCrvs, int nSide = 1) const = 0 ;
|
|
||||||
virtual void ResetVoronoiObject( void) const = 0 ;
|
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|||||||
+8
-5
@@ -50,7 +50,7 @@ class __declspec( novtable) ISurfTriMesh : public ISurf
|
|||||||
virtual bool RemoveTriangle( int nId) = 0 ;
|
virtual bool RemoveTriangle( int nId) = 0 ;
|
||||||
virtual bool AdjustTopology( void) = 0 ;
|
virtual bool AdjustTopology( void) = 0 ;
|
||||||
virtual bool CreateByFlatContour( const PolyLine& PL) = 0 ;
|
virtual bool CreateByFlatContour( const PolyLine& PL) = 0 ;
|
||||||
virtual bool CreateByRegion( const POLYLINEVECTOR& vPL) = 0 ;
|
virtual bool CreateByRegion( const POLYLINEVECTOR& vPL, const INTMATRIX& vnPLIndMat) = 0 ;
|
||||||
virtual bool CreateByExtrusion( const PolyLine& PL, const Vector3d& vtExtr) = 0 ;
|
virtual bool CreateByExtrusion( const PolyLine& PL, const Vector3d& vtExtr) = 0 ;
|
||||||
virtual bool CreateByPointCurve( const Point3d& ptP, const PolyLine& PL) = 0 ;
|
virtual bool CreateByPointCurve( const Point3d& ptP, const PolyLine& PL) = 0 ;
|
||||||
virtual bool CreateByTwoCurves( const PolyLine& PL1, const PolyLine& PL2, int nRuledType) = 0 ;
|
virtual bool CreateByTwoCurves( const PolyLine& PL1, const PolyLine& PL2, int nRuledType) = 0 ;
|
||||||
@@ -124,12 +124,15 @@ class __declspec( novtable) ISurfTriMesh : public ISurf
|
|||||||
virtual bool Repair( double dMaxEdgeLen = MAX_EDGE_LEN_STD) = 0 ;
|
virtual bool Repair( double dMaxEdgeLen = MAX_EDGE_LEN_STD) = 0 ;
|
||||||
virtual bool GetAllTriaOverlapBox( const BBox3d& b3Box, INTVECTOR& vT) const = 0 ;
|
virtual bool GetAllTriaOverlapBox( const BBox3d& b3Box, INTVECTOR& vT) const = 0 ;
|
||||||
virtual const BBox3d& GetAllTriaBox( void) const = 0 ;
|
virtual const BBox3d& GetAllTriaBox( void) const = 0 ;
|
||||||
virtual int GetPartCount( void) const = 0 ;
|
virtual int GetShellCount( void) const = 0 ;
|
||||||
virtual int GetShellCount( void) const = 0 ;
|
virtual bool GetShellArea( int nShell, double& dArea) const = 0 ;
|
||||||
virtual bool RemovePart( int nPart) = 0 ;
|
|
||||||
virtual bool RemoveShell( int nShell) = 0 ;
|
virtual bool RemoveShell( int nShell) = 0 ;
|
||||||
virtual ISurfTriMesh* ClonePart( int nPart) const = 0 ;
|
|
||||||
virtual ISurfTriMesh* CloneShell( int nShell) const = 0 ;
|
virtual ISurfTriMesh* CloneShell( int nShell) const = 0 ;
|
||||||
|
virtual int GetPartCount( void) const = 0 ;
|
||||||
|
virtual bool GetPartArea( int nPart, double& dArea) const = 0 ;
|
||||||
|
virtual bool GetPartVolume( int nPart, double& dVolume) const = 0 ;
|
||||||
|
virtual bool RemovePart( int nPart) = 0 ;
|
||||||
|
virtual ISurfTriMesh* ClonePart( int nPart) const = 0 ;
|
||||||
virtual bool SetTFlag( int nId, int nTFlag) = 0 ;
|
virtual bool SetTFlag( int nId, int nTFlag) = 0 ;
|
||||||
virtual bool GetTFlag( int nId, int& nFlag) const = 0 ;
|
virtual bool GetTFlag( int nId, int& nFlag) const = 0 ;
|
||||||
virtual int GetMaxTFlag( void) const = 0 ;
|
virtual int GetMaxTFlag( void) const = 0 ;
|
||||||
|
|||||||
@@ -441,6 +441,17 @@ AreOrthoExact( const Vector3d& vtV1, const Vector3d& vtV2)
|
|||||||
return ( abs( vtV1 * vtV2) < COS_ORTO_ANG_ZERO) ;
|
return ( abs( vtV1 * vtV2) < COS_ORTO_ANG_ZERO) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
//! Restituisce una copia ruotata del vettore passato
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
inline const Vector3d
|
||||||
|
GetRotate( const Vector3d& vtV, const Vector3d& vtAx, double dAngDeg)
|
||||||
|
{
|
||||||
|
Vector3d vtW = vtV ;
|
||||||
|
vtW.Rotate( vtAx, dAngDeg) ;
|
||||||
|
return vtW ;
|
||||||
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
//! Restituisce una copia in locale del vettore passato
|
//! Restituisce una copia in locale del vettore passato
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
|
|||||||
+71
-17
@@ -229,7 +229,11 @@ LuaGetTabFieldParam( lua_State* L, int nInd, const char* szField, T& Val)
|
|||||||
{
|
{
|
||||||
if ( ! lua_istable( L, nInd))
|
if ( ! lua_istable( L, nInd))
|
||||||
return false ;
|
return false ;
|
||||||
lua_getfield( L, nInd, szField) ;
|
int nField ;
|
||||||
|
if ( FromString( szField, nField))
|
||||||
|
lua_rawgeti( L, nInd, nField) ;
|
||||||
|
else
|
||||||
|
lua_getfield( L, nInd, szField) ;
|
||||||
bool bOk = LuaGetParam( L, -1, Val) ;
|
bool bOk = LuaGetParam( L, -1, Val) ;
|
||||||
lua_pop( L, 1) ;
|
lua_pop( L, 1) ;
|
||||||
return bOk ;
|
return bOk ;
|
||||||
@@ -462,7 +466,11 @@ LuaSetTabFieldParam( lua_State* L, int nInd, const char* szField)
|
|||||||
if ( ! LuaSetParam( L))
|
if ( ! LuaSetParam( L))
|
||||||
return false ;
|
return false ;
|
||||||
int nPos = ( nInd > 0 ? nInd : nInd - 1) ;
|
int nPos = ( nInd > 0 ? nInd : nInd - 1) ;
|
||||||
lua_setfield( L, nPos, szField) ;
|
int nField ;
|
||||||
|
if ( FromString( szField, nField))
|
||||||
|
lua_rawseti( L, nPos, nField) ;
|
||||||
|
else
|
||||||
|
lua_setfield( L, nPos, szField) ;
|
||||||
return true ;
|
return true ;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -483,7 +491,11 @@ LuaSetTabFieldParam( lua_State* L, int nInd, const char* szField, const T& Val)
|
|||||||
if ( ! LuaSetParam( L, Val))
|
if ( ! LuaSetParam( L, Val))
|
||||||
return false ;
|
return false ;
|
||||||
int nPos = ( nInd > 0 ? nInd : nInd - 1) ;
|
int nPos = ( nInd > 0 ? nInd : nInd - 1) ;
|
||||||
lua_setfield( L, nPos, szField) ;
|
int nField ;
|
||||||
|
if ( FromString( szField, nField))
|
||||||
|
lua_rawseti( L, nPos, nField) ;
|
||||||
|
else
|
||||||
|
lua_setfield( L, nPos, szField) ;
|
||||||
return true ;
|
return true ;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -511,11 +523,21 @@ LuaGetGlobVar( lua_State* L, const std::string& sVar, T& Val)
|
|||||||
}
|
}
|
||||||
// altrimenti campo di tabella
|
// altrimenti campo di tabella
|
||||||
else {
|
else {
|
||||||
std::string sTab, sField ;
|
STRVECTOR vsTokens ;
|
||||||
SplitFirst( sVar, ".", sTab, sField) ;
|
Tokenize( sVar, ".", vsTokens) ;
|
||||||
lua_getglobal( L, sTab.c_str()) ;
|
int nTokenCnt = int( vsTokens.size()) ;
|
||||||
bool bOk = LuaGetTabFieldParam( L, -1, sField.c_str(), Val) ;
|
if ( nTokenCnt < 2)
|
||||||
lua_pop( L, 1) ;
|
return false ;
|
||||||
|
lua_getglobal( L, vsTokens[0].c_str()) ;
|
||||||
|
for ( int nInd = 1 ; nInd <= nTokenCnt - 2 ; ++ nInd) {
|
||||||
|
int nField ;
|
||||||
|
if ( FromString( vsTokens[nInd], nField))
|
||||||
|
lua_rawgeti( L, -1, nField) ;
|
||||||
|
else
|
||||||
|
lua_getfield( L, -1, vsTokens[nInd].c_str()) ;
|
||||||
|
}
|
||||||
|
bool bOk = LuaGetTabFieldParam( L, -1, vsTokens[nTokenCnt-1].c_str(), Val) ;
|
||||||
|
lua_pop( L, nTokenCnt - 1) ;
|
||||||
return bOk ;
|
return bOk ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -536,11 +558,27 @@ LuaSetGlobVar( lua_State* L, const std::string& sVar, const T& Val)
|
|||||||
}
|
}
|
||||||
// altrimenti campo di tabella
|
// altrimenti campo di tabella
|
||||||
else {
|
else {
|
||||||
std::string sTab, sField ;
|
STRVECTOR vsTokens ;
|
||||||
SplitFirst( sVar, ".", sTab, sField) ;
|
Tokenize( sVar, ".", vsTokens) ;
|
||||||
lua_getglobal( L, sTab.c_str()) ;
|
int nTokenCnt = int( vsTokens.size()) ;
|
||||||
bool bOk = LuaSetTabFieldParam( L, -1, sField.c_str(), Val) ;
|
if ( nTokenCnt < 2)
|
||||||
lua_pop( L, 1) ;
|
return false ;
|
||||||
|
lua_getglobal( L, vsTokens[0].c_str()) ;
|
||||||
|
for ( int nInd = 1 ; nInd <= nTokenCnt - 2 ; ++ nInd) {
|
||||||
|
int nField ;
|
||||||
|
bool bNumber = FromString( vsTokens[nInd], nField) ;
|
||||||
|
if ( ( bNumber ? lua_rawgeti( L, -1, nField) : lua_getfield( L, -1, vsTokens[nInd].c_str())) != LUA_TTABLE) {
|
||||||
|
lua_pop( L, 1) ;
|
||||||
|
lua_newtable( L) ;
|
||||||
|
lua_pushvalue( L, -1) ;
|
||||||
|
if ( bNumber)
|
||||||
|
lua_rawseti( L, -3, nField) ;
|
||||||
|
else
|
||||||
|
lua_setfield( L, -3, vsTokens[nInd].c_str()) ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
bool bOk = LuaSetTabFieldParam( L, -1, vsTokens[nTokenCnt-1].c_str(), Val) ;
|
||||||
|
lua_pop( L, nTokenCnt - 1) ;
|
||||||
return bOk ;
|
return bOk ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -560,10 +598,26 @@ LuaResetGlobVar( lua_State* L, const std::string& sVar)
|
|||||||
}
|
}
|
||||||
// altrimenti campo di tabella
|
// altrimenti campo di tabella
|
||||||
else {
|
else {
|
||||||
std::string sTab, sField ;
|
STRVECTOR vsTokens ;
|
||||||
SplitFirst( sVar, ".", sTab, sField) ;
|
Tokenize( sVar, ".", vsTokens) ;
|
||||||
lua_getglobal( L, sTab.c_str()) ;
|
int nTokenCnt = int( vsTokens.size()) ;
|
||||||
bool bOk = LuaSetTabFieldParam( L, -1, sField.c_str()) ;
|
if ( nTokenCnt < 2)
|
||||||
|
return false ;
|
||||||
|
lua_getglobal( L, vsTokens[0].c_str()) ;
|
||||||
|
for ( int nInd = 1 ; nInd <= nTokenCnt - 2 ; ++ nInd) {
|
||||||
|
int nField ;
|
||||||
|
bool bNumber = FromString( vsTokens[nInd], nField) ;
|
||||||
|
if ( ( bNumber ? lua_rawgeti( L, -1, nField) : lua_getfield( L, -1, vsTokens[nInd].c_str())) != LUA_TTABLE) {
|
||||||
|
lua_pop( L, 1) ;
|
||||||
|
lua_newtable( L) ;
|
||||||
|
lua_pushvalue( L, -1) ;
|
||||||
|
if ( bNumber)
|
||||||
|
lua_rawseti( L, -3, nField) ;
|
||||||
|
else
|
||||||
|
lua_setfield( L, -3, vsTokens[nInd].c_str()) ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
bool bOk = LuaSetTabFieldParam( L, -1, vsTokens[nTokenCnt-1].c_str()) ;
|
||||||
lua_pop( L, 1) ;
|
lua_pop( L, 1) ;
|
||||||
return bOk ;
|
return bOk ;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -90,6 +90,7 @@ class IEGrScene
|
|||||||
virtual bool SetExtension( const BBox3d& b3Ext) = 0 ;
|
virtual bool SetExtension( const BBox3d& b3Ext) = 0 ;
|
||||||
virtual bool UpdateExtension( void) = 0 ;
|
virtual bool UpdateExtension( void) = 0 ;
|
||||||
virtual bool SetMark( Color colMark) = 0 ;
|
virtual bool SetMark( Color colMark) = 0 ;
|
||||||
|
virtual bool SetMark2( Color colMark) = 0 ;
|
||||||
virtual bool SetSelSurf( Color colSelSurf) = 0 ;
|
virtual bool SetSelSurf( Color colSelSurf) = 0 ;
|
||||||
virtual bool SetLineWidth( int nW) = 0 ;
|
virtual bool SetLineWidth( int nW) = 0 ;
|
||||||
// Grid
|
// Grid
|
||||||
|
|||||||
@@ -413,7 +413,7 @@ EIN_EXPORT BOOL __stdcall EgtSetStatus( int nId, int nStat) ;
|
|||||||
EIN_EXPORT BOOL __stdcall EgtRevertStatus( int nId) ;
|
EIN_EXPORT BOOL __stdcall EgtRevertStatus( int nId) ;
|
||||||
EIN_EXPORT BOOL __stdcall EgtGetStatus( int nId, int* pnStat) ;
|
EIN_EXPORT BOOL __stdcall EgtGetStatus( int nId, int* pnStat) ;
|
||||||
EIN_EXPORT BOOL __stdcall EgtGetCalcStatus( int nId, int* pnStat) ;
|
EIN_EXPORT BOOL __stdcall EgtGetCalcStatus( int nId, int* pnStat) ;
|
||||||
EIN_EXPORT BOOL __stdcall EgtSetMark( int nId) ;
|
EIN_EXPORT BOOL __stdcall EgtSetMark( int nId, int nMark) ;
|
||||||
EIN_EXPORT BOOL __stdcall EgtResetMark( int nId) ;
|
EIN_EXPORT BOOL __stdcall EgtResetMark( int nId) ;
|
||||||
EIN_EXPORT BOOL __stdcall EgtGetMark( int nId, BOOL* pnMark) ;
|
EIN_EXPORT BOOL __stdcall EgtGetMark( int nId, BOOL* pnMark) ;
|
||||||
EIN_EXPORT BOOL __stdcall EgtGetCalcMark( int nId, BOOL* pnMark) ;
|
EIN_EXPORT BOOL __stdcall EgtGetCalcMark( int nId, BOOL* pnMark) ;
|
||||||
@@ -551,6 +551,7 @@ EIN_EXPORT BOOL __stdcall EgtCutSurfTmClosedCurve( int nSurfId, int nCurveId, BO
|
|||||||
EIN_EXPORT BOOL __stdcall EgtSurfTmAdd( int nId1, int nId2, BOOL bTwoColors) ;
|
EIN_EXPORT BOOL __stdcall EgtSurfTmAdd( int nId1, int nId2, BOOL bTwoColors) ;
|
||||||
EIN_EXPORT BOOL __stdcall EgtSurfTmSubtract( int nId1, int nId2, BOOL bTwoColors) ;
|
EIN_EXPORT BOOL __stdcall EgtSurfTmSubtract( int nId1, int nId2, BOOL bTwoColors) ;
|
||||||
EIN_EXPORT BOOL __stdcall EgtSurfTmIntersect( int nId1, int nId2, BOOL bTwoColors) ;
|
EIN_EXPORT BOOL __stdcall EgtSurfTmIntersect( int nId1, int nId2, BOOL bTwoColors) ;
|
||||||
|
EIN_EXPORT BOOL __stdcall EgtSurfTmSetFaceColor( int nId, int nFacet, int nColor) ;
|
||||||
EIN_EXPORT BOOL __stdcall EgtSurfTmResetTwoColors( int nId) ;
|
EIN_EXPORT BOOL __stdcall EgtSurfTmResetTwoColors( int nId) ;
|
||||||
EIN_EXPORT int __stdcall EgtSurfTmSplit( int nId, int nSplitterId, int* pnCount) ;
|
EIN_EXPORT int __stdcall EgtSurfTmSplit( int nId, int nSplitterId, int* pnCount) ;
|
||||||
EIN_EXPORT BOOL __stdcall EgtSurfTmCut( int nId, int nCutterId, BOOL bInVsOut, BOOL bSaveOnEq) ;
|
EIN_EXPORT BOOL __stdcall EgtSurfTmCut( int nId, int nCutterId, BOOL bInVsOut, BOOL bSaveOnEq) ;
|
||||||
@@ -574,6 +575,9 @@ EIN_EXPORT BOOL __stdcall EgtCurveParamAtLength( int nId, double dLen, double* p
|
|||||||
EIN_EXPORT BOOL __stdcall EgtCurveLengthAtPoint( int nId, const double ptOn[3], double dExtend, double* pdLen) ;
|
EIN_EXPORT BOOL __stdcall EgtCurveLengthAtPoint( int nId, const double ptOn[3], double dExtend, double* pdLen) ;
|
||||||
EIN_EXPORT BOOL __stdcall EgtCurveIsClosed( int nId) ;
|
EIN_EXPORT BOOL __stdcall EgtCurveIsClosed( int nId) ;
|
||||||
EIN_EXPORT BOOL __stdcall EgtCurveIsFlat( int nId, BOOL bUseExtrusion, double dToler, double vtN[3], double* pdDist) ;
|
EIN_EXPORT BOOL __stdcall EgtCurveIsFlat( int nId, BOOL bUseExtrusion, double dToler, double vtN[3], double* pdDist) ;
|
||||||
|
EIN_EXPORT BOOL __stdcall EgtCurveIsACircle( int nId, double dToler, double ptC[3], double vtN[3], double* pdRad, BOOL* pbCCW) ;
|
||||||
|
EIN_EXPORT BOOL __stdcall EgtCurveIsARectangle( int nId, double dToler, double ptP[3], double vtL1[3], double vtL2[3]) ;
|
||||||
|
EIN_EXPORT BOOL __stdcall EgtCurveIsATrapezoid( int nId, double dToler, double ptP[3], double vtB1[3], double vtL1[3], double vtB2[3]) ;
|
||||||
EIN_EXPORT BOOL __stdcall EgtCurveAreaXY( int nId, double* pdArea) ;
|
EIN_EXPORT BOOL __stdcall EgtCurveAreaXY( int nId, double* pdArea) ;
|
||||||
EIN_EXPORT BOOL __stdcall EgtCurveArea( int nId, double vtN[3], double* pdDist, double* pdArea) ;
|
EIN_EXPORT BOOL __stdcall EgtCurveArea( int nId, double vtN[3], double* pdDist, double* pdArea) ;
|
||||||
EIN_EXPORT BOOL __stdcall EgtCurveNearestExtremityToPoint( int nId, const double ptP[3], BOOL* pbStart) ;
|
EIN_EXPORT BOOL __stdcall EgtCurveNearestExtremityToPoint( int nId, const double ptP[3], BOOL* pbStart) ;
|
||||||
@@ -598,6 +602,7 @@ EIN_EXPORT BOOL __stdcall EgtSurfFrNormVersor( int nId, int nRefId, double vtNor
|
|||||||
EIN_EXPORT BOOL __stdcall EgtSurfFrGrossArea( int nId, double* pdArea) ;
|
EIN_EXPORT BOOL __stdcall EgtSurfFrGrossArea( int nId, double* pdArea) ;
|
||||||
EIN_EXPORT int __stdcall EgtSurfFrChunkCount( int nId) ;
|
EIN_EXPORT int __stdcall EgtSurfFrChunkCount( int nId) ;
|
||||||
EIN_EXPORT int __stdcall EgtSurfFrChunkSimpleClassify( int nId1, int nChunk1, int nId2, int nChunk2, double dToler) ;
|
EIN_EXPORT int __stdcall EgtSurfFrChunkSimpleClassify( int nId1, int nChunk1, int nId2, int nChunk2, double dToler) ;
|
||||||
|
EIN_EXPORT BOOL __stdcall EgtSurfFrChunkCenter( int nId, int nChunk, int nRefId, double ptCen[3], double vtNorm[3]) ;
|
||||||
EIN_EXPORT int __stdcall EgtExtractSurfFrChunkLoops( int nId, int nChunk, int nDestGrpId, int* pnCount) ;
|
EIN_EXPORT int __stdcall EgtExtractSurfFrChunkLoops( int nId, int nChunk, int nDestGrpId, int* pnCount) ;
|
||||||
EIN_EXPORT int __stdcall EgtSurfTmPartCount( int nId) ;
|
EIN_EXPORT int __stdcall EgtSurfTmPartCount( int nId) ;
|
||||||
EIN_EXPORT int __stdcall EgtSurfTmFacetCount( int nId) ;
|
EIN_EXPORT int __stdcall EgtSurfTmFacetCount( int nId) ;
|
||||||
@@ -927,7 +932,8 @@ EIN_EXPORT BOOL __stdcall EgtApplyMachining( BOOL bRecalc) ;
|
|||||||
EIN_EXPORT BOOL __stdcall EgtUpdateMachining( void) ;
|
EIN_EXPORT BOOL __stdcall EgtUpdateMachining( void) ;
|
||||||
EIN_EXPORT BOOL __stdcall EgtPreparePreviewMachiningTool( void) ;
|
EIN_EXPORT BOOL __stdcall EgtPreparePreviewMachiningTool( void) ;
|
||||||
EIN_EXPORT BOOL __stdcall EgtRemovePreviewMachiningTool( void) ;
|
EIN_EXPORT BOOL __stdcall EgtRemovePreviewMachiningTool( void) ;
|
||||||
EIN_EXPORT int __stdcall EgtPreviewMachiningTool( int nEntId, int nFlag) ;
|
EIN_EXPORT int __stdcall EgtGetPreviewMachiningToolStepCount( void) ;
|
||||||
|
EIN_EXPORT int __stdcall EgtPreviewMachiningTool( int nEntId, int nStep) ;
|
||||||
EIN_EXPORT BOOL __stdcall EgtGetMachiningParamBool( int nType, BOOL* pbVal) ;
|
EIN_EXPORT BOOL __stdcall EgtGetMachiningParamBool( int nType, BOOL* pbVal) ;
|
||||||
EIN_EXPORT BOOL __stdcall EgtGetMachiningParamInt( int nType, int* pnVal) ;
|
EIN_EXPORT BOOL __stdcall EgtGetMachiningParamInt( int nType, int* pnVal) ;
|
||||||
EIN_EXPORT BOOL __stdcall EgtGetMachiningParamDouble( int nType, double* pdVal) ;
|
EIN_EXPORT BOOL __stdcall EgtGetMachiningParamDouble( int nType, double* pdVal) ;
|
||||||
@@ -992,7 +998,7 @@ EIN_EXPORT BOOL __stdcall EgtInitScene( HWND hWnd, int nDriver, BOOL b2Buff, int
|
|||||||
EIN_EXPORT BOOL __stdcall EgtGetSceneInfo( wchar_t*& wsInfo) ;
|
EIN_EXPORT BOOL __stdcall EgtGetSceneInfo( wchar_t*& wsInfo) ;
|
||||||
EIN_EXPORT BOOL __stdcall EgtSetBackground( const int nTopCol[4], const int nBottomCol[4], BOOL bRedraw) ;
|
EIN_EXPORT BOOL __stdcall EgtSetBackground( const int nTopCol[4], const int nBottomCol[4], BOOL bRedraw) ;
|
||||||
EIN_EXPORT BOOL __stdcall EgtSetLineAttribs( int nWidth) ;
|
EIN_EXPORT BOOL __stdcall EgtSetLineAttribs( int nWidth) ;
|
||||||
EIN_EXPORT BOOL __stdcall EgtSetMarkAttribs( const int MarkCol[4]) ;
|
EIN_EXPORT BOOL __stdcall EgtSetMarkAttribs( const int MarkCol[4], const int Mark2Col[4]) ;
|
||||||
EIN_EXPORT BOOL __stdcall EgtSetSelSurfAttribs( const int SelSurfCol[4]) ;
|
EIN_EXPORT BOOL __stdcall EgtSetSelSurfAttribs( const int SelSurfCol[4]) ;
|
||||||
EIN_EXPORT BOOL __stdcall EgtSetGeoLineAttribs( const int GlCol[4]) ;
|
EIN_EXPORT BOOL __stdcall EgtSetGeoLineAttribs( const int GlCol[4]) ;
|
||||||
EIN_EXPORT BOOL __stdcall EgtSetGeoTriaAttribs( const int GtCol[4]) ;
|
EIN_EXPORT BOOL __stdcall EgtSetGeoTriaAttribs( const int GtCol[4]) ;
|
||||||
|
|||||||
+2
-1
@@ -259,7 +259,8 @@ class __declspec( novtable) IMachMgr
|
|||||||
virtual bool MachiningUpdate( bool bPostApply = true) = 0 ;
|
virtual bool MachiningUpdate( bool bPostApply = true) = 0 ;
|
||||||
virtual bool PreparePreviewMachiningTool( void) const = 0 ;
|
virtual bool PreparePreviewMachiningTool( void) const = 0 ;
|
||||||
virtual bool RemovePreviewMachiningTool( void) const = 0 ;
|
virtual bool RemovePreviewMachiningTool( void) const = 0 ;
|
||||||
virtual int PreviewMachiningTool( int nEntId, int nFlag) const = 0 ;
|
virtual int GetPreviewMachiningToolStepCount( void) const = 0 ;
|
||||||
|
virtual int PreviewMachiningTool( int nEntId, int nStep) const = 0 ;
|
||||||
virtual bool GetMachiningParam( int nType, bool& bVal) const = 0 ;
|
virtual bool GetMachiningParam( int nType, bool& bVal) const = 0 ;
|
||||||
virtual bool GetMachiningParam( int nType, int& nVal) const = 0 ;
|
virtual bool GetMachiningParam( int nType, int& nVal) const = 0 ;
|
||||||
virtual bool GetMachiningParam( int nType, double& dVal) const = 0 ;
|
virtual bool GetMachiningParam( int nType, double& dVal) const = 0 ;
|
||||||
|
|||||||
+9
-3
@@ -156,6 +156,7 @@ enum MpaType { MPA_NONE = 0,
|
|||||||
MPA_STEPLAST = ( MPA_DOU + 51), // per tagli con lama
|
MPA_STEPLAST = ( MPA_DOU + 51), // per tagli con lama
|
||||||
MPA_EPICYCLESRAD = ( MPA_DOU + 52), // per svuotature con epicicli
|
MPA_EPICYCLESRAD = ( MPA_DOU + 52), // per svuotature con epicicli
|
||||||
MPA_EPICYCLESDIST = ( MPA_DOU + 53), // per svuotature con epicicli
|
MPA_EPICYCLESDIST = ( MPA_DOU + 53), // per svuotature con epicicli
|
||||||
|
MPA_SUBSTEP = ( MPA_DOU + 54), // per sgrossature superfici
|
||||||
MPA_NAME = ( MPA_STR + 0),
|
MPA_NAME = ( MPA_STR + 0),
|
||||||
MPA_TOOL = ( MPA_STR + 1),
|
MPA_TOOL = ( MPA_STR + 1),
|
||||||
MPA_DEPTH_STR = ( MPA_STR + 2),
|
MPA_DEPTH_STR = ( MPA_STR + 2),
|
||||||
@@ -324,7 +325,9 @@ enum { SAWFIN_LL_STD = 0,
|
|||||||
enum { POCKET_SUB_ZIGZAG = 0,
|
enum { POCKET_SUB_ZIGZAG = 0,
|
||||||
POCKET_SUB_ONEWAY = 1,
|
POCKET_SUB_ONEWAY = 1,
|
||||||
POCKET_SUB_SPIRALIN = 2,
|
POCKET_SUB_SPIRALIN = 2,
|
||||||
POCKET_SUB_SPIRALOUT = 3} ;
|
POCKET_SUB_SPIRALOUT = 3,
|
||||||
|
POCKET_SUB_CONFORMAL_ZIGZAG = 4,
|
||||||
|
POCKET_SUB_CONFORMAL_ONEWAY = 5} ;
|
||||||
// Tipo di attacco
|
// Tipo di attacco
|
||||||
enum { POCKET_LI_NONE = 0,
|
enum { POCKET_LI_NONE = 0,
|
||||||
POCKET_LI_GLIDE = 1,
|
POCKET_LI_GLIDE = 1,
|
||||||
@@ -369,7 +372,9 @@ enum { MORTISE_PLUNGE_STEP = 0,
|
|||||||
enum { SURFROU_SUB_ZIGZAG = 0,
|
enum { SURFROU_SUB_ZIGZAG = 0,
|
||||||
SURFROU_SUB_ONEWAY = 1,
|
SURFROU_SUB_ONEWAY = 1,
|
||||||
SURFROU_SUB_SPIRALIN = 2,
|
SURFROU_SUB_SPIRALIN = 2,
|
||||||
SURFROU_SUB_SPIRALOUT = 3} ;
|
SURFROU_SUB_SPIRALOUT = 3,
|
||||||
|
SURFROU_SUB_CONFORMAL_ZIGZAG = 4,
|
||||||
|
SURFROU_SUB_CONFORMAL_ONEWAY = 5} ;
|
||||||
// Tipo di attacco
|
// Tipo di attacco
|
||||||
enum { SURFROU_LI_NONE = 0,
|
enum { SURFROU_LI_NONE = 0,
|
||||||
SURFROU_LI_GLIDE = 1,
|
SURFROU_LI_GLIDE = 1,
|
||||||
@@ -408,7 +413,8 @@ enum { WJET_EC_NONE = 0,
|
|||||||
WJET_EC_LOOP = 2} ;
|
WJET_EC_LOOP = 2} ;
|
||||||
// Comportamento su angolo interno
|
// Comportamento su angolo interno
|
||||||
enum { WJET_IC_NONE = 0,
|
enum { WJET_IC_NONE = 0,
|
||||||
WJET_IC_SLOW = 1} ;
|
WJET_IC_SLOW = 1,
|
||||||
|
WJET_IC_SLOW_FULL = 2} ;
|
||||||
// Tipo di attacco
|
// Tipo di attacco
|
||||||
enum { WJET_LI_NONE = 0,
|
enum { WJET_LI_NONE = 0,
|
||||||
WJET_LI_LINEAR = 1,
|
WJET_LI_LINEAR = 1,
|
||||||
|
|||||||
@@ -122,3 +122,7 @@ const std::string TTH_BASE = "B" ; // posizione base portau
|
|||||||
const std::string TTH_LEN = "H" ; // lunghezza portautensile da naso mandrino
|
const std::string TTH_LEN = "H" ; // lunghezza portautensile da naso mandrino
|
||||||
const std::string TTH_DIAM = "D" ; // diametro massimo portautensile
|
const std::string TTH_DIAM = "D" ; // diametro massimo portautensile
|
||||||
const std::string TTH_STEM_DIAM = "D_STEM" ; // diametro massimo gambo utensile
|
const std::string TTH_STEM_DIAM = "D_STEM" ; // diametro massimo gambo utensile
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// Costanti per nomi di parti di utensile
|
||||||
|
const std::string TNA_TOOL_START = "Tool_" ; // inizio nome delle geometrie che costituiscono il vero utensile
|
||||||
|
|||||||
+42
-9
@@ -323,7 +323,7 @@ EXE_EXPORT int ExeCreatePolygonFromSide( int nParentId, int nNumSides, const Po
|
|||||||
const Point3d& ptFin, int nRefType) ;
|
const Point3d& ptFin, int nRefType) ;
|
||||||
EXE_EXPORT int ExeCreateCirclesAlongCurve( int nParentId, int nCrvId, double dOffset, double dOverlap,
|
EXE_EXPORT int ExeCreateCirclesAlongCurve( int nParentId, int nCrvId, double dOffset, double dOverlap,
|
||||||
double dStartAdd, double dEndAdd, double dDiam, int* pnCount) ;
|
double dStartAdd, double dEndAdd, double dDiam, int* pnCount) ;
|
||||||
EXE_EXPORT int ExeCreateCurveBezierForm( int nParentId, int nCrvId) ;
|
EXE_EXPORT int ExeCreateCurveBezierForm( int nParentId, int nCrvId, int nDeg) ;
|
||||||
|
|
||||||
// GeomDB Create Surf
|
// GeomDB Create Surf
|
||||||
EXE_EXPORT int ExeCreateSurfFlatRegion( int nParentId, const INTVECTOR& vCrvIds, int* pnCount) ;
|
EXE_EXPORT int ExeCreateSurfFlatRegion( int nParentId, const INTVECTOR& vCrvIds, int* pnCount) ;
|
||||||
@@ -374,6 +374,23 @@ EXE_EXPORT int ExeCreateSurfBezierRational( int nParentId, int nDegU, int nDegV
|
|||||||
EXE_EXPORT int ExeCreateSurfBezierLeaves( int nParentId, int nSurfBzId, int nTextHeight = 50, bool bShowTrim = false, int* pnCount = nullptr) ;
|
EXE_EXPORT int ExeCreateSurfBezierLeaves( int nParentId, int nSurfBzId, int nTextHeight = 50, bool bShowTrim = false, int* pnCount = nullptr) ;
|
||||||
EXE_EXPORT int ExeCreateBezierSphere( int nParentId, const Point3d& ptCenter, double dR, int nRefType) ;
|
EXE_EXPORT int ExeCreateBezierSphere( int nParentId, const Point3d& ptCenter, double dR, int nRefType) ;
|
||||||
EXE_EXPORT int ExeCreateSurfBezierTria2D( int nParentId, int nSurfBzId, int nTextHeight, bool bShowTrim, int* pnCount) ;
|
EXE_EXPORT int ExeCreateSurfBezierTria2D( int nParentId, int nSurfBzId, int nTextHeight, bool bShowTrim, int* pnCount) ;
|
||||||
|
EXE_EXPORT int ExeCreateSurfBzByFlatContour( int nParentId, int nCrvId, double dLinTol) ;
|
||||||
|
EXE_EXPORT int ExeCreateSurfBzByRegion( int nParentId, const INTVECTOR& vCrvId, double dLinTol) ;
|
||||||
|
EXE_EXPORT int ExeCreateSurfBzByExtrusion( int nParentId, int nCrvId, const Vector3d& vtExtr, bool bCapEnds,
|
||||||
|
double dLinTol, int nRefType) ;
|
||||||
|
EXE_EXPORT int ExeCreateSurfBzByRegionExtrusion( int nParentId, const INTVECTOR& vCrvIds, const Vector3d& vtExtr, bool bCapEnds,
|
||||||
|
double dLinTol, int nRefType) ;
|
||||||
|
EXE_EXPORT int ExeCreateSurfBzByScrewing( int nParentId, int nCrvId,
|
||||||
|
const Point3d& ptAx, const Vector3d& vtAx,
|
||||||
|
double dAngRotDeg, double dMove, bool bCapEnds, double dLinTol, int nRefType) ;
|
||||||
|
EXE_EXPORT int ExeCreateSurfBzByRevolve( int nParentId, int nCrvId,
|
||||||
|
const Point3d& ptAx, const Vector3d& vtAx,
|
||||||
|
bool bCapEnds, double dLinTol, int nRefType) ;
|
||||||
|
EXE_EXPORT int ExeCreateSurfBzByPointCurve( int nParentId, int nCrvId, const Point3d& ptAx, bool bCapEnds, double dLinTol, int nRefType) ;
|
||||||
|
EXE_EXPORT int ExeCreateSurfBzRuled( int nParentId, int nCrvId1, int nCrvId2, int nRuledType, bool bCapEnds, double dLinTol) ;
|
||||||
|
EXE_EXPORT int ExeCreateSurfBzSkinned( int nParentId, const INTVECTOR& nCrvId1, bool bCapEnds, double dLinTol) ;
|
||||||
|
EXE_EXPORT int ExeCreateSurfBzSwept( int nParentId, int nSectId, int nGuideId, const Vector3d& vtAx,
|
||||||
|
bool bCapEnds, double dLinTol, int nRefType) ;
|
||||||
|
|
||||||
// GeomDB Create Volume
|
// GeomDB Create Volume
|
||||||
EXE_EXPORT int ExeCreateVolZmap( int nParentId, const Point3d& ptIni, double dDimX,
|
EXE_EXPORT int ExeCreateVolZmap( int nParentId, const Point3d& ptIni, double dDimX,
|
||||||
@@ -474,7 +491,7 @@ EXE_EXPORT bool ExeSetStatus( const INTVECTOR& vIds, int nStat) ;
|
|||||||
EXE_EXPORT bool ExeRevertStatus( int nId) ;
|
EXE_EXPORT bool ExeRevertStatus( int nId) ;
|
||||||
EXE_EXPORT bool ExeGetStatus( int nId, int* pnStat) ;
|
EXE_EXPORT bool ExeGetStatus( int nId, int* pnStat) ;
|
||||||
EXE_EXPORT bool ExeGetCalcStatus( int nId, int* pnStat) ;
|
EXE_EXPORT bool ExeGetCalcStatus( int nId, int* pnStat) ;
|
||||||
EXE_EXPORT bool ExeSetMark( int nId) ;
|
EXE_EXPORT bool ExeSetMark( int nId, int nMark = 1) ;
|
||||||
EXE_EXPORT bool ExeResetMark( int nId) ;
|
EXE_EXPORT bool ExeResetMark( int nId) ;
|
||||||
EXE_EXPORT bool ExeGetMark( int nId, int* pnMark) ;
|
EXE_EXPORT bool ExeGetMark( int nId, int* pnMark) ;
|
||||||
EXE_EXPORT bool ExeGetCalcMark( int nId, int* pnMark) ;
|
EXE_EXPORT bool ExeGetCalcMark( int nId, int* pnMark) ;
|
||||||
@@ -605,6 +622,8 @@ EXE_EXPORT bool ExeModifyCurveCompoCurveToLine( int nId, int nCrv) ;
|
|||||||
EXE_EXPORT int ExeExplodeCurveCompo( int nId, int* pnCount) ;
|
EXE_EXPORT int ExeExplodeCurveCompo( int nId, int* pnCount) ;
|
||||||
EXE_EXPORT bool ExeMergeCurvesInCurveCompo( int nId, double dLinTol, bool bStartEnd) ;
|
EXE_EXPORT bool ExeMergeCurvesInCurveCompo( int nId, double dLinTol, bool bStartEnd) ;
|
||||||
EXE_EXPORT bool ExeRemoveCurveCompoUndercutOnY( int nId, double dLinTol) ;
|
EXE_EXPORT bool ExeRemoveCurveCompoUndercutOnY( int nId, double dLinTol) ;
|
||||||
|
EXE_EXPORT bool ExeCurveCompoSetTempProp( int nId, int nCrv, int nProp, int nPropInd = 0) ;
|
||||||
|
EXE_EXPORT bool ExeCurveCompoSetTempParam( int nId, int nCrv, double dParam, int nParamInd = 0) ;
|
||||||
EXE_EXPORT bool ExeChainCurvesInGroup( int nGroupId, const Point3d& ptNear, int nRefType) ;
|
EXE_EXPORT bool ExeChainCurvesInGroup( int nGroupId, const Point3d& ptNear, int nRefType) ;
|
||||||
EXE_EXPORT bool ExeReorderCurvesInGroup( int nGroupId, const Point3d& ptNear, int nRefType) ;
|
EXE_EXPORT bool ExeReorderCurvesInGroup( int nGroupId, const Point3d& ptNear, int nRefType) ;
|
||||||
EXE_EXPORT bool ExeProjectCurveOnSurfTm( int nCurveId, int nSurfTmId, const Vector3d& vtDir, int nDestGrpId,
|
EXE_EXPORT bool ExeProjectCurveOnSurfTm( int nCurveId, int nSurfTmId, const Vector3d& vtDir, int nDestGrpId,
|
||||||
@@ -615,9 +634,13 @@ EXE_EXPORT bool ExeProjectCurveOnSurfBz( int nCurveId, int nSurfBzId, const Vect
|
|||||||
double dLinTol, double dMaxSegmLen, int nRefType) ;
|
double dLinTol, double dMaxSegmLen, int nRefType) ;
|
||||||
EXE_EXPORT bool ExeProjectCurveOnSurfBzExt( int nCurveId, int nSurfBzId, int nGuideId, int nDestGrpId,
|
EXE_EXPORT bool ExeProjectCurveOnSurfBzExt( int nCurveId, int nSurfBzId, int nGuideId, int nDestGrpId,
|
||||||
double dLinTol, double dMaxSegmLen, bool bDirFromGuide) ;
|
double dLinTol, double dMaxSegmLen, bool bDirFromGuide) ;
|
||||||
EXE_EXPORT int ExeCurveGetVoronoi( int nId, int nDestGrpId, int nBound, int* pnCount) ;
|
EXE_EXPORT int ExeCurveGetVoronoi( const INTVECTOR& vIds, int nDestGrpId, int nBound, int* pnCount) ;
|
||||||
EXE_EXPORT int ExeCurveGetMedialAxis( int nId, int nDestGrpId, int nSide, int* pnCount) ;
|
EXE_EXPORT int ExeCurveGetMedialAxis( const INTVECTOR& vIds, int nDestGrpId, int nSide, int* pnCount) ;
|
||||||
EXE_EXPORT int ExeCurveGetFatCurve( int nId, int nDestGrpId, double dRad, bool bSquareEnds, bool bSquareMids, int* pnCount) ;
|
EXE_EXPORT int ExeCurveGetFatCurve( int nId, int nDestGrpId, double dRad, bool bSquareEnds, bool bSquareMids, int* pnCount) ;
|
||||||
|
EXE_EXPORT bool ExeCurveBezierIncreaseDegree( int nCrvId) ;
|
||||||
|
EXE_EXPORT bool ExeCurveBezierDecreaseDegree( int nCrvId, double dTol = 100) ;
|
||||||
|
EXE_EXPORT bool ExeCurveBezierApproxToNonRat( int nCrvId, double dTol = 10 * EPS_SMALL) ;
|
||||||
|
EXE_EXPORT bool ExeCurveBezierApproxWithCubicBeziers( int nCrvId, double dTol = 10 * EPS_SMALL) ;
|
||||||
|
|
||||||
// GeomDb Surf Modify
|
// GeomDb Surf Modify
|
||||||
EXE_EXPORT bool ExeInvertSurface( const INTVECTOR& vIds) ;
|
EXE_EXPORT bool ExeInvertSurface( const INTVECTOR& vIds) ;
|
||||||
@@ -628,6 +651,7 @@ EXE_EXPORT bool ExeSurfFrSubtract( int nId1, int nId2) ;
|
|||||||
EXE_EXPORT bool ExeSurfFrIntersect( int nId1, int nId2) ;
|
EXE_EXPORT bool ExeSurfFrIntersect( int nId1, int nId2) ;
|
||||||
EXE_EXPORT bool ExeSurfFrOffset( int nId, double dDist, int nType) ;
|
EXE_EXPORT bool ExeSurfFrOffset( int nId, double dDist, int nType) ;
|
||||||
EXE_EXPORT bool ExeSurfFrOffsetAdv( int nId, double dDist, int nType, int& nNewId) ;
|
EXE_EXPORT bool ExeSurfFrOffsetAdv( int nId, double dDist, int nType, int& nNewId) ;
|
||||||
|
EXE_EXPORT bool ExeSurfFrEraseChunk( int nId, int nChunk) ;
|
||||||
EXE_EXPORT bool ExeSurfFrMoveSimpleNoCollision( int nId1, int nId2, const Vector3d& vtDir, double& dLen, int nRefType) ;
|
EXE_EXPORT bool ExeSurfFrMoveSimpleNoCollision( int nId1, int nId2, const Vector3d& vtDir, double& dLen, int nRefType) ;
|
||||||
EXE_EXPORT bool ExeSurfFrRotateSimpleNoCollision( int nId1, int nId2, const Point3d& ptCen, double& dAngDeg, int nRefType) ;
|
EXE_EXPORT bool ExeSurfFrRotateSimpleNoCollision( int nId1, int nId2, const Point3d& ptCen, double& dAngDeg, int nRefType) ;
|
||||||
EXE_EXPORT bool ExeSurfTmMoveVertex( int nId, int nVert, const Point3d& ptNewVert, int nRefType, bool bUpdate) ;
|
EXE_EXPORT bool ExeSurfTmMoveVertex( int nId, int nVert, const Point3d& ptNewVert, int nRefType, bool bUpdate) ;
|
||||||
@@ -695,6 +719,7 @@ EXE_EXPORT int ExeSurfFrGetZigZagInfill( int nId, int nDestGrpId, double dStep,
|
|||||||
// GeomDb Curve Get
|
// GeomDb Curve Get
|
||||||
EXE_EXPORT bool ExeCurveDomain( int nId, double* pdStart, double* pdEnd) ;
|
EXE_EXPORT bool ExeCurveDomain( int nId, double* pdStart, double* pdEnd) ;
|
||||||
EXE_EXPORT bool ExeCurveLength( int nId, double* pdLen) ;
|
EXE_EXPORT bool ExeCurveLength( int nId, double* pdLen) ;
|
||||||
|
EXE_EXPORT bool ExeCurveLengthAtParam( int nId, double dPar, double* pdLen) ;
|
||||||
EXE_EXPORT bool ExeCurveParamAtLength( int nId, double dLen, double* pdPar) ;
|
EXE_EXPORT bool ExeCurveParamAtLength( int nId, double dLen, double* pdPar) ;
|
||||||
EXE_EXPORT bool ExeCurveParamAtPoint( int nId, const Point3d& pt, double dTol, int nRefType, double* pdPar) ;
|
EXE_EXPORT bool ExeCurveParamAtPoint( int nId, const Point3d& pt, double dTol, int nRefType, double* pdPar) ;
|
||||||
EXE_EXPORT bool ExeCurveLengthAtPoint( int nId, const Point3d& ptOn, double dExtend, double* pdLen) ;
|
EXE_EXPORT bool ExeCurveLengthAtPoint( int nId, const Point3d& ptOn, double dExtend, double* pdLen) ;
|
||||||
@@ -721,7 +746,9 @@ EXE_EXPORT bool ExeCurveCompoCenter( int nId, int nSimpCrv, int nRefId, Point3d&
|
|||||||
EXE_EXPORT bool ExeCurveCompoRadius( int nId, int nSimpCrv, double& dRad) ;
|
EXE_EXPORT bool ExeCurveCompoRadius( int nId, int nSimpCrv, double& dRad) ;
|
||||||
EXE_EXPORT bool ExeCurveCompoAngCenter( int nId, int nSimpCrv, double& dAngCen) ;
|
EXE_EXPORT bool ExeCurveCompoAngCenter( int nId, int nSimpCrv, double& dAngCen) ;
|
||||||
EXE_EXPORT bool ExeCurveCompoNormVersor( int nId, int nSimpCrv, int nRefId, Vector3d& vtNorm) ;
|
EXE_EXPORT bool ExeCurveCompoNormVersor( int nId, int nSimpCrv, int nRefId, Vector3d& vtNorm) ;
|
||||||
EXE_EXPORT int ExeShowCurveBezierControlPoints( int nCrvId, int* pnCount) ;
|
EXE_EXPORT bool ExeCurveCompoGetTempProp( int nId, INTVECTOR& vProp, int nPropInd) ;
|
||||||
|
EXE_EXPORT bool ExeCurveCompoGetTempParam( int nId, DBLVECTOR& vParam, int nParamInd) ;
|
||||||
|
EXE_EXPORT int ExeShowCurveBezierControlPoints( int nCrvId, int nDestGrpId, int* pnCount) ;
|
||||||
|
|
||||||
// GeomDb Surf Get
|
// GeomDb Surf Get
|
||||||
EXE_EXPORT bool ExeSurfArea( int nId, double& dArea) ;
|
EXE_EXPORT bool ExeSurfArea( int nId, double& dArea) ;
|
||||||
@@ -729,9 +756,11 @@ EXE_EXPORT bool ExeSurfIsClosed( int nId) ;
|
|||||||
EXE_EXPORT bool ExeSurfVolume( int nId, double& dVol) ;
|
EXE_EXPORT bool ExeSurfVolume( int nId, double& dVol) ;
|
||||||
EXE_EXPORT bool ExeSurfFrNormVersor( int nId, int nRefId, Vector3d& vtNorm) ;
|
EXE_EXPORT bool ExeSurfFrNormVersor( int nId, int nRefId, Vector3d& vtNorm) ;
|
||||||
EXE_EXPORT bool ExeSurfFrGrossArea( int nId, double& dArea) ;
|
EXE_EXPORT bool ExeSurfFrGrossArea( int nId, double& dArea) ;
|
||||||
|
EXE_EXPORT bool ExeSurfFrChunkMaxOffset( int nId, int nChunk, double& dMaxOffset) ;
|
||||||
EXE_EXPORT bool ExeSurfFrTestExternal( int nId1, int nId2, double dMinDist) ;
|
EXE_EXPORT bool ExeSurfFrTestExternal( int nId1, int nId2, double dMinDist) ;
|
||||||
EXE_EXPORT int ExeSurfFrChunkCount( int nId) ;
|
EXE_EXPORT int ExeSurfFrChunkCount( int nId) ;
|
||||||
EXE_EXPORT int ExeSurfFrChunkSimpleClassify( int nId1, int nChunk1, int nId2, int nChunk2, double dToler = 0) ;
|
EXE_EXPORT int ExeSurfFrChunkSimpleClassify( int nId1, int nChunk1, int nId2, int nChunk2, double dToler = 0) ;
|
||||||
|
EXE_EXPORT bool ExeSurfFrChunkCenter( int nId, int nChunk, int nRefId, Point3d& ptCen, Vector3d& vtN) ;
|
||||||
EXE_EXPORT int ExeExtractSurfFrChunkLoops( int nId, int nChunk, int nDestGrpId, int* pnCount) ;
|
EXE_EXPORT int ExeExtractSurfFrChunkLoops( int nId, int nChunk, int nDestGrpId, int* pnCount) ;
|
||||||
EXE_EXPORT int ExeSurfFrGetZigZagInfill( int nId, int nDestGrpId, double dStep, double dAng, bool bSmooth, int* pnCount) ;
|
EXE_EXPORT int ExeSurfFrGetZigZagInfill( int nId, int nDestGrpId, double dStep, double dAng, bool bSmooth, int* pnCount) ;
|
||||||
EXE_EXPORT int ExeSurfTmVertexCount( int nId) ;
|
EXE_EXPORT int ExeSurfTmVertexCount( int nId) ;
|
||||||
@@ -739,6 +768,7 @@ EXE_EXPORT int ExeSurfTmFacetCount( int nId) ;
|
|||||||
EXE_EXPORT int ExeSurfTmPartCount( int nId) ;
|
EXE_EXPORT int ExeSurfTmPartCount( int nId) ;
|
||||||
EXE_EXPORT bool ExeSurfTmGetVertex( int nId, int nVert, int nRefId, Point3d& ptVert) ;
|
EXE_EXPORT bool ExeSurfTmGetVertex( int nId, int nVert, int nRefId, Point3d& ptVert) ;
|
||||||
EXE_EXPORT bool ExeSurfTmGetNearestVertex( int nId, const Point3d& ptNear, int nRefId, int& nVert, Point3d& ptVert) ;
|
EXE_EXPORT bool ExeSurfTmGetNearestVertex( int nId, const Point3d& ptNear, int nRefId, int& nVert, Point3d& ptVert) ;
|
||||||
|
EXE_EXPORT bool ExeSurfTmTriangleNormVersor( int nId, int nTria, int nRefId, Vector3d& vtNorm) ;
|
||||||
EXE_EXPORT int ExeSurfTmFacetFromTria( int nId, int nT) ;
|
EXE_EXPORT int ExeSurfTmFacetFromTria( int nId, int nT) ;
|
||||||
EXE_EXPORT bool ExeSurfTmFacetAdjacencies( int nId, int nFacet, INTMATRIX& vAdj) ;
|
EXE_EXPORT bool ExeSurfTmFacetAdjacencies( int nId, int nFacet, INTMATRIX& vAdj) ;
|
||||||
EXE_EXPORT bool ExeSurfTmFacetNearestEndPoint( int nId, int nFacet, const Point3d& ptNear, int nRefId,
|
EXE_EXPORT bool ExeSurfTmFacetNearestEndPoint( int nId, int nFacet, const Point3d& ptNear, int nRefId,
|
||||||
@@ -757,8 +787,8 @@ EXE_EXPORT bool ExeSurfTmFacetOppositeSideEx( int nId, int nFacet, const Vector3
|
|||||||
EXE_EXPORT bool ExeSurfTmFacetsContact( int nId, int nF1, int nF2, int nRefId, bool& bAdjac, Point3d& ptP1, Point3d& ptP2, double& dAng) ;
|
EXE_EXPORT bool ExeSurfTmFacetsContact( int nId, int nF1, int nF2, int nRefId, bool& bAdjac, Point3d& ptP1, Point3d& ptP2, double& dAng) ;
|
||||||
EXE_EXPORT int ExeExtractSurfTmLoops( int nId, int nDestGrpId, int* pnCount) ;
|
EXE_EXPORT int ExeExtractSurfTmLoops( int nId, int nDestGrpId, int* pnCount) ;
|
||||||
EXE_EXPORT int ExeGetSurfTmSilhouette( int nId, const Vector3d& vtDir, double dToler, int nDestGrpId, int nRefType, int* pnCount, bool bAllTria = false) ;
|
EXE_EXPORT int ExeGetSurfTmSilhouette( int nId, const Vector3d& vtDir, double dToler, int nDestGrpId, int nRefType, int* pnCount, bool bAllTria = false) ;
|
||||||
EXE_EXPORT int ExeGetSurfTmSilhouetteEx( int nId, const Point3d& ptOn, const Vector3d& vtN, double dToler, int nDestGrpId, int nRefType,
|
EXE_EXPORT int ExeGetSurfTmParSilhouettes( const INTVECTOR& vIds, const Point3d& ptOn, const Vector3d& vtN, const DBLVECTOR& vdDist,
|
||||||
int* pnCount, bool bAllTria) ;
|
double dToler, int nDestGrpId, int nRefType, int* pnCount) ;
|
||||||
EXE_EXPORT int ExeExtractSurfTmFacetLoops( int nId, int nFacet, int nDestGrpId, int* pnCount) ;
|
EXE_EXPORT int ExeExtractSurfTmFacetLoops( int nId, int nFacet, int nDestGrpId, int* pnCount) ;
|
||||||
EXE_EXPORT int ExeCopySurfTmFacet( int nId, int nFacet, int nDestGrpId) ;
|
EXE_EXPORT int ExeCopySurfTmFacet( int nId, int nFacet, int nDestGrpId) ;
|
||||||
EXE_EXPORT bool ExeSurfTmGetAllVertInFacet( int nId, int nFacet, INTVECTOR& vVert) ;
|
EXE_EXPORT bool ExeSurfTmGetAllVertInFacet( int nId, int nFacet, INTVECTOR& vVert) ;
|
||||||
@@ -779,6 +809,7 @@ EXE_EXPORT bool ExeSurfBezierGetInfo( int nSurfId, int& nDegU, int& nDegV, int&
|
|||||||
EXE_EXPORT int ExeSurfBezierGetControlCurveU( int nSurfId, int nIndV, int nDestGrpId) ;
|
EXE_EXPORT int ExeSurfBezierGetControlCurveU( int nSurfId, int nIndV, int nDestGrpId) ;
|
||||||
EXE_EXPORT int ExeSurfBezierGetControlCurveV( int nSurfId, int nIndU, int nDestGrpId) ;
|
EXE_EXPORT int ExeSurfBezierGetControlCurveV( int nSurfId, int nIndU, int nDestGrpId) ;
|
||||||
EXE_EXPORT int ExeExtractSurfBezierLoops( int nId, int nDestGrpId, int* pnCount) ;
|
EXE_EXPORT int ExeExtractSurfBezierLoops( int nId, int nDestGrpId, int* pnCount) ;
|
||||||
|
EXE_EXPORT int ExeShowSurfBezierControlPoints( int nSrfId, int nDestGrpId, int* pnCount) ;
|
||||||
|
|
||||||
// GeomDb Volume Get
|
// GeomDb Volume Get
|
||||||
EXE_EXPORT bool ExeVolZmapVolume( int nId, double& dVol) ;
|
EXE_EXPORT bool ExeVolZmapVolume( int nId, double& dVol) ;
|
||||||
@@ -1079,6 +1110,7 @@ EXE_EXPORT bool ExeTdbGetCurrToolValInNotes( int nType, const std::string& sKey,
|
|||||||
EXE_EXPORT bool ExeTdbGetCurrToolMaxDepth( double& dMaxDepth) ;
|
EXE_EXPORT bool ExeTdbGetCurrToolMaxDepth( double& dMaxDepth) ;
|
||||||
EXE_EXPORT bool ExeTdbGetCurrToolThDiam( double& dThDiam) ;
|
EXE_EXPORT bool ExeTdbGetCurrToolThDiam( double& dThDiam) ;
|
||||||
EXE_EXPORT bool ExeTdbGetCurrToolThLength( double& dThLen) ;
|
EXE_EXPORT bool ExeTdbGetCurrToolThLength( double& dThLen) ;
|
||||||
|
EXE_EXPORT bool ExeTdbCurrToolIsStandardDraw( bool& bStandard) ;
|
||||||
EXE_EXPORT int ExeTdbCurrToolDraw( int nGenCtx, int nToolCtx) ;
|
EXE_EXPORT int ExeTdbCurrToolDraw( int nGenCtx, int nToolCtx) ;
|
||||||
EXE_EXPORT bool ExeTdbReload( void) ;
|
EXE_EXPORT bool ExeTdbReload( void) ;
|
||||||
EXE_EXPORT bool ExeTdbSave( void) ;
|
EXE_EXPORT bool ExeTdbSave( void) ;
|
||||||
@@ -1177,7 +1209,8 @@ EXE_EXPORT bool ExeApplyMachining( bool bRecalc, bool bPostApply = true) ;
|
|||||||
EXE_EXPORT bool ExeUpdateMachining( bool bPostApply = true) ;
|
EXE_EXPORT bool ExeUpdateMachining( bool bPostApply = true) ;
|
||||||
EXE_EXPORT bool ExePreparePreviewMachiningTool( void) ;
|
EXE_EXPORT bool ExePreparePreviewMachiningTool( void) ;
|
||||||
EXE_EXPORT bool ExeRemovePreviewMachiningTool( void) ;
|
EXE_EXPORT bool ExeRemovePreviewMachiningTool( void) ;
|
||||||
EXE_EXPORT int ExePreviewMachiningTool( int nEntId, int nFlag) ;
|
EXE_EXPORT int ExeGetPreviewMachiningToolStepCount( void) ;
|
||||||
|
EXE_EXPORT int ExePreviewMachiningTool( int nEntId, int nStep) ;
|
||||||
EXE_EXPORT bool ExeGetMachiningParam( int nType, bool& bVal) ;
|
EXE_EXPORT bool ExeGetMachiningParam( int nType, bool& bVal) ;
|
||||||
EXE_EXPORT bool ExeGetMachiningParam( int nType, int& nVal) ;
|
EXE_EXPORT bool ExeGetMachiningParam( int nType, int& nVal) ;
|
||||||
EXE_EXPORT bool ExeGetMachiningParam( int nType, double& dVal) ;
|
EXE_EXPORT bool ExeGetMachiningParam( int nType, double& dVal) ;
|
||||||
@@ -1272,7 +1305,7 @@ EXE_EXPORT bool ExeGetSceneInfo( std::string& sInfo) ;
|
|||||||
EXE_EXPORT bool ExeSetBackground( Color TopCol, Color BottomCol, bool bRedraw) ;
|
EXE_EXPORT bool ExeSetBackground( Color TopCol, Color BottomCol, bool bRedraw) ;
|
||||||
EXE_EXPORT bool ExeGetBackground( Color& TopCol, Color& BottomCol) ;
|
EXE_EXPORT bool ExeGetBackground( Color& TopCol, Color& BottomCol) ;
|
||||||
EXE_EXPORT bool ExeSetLineAttribs( int nWidth) ;
|
EXE_EXPORT bool ExeSetLineAttribs( int nWidth) ;
|
||||||
EXE_EXPORT bool ExeSetMarkAttribs( Color MarkCol) ;
|
EXE_EXPORT bool ExeSetMarkAttribs( Color MarkCol, Color Mark2Col) ;
|
||||||
EXE_EXPORT bool ExeSetSelSurfAttribs( Color SelSurfCol) ;
|
EXE_EXPORT bool ExeSetSelSurfAttribs( Color SelSurfCol) ;
|
||||||
EXE_EXPORT bool ExeSetGeoLineAttribs( Color GlCol) ;
|
EXE_EXPORT bool ExeSetGeoLineAttribs( Color GlCol) ;
|
||||||
EXE_EXPORT bool ExeSetGeoTriaAttribs( Color GtCol) ;
|
EXE_EXPORT bool ExeSetGeoTriaAttribs( Color GtCol) ;
|
||||||
|
|||||||
+1
-1
@@ -25,7 +25,7 @@
|
|||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
const int KEY_BASELIB_PROD = 207 ;
|
const int KEY_BASELIB_PROD = 207 ;
|
||||||
const int KEY_BASELIB_VER = 2605 ;
|
const int KEY_BASELIB_VER = 2610 ;
|
||||||
const int KEY_BASELIB_LEV = 1 ;
|
const int KEY_BASELIB_LEV = 1 ;
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
|
|||||||
Reference in New Issue
Block a user