CFx SDK Documentation 2024 SP0
Loading...
Searching...
No Matches
DbNurbSurface.h
Go to the documentation of this file.
1
2// Copyright (C) 2002-2022, Open Design Alliance (the "Alliance").
3// All rights reserved.
4//
5// This software and its documentation and related materials are owned by
6// the Alliance. The software may only be incorporated into application
7// programs owned by members of the Alliance, subject to a signed
8// Membership Agreement and Supplemental Software License Agreement with the
9// Alliance. The structure and organization of this software are the valuable
10// trade secrets of the Alliance and its suppliers. The software is also
11// protected by copyright law and international treaty provisions. Application
12// programs incorporating this software must include the following statement
13// with their copyright notices:
14//
15// This application incorporates Open Design Alliance software pursuant to a license
16// agreement with Open Design Alliance.
17// Open Design Alliance Copyright (C) 2002-2022 by Open Design Alliance.
18// All rights reserved.
19//
20// By use of this software, its documentation or related materials, you
21// acknowledge and accept the above terms.
23
24
25#ifndef _DbNurbSurface_h_Included_
26#define _DbNurbSurface_h_Included_
27
28#include "TD_PackPush.h"
29#include "DbSurface.h"
30#include "DbCurve.h"
31#include "Ge/GeNurbSurface.h"
32
33class OdGeKnotVector;
34
39
47{
48public:
53 //virtual ~OdDbNurbSurface();
55
81 OdResult get (int& iUDegree, int& iVDegree, bool& bRational, int& iUNumControlPoints, int& iVNumControlPoints,
82 OdGePoint3dArray& ctrlPtsArr, OdGeDoubleArray& weights, OdGeKnotVector& uKnots, OdGeKnotVector& vKnots) const;
83
119 OdResult set (int iUDegree, int iVDegree, bool bRational, int iUNumControlPoints, int iVNumControlPoints,
120 const OdGePoint3dArray& ctrlPtsArr, const OdGeDoubleArray& weights, const OdGeKnotVector& uKnots, const OdGeKnotVector& vKnots);
121
122 //OdDbObject methods
124
125 virtual void dwgOutFields(OdDbDwgFiler* pFiler) const;
126
128
129 virtual void dxfOutFields(OdDbDxfFiler* pFiler) const;
130
131 //virtual OdResult subGetClassID(void* pClsid) const;
132
148 OdResult getControlPoints(int& iUCount, int& iVCount, OdGePoint3dArray& points) const;
149
167 OdResult setControlPoints(int iUCount, int iVCount, const OdGePoint3dArray& points);
168
179 OdResult getControlPointAt(int iUIndex, int iVIndex, OdGePoint3d& point) const;
180
195 OdResult setControlPointAt(int iUIndex, int iVIndex, const OdGePoint3d& point);
196
205
214
223
232
240 OdResult getNumberOfKnotsInU(int& iCount) const;
241
249 OdResult getNumberOfKnotsInV(int& iCount) const;
250
263 OdResult getWeight(int iUIndex, int iVIndex, double& weight ) const;
264
282 OdResult setWeight(int iUIndex, int iVIndex, double weight );
283
299 OdResult evaluate(double dU, double dV, OdGePoint3d& pos) const;
300
319 OdResult evaluate(double dU, double dV, OdGePoint3d& pos, OdGeVector3d& uDeriv, OdGeVector3d& vDeriv) const;
320
341 OdResult evaluate(double dU, double dV, OdGePoint3d& pos, OdGeVector3d& uDeriv, OdGeVector3d& vDeriv,
342 OdGeVector3d& uuDeriv, OdGeVector3d& uvDeriv, OdGeVector3d& vvDeriv) const;
343
361 OdResult evaluate(double dU, double dV, int iDerivDegree, OdGePoint3d& point, OdGeVector3dArray& derivatives) const;
362
370 OdResult getDegreeInU(int& iDegree) const;
371
379 OdResult getDegreeInV(int& iDegree) const;
380
389 OdResult isClosedInU(bool& bIsClosed) const;
390
399 OdResult isClosedInV(bool& bIsClosed) const;
400
409 OdResult isPeriodicInU(bool& bIsPeriodic) const;
410
419 OdResult isPeriodicInV(bool& bIsPeriodic) const;
420
430 OdResult getPeriodInU(double& dPeriod) const;
431
440 OdResult getPeriodInV(double& dPeriod) const;
441
450 OdResult isRational(bool& bIsRational) const;
451
462 OdResult isPlanar(bool& bIsPlanar, OdGePoint3d& ptOnSurface, OdGeVector3d& normal) const;
464
474 OdResult isPointOnSurface(const OdGePoint3d& point, bool& bOnSurface) const;
475
485 OdResult getNormal(double dU, double dV, OdGeVector3d& normal) const;
486
495
504
515 OdResult getIsolineAtU(double dU, OdDbCurvePtrArray& lineSegments) const;
516
530 OdResult getIsolineAtV(double dV, OdDbCurvePtrArray& lineSegments) const;
531
548
565
581 OdResult InsertControlPointsAtU(double dU, const OdGePoint3dArray& vCtrlPts, const OdGeDoubleArray& vWeights);
582
598 OdResult InsertControlPointsAtV(double dV, const OdGePoint3dArray& uCtrlPts, const OdGeDoubleArray& uWeights);
599
614
629
645 OdResult rebuild(int iUDegree, int iVDegree, int iNumUCtrlPts, int iNumVCtrlPts, bool bRestore = false);
646
663 OdResult modifyPositionAndTangent(double dU, double dV, const OdGePoint3d& point, const OdGeVector3d* uDeriv = NULL, const OdGeVector3d* vDeriv = NULL);
664
678 OdResult getParameterOfPoint(const OdGePoint3d& point, double& dU, double& dV) const;
679
689 OdResult convertFrom(OdDbSurface* pSource, OdDb::DwgVersion version, bool transferId = true);
690 // Overridden methods from AcDbEntity
691 //void dragStatus(const AcDb::DragStat status);
692
693};
694
699
700#include "TD_PackPop.h"
701#endif //_DbNurbSurface_h_Included_
#define DBENT_EXPORT
Definition: DbExport.h:67
OdArray< OdDbCurvePtr > OdDbCurvePtrArray
Definition: DbNurbSurface.h:38
OdSmartPtr< OdDbNurbSurface > OdDbNurbSurfacePtr
OdResult
Definition: OdResult.h:29
virtual bool isPlanar() const
OdResult getIsolineAtV(double dV, OdDbCurvePtrArray &lineSegments) const
OdResult getDegreeInV(int &iDegree) const
OdResult getParameterOfPoint(const OdGePoint3d &point, double &dU, double &dV) const
OdResult getNumberOfControlPointsInU(int &iCount) const
OdResult getDegreeInU(int &iDegree) const
ODDB_DECLARE_MEMBERS(OdDbNurbSurface)
OdResult getPeriodInU(double &dPeriod) const
OdResult evaluate(double dU, double dV, OdGePoint3d &pos, OdGeVector3d &uDeriv, OdGeVector3d &vDeriv) const
OdResult setControlPointAt(int iUIndex, int iVIndex, const OdGePoint3d &point)
OdResult getNumberOfControlPointsInV(int &iCount) const
OdResult getNumberOfKnotsInU(int &iCount) const
OdResult getControlPointAt(int iUIndex, int iVIndex, OdGePoint3d &point) const
virtual OdResult dxfInFields(OdDbDxfFiler *pFiler)
OdResult getNormal(double dU, double dV, OdGeVector3d &normal) const
OdResult getNumberOfSpansInU(int &span) const
OdResult getUKnots(OdGeKnotVector &knots) const
OdResult isRational(bool &bIsRational) const
OdResult getIsolineAtU(double dU, OdDbCurvePtrArray &lineSegments) const
OdResult InsertKnotAtU(double dU)
OdResult getPeriodInV(double &dPeriod) const
OdResult isClosedInV(bool &bIsClosed) const
virtual void dxfOutFields(OdDbDxfFiler *pFiler) const
OdResult InsertControlPointsAtV(double dV, const OdGePoint3dArray &uCtrlPts, const OdGeDoubleArray &uWeights)
OdResult getVKnots(OdGeKnotVector &knots) const
OdResult RemoveControlPointsAtU(int iUDegree)
OdResult get(int &iUDegree, int &iVDegree, bool &bRational, int &iUNumControlPoints, int &iVNumControlPoints, OdGePoint3dArray &ctrlPtsArr, OdGeDoubleArray &weights, OdGeKnotVector &uKnots, OdGeKnotVector &vKnots) const
OdResult InsertControlPointsAtU(double dU, const OdGePoint3dArray &vCtrlPts, const OdGeDoubleArray &vWeights)
OdResult isPointOnSurface(const OdGePoint3d &point, bool &bOnSurface) const
virtual void dwgOutFields(OdDbDwgFiler *pFiler) const
OdResult InsertKnotAtV(double dV)
OdResult getWeight(int iUIndex, int iVIndex, double &weight) const
OdResult getNumberOfKnotsInV(int &iCount) const
OdResult evaluate(double dU, double dV, OdGePoint3d &pos, OdGeVector3d &uDeriv, OdGeVector3d &vDeriv, OdGeVector3d &uuDeriv, OdGeVector3d &uvDeriv, OdGeVector3d &vvDeriv) const
OdResult RemoveControlPointsAtV(int iVDegree)
virtual OdResult dwgInFields(OdDbDwgFiler *pFiler)
OdResult isPeriodicInV(bool &bIsPeriodic) const
OdResult isClosedInU(bool &bIsClosed) const
OdResult getControlPoints(int &iUCount, int &iVCount, OdGePoint3dArray &points) const
OdResult modifyPositionAndTangent(double dU, double dV, const OdGePoint3d &point, const OdGeVector3d *uDeriv=NULL, const OdGeVector3d *vDeriv=NULL)
OdResult rebuild(int iUDegree, int iVDegree, int iNumUCtrlPts, int iNumVCtrlPts, bool bRestore=false)
OdResult evaluate(double dU, double dV, OdGePoint3d &pos) const
OdResult isPeriodicInU(bool &bIsPeriodic) const
OdResult set(int iUDegree, int iVDegree, bool bRational, int iUNumControlPoints, int iVNumControlPoints, const OdGePoint3dArray &ctrlPtsArr, const OdGeDoubleArray &weights, const OdGeKnotVector &uKnots, const OdGeKnotVector &vKnots)
OdResult convertFrom(OdDbSurface *pSource, OdDb::DwgVersion version, bool transferId=true)
OdResult setWeight(int iUIndex, int iVIndex, double weight)
OdResult getNumberOfSpansInV(int &span) const
OdResult isPlanar(bool &bIsPlanar, OdGePoint3d &ptOnSurface, OdGeVector3d &normal) const
OdResult evaluate(double dU, double dV, int iDerivDegree, OdGePoint3d &point, OdGeVector3dArray &derivatives) const
OdResult setControlPoints(int iUCount, int iVCount, const OdGePoint3dArray &points)
DwgVersion
Definition: OdaDefs.h:47