Include :
- aggiornamento interfacce.
This commit is contained in:
+1
-1
@@ -20,7 +20,7 @@
|
||||
class __declspec( novtable) IExtText : public IGeoObj
|
||||
{
|
||||
public :
|
||||
virtual bool Copy( const IGeoObj* pGObjSrc) = 0 ;
|
||||
virtual bool CopyFrom( const IGeoObj* pGObjSrc) = 0 ;
|
||||
virtual bool Set( const std::string& sText, const Point3d& ptP, double dAngDeg, double dH) = 0 ;
|
||||
virtual bool Set( const std::string& sText, const Point3d& ptP, double dAngDeg,
|
||||
const std::string& sFont, int nW, bool bItl, double dH, double dRat, double dAddAdv,
|
||||
|
||||
+1
-1
@@ -23,7 +23,7 @@ const double ONEINCH = 25.4 ;
|
||||
const double EPS_SMALL = 1e-3 ;
|
||||
const double EPS_ZERO = 1e-7 ;
|
||||
const double EPS_PARAM = 1e-7 ;
|
||||
const double HSPAN_PARAM = 0.5 ; // metà intervallo di curva o superficie semplici
|
||||
const double SPAN_PARAM = 1.0 ; // intervallo di curva o superficie semplici
|
||||
|
||||
// infinito per lunghezze
|
||||
const double INFINITO = 1e10 ;
|
||||
|
||||
+1
-1
@@ -21,7 +21,7 @@ class PolyLine ;
|
||||
class __declspec( novtable) IGeoFrame3d : public IGeoObj
|
||||
{
|
||||
public :
|
||||
virtual bool Copy( const IGeoObj* pGObjSrc) = 0 ;
|
||||
virtual bool CopyFrom( const IGeoObj* pGObjSrc) = 0 ;
|
||||
virtual bool Set( const Point3d& ptOrig, const Vector3d& vtDirX,
|
||||
const Vector3d& vtDirY, const Vector3d& vtDirZ) = 0 ;
|
||||
virtual bool Set( const Point3d& ptOrig, const Point3d& ptOnX, const Point3d& ptNearY) = 0 ;
|
||||
|
||||
+1
-1
@@ -19,7 +19,7 @@
|
||||
class __declspec( novtable) IGeoPoint3d : public IGeoObj
|
||||
{
|
||||
public :
|
||||
virtual bool Copy( const IGeoObj* pGObjSrc) = 0 ;
|
||||
virtual bool CopyFrom( const IGeoObj* pGObjSrc) = 0 ;
|
||||
virtual bool Set( const Point3d& ptP) = 0 ;
|
||||
virtual const Point3d& GetPoint( void) const = 0 ;
|
||||
} ;
|
||||
|
||||
+1
-1
@@ -21,7 +21,7 @@ class PolyLine ;
|
||||
class __declspec( novtable) IGeoVector3d : public IGeoObj
|
||||
{
|
||||
public :
|
||||
virtual bool Copy( const IGeoObj* pGObjSrc) = 0 ;
|
||||
virtual bool CopyFrom( const IGeoObj* pGObjSrc) = 0 ;
|
||||
virtual bool Set( const Vector3d& vtV) = 0 ;
|
||||
virtual bool Set( const Vector3d& vtV, const Point3d& ptBase) = 0 ;
|
||||
virtual const Vector3d& GetVector( void) const = 0 ;
|
||||
|
||||
+44
-11
@@ -26,8 +26,8 @@
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
//! dati di intersezione relativi ad una curva
|
||||
struct IntCrvInfo {
|
||||
// dati di intersezione relativi ad una curva
|
||||
double dU ; //!< parametro
|
||||
Point3d ptI ; //!< punto sulla curva (Z della curva, intersezione a Z=0)
|
||||
int nPrevTy ; //!< tipo di approccio (precedente l'intersezione)
|
||||
@@ -36,8 +36,8 @@ struct IntCrvInfo {
|
||||
IntCrvInfo( void)
|
||||
: dU( 0), ptI(), nPrevTy( 0), nNextTy(0) {}
|
||||
} ;
|
||||
//! dati di intersezione delle due curve A e B
|
||||
struct IntCrvCrvInfo {
|
||||
// dati di intersezione delle due curve A e B
|
||||
bool bOverlap ; //!< intersezione con overlap
|
||||
bool bCBOverEq ; //!< overlap su curva B equiverso o controverso con curva A
|
||||
IntCrvInfo IciA[2] ; //!< IciA[0] intersez. isolata o inizio overlap, IciA[1] fine overlap
|
||||
@@ -46,7 +46,8 @@ struct IntCrvCrvInfo {
|
||||
IntCrvCrvInfo( void)
|
||||
: bOverlap( false) {}
|
||||
} ;
|
||||
typedef std::vector<IntCrvCrvInfo> ICCIVECTOR ; // vettore di IntCrvCrvInfo
|
||||
//! vettore di IntCrvCrvInfo
|
||||
typedef std::vector<IntCrvCrvInfo> ICCIVECTOR ;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Tipo di intersezione
|
||||
@@ -54,11 +55,11 @@ typedef std::vector<IntCrvCrvInfo> ICCIVECTOR ; // vettore di IntCrvCrvInfo
|
||||
// sovrapposta equiversa bOverlap = true bCBOverEq = true
|
||||
// sovrapposta controversa bOverlap = true bCBOverEq = false
|
||||
// Costanti per tipo di approccio/allontanamento dall'intersezione
|
||||
const int ICCT_NULL = 0 ;
|
||||
const int ICCT_IN = 1 ;
|
||||
const int ICCT_ON = 2 ;
|
||||
const int ICCT_OUT = 3 ;
|
||||
// Calcolo del tipo duale
|
||||
const int ICCT_NULL = 0 ; //!< Approccio/allontanamento non definito
|
||||
const int ICCT_IN = 1 ; //!< Approccio/allontanamento interno
|
||||
const int ICCT_OUT = 2 ; //!< Approccio/allontanamento esterno
|
||||
const int ICCT_ON = 3 ; //!< Approccio/allontanamento sovrapposto
|
||||
//! Calcolo del tipo duale
|
||||
inline int GetDualIcct( int nType)
|
||||
{ switch ( nType) {
|
||||
case ICCT_IN : return ICCT_OUT ;
|
||||
@@ -67,22 +68,54 @@ inline int GetDualIcct( int nType)
|
||||
}}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
//! Classificazione di parti di curva rispetto ad altra curva chiusa
|
||||
struct CrvClass {
|
||||
double dParS ;
|
||||
double dParE ;
|
||||
int nClass ;
|
||||
// costruttore
|
||||
CrvClass( void)
|
||||
: dParS( 0), dParE( 0), nClass( 0) {}
|
||||
} ;
|
||||
//! Vettore di CrvClass
|
||||
typedef std::vector<CrvClass> CRVCVECTOR ;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Costanti per classe parti di curva rispetto a curva chiusa
|
||||
const int CRVC_NULL = 0 ; //!< Parte di curva non classificabile
|
||||
const int CRVC_IN = 1 ; //!< Parte di curva interna
|
||||
const int CRVC_OUT = 2 ; //!< Parte di curva esterna
|
||||
const int CRVC_ON_P = 3 ; //!< Parte di curva sovrapposta equiversa
|
||||
const int CRVC_ON_M = 4 ; //!< Parte di curva sovrapposta controversa
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
//! Classe per calcolo intersezione tra due curve nel piano XY locale
|
||||
class IntersCurveCurve
|
||||
{
|
||||
public :
|
||||
//! Le intersezioni sono calcolate nel piano XY locale.<br/>
|
||||
//! Il flag bIsSegment vale solo per le linee.
|
||||
EGK_EXPORT IntersCurveCurve( const ICurve& CurveA, const ICurve& CurveB, bool bIsSegment = true) ;
|
||||
//! Il flag bAreSegments vale solo per intersezione tra due linee e riguarda entrambe.
|
||||
EGK_EXPORT IntersCurveCurve( const ICurve& CurveA, const ICurve& CurveB, bool bAreSegments = true) ;
|
||||
|
||||
public :
|
||||
//! Indica la presenza di intersezioni con sovrapposizioni
|
||||
EGK_EXPORT bool GetOverlaps( void) ;
|
||||
//! Restituisce il numero di intersezioni (intersezioni doppie coincidenti e sovrapposte contano uno)
|
||||
EGK_EXPORT int GetNumInters( void) ;
|
||||
//! Restituisce informazioni sull'intersezione di indice nInd ( 0 based)
|
||||
EGK_EXPORT bool GetIntCrvCrvInfo( int nInd, IntCrvCrvInfo& aInfo) ;
|
||||
//! Restituisce il punto di intersezione più vicino al punto passato
|
||||
EGK_EXPORT bool GetIntersPointNearTo( int nCrv, const Point3d& ptNear, Point3d& ptI) ;
|
||||
//! Restituisce la classificazione di una curva rispetto all'altra ( nCrv=0 -> CurvaA, nCrv=1 -> CurvaB)
|
||||
EGK_EXPORT bool GetCurveClassification( int nCrv, CRVCVECTOR& ccClass) ;
|
||||
|
||||
private :
|
||||
void LineLineCalculate( const ICurve& CurveA, const ICurve& CurveB, bool bIsSegment) ;
|
||||
void LineLineCalculate( const ICurve& CurveA, const ICurve& CurveB, bool bAreSegments) ;
|
||||
void LineCrvCompoCalculate( const ICurve& CurveA, const ICurve& CurveB) ;
|
||||
void CrvCompoLineCalculate( const ICurve& CurveA, const ICurve& CurveB) ;
|
||||
void CrvCompoCrvCompoCalculate( const ICurve& CurveA, const ICurve& CurveB) ;
|
||||
bool CalcCurveClassification( const ICurve* pCurve, const ICCIVECTOR& Info, CRVCVECTOR& ccClass) ;
|
||||
bool CalcCurveInOrOut( const ICurve* pCurveA, const ICurve* pCurveB, CRVCVECTOR& ccClass) ;
|
||||
|
||||
private :
|
||||
bool m_bOverlaps ;
|
||||
|
||||
+43
-21
@@ -30,60 +30,80 @@ class Frame3d ;
|
||||
class EGK_EXPORT Point3d
|
||||
{
|
||||
public :
|
||||
//! Costruttore del punto con tre componenti X, Y e Z
|
||||
Point3d( double dX, double dY, double dZ) : x( dX), y( dY), z( dZ) {}
|
||||
//! Costruttore del punto con due componenti X e Y, Z = 0
|
||||
Point3d( double dX, double dY) : x( dX), y( dY), z( 0) {}
|
||||
//! Costruttore del punto origine X = Y = Z = 0
|
||||
Point3d( void) : x( 0), y( 0), z( 0) {}
|
||||
//! Assegnazione delle componenti X, Y e Z al punto
|
||||
void Set( double dX, double dY, double dZ) { x = dX ; y = dY ; z = dZ ;}
|
||||
//! Copia
|
||||
const Point3d& operator =( const Point3d& ptSrc)
|
||||
{ if ( &ptSrc != this) {
|
||||
x = ptSrc.x , y = ptSrc.y , z = ptSrc.z ; }
|
||||
return *this ; }
|
||||
|
||||
public :
|
||||
//! Verifica se il punto è quasi l'origine
|
||||
bool IsSmall( void) const
|
||||
{ return ( ( x * x + y * y + z * z) < ( EPS_SMALL * EPS_SMALL)) ; }
|
||||
//! Verifica se il punto è esattamente l'origine
|
||||
bool IsZero( void) const
|
||||
{ return ( ( x * x + y * y + z * z) < ( EPS_ZERO * EPS_ZERO)) ; }
|
||||
//! Somma sul posto con un vettore
|
||||
const Point3d& operator +=( const Vector3d& vtV)
|
||||
{ this->x += vtV.x ; this->y += vtV.y ; this->z += vtV.z ; return *this ; }
|
||||
//! Sottrazione sul posto con un vettore
|
||||
const Point3d& operator -=( const Vector3d& vtV)
|
||||
{ this->x -= vtV.x ; this->y -= vtV.y ; this->z -= vtV.z ; return *this ; }
|
||||
// questa somma è valida solo se equivalente ad una combinazione baricentrica
|
||||
//! Somma sul posto con un altro punto (valida solo se equivalente ad una combinazione baricentrica)
|
||||
const Point3d& operator +=( const Point3d& ptP)
|
||||
{ this->x += ptP.x ; this->y += ptP.y ; this->z += ptP.z ; return *this ; }
|
||||
//! Moltiplicazione sul posto con un numero
|
||||
const Point3d& operator *=( double dMul)
|
||||
{ this->x *= dMul ; this->y *= dMul ; this->z *= dMul ; return *this ; }
|
||||
//! Divisione sul posto con un numero
|
||||
const Point3d& operator /=( double dDiv)
|
||||
{ double dMul = 1 / dDiv ; this->x *= dMul ; this->y *= dMul ; this->z *= dMul ; return *this ; }
|
||||
//! Traslazione dato il vettore di movimento
|
||||
void Translate( const Vector3d& vtMove) ;
|
||||
//! Rotazione attorno ad un asse per un punto, dato l'angolo in gradi
|
||||
bool Rotate( const Point3d& ptAx, const Vector3d& vtAx, double dAngDeg) ;
|
||||
//! Rotazione attorno ad un asse per un punto, dati coseno e seno dell'angolo di rotazione
|
||||
bool Rotate( const Point3d& ptAx, const Vector3d& vtAx, double dCosAng, double dSinAng) ;
|
||||
//! Scalatura non uniforme
|
||||
bool Scale( const Frame3d& frRef, double dCoeffX, double dCoeffY, double dCoeffZ) ;
|
||||
//! Specchiatura
|
||||
bool Mirror( const Point3d& ptOn, const Vector3d& vtNorm) ;
|
||||
//! Scorrimento
|
||||
bool Shear( const Point3d& ptOn, const Vector3d& vtNorm, const Vector3d& vtDir, double dCoeff) ;
|
||||
//! Cambio di riferimento : dal riferimento al globale
|
||||
bool ToGlob( const Frame3d& frRef) ;
|
||||
//! Cambio di riferimento : dal globale al riferimento
|
||||
bool ToLoc( const Frame3d& frRef) ;
|
||||
//! Cambio di riferimento : dal primo riferimento al secondo
|
||||
bool LocToLoc( const Frame3d& frOri, const Frame3d& frDest) ;
|
||||
|
||||
public :
|
||||
union {
|
||||
struct {
|
||||
double x ;
|
||||
double y ;
|
||||
double z ;
|
||||
double x ; //!< coordinata sull'asse X
|
||||
double y ; //!< coordinata sull'asse Y
|
||||
double z ; //!< coordinata sull'asse Z
|
||||
} ;
|
||||
double v[3] ;
|
||||
double v[3] ; //!< equivalente vettoriale delle tre coordinate
|
||||
} ;
|
||||
} ;
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Punti notevoli
|
||||
//----------------------------------------------------------------------------
|
||||
//! Punto origine
|
||||
const Point3d ORIG( 0, 0, 0) ;
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Somma di due punti
|
||||
// (valida solo se equivalente ad una combinazione baricentrica).
|
||||
//! Somma di due punti (valida solo se equivalente ad una combinazione baricentrica)
|
||||
//----------------------------------------------------------------------------
|
||||
inline Point3d
|
||||
operator+( const Point3d& ptP1, const Point3d& ptP2)
|
||||
@@ -92,7 +112,7 @@ operator+( const Point3d& ptP1, const Point3d& ptP2)
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Somma di un punto e un vettore
|
||||
//! Somma di un punto e un vettore
|
||||
//----------------------------------------------------------------------------
|
||||
inline Point3d
|
||||
operator+( const Point3d& ptP1, const Vector3d& vtV2)
|
||||
@@ -101,7 +121,7 @@ operator+( const Point3d& ptP1, const Vector3d& vtV2)
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Opposto di un punto
|
||||
//! Opposto di un punto
|
||||
//----------------------------------------------------------------------------
|
||||
inline Vector3d
|
||||
operator-( const Point3d& ptP)
|
||||
@@ -110,7 +130,7 @@ operator-( const Point3d& ptP)
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Differenza di due punti, genera un vettore
|
||||
//! Differenza di due punti, genera un vettore
|
||||
//----------------------------------------------------------------------------
|
||||
inline Vector3d
|
||||
operator-( const Point3d& ptP1, const Point3d& ptP2)
|
||||
@@ -119,7 +139,7 @@ operator-( const Point3d& ptP1, const Point3d& ptP2)
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Sottrazione di un punto e un vettore
|
||||
//! Sottrazione di un punto e un vettore
|
||||
//----------------------------------------------------------------------------
|
||||
inline Point3d
|
||||
operator-( const Point3d& ptP1, const Vector3d& vtV2)
|
||||
@@ -128,7 +148,7 @@ operator-( const Point3d& ptP1, const Vector3d& vtV2)
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Prodotto con uno scalare
|
||||
//! Prodotto con uno scalare
|
||||
//----------------------------------------------------------------------------
|
||||
inline Point3d
|
||||
operator*( const Point3d& ptP, double dMul)
|
||||
@@ -136,6 +156,8 @@ operator*( const Point3d& ptP, double dMul)
|
||||
return Point3d( ptP.x * dMul, ptP.y * dMul, ptP.z * dMul) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
//! Prodotto di uno scalare con un punto
|
||||
//----------------------------------------------------------------------------
|
||||
inline Point3d
|
||||
operator*( double dMul, const Point3d& ptP)
|
||||
@@ -144,7 +166,7 @@ operator*( double dMul, const Point3d& ptP)
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Divisione per uno scalare
|
||||
//! Divisione per uno scalare
|
||||
//----------------------------------------------------------------------------
|
||||
inline Point3d
|
||||
operator/( const Point3d& ptP, double dDiv)
|
||||
@@ -156,7 +178,7 @@ operator/( const Point3d& ptP, double dDiv)
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Somma mediata di due punti (baricentrica)
|
||||
//! Somma mediata di due punti (baricentrica)
|
||||
//----------------------------------------------------------------------------
|
||||
inline Point3d
|
||||
Media( const Point3d& ptP1, const Point3d& ptP2, double dCoeff)
|
||||
@@ -167,7 +189,7 @@ Media( const Point3d& ptP1, const Point3d& ptP2, double dCoeff)
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Quadrato della distanza tra due punti
|
||||
//! Quadrato della distanza tra due punti
|
||||
//----------------------------------------------------------------------------
|
||||
inline double
|
||||
SqDist( const Point3d& ptP1, const Point3d& ptP2)
|
||||
@@ -180,7 +202,7 @@ SqDist( const Point3d& ptP1, const Point3d& ptP2)
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Quadrato della distanza tra due punti nel piano XY
|
||||
//! Quadrato della distanza tra due punti nel piano XY
|
||||
//----------------------------------------------------------------------------
|
||||
inline double
|
||||
SqDistXY( const Point3d& ptP1, const Point3d& ptP2)
|
||||
@@ -192,7 +214,7 @@ SqDistXY( const Point3d& ptP1, const Point3d& ptP2)
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Distanza tra due punti
|
||||
//! Distanza tra due punti
|
||||
//----------------------------------------------------------------------------
|
||||
inline double
|
||||
Dist( const Point3d& ptP1, const Point3d& ptP2)
|
||||
@@ -212,7 +234,7 @@ Dist( const Point3d& ptP1, const Point3d& ptP2)
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Distanza tra due punti nel piano XY
|
||||
//! Distanza tra due punti nel piano XY
|
||||
//----------------------------------------------------------------------------
|
||||
inline double
|
||||
DistXY( const Point3d& ptP1, const Point3d& ptP2)
|
||||
@@ -229,7 +251,7 @@ DistXY( const Point3d& ptP1, const Point3d& ptP2)
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Direzione e distanza tra due punti ( P1 -> P2)
|
||||
//! Direzione e distanza tra due punti ( P1 -> P2)
|
||||
//----------------------------------------------------------------------------
|
||||
inline bool
|
||||
DirDist( const Point3d& ptP1, const Point3d& ptP2, Vector3d& vtDir, double& dDist)
|
||||
@@ -248,7 +270,7 @@ DirDist( const Point3d& ptP1, const Point3d& ptP2, Vector3d& vtDir, double& dDis
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Verifica che due punti sono quasi coincidenti (Small error -> Approx)
|
||||
//! Verifica se due punti sono quasi coincidenti (Small error -> Approx)
|
||||
//----------------------------------------------------------------------------
|
||||
inline bool
|
||||
AreSamePointApprox( const Point3d& ptP1, const Point3d& ptP2)
|
||||
@@ -257,7 +279,7 @@ AreSamePointApprox( const Point3d& ptP1, const Point3d& ptP2)
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Verifica che due punti sono esattamente coincidenti (Zero error -> Exact)
|
||||
//! Verifica se due punti sono esattamente coincidenti (Zero error -> Exact)
|
||||
//----------------------------------------------------------------------------
|
||||
inline bool
|
||||
AreSamePointExact( const Point3d& ptP1, const Point3d& ptP2)
|
||||
|
||||
+7
-7
@@ -35,7 +35,7 @@ class EGK_EXPORT Vector3d
|
||||
Vector3d( double dX, double dY, double dZ) : x( dX), y( dY), z( dZ) {}
|
||||
//! Costruttore del vettore con due componenti X e Y, Z = 0
|
||||
Vector3d( double dX, double dY) : x( dX), y( dY), z( 0) {}
|
||||
//! Costruttore del vettore nullo X= Y = Z = 0
|
||||
//! Costruttore del vettore nullo X = Y = Z = 0
|
||||
Vector3d( void) : x( 0), y( 0), z( 0) {}
|
||||
//! Assegnazione delle componenti X, Y e Z al vettore
|
||||
void Set( double dX, double dY, double dZ) { x = dX ; y = dY ; z = dZ ;}
|
||||
@@ -103,9 +103,9 @@ class EGK_EXPORT Vector3d
|
||||
void ToSpherical( double* pdLen, double* pdAngVertDeg, double* pdAngOrizzDeg) const ;
|
||||
//! Normalizzazione di un vettore (trasformazione in versore)
|
||||
bool Normalize( double dEps = EPS_SMALL) ;
|
||||
//! Rotazione
|
||||
//! Rotazione attorno ad un asse, dato l'angolo in gradi
|
||||
bool Rotate( const Vector3d& vtAx, double dAngDeg) ;
|
||||
//! Rotazione da coseno e seno dell'angolo di rotazione
|
||||
//! Rotazione attorno ad un asse, dati coseno e seno dell'angolo di rotazione
|
||||
bool Rotate( const Vector3d& vtAx, double dCosAng, double dSinAng) ;
|
||||
//! Scalatura non uniforme
|
||||
bool Scale( const Frame3d& frRef, double dCoeffX, double dCoeffY, double dCoeffZ) ;
|
||||
@@ -130,11 +130,11 @@ class EGK_EXPORT Vector3d
|
||||
public :
|
||||
union {
|
||||
struct {
|
||||
double x ;
|
||||
double y ;
|
||||
double z ;
|
||||
double x ; //!< componente sull'asse X
|
||||
double y ; //!< componente sull'asse Y
|
||||
double z ; //!< componente sull'asse Z
|
||||
} ;
|
||||
double v[3] ;
|
||||
double v[3] ; //!< equivalente vettoriale delle tre componenti
|
||||
} ;
|
||||
} ;
|
||||
|
||||
|
||||
@@ -52,6 +52,7 @@ class __declspec( novtable) ICurve : public IGeoObj
|
||||
virtual bool GetPointDiffGeom( double dU, Side nS, CrvPointDiffGeom& oDiffG) const = 0 ;
|
||||
virtual bool IsPointOn( const Point3d& ptP, double dTol = EPS_SMALL) const = 0 ;
|
||||
virtual bool ApproxWithLines( double dLinTol, double dAngTolDeg, PolyLine& PL) const = 0 ;
|
||||
virtual ICurve* CopyParamRange( double dUStart, double dUEnd) const = 0 ;
|
||||
virtual bool Invert( void) = 0 ;
|
||||
virtual bool Offset( double dDist, int nSide, int nType = OFF_FILLET) = 0 ;
|
||||
virtual bool TrimStartAtParam( double dUTrim) = 0 ;
|
||||
|
||||
+1
-1
@@ -19,7 +19,7 @@
|
||||
class __declspec( novtable) ICurveArc : public ICurve
|
||||
{
|
||||
public :
|
||||
virtual bool Copy( const IGeoObj* pGObjSrc) = 0 ;
|
||||
virtual bool CopyFrom( const IGeoObj* pGObjSrc) = 0 ;
|
||||
virtual bool Set( const Point3d& ptCen, const Vector3d& vtN, double dRad,
|
||||
const Vector3d& vtS, double dAngCenDeg, double dDeltaN) = 0 ;
|
||||
virtual bool Set( const Point3d& ptCen, const Vector3d& vtN, double dRad) = 0 ;
|
||||
|
||||
+1
-1
@@ -21,7 +21,7 @@ class ICurveArc ;
|
||||
class __declspec( novtable) ICurveBezier : public ICurve
|
||||
{
|
||||
public :
|
||||
virtual bool Copy( const IGeoObj* pGObjSrc) = 0 ;
|
||||
virtual bool CopyFrom( const IGeoObj* pGObjSrc) = 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, double dW) = 0 ;
|
||||
|
||||
+1
-1
@@ -19,7 +19,7 @@
|
||||
class __declspec( novtable) ICurveComposite : public ICurve
|
||||
{
|
||||
public :
|
||||
virtual bool Copy( const IGeoObj* pGObjSrc) = 0 ;
|
||||
virtual bool CopyFrom( const IGeoObj* pGObjSrc) = 0 ;
|
||||
virtual bool Clear( void) = 0 ;
|
||||
virtual bool AddCurve( const ICurve& cCrv, bool bEndOrStart = true) = 0 ;
|
||||
virtual bool AddCurve( ICurve* pCrv, bool bEndOrStart = true) = 0 ;
|
||||
|
||||
+1
-1
@@ -19,7 +19,7 @@
|
||||
class __declspec( novtable) ICurveLine : public ICurve
|
||||
{
|
||||
public :
|
||||
virtual bool Copy( const IGeoObj* pGObjSrc) = 0 ;
|
||||
virtual bool CopyFrom( const IGeoObj* pGObjSrc) = 0 ;
|
||||
virtual bool Set( const Point3d& ptStart, const Point3d& ptEnd) = 0 ;
|
||||
virtual bool SetPVL( const Point3d& ptStart, const Vector3d& vtDir, double dLen) = 0 ;
|
||||
virtual bool SetPDL( const Point3d& ptStart, double dDirAngDeg, double dLen) = 0 ;
|
||||
|
||||
+1
-1
@@ -26,7 +26,7 @@ const int SVT_DEL = - 2 ; // vertice o triangolo cancellato
|
||||
class __declspec( novtable) ISurfTriMesh : public ISurf
|
||||
{
|
||||
public :
|
||||
virtual bool Copy( const IGeoObj* pGObjSrc) = 0 ;
|
||||
virtual bool CopyFrom( const IGeoObj* pGObjSrc) = 0 ;
|
||||
virtual bool Init( int nNumVert, int nNumTria) = 0 ;
|
||||
virtual void SetLinearTolerance( double dLinTol) = 0 ;
|
||||
virtual void SetSmoothAngle( double dSmoothAngDeg) = 0 ;
|
||||
|
||||
Reference in New Issue
Block a user