Include : aggiunti EGkCurve.h, EgkCurveLine.h e EgkCurveArc.h per interfaccia.

This commit is contained in:
Dario Sassi
2013-11-22 21:18:00 +00:00
parent 09edd2497b
commit 06ab4af496
5 changed files with 136 additions and 4 deletions
+2 -2
View File
@@ -20,7 +20,7 @@ class _declspec( novtable) IGeoPoint3d : public IGeoObj
{
public :
virtual bool Set( const Point3d& ptP) = 0 ;
virtual const Point3d* GetPoint( void) const = 0 ;
virtual const Point3d& GetPoint( void) const = 0 ;
} ;
//-----------------------------------------------------------------------------
@@ -33,7 +33,7 @@ inline IGeoPoint3d* CloneGeoPoint3d( const IGeoObj* pGObj)
inline bool CopyGeoPoint3d( const IGeoPoint3d* pGPSou, IGeoPoint3d* pGPDest)
{ if ( pGPSou == nullptr || pGPDest == nullptr)
return false ;
return pGPDest->Set( *(pGPSou->GetPoint())) ; }
return pGPDest->Set( pGPSou->GetPoint()) ; }
inline const IGeoPoint3d* GetGeoPoint3d( const IGeoObj* pGObj)
{ if ( pGObj == nullptr || pGObj->GetType() != GEO_PNT3D)
return nullptr ;
+2 -2
View File
@@ -20,7 +20,7 @@ class _declspec( novtable) IGeoVector3d : public IGeoObj
{
public :
virtual bool Set( const Vector3d& vtV) = 0 ;
virtual const Vector3d* GetVector( void) const = 0 ;
virtual const Vector3d& GetVector( void) const = 0 ;
} ;
//-----------------------------------------------------------------------------
@@ -33,7 +33,7 @@ inline IGeoVector3d* CloneGeoVector3d( const IGeoObj* pGObj)
inline bool CopyGeoVector3d( const IGeoVector3d* pGVSou, IGeoVector3d* pGVDest)
{ if ( pGVSou == nullptr || pGVDest == nullptr)
return false ;
return pGVDest->Set( *(pGVSou->GetVector())) ; }
return pGVDest->Set( pGVSou->GetVector()) ; }
inline const IGeoVector3d* GetGeoVector3d( const IGeoObj* pGObj)
{ if ( pGObj == nullptr || pGObj->GetType() != GEO_VECT3D)
return nullptr ;
+33
View File
@@ -0,0 +1,33 @@
//----------------------------------------------------------------------------
// EgalTech 2013-2013
//----------------------------------------------------------------------------
// File : EgkCurve.h Data : 22.11.13 Versione : 1.3a1
// Contenuto : Dichiarazione della interfaccia ICurve.
//
//
//
// Modifiche : 22.11.13 DS Creazione modulo.
//
//
//----------------------------------------------------------------------------
#pragma once
#include "/EgtDev/Include/EGkGeoObj.h"
//----------------------------------------------------------------------------
class _declspec( novtable) ICurve : public IGeoObj
{
public :
virtual bool IsSimple( void) const = 0 ;
virtual bool IsClosed( void) const = 0 ;
virtual bool GetStartPoint( Point3d& ptStart) const = 0 ;
virtual bool GetEndPoint( Point3d& ptEnd) const = 0 ;
virtual bool GetDomain( double& dStart, double& dEnd) const = 0 ;
virtual bool GetLength( double& dLen) const = 0 ;
virtual bool GetPointD1D2( double dU, Point3d& ptPos, Vector3d& vtDer1, Vector3d& vtDer2) const = 0 ;
virtual bool GetPoint( double dU, Point3d& ptPos) const = 0 ;
virtual bool GetPointTang( double dU, Point3d& ptPos, Vector3d& vtTang) const = 0 ;
virtual bool GetPointTangNormCurv( double dU, Point3d& ptPos, Vector3d& vtT, Vector3d& vtN, double& dCurv) const = 0 ;
virtual bool Reverse( void) = 0 ;
} ;
+54
View File
@@ -0,0 +1,54 @@
//----------------------------------------------------------------------------
// EgalTech 2013-2013
//----------------------------------------------------------------------------
// File : EgkCurveArc.h Data : 22.11.13 Versione : 1.3a1
// Contenuto : Dichiarazione della interfaccia ICurveArc.
//
//
//
// Modifiche : 22.11.13 DS Creazione modulo.
//
//
//----------------------------------------------------------------------------
#pragma once
#include "/EgtDev/Include/EGkCurve.h"
//----------------------------------------------------------------------------
class _declspec( novtable) ICurveArc : public ICurve
{
public :
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, double dRad, double dAngIniDeg, double dAngCenDeg, double dDeltaZ) = 0 ;
virtual bool Set( const Point3d& ptCen, double dRad) = 0 ;
virtual bool IsInPlaneXY( void) const = 0 ;
virtual const Point3d& GetCenter( void) const = 0 ;
virtual const Vector3d& GetNormVersor( void) const = 0 ;
virtual const Vector3d& GetStartVersor( void) const = 0 ;
virtual double GetRadius( void) const = 0 ;
virtual double GetAngCenter( void) const = 0 ;
virtual double GetDeltaN( void) const = 0 ;
} ;
//-----------------------------------------------------------------------------
inline ICurveArc* CreateCurveArc( void)
{ return (static_cast<ICurveArc*>( CreateGeoObj( KEY_CRV_ARC))) ; }
inline ICurveArc* CloneCurveArc( const IGeoObj* pGObj)
{ if ( pGObj == nullptr || pGObj->GetType() != CRV_ARC)
return nullptr ;
return (static_cast<ICurveArc*>(pGObj->Clone())) ; }
inline bool CopyCurveArc( const ICurveArc* pCASou, ICurveArc* pCADest)
{ if ( pCASou == nullptr || pCADest == nullptr || ! pCASou->IsValid())
return false ;
return pCADest->Set( pCASou->GetCenter(), pCASou->GetNormVersor(), pCASou->GetRadius(),
pCASou->GetStartVersor(), pCASou->GetAngCenter(), pCASou->GetDeltaN()) ; }
inline const ICurveArc* GetCurveArc( const IGeoObj* pGObj)
{ if ( pGObj == nullptr || pGObj->GetType() != CRV_ARC)
return nullptr ;
return (static_cast<const ICurveArc*>(pGObj)) ; }
inline ICurveArc* GetCurveArc( IGeoObj* pGObj)
{ if ( pGObj == nullptr || pGObj->GetType() != CRV_ARC)
return nullptr ;
return (static_cast<ICurveArc*>(pGObj)) ; }
+45
View File
@@ -0,0 +1,45 @@
//----------------------------------------------------------------------------
// EgalTech 2013-2013
//----------------------------------------------------------------------------
// File : EgkCurveLine.h Data : 22.11.13 Versione : 1.3a1
// Contenuto : Dichiarazione della interfaccia ICurveLine.
//
//
//
// Modifiche : 22.11.13 DS Creazione modulo.
//
//
//----------------------------------------------------------------------------
#pragma once
#include "/EgtDev/Include/EGkCurve.h"
//----------------------------------------------------------------------------
class _declspec( novtable) ICurveLine : public ICurve
{
public :
virtual bool Set( const Point3d& ptStart, const Point3d& ptEnd) = 0 ;
virtual const Point3d& GetStart( void) const = 0 ;
virtual const Point3d& GetEnd( void) const = 0 ;
} ;
//-----------------------------------------------------------------------------
inline ICurveLine* CreateCurveLine( void)
{ return (static_cast<ICurveLine*>( CreateGeoObj( KEY_CRV_LINE))) ; }
inline ICurveLine* CloneCurveLine( const IGeoObj* pGObj)
{ if ( pGObj == nullptr || pGObj->GetType() != CRV_LINE)
return nullptr ;
return (static_cast<ICurveLine*>(pGObj->Clone())) ; }
inline bool CopyCurveLine( const ICurveLine* pCLSou, ICurveLine* pCLDest)
{ if ( pCLSou == nullptr || pCLDest == nullptr || ! pCLSou->IsValid())
return false ;
return pCLDest->Set( pCLSou->GetStart(), pCLSou->GetEnd()) ; }
inline const ICurveLine* GetCurveLine( const IGeoObj* pGObj)
{ if ( pGObj == nullptr || pGObj->GetType() != CRV_LINE)
return nullptr ;
return (static_cast<const ICurveLine*>(pGObj)) ; }
inline ICurveLine* GetCurveLine( IGeoObj* pGObj)
{ if ( pGObj == nullptr || pGObj->GetType() != CRV_LINE)
return nullptr ;
return (static_cast<ICurveLine*>(pGObj)) ; }