diff --git a/EGkCurve.h b/EGkCurve.h index fc84355..03ba6c4 100644 --- a/EGkCurve.h +++ b/EGkCurve.h @@ -73,6 +73,7 @@ class __declspec( novtable) ICurve : public IGeoObj virtual bool GetAreaXY( double& dArea) const = 0 ; virtual bool ApproxWithLines( double dLinTol, double dAngTolDeg, int nType, PolyLine& PL) const = 0 ; virtual bool ApproxWithArcs( double dLinTol, double dAngTolDeg, PolyArc& PA) const = 0 ; + virtual bool ApproxWithArcsEx( double dLinTol, double dAngTolDeg, double dLinFea, PolyArc& PA) const = 0 ; virtual ICurve* CopyParamRange( double dUStart, double dUEnd) const = 0 ; virtual bool Invert( void) = 0 ; virtual bool SimpleOffset( double dDist, int nType = OFF_FILLET) = 0 ; diff --git a/EGkCurveArc.h b/EGkCurveArc.h index b7ce251..45062ac 100644 --- a/EGkCurveArc.h +++ b/EGkCurveArc.h @@ -51,7 +51,7 @@ class __declspec( novtable) ICurveArc : public ICurve virtual bool ChangeDeltaN( double dNewDeltaN) = 0 ; virtual bool ChangeStartPoint( double dU) = 0 ; virtual bool ExtendedOffset( double dDist, int nType = OFF_FILLET) = 0 ; - virtual bool ToAdditional( void) = 0 ; + virtual bool ToExplementary( void) = 0 ; virtual bool Flip( void) = 0 ; } ; diff --git a/EGkCurveByApprox.h b/EGkCurveByApprox.h index 8957194..c038d12 100644 --- a/EGkCurveByApprox.h +++ b/EGkCurveByApprox.h @@ -35,9 +35,10 @@ class CurveByApprox EGK_EXPORT bool Reset( void) ; EGK_EXPORT bool AddPoint( const Point3d& ptP) ; EGK_EXPORT ICurve* GetCurve( int nType, double dLinTol, double dAngTolDeg, double dLinFea) ; + EGK_EXPORT bool GetArcs( double dLinTol, double dAngTolDeg, double dLinFea, PolyArc& PA) ; public : - EGK_EXPORT enum TYPE { BIARCS = 1, CUBIC_BEZIERS = 2} ; + EGK_EXPORT enum TYPE { ARCS_CORNER = 1, CUBIC_BEZIERS = 2} ; private : bool CalcAkimaTangents( bool bCorner) ; diff --git a/EInAPI.h b/EInAPI.h index fb38dbf..8a3f35a 100644 --- a/EInAPI.h +++ b/EInAPI.h @@ -126,40 +126,42 @@ EIN_EXPORT int __stdcall EgtCreateTextAdv( int nParentId, const double ptP[3], int nW, BOOL bItalic, double dH, double dRat, double dAddAdv, int nInsPos, int nRefType) ; // GeomDB Create Curve -EIN_EXPORT int __stdcall EgtCreateCurveLine( int nParentId, - const double ptIni[3], const double ptFin[3], int nRefType) ; -EIN_EXPORT int __stdcall EgtCreateCurveLineEx( int nParentId, const double ptIni[3], int nSepI, int nIdI, - const double ptFin[3], int nSepF, int nIdF, int nRefType) ; -EIN_EXPORT int __stdcall EgtCreateCurveLinePDL( int nParentId, const double ptIni[3], - double dDirDeg, double dLen, int nRefType) ; -EIN_EXPORT int __stdcall EgtCreateCurveLinePVL( int nParentId, const double ptIni[3], - const double vtDir[3], double dLen, int nRefType) ; -EIN_EXPORT int __stdcall EgtCreateCurveLineMinPointCurve( int nParentId, const double ptStart[3], - int nCrvId, double dNearPar, int nRefType) ; -EIN_EXPORT int __stdcall EgtCreateCurveCircle( int nParentId, const double ptCen[3], - double dRad, int nRefType) ; -EIN_EXPORT int __stdcall EgtCreateCurveCircleCP( int nParentId, const double ptCen[3], - const double ptOn[3], int nRefType) ; -EIN_EXPORT int __stdcall EgtCreateCurveCircleCPEx( int nParentId, const double ptCen[3], - const double ptOn[3], int nSepO, int nIdO, int nRefType) ; -EIN_EXPORT int __stdcall EgtCreateCurveCircle3P( int nParentId, const double ptP1[3], - const double ptP2[3], const double ptP3[3], int nRefType) ; -EIN_EXPORT int __stdcall EgtCreateCurveArc( int nParentId, const double ptCen[3], double dRad, - double dAngIniDeg, double dAngCenDeg, double dDeltaN, int nRefType) ; -EIN_EXPORT int __stdcall EgtCreateCurveArcC2P( int nParentId, const double ptCen[3], const double ptStart[3], - const double ptNearEnd[3], int nRefType) ; -EIN_EXPORT int __stdcall EgtCreateCurveArcC2PEx( int nParentId, const double ptCen[3], - const double ptStart[3], int nSepS, int nIdS, - const double ptNearEnd[3], int nRefType) ; -EIN_EXPORT int __stdcall EgtCreateCurveArc3P( int nParentId, const double ptP1[3], - const double ptP2[3], const double ptP3[3], int nRefType) ; -EIN_EXPORT int __stdcall EgtCreateCurveArc2PD( int nParentId, const double ptStart[3], const double ptEnd[3], - double dDirSDeg, int nRefType) ; -EIN_EXPORT int __stdcall EgtCreateCurveArc2PDEx( int nParentId, const double ptStart[3], - const double ptEnd[3], int nSep, int nId, - double dDirSDeg, int nRefType) ; -EIN_EXPORT int __stdcall EgtCreateCurveArc2PV( int nParentId, const double ptStart[3], const double ptEnd[3], - const double vtDirS[3], int nRefType) ; +EIN_EXPORT int __stdcall EgtCreateLine( int nParentId, + const double ptIni[3], const double ptFin[3], int nRefType) ; +EIN_EXPORT int __stdcall EgtCreateLineEx( int nParentId, const double ptIni[3], int nSepI, int nIdI, + const double ptFin[3], int nSepF, int nIdF, int nRefType) ; +EIN_EXPORT int __stdcall EgtCreateLinePDL( int nParentId, const double ptIni[3], + double dDirDeg, double dLen, int nRefType) ; +EIN_EXPORT int __stdcall EgtCreateLinePVL( int nParentId, const double ptIni[3], + const double vtDir[3], double dLen, int nRefType) ; +EIN_EXPORT int __stdcall EgtCreateLineMinPointCurve( int nParentId, const double ptStart[3], + int nCrvId, double dNearPar, int nRefType) ; +EIN_EXPORT int __stdcall EgtCreateCircle( int nParentId, const double ptCen[3], + double dRad, int nRefType) ; +EIN_EXPORT int __stdcall EgtCreateCircleCP( int nParentId, const double ptCen[3], + const double ptOn[3], int nRefType) ; +EIN_EXPORT int __stdcall EgtCreateCircleCPEx( int nParentId, const double ptCen[3], + const double ptOn[3], int nSepO, int nIdO, int nRefType) ; +EIN_EXPORT int __stdcall EgtCreateCircle3P( int nParentId, const double ptP1[3], + const double ptP2[3], const double ptP3[3], int nRefType) ; +EIN_EXPORT int __stdcall EgtCreateArc( int nParentId, const double ptCen[3], double dRad, + double dAngIniDeg, double dAngCenDeg, double dDeltaN, int nRefType) ; +EIN_EXPORT int __stdcall EgtCreateArcC2P( int nParentId, const double ptCen[3], const double ptStart[3], + const double ptNearEnd[3], int nRefType) ; +EIN_EXPORT int __stdcall EgtCreateArcC2PEx( int nParentId, const double ptCen[3], + const double ptStart[3], int nSepS, int nIdS, + const double ptNearEnd[3], int nRefType) ; +EIN_EXPORT int __stdcall EgtCreateArc3P( int nParentId, const double ptP1[3], + const double ptP2[3], const double ptP3[3], int nRefType) ; +EIN_EXPORT int __stdcall EgtCreateArc2PD( int nParentId, const double ptStart[3], const double ptEnd[3], + double dDirSDeg, int nRefType) ; +EIN_EXPORT int __stdcall EgtCreateArc2PDEx( int nParentId, const double ptStart[3], + const double ptEnd[3], int nSep, int nId, + double dDirSDeg, int nRefType) ; +EIN_EXPORT int __stdcall EgtCreateArc2PV( int nParentId, const double ptStart[3], const double ptEnd[3], + const double vtDirS[3], int nRefType) ; +EIN_EXPORT int __stdcall EgtCreateBiArc( int nParentId, const double ptStart[3], const double ptEnd[3], + double dDirSDeg, double dDirEDeg, double dPar, int nRefType) ; EIN_EXPORT int __stdcall EgtCreateCurveFillet( int nParentId, int nCrv1, const double ptNear1[3], int nCrv2, const double ptNear2[3], double dRad, BOOL bTrim, int nRefType) ; @@ -341,10 +343,10 @@ EIN_EXPORT BOOL __stdcall EgtTrimExtendCurveByLen( int nId, double dLen, const d EIN_EXPORT int __stdcall EgtSplitCurve( int nId, int nParts) ; EIN_EXPORT int __stdcall EgtSplitCurveAtPoint( int nId, const double ptOn[3], int nRefType) ; EIN_EXPORT BOOL __stdcall EgtOffsetCurve( int nId, double dDist, int nType) ; -EIN_EXPORT BOOL __stdcall EgtModifyCurveCircleCPN( int nId, const double ptOn[3], int nRefType) ; -EIN_EXPORT BOOL __stdcall EgtModifyCurveArcRadius( int nId, double dRad) ; -EIN_EXPORT BOOL __stdcall EgtModifyCurveArcC2PN( int nId, const double ptEnd[3], int nRefType) ; -EIN_EXPORT BOOL __stdcall EgtModifyCurveArc3P( int nId, const double ptMid[3], int nRefType) ; +EIN_EXPORT BOOL __stdcall EgtModifyCircleCP( int nId, const double ptOn[3], int nRefType) ; +EIN_EXPORT BOOL __stdcall EgtModifyArcRadius( int nId, double dRad) ; +EIN_EXPORT BOOL __stdcall EgtModifyArcC2P( int nId, const double ptEnd[3], int nRefType) ; +EIN_EXPORT BOOL __stdcall EgtModifyArc3P( int nId, const double ptMid[3], int nRefType) ; EIN_EXPORT int __stdcall EgtExplodeCurveCompo( int nId, int* pnCount) ; EIN_EXPORT int __stdcall EgtApproxCurve( int nId, int nApprType, double dLinTol) ; @@ -377,8 +379,10 @@ EIN_EXPORT BOOL __stdcall EgtCurveThickness( int nId, double* pdThick) ; EIN_EXPORT BOOL __stdcall EgtGetMinDistPointCurve( const double ptP[3], int nId, double* pdDist, double* pdU) ; EIN_EXPORT BOOL __stdcall EgtGetMinDistPntSidePointCurve( const double ptP[3], int nId, const double vtN[3], double* pdDist, double ptMin[3], int* pnSide) ; -EIN_EXPORT BOOL __stdcall EgtCurveArcRadius( int nId, double* pdRad) ; -EIN_EXPORT BOOL __stdcall EgtCurveArcNormVersor( int nId, int nRefId, double vtNorm[3]) ; +EIN_EXPORT BOOL __stdcall EgtArcRadius( int nId, double* pdRad) ; +EIN_EXPORT BOOL __stdcall EgtArcAngCenter( int nId, double* pdAngDeg) ; +EIN_EXPORT BOOL __stdcall EgtArcDeltaN( int nId, double* pdDeltaN) ; +EIN_EXPORT BOOL __stdcall EgtArcNormVersor( int nId, int nRefId, double vtNorm[3]) ; EIN_EXPORT BOOL __stdcall EgtCurveCompoCenter( int nId, int nSimpCrv, int nRefId, double ptCen[3]) ; EIN_EXPORT int __stdcall EgtSurfTmFacetNbr( int nId) ; EIN_EXPORT int __stdcall EgtSurfTmFacetFromTria( int nId, int nT) ; @@ -388,7 +392,7 @@ EIN_EXPORT BOOL __stdcall EgtSurfTmFacetNearestMidPoint( int nId, int nFacet, co double ptMid[3], double vtNorm[3]) ; EIN_EXPORT BOOL __stdcall EgtSurfTmFacetCenter( int nId, int nFacet, int nRefId, double ptCen[3], double vtNorm[3]) ; EIN_EXPORT BOOL __stdcall EgtSurfTmFacetNormVersor( int nId, int nFacet, int nRefId, double vtNorm[3]) ; -EIN_EXPORT BOOL __stdcall EgtExtTextNormVersor( int nId, int nRefId, double vtNorm[3]) ; +EIN_EXPORT BOOL __stdcall EgtTextNormVersor( int nId, int nRefId, double vtNorm[3]) ; EIN_EXPORT BOOL __stdcall EgtPointToIdGlob( double ptP[3], int nId) ; EIN_EXPORT BOOL __stdcall EgtPointToIdLoc( double ptP[3], int nId) ; EIN_EXPORT BOOL __stdcall EgtVectorToIdGlob( double vtV[3], int nId) ; diff --git a/EXeExecutor.h b/EXeExecutor.h index ab8b948..95a9f37 100644 --- a/EXeExecutor.h +++ b/EXeExecutor.h @@ -128,40 +128,40 @@ EXE_EXPORT int ExeCreateTextAdv( int nParentId, const Point3d& ptP, double dAn int nW, bool bItalic, double dH, double dRat, double dAddAdv, int nInsPos, int nRefType) ; // GeomDB Create Curve -EXE_EXPORT int ExeCreateCurveLine( int nParentId, const Point3d& ptIni, const Point3d& ptFin, int nRefType) ; -EXE_EXPORT int ExeCreateCurveLineEx( int nParentId, const Point3d& ptIni, int nSepI, int nIdI, - const Point3d& ptFin, int nSepF, int nIdF, int nRefType) ; -EXE_EXPORT int ExeCreateCurveLinePDL( int nParentId, const Point3d& ptIni, - double dDirDeg, double dLen, int nRefType) ; -EXE_EXPORT int ExeCreateCurveLinePVL( int nParentId, const Point3d& ptIni, - const Vector3d& vtDir, double dLen, int nRefType) ; -EXE_EXPORT int ExeCreateCurveLineMinPointCurve( int nParentId, - const Point3d& ptStart, int nCrvId, double dNearPar, int nRefType) ; -EXE_EXPORT int ExeCreateCurveCircle( int nParentId, const Point3d& ptCen, double dRad, int nRefType) ; -EXE_EXPORT int ExeCreateCurveCircleCP( int nParentId, const Point3d& ptCen, - const Point3d& ptOn, int nRefType) ; -EXE_EXPORT int ExeCreateCurveCircleCPEx( int nParentId, const Point3d& ptCen, - const Point3d& ptOn, int nSepO, int nIdO, int nRefType) ; -EXE_EXPORT int ExeCreateCurveCircle3P( int nParentId, const Point3d& ptP1, - const Point3d& ptP2, const Point3d& ptP3, int nRefType) ; -EXE_EXPORT int ExeCreateCurveArc( int nParentId, const Point3d& ptCen, double dRad, - double dAngIniDeg, double dAngCenDeg, double dDeltaN, int nRefType) ; -EXE_EXPORT int ExeCreateCurveArcC2P( int nParentId, const Point3d& ptCen, const Point3d& ptStart, - const Point3d& ptNearEnd, int nRefType) ; -EXE_EXPORT int ExeCreateCurveArcC2PEx( int nParentId, const Point3d& ptCen, - const Point3d& ptStart, int nSepS, int nIdS, - const Point3d& ptNearEnd, int nRefType) ; -EXE_EXPORT int ExeCreateCurveArc3P( int nParentId, const Point3d& ptP1, - const Point3d& ptP2, const Point3d& ptP3, int nRefType) ; -EXE_EXPORT int ExeCreateCurveArc2PD( int nParentId, const Point3d& ptStart, const Point3d& ptEnd, - double dDirSDeg, int nRefType) ; -EXE_EXPORT int ExeCreateCurveArc2PDEx( int nParentId, const Point3d& ptStart, - const Point3d& ptEnd, int nSep, int nId, - double dDirSDeg, int nRefType) ; -EXE_EXPORT int ExeCreateCurveArc2PV( int nParentId, const Point3d& ptStart, const Point3d& ptEnd, - const Vector3d& vtDirS, int nRefType) ; -EXE_EXPORT int ExeCreateCurveBiArc( int nParentId, const Point3d& ptStart, const Point3d& ptEnd, - double dDirSDeg, double dDirEDeg, double dPar, int nRefType) ; +EXE_EXPORT int ExeCreateLine( int nParentId, const Point3d& ptIni, const Point3d& ptFin, int nRefType) ; +EXE_EXPORT int ExeCreateLineEx( int nParentId, const Point3d& ptIni, int nSepI, int nIdI, + const Point3d& ptFin, int nSepF, int nIdF, int nRefType) ; +EXE_EXPORT int ExeCreateLinePDL( int nParentId, const Point3d& ptIni, + double dDirDeg, double dLen, int nRefType) ; +EXE_EXPORT int ExeCreateLinePVL( int nParentId, const Point3d& ptIni, + const Vector3d& vtDir, double dLen, int nRefType) ; +EXE_EXPORT int ExeCreateLineMinPointCurve( int nParentId, + const Point3d& ptStart, int nCrvId, double dNearPar, int nRefType) ; +EXE_EXPORT int ExeCreateCircle( int nParentId, const Point3d& ptCen, double dRad, int nRefType) ; +EXE_EXPORT int ExeCreateCircleCP( int nParentId, const Point3d& ptCen, + const Point3d& ptOn, int nRefType) ; +EXE_EXPORT int ExeCreateCircleCPEx( int nParentId, const Point3d& ptCen, + const Point3d& ptOn, int nSepO, int nIdO, int nRefType) ; +EXE_EXPORT int ExeCreateCircle3P( int nParentId, const Point3d& ptP1, + const Point3d& ptP2, const Point3d& ptP3, int nRefType) ; +EXE_EXPORT int ExeCreateArc( int nParentId, const Point3d& ptCen, double dRad, + double dAngIniDeg, double dAngCenDeg, double dDeltaN, int nRefType) ; +EXE_EXPORT int ExeCreateArcC2P( int nParentId, const Point3d& ptCen, const Point3d& ptStart, + const Point3d& ptNearEnd, int nRefType) ; +EXE_EXPORT int ExeCreateArcC2PEx( int nParentId, const Point3d& ptCen, + const Point3d& ptStart, int nSepS, int nIdS, + const Point3d& ptNearEnd, int nRefType) ; +EXE_EXPORT int ExeCreateArc3P( int nParentId, const Point3d& ptP1, + const Point3d& ptP2, const Point3d& ptP3, int nRefType) ; +EXE_EXPORT int ExeCreateArc2PD( int nParentId, const Point3d& ptStart, const Point3d& ptEnd, + double dDirSDeg, int nRefType) ; +EXE_EXPORT int ExeCreateArc2PDEx( int nParentId, const Point3d& ptStart, + const Point3d& ptEnd, int nSep, int nId, + double dDirSDeg, int nRefType) ; +EXE_EXPORT int ExeCreateArc2PV( int nParentId, const Point3d& ptStart, const Point3d& ptEnd, + const Vector3d& vtDirS, int nRefType) ; +EXE_EXPORT int ExeCreateBiArc( int nParentId, const Point3d& ptStart, const Point3d& ptEnd, + double dDirSDeg, double dDirEDeg, double dPar, int nRefType) ; EXE_EXPORT int ExeCreateCurveFillet( int nParentId, int nCrv1, const Point3d& ptNear1, int nCrv2, const Point3d& ptNear2, double dRad, bool bTrim, int nRefType) ; @@ -346,10 +346,12 @@ EXE_EXPORT bool ExeTrimExtendCurveByLen( int nId, double dLen, const Point3d& pt EXE_EXPORT int ExeSplitCurve( int nId, int nParts) ; EXE_EXPORT int ExeSplitCurveAtPoint( int nId, const Point3d& ptOn, int nRefType) ; EXE_EXPORT int ExeSplitCurveAtSelfInters( int nId, int* pnCount) ; -EXE_EXPORT bool ExeModifyCurveCircleCPN( int nId, const Point3d& ptOn, int nRefType) ; -EXE_EXPORT bool ExeModifyCurveArcRadius( int nId, double dRad) ; -EXE_EXPORT bool ExeModifyCurveArcC2PN( int nId, const Point3d& ptEnd, int nRefType) ; -EXE_EXPORT bool ExeModifyCurveArc3P( int nId, const Point3d& ptMid, int nRefType) ; +EXE_EXPORT bool ExeModifyCircleCP( int nId, const Point3d& ptOn, int nRefType) ; +EXE_EXPORT bool ExeModifyArcRadius( int nId, double dRad) ; +EXE_EXPORT bool ExeModifyArcC2P( int nId, const Point3d& ptEnd, int nRefType) ; +EXE_EXPORT bool ExeModifyArc3P( int nId, const Point3d& ptMid, int nRefType) ; +EXE_EXPORT bool ExeModifyArcToExplementary( int nId) ; +EXE_EXPORT bool ExeModifyArcByFlip( int nId) ; EXE_EXPORT int ExeExplodeCurveCompo( int nId, int* pnCount) ; EXE_EXPORT bool ExeMergeCurvesInCurveCompo( int nId, double dLinTol) ; EXE_EXPORT int ExeApproxCurve( int nId, int nApprType, double dLinTol) ; @@ -383,8 +385,10 @@ EXE_EXPORT bool ExeCurveSelfIntersNbr( int nId, int* pnCount) ; EXE_EXPORT bool ExeGetMinDistPointCurve( const Point3d& ptP, int nId, double* pdDist, double* pdU) ; EXE_EXPORT bool ExeGetMinDistPntSidePointCurve( const Point3d& ptP, int nId, const Vector3d& vtN, double* pdDist, Point3d& ptMin, int* pnSide) ; -EXE_EXPORT bool ExeCurveArcRadius( int nId, double* pdRad) ; -EXE_EXPORT bool ExeCurveArcNormVersor( int nId, int nRefId, Vector3d& vtNorm) ; +EXE_EXPORT bool ExeArcRadius( int nId, double* pdRad) ; +EXE_EXPORT bool ExeArcAngCenter( int nId, double* pdAngDeg) ; +EXE_EXPORT bool ExeArcDeltaN( int nId, double* pdDeltaN) ; +EXE_EXPORT bool ExeArcNormVersor( int nId, int nRefId, Vector3d& vtNorm) ; EXE_EXPORT bool ExeCurveCompoCenter( int nId, int nSimpCrv, int nRefId, Point3d& ptCen) ; EXE_EXPORT int ExeSurfTmFacetNbr( int nId) ; EXE_EXPORT int ExeSurfTmFacetFromTria( int nId, int nT) ; @@ -394,7 +398,7 @@ EXE_EXPORT bool ExeSurfTmFacetNearestMidPoint( int nId, int nFacet, const Point3 Point3d& ptMid, Vector3d& vtN) ; EXE_EXPORT bool ExeSurfTmFacetCenter( int nId, int nFacet, int nRefId, Point3d& ptCen, Vector3d& vtN) ; EXE_EXPORT bool ExeSurfTmFacetNormVersor( int nId, int nFacet, int nRefId, Vector3d& vtNorm) ; -EXE_EXPORT bool ExeExtTextNormVersor( int nId, int nRefId, Vector3d& vtNorm) ; +EXE_EXPORT bool ExeTextNormVersor( int nId, int nRefId, Vector3d& vtNorm) ; EXE_EXPORT bool ExePointToIdGlob( Point3d& ptP, int nId) ; EXE_EXPORT bool ExePointToIdLoc( Point3d& ptP, int nId) ; EXE_EXPORT bool ExeVectorToIdGlob( Vector3d& vtV, int nId) ;