27#ifndef ODDB_DBSPLINE_H
28#define ODDB_DBSPLINE_H
35static const unsigned int kPlineVerticesThrehold = 10000U;
80 int controlPointIndex,
90 int controlPointIndex,
160 double fitTolerance);
198 double& fitTolerance,
217 double& fitTolerance,
285 double& controlPtTol,
286 double& knotTol)
const;
307 double& controlPtTol)
const;
367 double controlPtTol);
374 int weightIndex)
const;
448 double& param)
const;
451 double& startParam)
const;
454 double& endParam)
const;
490 bool& exchangeXData);
606 int precision = 10,
int* maxSuggestedPrecision = NULL,
607 unsigned int numOfVerticesThreshold = kPlineVerticesThrehold)
const;
642 bool bConvertAsArcs,
bool bToLWPolyline,
643 int precision = 10,
int* maxSuggestedPrecision = NULL,
644 unsigned int numOfVerticesThreshold = kPlineVerticesThrehold)
const;
683 double& param)
const = 0;
687 double& area)
const = 0;
OdSmartPtr< OdDbSpline > OdDbSplinePtr
OdSmartPtr< OdDbSplinePE > OdDbSplinePEPtr
virtual OdResult getSecondDeriv(double param, OdGeVector3d &secondDeriv) const
virtual OdResult getSplitCurves(const OdGeDoubleArray ¶ms, OdRxObjectPtrArray &curveSegments) const
virtual OdResult getFirstDeriv(double param, OdGeVector3d &firstDeriv) const =0
void setFitData(const OdGePoint3dArray &fitPoints, int degree, double fitTolerance, const OdGeVector3d &startTangent, const OdGeVector3d &endTangent, OdGe::OdGeKnotParameterization knotParam)
double weightAt(int weightIndex) const
OdResult setType(SplineType type)
OdResult getFitTangents(OdGeVector3d &startTangent, OdGeVector3d &endTangent) const
bool modifyPositionAndTangent(double param, const OdGePoint3d &point, const OdGeVector3d *deriv)
virtual void dxfOutFields(OdDbDxfFiler *pFiler) const
void setControlPointAt(int controlPointIndex, const OdGePoint3d &point)
void setFitPointAt(int fitPointIndex, const OdGePoint3d &point)
double fitTolerance() const
TD_USING(OdDbCurve::getSecondDeriv)
void setWeightAt(int weightIndex, double weight)
virtual bool subWorldDraw(OdGiWorldDraw *pWd) const
void setNurbsData(int degree, bool rational, bool closed, bool periodic, const OdGePoint3dArray &controlPoints, const OdGeKnotVector &knots, const OdGeDoubleArray &weights, double controlPtTol)
virtual OdResult getSplitCurves(const OdGeDoubleArray ¶ms, OdRxObjectPtrArray &entitySet) const ODRX_OVERRIDE
void getControlPointAt(int controlPointIndex, OdGePoint3d &point) const
virtual OdResult getPointAtParam(double param, OdGePoint3d &pointOnCurve) const
void setCvFrame(bool bVisible)
void elevateDegree(int newDegree)
virtual OdResult reverseCurve()
virtual OdResult getPlane(OdGePlane &plane, OdDb::Planarity &planarity) const
OdDbObjectPtr decomposeForSave(OdDb::DwgVersion ver, OdDbObjectId &replaceId, bool &exchangeXData)
virtual OdResult setFromOdGeCurve(const OdGeCurve3d &geCurve, OdGeVector3d *normal=NULL, const OdGeTol &tol=OdGeContext::gTol) ODRX_OVERRIDE
OdResult toPolyline(OdDbCurve *&pCurve, int precision=10, int *maxSuggestedPrecision=NULL, unsigned int numOfVerticesThreshold=kPlineVerticesThrehold) const
virtual OdResult subGetGeomExtents(OdGeExtents3d &extents) const
TD_USING(OdDbCurve::getFirstDeriv)
void insertKnot(double param)
OdResult insertControlPointAt(double knotParam, const OdGePoint3d &ctrlPt, double weight=1.0)
OdResult getFitPointAt(int fitPointIndex, OdGePoint3d &point) const
virtual OdResult getParamAtDist(double dist, double ¶m) const
virtual OdResult getEndParam(double &endParam) const
virtual OdResult getSecondDeriv(double param, OdGeVector3d &secondDeriv) const
virtual OdResult subTransformBy(const OdGeMatrix3d &xfm)
virtual OdResult dwgInFields(OdDbDwgFiler *pFiler)
void removeFitPointAt(int fitPointIndex)
void setFitTangents(const OdGeVector3d &startTangent, const OdGeVector3d &endTangent)
TD_USING(OdDbCurve::getSplitCurves)
OdResult getFitData(OdGePoint3dArray &fitPoints, int °ree, double &fitTolerance, bool &tangentsExist, OdGeVector3d &startTangent, OdGeVector3d &endTangent, OdGe::OdGeKnotParameterization &knotParam) const
void setFitTol(double fitTolerance)
void setFitData(const OdGePoint3dArray &fitPoints, int degree, double fitTolerance, const OdGeVector3d &startTangent, const OdGeVector3d &endTangent)
virtual bool isPlanar() const
void getNurbsData(int °ree, bool &rational, bool &closed, bool &periodic, OdGePoint3dArray &controlPoints, OdGeDoubleArray &knots, OdGeDoubleArray &weights, double &controlPtTol, double &knotTol) const
void getNurbsData(int °ree, bool &rational, bool &closed, bool &periodic, OdGePoint3dArray &controlPoints, OdGeKnotVector &knots, OdGeDoubleArray &weights, double &controlPtTol) const
virtual OdResult getStartPoint(OdGePoint3d &startPoint) const
DWGMAP_DECLARE_MEMBERS(OdDbSpline)
OdResult removeControlPointAt(int index)
OdResult getFitData(OdGePoint3dArray &fitPoints, int °ree, double &fitTolerance, bool &tangentsExist, OdGeVector3d &startTangent, OdGeVector3d &endTangent) const
virtual OdResult getArea(double &area) const
virtual OdResult getDistAtParam(double param, double &dist) const
OdResult toPolyline(OdDbCurve *&pCurve, bool bConvertAsArcs, bool bToLWPolyline, int precision=10, int *maxSuggestedPrecision=NULL, unsigned int numOfVerticesThreshold=kPlineVerticesThrehold) const
virtual OdResult getStartParam(double &startParam) const
int numControlPoints() const
virtual OdResult getFirstDeriv(double param, OdGeVector3d &firstDeriv) const
void setNurbsData(int degree, bool rational, bool closed, bool periodic, const OdGePoint3dArray &controlPoints, const OdGeDoubleArray &knots, const OdGeDoubleArray &weights, double controlPtTol, double knotTol)
void insertFitPointAt(int fitPointIndex, const OdGePoint3d &point)
virtual OdResult subGetClassID(void *pClsid) const
virtual OdResult getParamAtPoint(const OdGePoint3d &pointOnCurve, double ¶m) const
virtual void dwgOutFields(OdDbDwgFiler *pFiler) const
virtual OdResult getEndPoint(OdGePoint3d &endPoint) const
virtual OdResult subExplode(OdRxObjectPtrArray &entitySet) const ODRX_OVERRIDE
virtual OdResult dxfInFields(OdDbDxfFiler *pFiler)
virtual OdResult getOdGeCurve(OdGeCurve3d *&pGeCurve, const OdGeTol &tol=OdGeContext::gTol) const ODRX_OVERRIDE
virtual OdResult getArea(const OdDbCurve *pCurve, double &area) const =0
ODRX_DECLARE_MEMBERS(OdDbSplinePE)
virtual OdResult getParamAtPoint(const OdDbCurve *pCurve, const OdGePoint3d &pointOnCurve, double ¶m) const =0
GLuint GLsizei GLsizei GLint GLenum * type
GLenum GLint GLint * precision
static GE_STATIC_EXPORT OdGeTol gTol