FRX SDK Documentation 2025 SP0
Loading...
Searching...
No Matches
AcGeImpNurbCurve3d.h
Go to the documentation of this file.
1#pragma once
2
3//
4// (C) Copyright 2005-2024 by Graebert GmbH.
5//
6// Permission to use, copy, modify, and distribute this software in
7// object code form for any purpose and without fee is hereby granted,
8// provided that the above copyright notice appears in all copies and
9// that both that copyright notice and the limited warranty and
10// restricted rights notice below appear in all supporting
11// documentation.
12//
13// GRAEBERT PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
14// GRAEBERT SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
15// MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. GRAEBERT GMBH
16// DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
17// UNINTERRUPTED OR ERROR FREE.
18
19#include "..\acge17\AcGe.h"
20
21template < typename Param1 > class AcArrayMemCopyReallocator;
24class AcGeImpCurve3d;
26class AcGeImpEntity3d;
27class AcGeImpInterval;
29class AcGeImpObject;
34class AcGeInterval;
35class AcGeKnotVector;
36class AcGeMatrix3d;
37class AcGePoint3d;
39class AcGeTol;
40class AcGeVector3d;
41
43{
44public:
79 AcGeImpNurbCurve3d & setToHermiteCubic( AcGePoint3d const &, AcGePoint3d const &, AcGeVector3d const &, AcGeVector3d const &,double,double);
83 AcGePoint3d evalPoint(double,double *)const ;
84 double weightAt(int)const ;
85 int addFitPointAt(int, AcGePoint3d const &);
86 int compressFitData(void);
88 int evalMode(void)const ;
91 int getFitPointAt(int, AcGePoint3d &)const ;
92 int getFitTangentAt(int, AcGeVector3d &)const ;
94 int getFitTangents( AcGeVector3d &, AcGeVector3d &,int &,int &)const ;
95 int getFitTolerance( AcGeTol &)const ;
97 int isInterpolating(void)const ;
99 int numFitPoints(void)const ;
100 int numWeights(void)const ;
101 int purgeFitData(void);
102 int setFitPointAt(int, AcGePoint3d const &);
103 int setFitTangentAt(int, AcGeVector3d const &);
105 int setFitTangents( AcGeVector3d const &, AcGeVector3d const &,int,int);
107 virtual ~AcGeImpNurbCurve3d(void);
108 virtual AcGeImpBoundBlock3d boundBlock(int, AcGeImpInterval const &,int)const ;
109 virtual AcGeImpBoundBlock3d boundBlock(int,int)const ;
115 virtual AcGeImpEntity3d * project( AcGeImpPlanarEnt const &, AcGeVector3d const &, AcGeTol const & = AcGeContext::gTol)const ;
116 virtual AcGeImpObject * copy(void)const ;
118 virtual AcGePoint3d controlPointAt(int)const ;
119 virtual AcGePoint3d endPoint(void)const ;
120 virtual AcGePoint3d evalPoint(double)const ;
122 virtual AcGePoint3d startPoint(void)const ;
123 virtual double length(double,double,double)const ;
124 virtual double paramAtLength(double,double,int,double)const ;
125 virtual AcGe::EntityId type(int)const ;
126 virtual int degree(void)const ;
127 virtual int explode( AcDbVoidPtrArray &, AcGeIntArray &, AcGeImpInterval const *)const ;
129 virtual int hasFitData(void)const ;
130 virtual int intersectWith( AcGeImpCurve3d const &, AcGeVector3d const &, AcGeCurveIntData &, AcGeTol const & = AcGeContext::gTol)const ;
131 virtual int isDegenerate( AcGeImpEntity3d * &, AcGeTol const & = AcGeContext::gTol)const ;
132 virtual int isDegenerate( AcGe::EntityId &, AcGeTol const & = AcGeContext::gTol)const ;
133 virtual int isEqualTo( AcGeImpEntity3d const &, AcGeTol const & = AcGeContext::gTol)const ;
134 virtual int isOn( AcGePoint3d const &,double &, AcGeTol const & = AcGeContext::gTol)const ;
135 virtual int isPlanar( AcGeImpPlanarEnt &, AcGeTol const & = AcGeContext::gTol)const ;
136 virtual int order(void)const ;
137 virtual void * getExternalEntity(void)const ;
140 virtual void getSplitCurves(double, AcGeImpCurve3d * &, AcGeImpCurve3d * &)const ;
143 void record(wchar_t const * const)const ;
144
145protected:
148 AcGePoint3d evalPntDerivInPowerBasis(double,int, AcGeVector3d * const,double *)const ;
150 double bringParamToBounds(double)const ;
151 double intervalParam(double)const ;
152 virtual int setKnots(void);
153 virtual void evaluate(int, AcGePointOnCurve3dData &,int)const ;
156 void setCurrentData(double)const ;
157 void setCurrentStorage(void)const ;
159
160};
virtual int isDegenerate(AcGeImpEntity3d *&, AcGeTol const &=AcGeContext::gTol) const
virtual AcGePoint3d evalPoint(double, int, AcArray< AcGeVector3d, AcArrayMemCopyReallocator< AcGeVector3d > > &) const
double intervalParam(double) const
virtual int explode(AcDbVoidPtrArray &, AcGeIntArray &, AcGeImpInterval const *) const
AcGeImpNurbCurve3d & hardTrimByParams(double, double)
virtual AcGeImpEntity3d * project(AcGeImpPlanarEnt const &, AcGeVector3d const &, AcGeTol const &=AcGeContext::gTol) const
void resetCurrentStorage(void)
AcGeImpNurbCurve3d(AcGeImpLinearEnt3d const &)
int explodeAtParams(AcGeDoubleArray const &, AcDbVoidPtrArray &, AcGeImpInterval const *) const
AcGeImpNurbCurve3d & operator=(AcGeImpNurbCurve3d const &)
int purgeFitData(void)
virtual AcGeImpEntity3d * exactOffset(double, AcGeVector3d const &, AcGeDoubleArray *, AcGeDoubleArray *, AcGe::OffsetCrvExtType, AcGeTol const &=AcGeContext::gTol) const
AcGeImpNurbCurve3d(int, int)
double bringParamToBounds(double) const
int setFitPointAt(int, AcGePoint3d const &)
int getFitPointAt(int, AcGePoint3d &) const
AcGeImpNurbCurve3d(AcArray< AcGePoint3d, AcArrayMemCopyReallocator< AcGePoint3d > > const &, AcGeVector3d const &, AcGeVector3d const &, int, int, AcGeTol const &=AcGeContext::gTol)
void getDerivativeCurve(int, AcGeImpNurbCurve3d &)
int evalMode(void) const
AcGeImpNurbCurve3d & setFitData(AcGeKnotVector const &, AcArray< AcGePoint3d, AcArrayMemCopyReallocator< AcGePoint3d > > const &, AcGeVector3d const &, AcGeVector3d const &, AcGeTol const &, int)
virtual void getSplitCurves(double, AcGeImpCurve3d *&, AcGeImpCurve3d *&) const
AcGeImpNurbCurve3d(int, AcGeImpPolyline3d const &, int)
AcGeImpNurbCurve3d(int, AcArray< AcGePoint3d, AcArrayMemCopyReallocator< AcGePoint3d > > const &, AcGeTol const &, int)
AcGeImpNurbCurve3d(AcArray< AcGePoint3d, AcArrayMemCopyReallocator< AcGePoint3d > >)
virtual AcGePoint3d startPoint(void) const
void setCurrentData(double) const
double weightAt(int) const
virtual int hasFitData(void) const
int getFitTangents(AcGeVector3d &, AcGeVector3d &) const
AcGeImpNurbCurve3d & regenerate(void)
virtual AcGePoint3d controlPointAt(int) const
AcGeImpNurbCurve3d & setToUnitArc(double, double)
int setFitTangents(AcGeVector3d const &, AcGeVector3d const &, int, int)
AcGeImpNurbCurve3d(int, AcGeKnotVector const &, AcArray< AcGePoint3d, AcArrayMemCopyReallocator< AcGePoint3d > > const &, AcGeDoubleArray const &, int)
virtual AcGeImpBoundBlock3d boundBlock(int, int) const
AcGeImpNurbCurve3d & removeKnot(double, AcGeTol const &=AcGeContext::gTol)
AcGeImpNurbCurve3d & makeRational(double)
virtual int isOn(AcGePoint3d const &, double &, AcGeTol const &=AcGeContext::gTol) const
virtual AcGeImpEntity3d & transformBy(AcGeMatrix3d const &)
int setFitTangents(AcGeVector3d const &, AcGeVector3d const &)
virtual AcGePoint3d endPoint(void) const
virtual double length(double, double, double) const
virtual int isDegenerate(AcGe::EntityId &, AcGeTol const &=AcGeContext::gTol) const
int deleteFitPointAt(int)
virtual AcGePoint3d evalPoint(double) const
virtual int order(void) const
AcGeImpNurbCurve3d & setToHermiteCubic(AcGePoint3d const &, AcGePoint3d const &, AcGeVector3d const &, AcGeVector3d const &, double, double)
AcGePoint3d evalPntInForwardDiffBasis(double) const
virtual AcGeImpObject * copy(void) const
void freeCurrentStorage(void)
AcGeImpNurbCurve3d & hardTrim(void)
int getFitData(AcArray< AcGePoint3d, AcArrayMemCopyReallocator< AcGePoint3d > > &, AcGeTol &, int &, AcGeVector3d &, AcGeVector3d &) const
int setFitTolerance(AcGeTol const &=AcGeContext::gTol)
AcGeImpNurbCurve3d(AcArray< AcGePoint3d, AcArrayMemCopyReallocator< AcGePoint3d > > const &, AcArray< AcGeVector3d, AcArrayMemCopyReallocator< AcGeVector3d > > const &, AcGeTol const &, int)
AcGeImpNurbCurve3d(AcGePoint3d, AcGeVector3d, AcGePoint3d, AcGeVector3d, double, double)
AcGeImpNurbCurve3d(AcArray< AcGePoint3d, AcArrayMemCopyReallocator< AcGePoint3d > > const &, AcGeTol const &=AcGeContext::gTol)
void getDefinitionData(int &, int &, int &, AcGeKnotVector &, AcArray< AcGePoint3d, AcArrayMemCopyReallocator< AcGePoint3d > > &, AcGeDoubleArray &) const
AcGePoint3d evalPoint(double, double *) const
AcGeImpNurbCurve3d & makeClosed(void)
virtual AcGeImpEntity3d & translateBy(AcGeVector3d const &)
int numWeights(void) const
int isLocallyLinear(double, AcGeInterval &, AcGeImpLinearEnt3d &, AcGeTol const &=AcGeContext::gTol) const
AcGeImpNurbCurve3d & setFitData(int, AcArray< AcGePoint3d, AcArrayMemCopyReallocator< AcGePoint3d > > const &, AcGeTol const &=AcGeContext::gTol)
AcGePoint3d evalCannonPoint(double) const
AcGeImpNurbCurve3d & elevateDegree(int)
void record(wchar_t const *const) const
AcGeImpNurbCurve3d & makePeriodic(void)
AcGeImpSplineEnt3d & setControlPoint(int, AcGePoint3d)
AcGeImpNurbCurve3d & setFitData(AcArray< AcGePoint3d, AcArrayMemCopyReallocator< AcGePoint3d > > const &, AcGeVector3d const &, AcGeVector3d const &, AcGeTol const &=AcGeContext::gTol)
AcGePoint3d evalPntDerivInPowerBasis(double, int, AcGeVector3d *const, double *) const
AcGeImpNurbCurve3d & setEvalMode(int)
virtual int intersectWith(AcGeImpCurve3d const &, AcGeVector3d const &, AcGeCurveIntData &, AcGeTol const &=AcGeContext::gTol) const
AcGeImpNurbCurve3d(AcGeImpNurbCurve3d const &)
virtual int degree(void) const
virtual void evaluate(int, AcGePointOnCurve3dData &, int) const
virtual AcGe::EntityId type(int) const
void setCurrentStorage(void) const
int setFitTangentAt(int, AcGeVector3d const &)
virtual AcGeImpSplineEnt3d & setControlPointAt(int, AcGePoint3d)
AcGeImpNurbCurve3d & joinWith(AcGeImpNurbCurve3d const &)
AcGeImpNurbCurve3d(AcGeImpEllipArc3d const &)
virtual int isEqualTo(AcGeImpEntity3d const &, AcGeTol const &=AcGeContext::gTol) const
virtual void * getExternalEntity(void) const
int getFitTangents(AcGeVector3d &, AcGeVector3d &, int &, int &) const
AcGeImpNurbCurve3d & insertKnot(double, int)
AcGeImpNurbCurve3d & makeOpen(void)
int addFitPointAt(int, AcGePoint3d const &)
AcGeImpNurbCurve3d(int, AcGeKnotVector const &, AcArray< AcGePoint3d, AcArrayMemCopyReallocator< AcGePoint3d > > const &, int)
virtual void getClosestPointTo(AcGePoint3d const &, AcGeImpPointOnCurve3d &, AcGeTol const &=AcGeContext::gTol) const
AcGeImpSplineEnt3d & setWeightAt(int, double)
virtual int setKnots(void)
virtual void getSamplePoints(double, double, double, AcGeImpPointOnCurve3d &, AcArray< AcGePoint3d, AcArrayMemCopyReallocator< AcGePoint3d > > &, AcGeDoubleArray &, AcArray< AcGeVector3d, AcArrayMemCopyReallocator< AcGeVector3d > > *, AcArray< AcGeVector3d, AcArrayMemCopyReallocator< AcGeVector3d > > *) const
virtual AcGeImpBoundBlock3d boundBlock(int, AcGeImpInterval const &, int) const
AcGeImpNurbCurve3d & makeNonPeriodic(void)
int isInterpolating(void) const
int getFitTolerance(AcGeTol &) const
AcGeImpNurbCurve3d(AcGeKnotVector const &, AcArray< AcGePoint3d, AcArrayMemCopyReallocator< AcGePoint3d > > const &, AcArray< AcGeVector3d, AcArrayMemCopyReallocator< AcGeVector3d > > const &, AcGeTol const &, int)
int getFitTangentAt(int, AcGeVector3d &) const
int getParamsOfG1Discontinuity(AcGeDoubleArray &, AcGeTol const &=AcGeContext::gTol) const
AcGeImpNurbCurve3d(AcGeImpPolyline3d const &)
virtual ~AcGeImpNurbCurve3d(void)
int compressFitData(void)
void setFromUnclampedLongFormat(int, AcGeKnotVector const &, AcArray< AcGePoint3d, AcArrayMemCopyReallocator< AcGePoint3d > > const &, AcGeDoubleArray const *)
virtual AcGeImpCurve3d & reverseParam(void)
virtual double paramAtLength(double, double, int, double) const
AcGeImpNurbCurve3d & addKnot(double, int)
virtual AcGeImpCurve3d & setInterval(AcGeImpInterval const &, int)
virtual int isPlanar(AcGeImpPlanarEnt &, AcGeTol const &=AcGeContext::gTol) const
AcGeImpNurbCurve3d(AcGeImpCurve3d const &, double)
virtual int getParamsOfC1Discontinuity(AcGeDoubleArray &, AcGeTol const &=AcGeContext::gTol) const
int numFitPoints(void) const
static ARX_API_STATIC AcGeTol gTol
Definition AcGeContext.h:24
OffsetCrvExtType
Definition AcGe.h:188
EntityId
Definition AcGe.h:84