27 #ifndef ODDB_DBSPLINE_H
28 #define ODDB_DBSPLINE_H
79 int controlPointIndex,
89 int controlPointIndex,
159 double fitTolerance);
197 double& fitTolerance,
216 double& fitTolerance,
284 double& controlPtTol,
285 double& knotTol)
const;
306 double& controlPtTol)
const;
366 double controlPtTol);
373 int weightIndex)
const;
447 double& param)
const;
450 double& startParam)
const;
453 double& endParam)
const;
500 bool& exchangeXData);
625 double& param)
const = 0;
629 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)
virtual OdResult getOdGeCurve(OdGeCurve3d *&pGeCurve, const OdGeTol &tol=OdGeContext::gTol) const
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 subExplode(OdRxObjectPtrArray &entitySet) const
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 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
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
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)
virtual OdResult getSplitCurves(const OdGeDoubleArray ¶ms, OdRxObjectPtrArray &entitySet) const
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 setFromOdGeCurve(const OdGeCurve3d &geCurve, OdGeVector3d *normal=NULL, const OdGeTol &tol=OdGeContext::gTol)
virtual OdResult getEndPoint(OdGePoint3d &endPoint) const
virtual OdResult dxfInFields(OdDbDxfFiler *pFiler)
ODDB_DECLARE_MEMBERS(OdDbSpline)
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
static GE_STATIC_EXPORT OdGeTol gTol