CFx SDK Documentation  2022 SP0
Public Member Functions | Static Public Member Functions | List of all members
OdDbNurbSurface Class Reference

#include <DbNurbSurface.h>

Inheritance diagram for OdDbNurbSurface:
OdDbSurface OdDbEntity OdDbObject OdGiDrawable OdRxObject

Public Member Functions

 OdDbNurbSurface ()
 
 ODDB_DECLARE_MEMBERS (OdDbNurbSurface)
 
OdResult get (int &iUDegree, int &iVDegree, bool &bRational, int &iUNumControlPoints, int &iVNumControlPoints, OdGePoint3dArray &ctrlPtsArr, OdGeDoubleArray &weights, OdGeKnotVector &uKnots, OdGeKnotVector &vKnots) 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)
 
virtual OdResult dwgInFields (OdDbDwgFiler *pFiler)
 
virtual void dwgOutFields (OdDbDwgFiler *pFiler) const
 
virtual OdResult dxfInFields (OdDbDxfFiler *pFiler)
 
virtual void dxfOutFields (OdDbDxfFiler *pFiler) const
 
OdResult getControlPoints (int &iUCount, int &iVCount, OdGePoint3dArray &points) const
 
OdResult setControlPoints (int iUCount, int iVCount, const OdGePoint3dArray &points)
 
OdResult getControlPointAt (int iUIndex, int iVIndex, OdGePoint3d &point) const
 
OdResult setControlPointAt (int iUIndex, int iVIndex, const OdGePoint3d &point)
 
OdResult getNumberOfControlPointsInU (int &iCount) const
 
OdResult getNumberOfControlPointsInV (int &iCount) const
 
OdResult getUKnots (OdGeKnotVector &knots) const
 
OdResult getVKnots (OdGeKnotVector &knots) const
 
OdResult getNumberOfKnotsInU (int &iCount) const
 
OdResult getNumberOfKnotsInV (int &iCount) const
 
OdResult getWeight (int iUIndex, int iVIndex, double &weight) const
 
OdResult setWeight (int iUIndex, int iVIndex, double weight)
 
OdResult evaluate (double dU, double dV, OdGePoint3d &pos) const
 
OdResult evaluate (double dU, double dV, OdGePoint3d &pos, OdGeVector3d &uDeriv, OdGeVector3d &vDeriv) const
 
OdResult evaluate (double dU, double dV, OdGePoint3d &pos, OdGeVector3d &uDeriv, OdGeVector3d &vDeriv, OdGeVector3d &uuDeriv, OdGeVector3d &uvDeriv, OdGeVector3d &vvDeriv) const
 
OdResult evaluate (double dU, double dV, int iDerivDegree, OdGePoint3d &point, OdGeVector3dArray &derivatives) const
 
OdResult getDegreeInU (int &iDegree) const
 
OdResult getDegreeInV (int &iDegree) const
 
OdResult isClosedInU (bool &bIsClosed) const
 
OdResult isClosedInV (bool &bIsClosed) const
 
OdResult isPeriodicInU (bool &bIsPeriodic) const
 
OdResult isPeriodicInV (bool &bIsPeriodic) const
 
OdResult getPeriodInU (double &dPeriod) const
 
OdResult getPeriodInV (double &dPeriod) const
 
OdResult isRational (bool &bIsRational) const
 
OdResult isPlanar (bool &bIsPlanar, OdGePoint3d &ptOnSurface, OdGeVector3d &normal) const
 
OdResult isPointOnSurface (const OdGePoint3d &point, bool &bOnSurface) const
 
OdResult getNormal (double dU, double dV, OdGeVector3d &normal) const
 
OdResult getNumberOfSpansInU (int &span) const
 
OdResult getNumberOfSpansInV (int &span) const
 
OdResult getIsolineAtU (double dU, OdDbCurvePtrArray &lineSegments) const
 
OdResult getIsolineAtV (double dV, OdDbCurvePtrArray &lineSegments) const
 
OdResult InsertKnotAtU (double dU)
 
OdResult InsertKnotAtV (double dV)
 
OdResult InsertControlPointsAtU (double dU, const OdGePoint3dArray &vCtrlPts, const OdGeDoubleArray &vWeights)
 
OdResult InsertControlPointsAtV (double dV, const OdGePoint3dArray &uCtrlPts, const OdGeDoubleArray &uWeights)
 
OdResult RemoveControlPointsAtU (int iUDegree)
 
OdResult RemoveControlPointsAtV (int iVDegree)
 
OdResult rebuild (int iUDegree, int iVDegree, int iNumUCtrlPts, int iNumVCtrlPts, bool bRestore=false)
 
OdResult modifyPositionAndTangent (double dU, double dV, const OdGePoint3d &point, const OdGeVector3d *uDeriv=NULL, const OdGeVector3d *vDeriv=NULL)
 
OdResult getParameterOfPoint (const OdGePoint3d &point, double &dU, double &dV) const
 
OdResult convertFrom (OdDbSurface *pSource, OdDb::DwgVersion version, bool transferId=true)
 
- Public Member Functions inherited from OdDbSurface
 OdDbSurface ()
 
 ODDB_DECLARE_MEMBERS (OdDbSurface)
 
virtual OdUInt16 uIsolineDensity () const
 
virtual void setUIsolineDensity (OdUInt16 numIsolines)
 
virtual OdUInt16 vIsolineDensity () const
 
virtual void setVIsolineDensity (OdUInt16 numIsolines)
 
virtual OdResult convertToRegion (OdDbEntityPtrArray &regions)
 
virtual OdResult thicken (double thickness, bool bBothSides, OdDb3dSolidPtr &pSolid) const
 
virtual OdResult getArea (double &area) const
 
bool isNull () const
 
OdResult acisOut (OdStreamBuf *pStreamBuf, AfTypeVer typeVer=kAfTypeVerAny)
 
OdResult acisIn (OdStreamBuf *pStreamBuf, AfTypeVer *pTypeVer=0)
 
void brep (OdBrBrep &brep)
 
virtual OdDbObjectPtr decomposeForSave (OdDb::DwgVersion ver, OdDbObjectId &replaceId, bool &exchangeXData)
 
virtual OdResult subExplode (OdRxObjectPtrArray &entitySet) const
 
virtual OdResult subTransformBy (const OdGeMatrix3d &xfm)
 
virtual OdResult setBody (const void *pGeometry)
 
virtual voidbody () const
 
virtual bool subWorldDraw (OdGiWorldDraw *pWd) const
 
virtual OdResult subGetClassID (void *pClsid) const
 
virtual OdDbSubentId internalSubentId (void *ent) const
 
virtual voidinternalSubentPtr (const OdDbSubentId &id) const
 
virtual OdDbEntityPtr subSubentPtr (const OdDbFullSubentPath &id) const
 
virtual OdResult createInterferenceObjects (OdDbEntityPtrArray &interferenceObjects, OdDbEntityPtr pEntity, unsigned int flags) const
 
virtual OdResult booleanUnion (const OdDbSurfacePtr pSurface, OdDbSurfacePtr &pNewSurface)
 
virtual OdResult booleanSubtract (const OdDbSurfacePtr pSurface, OdDbSurfacePtr &pNewSurface)
 
virtual OdResult booleanSubtract (const OdDb3dSolidPtr pSolid, OdDbSurfacePtr &pNewSurface)
 
virtual OdResult booleanIntersect (const OdDbSurfacePtr pSurface2, OdDbEntityPtrArray &intersectionEntities)
 
virtual OdResult booleanIntersect (const OdDb3dSolidPtr pSolid, OdDbEntityPtrArray &intersectionEntities)
 
virtual OdResult imprintEntity (const OdDbEntityPtr pEntity)
 
virtual OdResult createSectionObjects (const OdGePlane &sectionPlane, OdDbEntityPtrArray &sectionObjects) const
 
virtual OdResult sliceByPlane (const OdGePlane &slicePlane, OdDbSurfacePtr &pNegHalfSurface, OdDbSurfacePtr &pNewSurface)
 
virtual OdResult sliceBySurface (const OdDbSurfacePtr pSlicingSurface, OdDbSurfacePtr &pNegHalfSurface, OdDbSurfacePtr &pNewSurface)
 
virtual OdResult chamferEdges (const OdArray< OdDbSubentId * > &edgeSubentIds, const OdDbSubentId &baseFaceSubentId, double baseDist, double otherDist)
 
virtual OdResult filletEdges (const OdArray< OdDbSubentId * > &edgeSubentIds, const OdGeDoubleArray &radius, const OdGeDoubleArray &startSetback, const OdGeDoubleArray &endSetback)
 
virtual OdResult setSubentColor (const OdDbSubentId &subentId, const OdCmColor &color)
 
virtual OdResult getSubentColor (const OdDbSubentId &subentId, OdCmColor &color) const
 
virtual OdResult setSubentMaterial (const OdDbSubentId &subentId, const OdDbObjectId &matId)
 
virtual OdResult getSubentMaterial (const OdDbSubentId &subentId, OdDbObjectId &matId) const
 
virtual OdResult setSubentMaterialMapper (const OdDbSubentId &subentId, const OdGiMapper &mapper)
 
virtual OdResult getSubentMaterialMapper (const OdDbSubentId &subentId, OdGiMapper &mapper) const
 
virtual OdResult subGetGsMarkersAtSubentPath (const OdDbFullSubentPath &subPath, OdGsMarkerArray &gsMarkers) const
 
virtual OdResult subGetSubentPathsAtGsMarker (OdDb::SubentType type, OdGsMarker gsMark, const OdGePoint3d &pickPoint, const OdGeMatrix3d &viewXform, OdDbFullSubentPathArray &subentPaths, const OdDbObjectIdArray *pEntAndInsertStack=0) const
 
virtual OdResult subGetTransformedCopy (const OdGeMatrix3d &mat, OdDbEntityPtr &pCopy) const
 
virtual OdResult convertToNurbSurface (OdDbNurbSurfaceArray &nurbSurfaceArray)
 
virtual OdUInt32 subSetAttributes (OdGiDrawableTraits *pTraits) const
 
OdResult projectOnToSurface (const OdDbEntity *pEntityToProject, const OdGeVector3d &projectionDirection, OdDbEntityPtrArray &projectedEntities) const
 
OdResult getPerimeter (double &) const
 
OdResult rayTest (const OdGePoint3d &rayBasePoint, const OdGeVector3d &rayDir, double rayRadius, OdArray< OdDbSubentId > &subEntIds, OdGeDoubleArray &parameters) const
 
OdResult extendEdges (OdDbFullSubentPathArray &edgesId, double dExtDist, EdgeExtensionType extOption, bool bAssociativeEnabled)
 
virtual OdResult subGetGeomExtents (OdGeExtents3d &extents) const
 
- Public Member Functions inherited from OdDbEntity
 ODDB_DECLARE_MEMBERS (OdDbEntity)
 
 OdDbEntity ()
 
OdDbObjectId blockId () const
 
OdCmColor color () const
 
virtual OdResult setColor (const OdCmColor &color, bool doSubents=true)
 
OdUInt16 colorIndex () const
 
virtual OdCmEntityColor entityColor () const
 
virtual OdResult setColorIndex (OdUInt16 colorIndex, bool doSubents=true)
 
OdDbObjectId colorId () const
 
virtual OdResult setColorId (OdDbObjectId colorId, bool doSubents=true)
 
OdCmTransparency transparency () const
 
virtual OdResult setTransparency (const OdCmTransparency &transparency, bool doSubents=true)
 
OdString plotStyleName () const
 
OdDb::PlotStyleNameType getPlotStyleNameId (OdDbObjectId &plotStyleNameId) const
 
virtual OdResult setPlotStyleName (const OdString &plotStyleName, bool doSubents=true)
 
virtual OdResult setPlotStyleName (OdDb::PlotStyleNameType plotStyleNameType, OdDbObjectId plotStyleNameId=OdDbObjectId::kNull, bool doSubents=true)
 
OdString layer () const
 
OdDbObjectId layerId () const
 
virtual OdResult setLayer (const OdString &layerName, bool doSubents=true, bool allowHiddenLayer=false)
 
virtual OdResult setLayer (OdDbObjectId layerId, bool doSubents=true, bool allowHiddenLayer=false)
 
OdString linetype () const
 
OdDbObjectId linetypeId () const
 
virtual OdResult setLinetype (const OdString &linetypeName, bool doSubents=true)
 
virtual OdResult setLinetype (OdDbObjectId linetypeID, bool doSubents=true)
 
OdString material () const
 
OdDbObjectId materialId () const
 
virtual OdResult setMaterial (const OdString &materialName, bool doSubents=true)
 
virtual OdResult setMaterial (OdDbObjectId materialID, bool doSubents=true)
 
OdDbObjectId visualStyleId (VisualStyleType vstype=kFullVisualStyle) const
 
virtual OdResult setVisualStyle (OdDbObjectId visualStyleId, VisualStyleType vstype=kFullVisualStyle, bool doSubents=true)
 
virtual const OdGiMappermaterialMapper () const
 
virtual void setMaterialMapper (const OdGiMapper *mapper, bool doSubents=true)
 
double linetypeScale () const
 
virtual OdResult setLinetypeScale (double linetypeScale, bool doSubents=true)
 
OdDb::Visibility visibility () const
 
ODRX_SEALED_VIRTUAL OdResult setVisibility (OdDb::Visibility visibility, bool doSubents=true) ODRX_SEALED
 
OdDb::Visibility tempVisibility () const
 
void setTempVisibility (OdDb::Visibility visibility)
 
OdDb::LineWeight lineWeight () const
 
virtual OdResult setLineWeight (OdDb::LineWeight lineWeight, bool doSubents=true)
 
virtual bool castShadows () const
 
virtual void setCastShadows (bool castShadows)
 
virtual bool receiveShadows () const
 
virtual void setReceiveShadows (bool receiveShadows)
 
virtual OdDb::CollisionType collisionType () const
 
void setPropertiesFrom (const OdDbEntity *pSource, bool doSubents=true)
 
virtual bool isPlanar () const
 
virtual OdResult getPlane (OdGePlane &plane, OdDb::Planarity &planarity) const
 
void subHandOverTo (OdDbObject *pNewObject)
 
ODRX_SEALED_VIRTUAL OdResult transformBy (const OdGeMatrix3d &xfm) ODRX_SEALED
 
ODRX_SEALED_VIRTUAL OdResult getTransformedCopy (const OdGeMatrix3d &xfm, OdDbEntityPtr &pCopy) const ODRX_SEALED
 
ODRX_SEALED_VIRTUAL OdResult explode (OdRxObjectPtrArray &entitySet) const ODRX_SEALED
 
virtual OdResult explodeToBlock (OdDbBlockTableRecord *pBlockRecord, OdDbObjectIdArray *ids=0)
 
virtual OdResult explodeGeometry (OdRxObjectPtrArray &entitySet) const
 
virtual OdResult explodeGeometryToBlock (OdDbBlockTableRecord *pBlockRecord, OdDbObjectIdArray *ids=0)
 
virtual void subViewportDraw (OdGiViewportDraw *pVd) const
 
void setDatabaseDefaults (OdDbDatabase *pDb=0, bool doSubents=false)
 
virtual void subSetDatabaseDefaults (OdDbDatabase *pDb, bool doSubents)
 
virtual void applyPartialUndo (OdDbDwgFiler *pUndoFiler, OdRxClass *pClassObj)
 
void appendToOwner (OdDbIdPair &idPair, OdDbObject *pOwnerObject, OdDbIdMapping &ownerIdMap)
 
virtual OdResult dxfIn (OdDbDxfFiler *pFiler)
 
virtual void dxfOut (OdDbDxfFiler *pFiler) const
 
virtual OdResult dxfInFields_R12 (OdDbDxfFiler *pFiler)
 
virtual void dxfOutFields_R12 (OdDbDxfFiler *pFiler) const
 
virtual OdGiDrawabledrawable ()
 
virtual void subList () const
 
void subSwapIdWith (const OdDbObjectId &otherId, bool swapXdata=false, bool swapExtDict=false)
 
virtual OdResult subErase (bool erasing) ODRX_OVERRIDE
 
void recordGraphicsModified (bool graphicsModified=true)
 
virtual void copyFrom (const OdRxObject *pSource)
 
ODRX_SEALED_VIRTUAL void list () const ODRX_SEALED
 
virtual OdResult getGeomExtents (OdGeExtents3d &extents) const ODRX_SEALED
 
ODRX_SEALED_VIRTUAL void highlight (bool bDoIt=true, const OdDbFullSubentPath *pSubId=0, bool highlightAll=false) const ODRX_SEALED
 
ODRX_SEALED_VIRTUAL OdResult getOsnapPoints (OdDb::OsnapMode osnapMode, OdGsMarker gsSelectionMark, const OdGePoint3d &pickPoint, const OdGePoint3d &lastPoint, const OdGeMatrix3d &xWorldToEye, OdGePoint3dArray &snapPoints) const ODRX_SEALED
 
ODRX_SEALED_VIRTUAL OdResult getOsnapPoints (OdDb::OsnapMode osnapMode, OdGsMarker gsSelectionMark, const OdGePoint3d &pickPoint, const OdGePoint3d &lastPoint, const OdGeMatrix3d &xWorldToEye, OdGePoint3dArray &snapPoints, const OdGeMatrix3d &insertionMat) const ODRX_SEALED
 
ODRX_SEALED_VIRTUAL bool isContentSnappable () const ODRX_SEALED
 
ODRX_SEALED_VIRTUAL OdResult getGripPoints (OdGePoint3dArray &gripPoints) const ODRX_SEALED
 
ODRX_SEALED_VIRTUAL OdResult moveGripPointsAt (const OdIntArray &indices, const OdGeVector3d &offset) ODRX_SEALED
 
ODRX_SEALED_VIRTUAL OdResult getGripPoints (OdDbGripDataPtrArray &grips, const double curViewUnitSize, const int gripSize, const OdGeVector3d &curViewDir, const int bitFlags) const ODRX_SEALED
 
ODRX_SEALED_VIRTUAL OdResult moveGripPointsAt (const OdDbVoidPtrArray &grips, const OdGeVector3d &offset, int bitFlags) ODRX_SEALED
 
ODRX_SEALED_VIRTUAL OdResult getStretchPoints (OdGePoint3dArray &stretchPoints) const ODRX_SEALED
 
ODRX_SEALED_VIRTUAL OdResult moveStretchPointsAt (const OdIntArray &indices, const OdGeVector3d &offset) ODRX_SEALED
 
virtual void dragStatus (const OdDb::DragStat status)
 
ODRX_SEALED_VIRTUAL void gripStatus (const OdDb::GripStat status) ODRX_SEALED
 
ODRX_SEALED_VIRTUAL bool cloneMeForDragging () ODRX_SEALED
 
ODRX_SEALED_VIRTUAL bool hideMeForDragging () const ODRX_SEALED
 
virtual void saveAs (OdGiWorldDraw *pWd, OdDb::DwgVersion ver) const
 
ODRX_SEALED_VIRTUAL OdResult getCompoundObjectTransform (OdGeMatrix3d &xM) const ODRX_SEALED
 
ODRX_SEALED_VIRTUAL OdResult intersectWith (const OdDbEntity *pEnt, OdDb::Intersect intType, OdGePoint3dArray &points, OdGsMarker thisGsMarker=0, OdGsMarker otherGsMarker=0) const ODRX_SEALED
 
ODRX_SEALED_VIRTUAL OdResult intersectWith (const OdDbEntity *pEnt, OdDb::Intersect intType, const OdGePlane &projPlane, OdGePoint3dArray &points, OdGsMarker thisGsMarker=0, OdGsMarker otherGsMarker=0) const ODRX_SEALED
 
OdResult boundingBoxIntersectWith (const OdDbEntity *pEnt, OdDb::Intersect intType, OdGePoint3dArray &points, OdGsMarker thisGsMarker, OdGsMarker otherGsMarker) const
 
OdResult boundingBoxIntersectWith (const OdDbEntity *pEnt, OdDb::Intersect intType, const OdGePlane &projPlane, OdGePoint3dArray &points, OdGsMarker thisGsMarker, OdGsMarker otherGsMarker) const
 
ODRX_SEALED_VIRTUAL OdResult getSubentPathsAtGsMarker (OdDb::SubentType type, OdGsMarker gsMark, const OdGePoint3d &pickPoint, const OdGeMatrix3d &xfm, OdDbFullSubentPathArray &subentPaths, const OdDbObjectIdArray *pEntAndInsertStack=0) const ODRX_SEALED
 
ODRX_SEALED_VIRTUAL OdResult getGsMarkersAtSubentPath (const OdDbFullSubentPath &subPath, OdGsMarkerArray &gsMarkers) const ODRX_SEALED
 
ODRX_SEALED_VIRTUAL OdResult getGripPointsAtSubentPath (const OdDbFullSubentPath &path, OdDbGripDataPtrArray &grips, const double curViewUnitSize, const int gripSize, const OdGeVector3d &curViewDir, const OdUInt32 bitflags) const ODRX_SEALED
 
ODRX_SEALED_VIRTUAL OdResult moveGripPointsAtSubentPaths (const OdDbFullSubentPathArray &paths, const OdDbVoidPtrArray &gripAppData, const OdGeVector3d &offset, const OdUInt32 bitflags) ODRX_SEALED
 
ODRX_SEALED_VIRTUAL OdResult deleteSubentPaths (const OdDbFullSubentPathArray &paths) ODRX_SEALED
 
ODRX_SEALED_VIRTUAL OdResult addSubentPaths (const OdDbFullSubentPathArray &paths) ODRX_SEALED
 
ODRX_SEALED_VIRTUAL OdDbEntityPtr subentPtr (const OdDbFullSubentPath &path) const ODRX_SEALED
 
ODRX_SEALED_VIRTUAL OdResult transformSubentPathsBy (const OdDbFullSubentPathArray &paths, const OdGeMatrix3d &xform) ODRX_SEALED
 
ODRX_SEALED_VIRTUAL OdResult getSubentClassId (const OdDbFullSubentPath &path, void *clsId) ODRX_SEALED
 
ODRX_SEALED_VIRTUAL OdResult getSubentPathGeomExtents (const OdDbFullSubentPath &path, OdGeExtents3d &extents) ODRX_SEALED
 
ODRX_SEALED_VIRTUAL void subentGripStatus (OdDb::GripStat status, const OdDbFullSubentPath &subentity) ODRX_SEALED
 
virtual OdGeMatrix3d getEcs () const
 
- Public Member Functions inherited from OdDbObject
 ODDB_DECLARE_MEMBERS (OdDbObject)
 
 ~OdDbObject ()
 
void addRef ()
 
void release ()
 
long numRefs () const
 
OdDbObjectId objectId () const
 
OdDbHandle getDbHandle () const
 
OdDbHandle handle () const
 
OdDbObjectId ownerId () const
 
virtual void setOwnerId (OdDbObjectId ownerId)
 
OdDbDatabasedatabase () const
 
void createExtensionDictionary ()
 
OdDbObjectId extensionDictionary () const
 
bool releaseExtensionDictionary ()
 
OdDbXrecordPtr createXrecord (const OdString &xrecordName, OdDb::DuplicateRecordCloning style=OdDb::kDrcIgnore)
 
void upgradeOpen ()
 
void downgradeOpen ()
 
void cancel ()
 
virtual OdResult subOpen (OdDb::OpenMode mode)
 
virtual void subClose ()
 
OdResult erase (bool eraseIt=true)
 
void handOverTo (OdDbObject *pNewObject, bool keepXData=true, bool keepExtDict=true)
 
void swapIdWith (OdDbObjectId otherId, bool swapXdata=false, bool swapExtDict=false)
 
virtual void audit (OdDbAuditInfo *pAuditInfo)
 
void dwgIn (OdDbDwgFiler *pFiler)
 
void dwgOut (OdDbDwgFiler *pFiler) const
 
virtual OdDb::DuplicateRecordCloning mergeStyle () const
 
virtual OdResBufPtr xData (const OdString &regappName=OdString::kEmpty) const
 
virtual void setXData (const OdResBuf *pRb)
 
bool isEraseStatusToggled () const
 
bool isErased () const
 
bool isReadEnabled () const
 
bool isWriteEnabled () const
 
bool isNotifyEnabled () const
 
bool isModified () const
 
bool isModifiedXData () const
 
bool isModifiedGraphics () const
 
bool isNewObject () const
 
bool isNotifying () const
 
bool isUndoing () const
 
bool isReallyClosing () const
 
bool isDBRO () const
 
void assertReadEnabled () const
 
void assertWriteEnabled (bool autoUndo=true, bool recordModified=true)
 
void assertNotifyEnabled () const
 
void disableUndoRecording (bool disable)
 
bool isUndoRecordingDisabled () const
 
OdDbDwgFilerundoFiler ()
 
void addReactor (OdDbObjectReactor *pReactor) const
 
void removeReactor (OdDbObjectReactor *pReactor) const
 
virtual void addPersistentReactor (const OdDbObjectId &objId)
 
virtual void removePersistentReactor (const OdDbObjectId &objId)
 
bool hasPersistentReactor (const OdDbObjectId &objId) const
 
OdDbObjectIdArray getPersistentReactors () const
 
OdDbObjectReactorArray getTransientReactors () const
 
virtual void recvPropagateModify (const OdDbObject *pSubObj)
 
virtual void xmitPropagateModify () const
 
ODRX_SEALED_VIRTUAL OdDbObjectPtr deepClone (OdDbIdMapping &ownerIdMap, OdDbObject *pOwner, bool bPrimary=true) const ODRX_SEALED
 
ODRX_SEALED_VIRTUAL OdDbObjectPtr wblockClone (OdDbIdMapping &ownerIdMap, OdDbObject *pOwner, bool bPrimary=true) const ODRX_SEALED
 
void setOdDbObjectIdsInFlux ()
 
bool isOdDbObjectIdsInFlux () const
 
virtual void copied (const OdDbObject *pObject, const OdDbObject *pNewObject)
 
virtual void erased (const OdDbObject *pObject, bool erasing=true)
 
virtual void goodbye (const OdDbObject *pObject)
 
virtual void openedForModify (const OdDbObject *pObject)
 
virtual void modified (const OdDbObject *pObject)
 
virtual void subObjModified (const OdDbObject *pObject, const OdDbObject *pSubObj)
 
virtual void modifyUndone (const OdDbObject *pObject)
 
virtual void modifiedXData (const OdDbObject *pObject)
 
virtual void unappended (const OdDbObject *pObject)
 
virtual void reappended (const OdDbObject *pObject)
 
bool isAProxy () const
 
virtual void objectClosed (const OdDbObjectId &objectId)
 
virtual void modifiedGraphics (const OdDbObject *pObject)
 
bool hasSaveVersionOverride () const
 
void setHasSaveVersionOverride (bool hasSaveVersionOverride)
 
virtual OdDb::DwgVersion getObjectSaveVersion (const OdDbFiler *pFiler, OdDb::MaintReleaseVer *pMaintVer=0) const
 
virtual OdDbObjectPtr decomposeForSave (OdDb::SaveType format, OdDb::DwgVersion ver, OdDbObjectId &replaceId, bool &exchangeXData)
 
void convertForSave (OdDb::DwgVersion ver)
 
virtual void composeForLoad (OdDb::SaveType format, OdDb::DwgVersion version, OdDbAuditInfo *pAuditInfo)
 
virtual bool isPersistent () const
 
virtual OdDbStub * id () const
 
ODRX_SEALED_VIRTUAL OdResult getClassID (void *pClsid) const ODRX_SEALED
 
void setGsNode (OdGsCache *pNode)
 
OdGsCachegsNode () const
 
void xDataTransformBy (const OdGeMatrix3d &xfm)
 
bool hasFields () const
 
OdDbObjectId getField (const OdString &fieldName) const
 
OdDbObjectPtr getField (const OdString &fieldName, OdDb::OpenMode mode) const
 
virtual OdDbObjectId setField (const OdString &fieldName, OdDbField *pField)
 
virtual OdResult removeField (OdDbObjectId fieldId)
 
virtual OdDbObjectId removeField (const OdString &fieldName)
 
OdDbObjectId getFieldDictionary () const
 
OdDbObjectPtr getFieldDictionary (OdDb::OpenMode mode) const
 
virtual OdRxClasssaveAsClass (OdRxClass *pClass) const
 
- Public Member Functions inherited from OdGiDrawable
 ODRX_DECLARE_MEMBERS (OdGiDrawable)
 
virtual DrawableType drawableType () const
 
ODRX_SEALED_VIRTUAL OdUInt32 setAttributes (OdGiDrawableTraits *pTraits) const ODRX_SEALED
 
ODRX_SEALED_VIRTUAL bool worldDraw (OdGiWorldDraw *pWd) const ODRX_SEALED
 
ODRX_SEALED_VIRTUAL void viewportDraw (OdGiViewportDraw *pVd) const ODRX_SEALED
 
ODRX_SEALED_VIRTUAL OdUInt32 viewportDrawLogicalFlags (OdGiViewportDraw *pVd) const ODRX_SEALED
 
ODRX_SEALED_VIRTUAL OdUInt32 regenSupportFlags () const ODRX_SEALED
 
- Public Member Functions inherited from OdRxObject
 ODRX_HEAP_OPERATORS ()
 
 OdRxObject ()
 
virtual ~OdRxObject ()
 
virtual OdRxObjectqueryX (const OdRxClass *pClass) const
 
virtual OdRxObjectx (const OdRxClass *pClass) const
 
virtual OdRxClassisA () const
 
bool isKindOf (const OdRxClass *pClass) const
 
virtual OdRxObjectPtr clone () const
 
virtual OdRx::Ordering comparedTo (const OdRxObject *pOther) const
 
virtual bool isEqualTo (const OdRxObject *pOther) const
 

Static Public Member Functions

static OdResult createNurbSurface (const OdGeNurbSurface &surface, const OdArray< OdArray< OdGeNurbCurve3d * > > &arrLoopsPtr, const OdArray< OdGePoint3d > *arrApex, const OdArray< OdArray< OdGeNurbCurve2d * > > &arrLoopsProjPtr, OdDbNurbSurface &NURBS, bool bVaidateInput=true)
 
- Static Public Member Functions inherited from OdDbSurface
static OdResult createFrom (const OdDbEntity *pFromEntity, OdDbSurfacePtr &pNewSurface)
 
static OdResult trimSurface (const OdDbObjectId &blankSurfaceId, const OdDbObjectIdArray &toolIds, const OdDbObjectIdArray &toolCurveIds, const OdGeVector3dArray &projVectors, const OdGePoint3d &pickPoint, const OdGeVector3d &viewVector, bool bAutoExtend, bool bAssociativeEnabled)
 
static OdResult createOffsetSurface (OdDbEntity *pInputSurface, double dOffsetDistance, OdDbEntityPtr &offsetSurface)
 
static OdResult createOffsetSurface (OdDbEntity *pInputSurface, double dOffsetDistance, bool bAssociativeEnabled, OdDbObjectId &offsetSurfaceId)
 
static OdResult createFilletSurface (const OdDbObjectId &surfId1, const OdGePoint3d &pickPt1, const OdDbObjectId &surfId2, const OdGePoint3d &pickPt2, double dRadius, OdDb::FilletTrimMode trimMode, const OdGeVector3d &projDir, OdDbSurface *&filletSurface)
 
static OdResult createFilletSurface (const OdDbObjectId &surfId1, const OdGePoint3d &pickPt1, const OdDbObjectId &surfId2, const OdGePoint3d &pickPt2, double dRadius, OdDb::FilletTrimMode trimMode, const OdGeVector3d &projDir, bool bAssociativeEnabled, OdDbObjectId &filletSurfaceId)
 
static OdResult createExtendSurface (OdDbObjectId sourceSurface, const OdArray< OdDbSubentId > &edgesId, double dExtDist, EdgeExtensionType extOption, bool bAssociativeEnabled, OdDbObjectId &newExtendSurfaceId)
 
- Static Public Member Functions inherited from OdRxObject
static OdRxObjectPtr cast (const OdRxObject *pointer)
 
static OdRxClassdesc ()
 

Additional Inherited Members

- Public Types inherited from OdDbEntity
enum  VisualStyleType { kFullVisualStyle , kFaceVisualStyle , kEdgeVisualStyle }
 
- Public Types inherited from OdGiDrawable
enum  SetAttributesFlags {
  kDrawableNone = 0 , kDrawableIsAnEntity = 1 , kDrawableUsesNesting = 2 , kDrawableIsCompoundObject = 4 ,
  kDrawableViewIndependentViewportDraw = 8 , kDrawableIsInvisible = 16 , kDrawableHasAttributes = 32 , kDrawableRegenTypeDependantGeometry = 64 ,
  kDrawableIsDimension = (kDrawableIsAnEntity + kDrawableIsCompoundObject + 128) , kDrawableRegenDraw = 256 , kDrawableStandardDisplaySingleLOD = 512 , kDrawableShadedDisplaySingleLOD = 1024 ,
  kDrawableViewDependentViewportDraw = 2048 , kDrawableBlockDependentViewportDraw = 4096 , kDrawableIsExternalReference = 8192 , kDrawableNotPlottable = 16384 ,
  kLastFlag = kDrawableNotPlottable
}
 
enum  DrawableType {
  kGeometry = 0 , kDistantLight = 1 , kPointLight = 2 , kSpotLight = 3 ,
  kAmbientLight , kSolidBackground , kGradientBackground , kImageBackground ,
  kGroundPlaneBackground , kViewport , kWebLight , kSkyBackground ,
  kImageBasedLightingBackground
}
 
- Protected Member Functions inherited from OdDbEntity
virtual OdDbObjectPtr subWblockClone (OdDbIdMapping &ownerIdMap, OdDbObject *, bool bPrimary) const ODRX_OVERRIDE
 
virtual OdDbObjectPtr subDeepClone (OdDbIdMapping &ownerIdMap, OdDbObject *, bool bPrimary) const ODRX_OVERRIDE
 
virtual OdResult subGetCompoundObjectTransform (OdGeMatrix3d &xM) const
 
virtual bool subCloneMeForDragging ()
 
virtual bool subHideMeForDragging () const
 
virtual void subGripStatus (const OdDb::GripStat status)
 
virtual OdResult subGetOsnapPoints (OdDb::OsnapMode osnapMode, OdGsMarker gsSelectionMark, const OdGePoint3d &pickPoint, const OdGePoint3d &lastPoint, const OdGeMatrix3d &xWorldToEye, OdGePoint3dArray &snapPoints) const
 
virtual OdResult subGetOsnapPoints (OdDb::OsnapMode osnapMode, OdGsMarker gsSelectionMark, const OdGePoint3d &pickPoint, const OdGePoint3d &lastPoint, const OdGeMatrix3d &xWorldToEye, OdGePoint3dArray &snapPoints, const OdGeMatrix3d &insertionMat) const
 
virtual bool subIsContentSnappable () const
 
virtual OdResult subGetGripPoints (OdGePoint3dArray &gripPoints) const
 
virtual OdResult subMoveGripPointsAt (const OdIntArray &indices, const OdGeVector3d &offset)
 
virtual OdResult subGetGripPoints (OdDbGripDataPtrArray &grips, const double curViewUnitSize, const int gripSize, const OdGeVector3d &curViewDir, const int bitFlags) const
 
virtual OdResult subMoveGripPointsAt (const OdDbVoidPtrArray &grips, const OdGeVector3d &offset, int bitFlags)
 
virtual OdResult subGetStretchPoints (OdGePoint3dArray &stretchPoints) const
 
virtual OdResult subMoveStretchPointsAt (const OdIntArray &indices, const OdGeVector3d &offset)
 
virtual OdResult subIntersectWith (const OdDbEntity *pEnt, OdDb::Intersect intType, OdGePoint3dArray &points, OdGsMarker thisGsMarker=0, OdGsMarker otherGsMarker=0) const
 
virtual OdResult subIntersectWith (const OdDbEntity *pEnt, OdDb::Intersect intType, const OdGePlane &projPlane, OdGePoint3dArray &points, OdGsMarker thisGsMarker=0, OdGsMarker otherGsMarker=0) const
 
virtual void subHighlight (bool bDoIt=true, const OdDbFullSubentPath *pSubId=0, bool highlightAll=false) const
 
virtual OdDb::Visibility subVisibility () const
 
virtual OdResult subSetVisibility (OdDb::Visibility visibility, bool doSubents=true)
 
virtual OdResult subDeleteSubentPaths (const OdDbFullSubentPathArray &paths)
 
virtual OdResult subAddSubentPaths (const OdDbFullSubentPathArray &paths)
 
virtual OdResult subMoveGripPointsAtSubentPaths (const OdDbFullSubentPathArray &paths, const OdDbVoidPtrArray &gripAppData, const OdGeVector3d &offset, const OdUInt32 bitflags)
 
virtual OdResult subGetGripPointsAtSubentPath (const OdDbFullSubentPath &path, OdDbGripDataPtrArray &grips, const double curViewUnitSize, const int gripSize, const OdGeVector3d &curViewDir, const OdUInt32 bitflags) const
 
virtual OdResult subTransformSubentPathsBy (const OdDbFullSubentPathArray &paths, const OdGeMatrix3d &xform)
 
virtual OdResult subGetSubentClassId (const OdDbFullSubentPath &path, void *clsId) const
 
virtual OdResult subGetSubentPathGeomExtents (const OdDbFullSubentPath &path, OdGeExtents3d &extents) const
 
virtual void subSubentGripStatus (OdDb::GripStat status, const OdDbFullSubentPath &subentity)
 
- Protected Member Functions inherited from OdDbObject
 OdDbObject ()
 
- Protected Member Functions inherited from OdGiDrawable
 OdGiDrawable ()
 
virtual OdUInt32 subViewportDrawLogicalFlags (OdGiViewportDraw *vd) const
 
virtual OdUInt32 subRegenSupportFlags () const
 
- Protected Attributes inherited from OdDbObject
OdDbObjectImplm_pImpl
 

Detailed Description

This class implements a three-dimensional NURB surface entity.

See also
TD_Db

<group OdDb_Classes>

Definition at line 48 of file DbNurbSurface.h.

Constructor & Destructor Documentation

◆ OdDbNurbSurface()

OdDbNurbSurface::OdDbNurbSurface ( )

Creates an OdDbNurbSurface object.

Member Function Documentation

◆ convertFrom()

OdResult OdDbNurbSurface::convertFrom ( OdDbSurface pSource,
OdDb::DwgVersion  version,
bool  transferId = true 
)

Creates a surface from a specified surface with conversion.

Parameters
pSource[in] A pointer to the source surface.
version[in] .dwg file version of the source surface.
transferId[in] Indicates whether the Id of the source surface is transferred to the surface.
Returns
Returns eOk if successful or an appropriate error code in the other case.

◆ createNurbSurface()

static OdResult OdDbNurbSurface::createNurbSurface ( const OdGeNurbSurface surface,
const OdArray< OdArray< OdGeNurbCurve3d * > > &  arrLoopsPtr,
const OdArray< OdGePoint3d > *  arrApex,
const OdArray< OdArray< OdGeNurbCurve2d * > > &  arrLoopsProjPtr,
OdDbNurbSurface NURBS,
bool  bVaidateInput = true 
)
static

Creates a NURBS surface from a specified surface.

Parameters
arrLoopsPtr[in] A array of curves. First is a trimming-loop other holes
arrLoopsProjPtr[in] Projections of curves in arrLoopsPtr on UV-parameter space of nurbsurface
arrApex[in] Array of 3dPoints (apexes). Used to create additional topology in trimming-loop.
bVaidateInput[in] Validation flag. Perform checks like: are curves self-intersecting, is the end of current curve is coincides with start of next curve, curves are situated on nurbs surface.
pSurface[out] Output nurbsurface
Returns
Returns eOk if successful or an appropriate error code in the other case.

◆ dwgInFields()

virtual OdResult OdDbNurbSurface::dwgInFields ( OdDbDwgFiler pFiler)
virtual

Reads the .dwg file data of this object.

Parameters
pFiler[in] Filer object from which data are read.
Returns
Returns the filer status.

This function is called by dwgIn() to allow the object to read its data.

When overriding this function:

1) Call assertWriteEnabled(). 2) Call the parent class's dwgInFields(pFiler). 3) If it returns eOK, continue; otherwise return whatever the parent's dwgInFields(pFiler) returned. 4) Call the OdDbDwgFiler(pFiler) methods to read each of the object's data items in the order they were written. 5) Return pFiler->filerStatus().

Reimplemented from OdDbSurface.

◆ dwgOutFields()

virtual void OdDbNurbSurface::dwgOutFields ( OdDbDwgFiler pFiler) const
virtual

Writes the .dwg file data of this object.

Parameters
pFiler[in] Pointer to the filer to which data are written.
Remarks

This function is called by dwgIn() to allow the object to write its data.

When overriding this function:

1) Call assertReadEnabled(). 2) Call the parent class's dwgOutFields(pFiler). 3) Call the OdDbDwgFiler(pFiler) methods to write each of the object's data items in the order they were written.

Reimplemented from OdDbSurface.

◆ dxfInFields()

virtual OdResult OdDbNurbSurface::dxfInFields ( OdDbDxfFiler pFiler)
virtual

Reads the DXF data of this object.

Parameters
pFiler[in] Pointer to the filer from which data are read.
Returns
Returns the filer status.

This function is called by dxfIn() to allow the object to read its data.

When overriding this function:

1) Call assertWriteEnabled(). 2) Call the parent class's dwgInFields(pFiler). 3) If it returns eOK, continue; otherwise return whatever the parent's dxfInFields(pFiler) returned. 4) Call the OdDbDxfFiler(pFiler) methods to read each of the object's data items in the order they were written. 5) Return pFiler->filerStatus().

Reimplemented from OdDbSurface.

◆ dxfOutFields()

virtual void OdDbNurbSurface::dxfOutFields ( OdDbDxfFiler pFiler) const
virtual

Writes the DXF data of this object.

Parameters
pFiler[in] Pointer to the filer to which data are to be written.
Remarks

This function is called by dxfOut() to allow the object to write its data.

When overriding this function:

1) Call assertReadEnabled(). 2) Call the parent class's dxfOutFields(pFiler). 4) Use pFiler to call the OdDbDxfFiler methods to write each of the object's data items in the order they were written.

Reimplemented from OdDbSurface.

◆ evaluate() [1/4]

OdResult OdDbNurbSurface::evaluate ( double  dU,
double  dV,
int  iDerivDegree,
OdGePoint3d point,
OdGeVector3dArray derivatives 
) const

Evaluates the position and an arbitrary number of derivatives of the surface at the specified parameter value (u, v).

Parameters
dU[in] u direction parameter.
dV[in] v direction parameter.
iDerivDegree[in] The degree of derivatives to evaluate.
point[out] A passed-in parameter for returning the evaluated position on the surface.
derivatives[out] A passed-in parameter for returning derivatives array of vectors, in the order of uDeriv, vDeriv, uuDeriv, uvDeriv, vvDeriv.
Returns
Returns eOk if evaluation is successfully done. If the surface doesn't contain any NURBS information, returns eFail. If the u or v value is out of range, returns eOutOfRange.
Remarks
This method is implemented only for Spatial modeler and returns eNotImplementedYet status for other modelers.

◆ evaluate() [2/4]

OdResult OdDbNurbSurface::evaluate ( double  dU,
double  dV,
OdGePoint3d pos 
) const

Evaluates the position on the NURBS surface at the specified parameter value (u, v).

Parameters
dU[in] u direction parameter.
dV[in] v direction parameter.
pos[out] A passed-in parameter for returning the evaluated position on the surface.
Returns
Returns eOk if evaluation is successfully done. If the surface doesn't contain any NURBS information, returns eFail. If the u or v value is out of range, returns eOutOfRange.
Remarks
This method is implemented only for Spatial modeler and returns eNotImplementedYet status for other modelers.

◆ evaluate() [3/4]

OdResult OdDbNurbSurface::evaluate ( double  dU,
double  dV,
OdGePoint3d pos,
OdGeVector3d uDeriv,
OdGeVector3d vDeriv 
) const

Evaluates the position and first derivatives on the NURBS surface at the specified parameter value (u, v).

Parameters
dU[in] u direction parameter.
dV[in] v direction parameter.
pos[out] A passed-in parameter for returning the evaluated position on the surface.
uDeriv[out] A passed-in parameter for returning the first derivative with respect to u.
vDeriv[out] A passed-in parameter for returning the first derivative with respect to v.
Returns
Returns eOk if evaluation is successfully done. If the surface doesn't contain any NURBS information, returns eFail. If the u or v value is out of range, returns eOutOfRange.
Remarks
This method is implemented only for Spatial modeler and returns eNotImplementedYet status for other modelers.

◆ evaluate() [4/4]

OdResult OdDbNurbSurface::evaluate ( double  dU,
double  dV,
OdGePoint3d pos,
OdGeVector3d uDeriv,
OdGeVector3d vDeriv,
OdGeVector3d uuDeriv,
OdGeVector3d uvDeriv,
OdGeVector3d vvDeriv 
) const

Evaluates the position and first and second derivatives on the NURBS surface at the specified parameter value (u, v).

Parameters
dU[in] u direction parameter.
dV[in] v direction parameter.
pos[out] A passed-in parameter for returning the evaluated position on the surface.
uDeriv[out] A passed-in parameter for returning the first derivative with respect to u.
vDeriv[out] A passed-in parameter for returning the first derivative with respect to v.
uuDeriv[out] A passed-in parameter for returning the second derivative with respect to u twice.
uvDeriv[out] A passed-in parameter for returning the second derivative with respect to u and v.
vvDeriv[out] A passed-in parameter for returning the second derivative with respect to v twice.
Returns
Returns eOk if evaluation is successfully done. If the surface doesn't contain any NURBS information, returns eFail. If the u or v value is out of range, returns eOutOfRange.
Remarks
This method is implemented only for Spatial modeler and returns eNotImplementedYet status for other modelers.

◆ get()

OdResult OdDbNurbSurface::get ( int &  iUDegree,
int &  iVDegree,
bool &  bRational,
int &  iUNumControlPoints,
int &  iVNumControlPoints,
OdGePoint3dArray ctrlPtsArr,
OdGeDoubleArray weights,
OdGeKnotVector uKnots,
OdGeKnotVector vKnots 
) const

Gets all NURB data.

Parameters
iUDegree[out] Degree in the u direction.
iVDegree[out] Degree in the v direction.
bRational[out] Determines whether the surface is rational.
iUNumControlPoints[out] The quantity of control points in the u direction.
iVNumControlPoints[out] The quantity of control points in the v direction.
ctrlPtsArr[out] An array of control points (in WCS coordinates).
weights[out] An array of the weights for each control point.
uKnots[out] An array of the knot values in the u direction.
vKnots[out] An array of the knot values in the v direction.
Returns
Returns eOk if successful or an appropriate error code otherwise.
Remarks
The control points are represented with an AcGePoint3d array. The column indexes are for the v direction, and row indexes are for the u direction. For example, if the surface has n control points in the u direction and m control points in the v direction, the array looks like [0,0], [0,1], ...[0,n-1], ..., [m-1,0], [m-1,1], ...[m-1,n-1]. If the surface is rational, the weights array will contain the same number of entries as the ctrlPts array. The values in weights and ctrlPts arrays have the same sequential order as the control points array. If the surface is not periodic in the u direction, the size of the uKnots vector is greater than the iUNumControlPoints value by the degree + 1. If the surface is periodic in the u direction, the size of the uKnots vector is greater than the iUNumControlPoints value by 1. Similarly, if the surface is not periodic in the v direction, the size of the vKnots vector is greater than the iUNumControlPoints by the degree + 1. If the surface is periodic in the v direction, the size of the vKnots vector is greater than the iUNumControlPoints by 1.

◆ getControlPointAt()

OdResult OdDbNurbSurface::getControlPointAt ( int  iUIndex,
int  iVIndex,
OdGePoint3d point 
) const

Returns the control point (in WCS coordinates) at the specified position in the control points vector.

Parameters
iUIndex[in] An index of a control point in the u direction. Index starts from the 0 value.
iVIndex[in] An index of a control point in the v direction. Index starts from the 0 value.
point[out] The control point (in WCS coordinates) at specified index.
Returns
Returns eOk if a control point was returned successfully. If the surface doesn't contain the control point information, the method returns eFail. Returns eOutOfRange if the uIndex or vIndex are not valid.

◆ getControlPoints()

OdResult OdDbNurbSurface::getControlPoints ( int &  iUCount,
int &  iVCount,
OdGePoint3dArray points 
) const

Returns the control points and the quantity of control points in both u and v directions.

Parameters
iUCount[out] The quantity of control points in u direction.
iVCount[out] The quantity of control points in v direction.
points[out] Array of control points (in WCS coordinates).
Returns
Returns eOk if control point were successfully returned, or an appropriate error code in other case.
Remarks
The control points will be allocated in the passed-in OdGePoint3d array. The column indexes are for the v direction, and row indexes are for the u direction. For example, if the surface has n control points in the u direction and m control points in the v direction, the array looks like [0,0], [0,1], ...[0,vCount-1], ..., [uCount-1,0], [uCount-1,1], ...[uCount-1,vCount-1].

◆ getDegreeInU()

OdResult OdDbNurbSurface::getDegreeInU ( int &  iDegree) const

Returns the degree of NURBS surface in the u direction.

Parameters
iDegree[out] A passed-in parameter for returning the degree in the u direction.
Returns
Returns eOk if successful. If the surface doesn't contain any NURBS information, returns eFail.

◆ getDegreeInV()

OdResult OdDbNurbSurface::getDegreeInV ( int &  iDegree) const

Returns the degree of NURBS surface in the v direction.

Parameters
iDegree[out] A passed-in parameter for returning the degree in the v direction.
Returns
Returns eOk if successful. If the surface doesn't contain any NURBS information, returns eFail.

◆ getIsolineAtU()

OdResult OdDbNurbSurface::getIsolineAtU ( double  dU,
OdDbCurvePtrArray lineSegments 
) const

Returns the isolines at a specified u value. The isolines are created in the v direction. If there are holes in the surface, there could be a number of isoline segments at a specified u value.

Parameters
dU[in] u parameter.
lineSegments[out] A passed-in parameter for returning the array of isoline segments.
Returns
Returns eOk if successful. If the surface doesn't contain any NURBS information, returns eFail.

◆ getIsolineAtV()

OdResult OdDbNurbSurface::getIsolineAtV ( double  dV,
OdDbCurvePtrArray lineSegments 
) const

Returns the isolines at a specified v value. The isolines are created in the u direction. If there are holes in the surface, there could be a number of isoline segments at a specified v value.

Parameters
dV[in] v parameter.
lineSegments[out] A passed-in parameter for returning the array of isoline segments.
Returns
Returns eOk if successful. If the surface doesn't contain any NURBS information, returns eFail.

◆ getNormal()

OdResult OdDbNurbSurface::getNormal ( double  dU,
double  dV,
OdGeVector3d normal 
) const

Returns the normal vector at the specified parameter location ([u, v]).

Parameters
dU[in] u parameter.
dV[in] v parameter.
normal[out] A passed-in parameter for returning the normal vector.
Returns
Returns eOk if successful. If the surface doesn't contain any NURBS information, returns eFail. If the dU or dV values are invalid, returns eOutOfRange.

◆ getNumberOfControlPointsInU()

OdResult OdDbNurbSurface::getNumberOfControlPointsInU ( int &  iCount) const

Returns the quantity of control points in the u direction.

Parameters
iCount[out] A passed-in parameter for returning the quantity of control points in the u direction.
Returns
Returns eOk if successful or eFail if the surface doesn't contain control point information.

◆ getNumberOfControlPointsInV()

OdResult OdDbNurbSurface::getNumberOfControlPointsInV ( int &  iCount) const

Returns the quantity of control points in the v direction.

Parameters
iCount[out] A passed-in parameter for returning the quantity of control points in the v direction.
Returns
Returns eOk if successful or eFail if the surface doesn't contain control point information.

◆ getNumberOfKnotsInU()

OdResult OdDbNurbSurface::getNumberOfKnotsInU ( int &  iCount) const

Returns the quantity of knots in the u direction.

Parameters
iCount[out] A passed-in parameter for returning the quantity of knots in the u direction.
Returns
Returns eOk if successful or eFail if the surface doesn't contain knot information.

◆ getNumberOfKnotsInV()

OdResult OdDbNurbSurface::getNumberOfKnotsInV ( int &  iCount) const

Returns the quantity of knots in the v direction.

Parameters
iCount[out] A passed-in parameter for returning the quantity of knots in the v direction.
Returns
Returns eOk if successful or eFail if the surface doesn't contain knot information.

◆ getNumberOfSpansInU()

OdResult OdDbNurbSurface::getNumberOfSpansInU ( int &  span) const

Returns the simple patches in the u direction.

Parameters
span[out] A passed-in parameter for returning the number of simple patches in the u direction.
Returns
Returns eOk if successful. If the surface doesn't contain any NURBS information, returns eFail.

◆ getNumberOfSpansInV()

OdResult OdDbNurbSurface::getNumberOfSpansInV ( int &  span) const

Returns the simple patches in the v direction.

Parameters
span[out] A passed-in parameter for returning the number of simple patches in the v direction.
Returns
Returns eOk if successful. If the surface doesn't contain any NURBS information, returns eFail.

◆ getParameterOfPoint()

OdResult OdDbNurbSurface::getParameterOfPoint ( const OdGePoint3d point,
double &  dU,
double &  dV 
) const

Returns the u and v parameter for a point on the surface.

Parameters
point[in] A point on the surface.
dU[in] A passed-in parameter for returning the value of the u parameter.
dV[in] A passed-in parameter for returning the value of the v parameter.
Returns
Returns eOk if successful. If the surface doesn't contain any NURBS information, returns eFail.
Remarks
This method is implemented only for Spatial modeler and returns eNotImplementedYet status for other modelers.

◆ getPeriodInU()

OdResult OdDbNurbSurface::getPeriodInU ( double &  dPeriod) const

Returns the period value in the u direction for the surface. Returned value is valid only if the surface is periodic in the u direction.

Parameters
dPeriod[out] A passed-in parameter for returning the period value in the u direction.
Returns
Returns eOk if successful. If the surface doesn't contain any NURBS information, returns eFail.

◆ getPeriodInV()

OdResult OdDbNurbSurface::getPeriodInV ( double &  dPeriod) const

Returns the period value in the v direction for the surface. Returned value is valid only if the surface is periodic in the v direction.

Parameters
dPeriod[out] A passed-in parameter for returning the period value in the v direction.
Returns
Returns eOk if successful. If the surface doesn't contain any NURBS information, returns eFail.

◆ getUKnots()

OdResult OdDbNurbSurface::getUKnots ( OdGeKnotVector knots) const

Returns the knot vector in the u direction.

Parameters
knots[out] A passed-in parameter for returning the knot vector in the u direction
Returns
Returns eOk if successful or eFail if the surface doesn't contain knot information.

◆ getVKnots()

OdResult OdDbNurbSurface::getVKnots ( OdGeKnotVector knots) const

Returns the knot vector in the v direction.

Parameters
knots[out] A passed-in parameter for returning the knot vector in the v direction
Returns
Returns eOk if successful or eFail if the surface doesn't contain knot information.

◆ getWeight()

OdResult OdDbNurbSurface::getWeight ( int  iUIndex,
int  iVIndex,
double &  weight 
) const

Returns the weight at a specified position (uIndex, vIndex) in the weights array. Returns valid weight value only when the surface is rational.

Parameters
iUIndex[in] An index of weight value in the u direction. Index starts from the 0 value.
iVIndex[in] An index of weight value in the v direction. Index starts from the 0 value.
weight[out] A passed-in parameter for returning the weight value at the specified position.
Returns
Returns eOk if the weight value was successfully returned.
If the surface doesn't contain the weight information (weight array is empty or is NULL), returns eFail. If the uIndex or vIndex values are invalid, returns eOutOfRange.

◆ InsertControlPointsAtU()

OdResult OdDbNurbSurface::InsertControlPointsAtU ( double  dU,
const OdGePoint3dArray vCtrlPts,
const OdGeDoubleArray vWeights 
)

Inserts a row of control points at the given u knot parameter.

Parameters
dU[in] u parameter.
vCtrlPts[in] An array of control points to be added.
vWeights[in] Array of weight values to add if the surface is rational.
Returns
Returns eOk if successful. If the surface doesn't contain any NURBS information, returns eFail. If the dU parameter is out of range, returns eOutOfRange.
Remarks
This method is implemented only for Spatial modeler and returns eNotImplementedYet status for other modelers.

◆ InsertControlPointsAtV()

OdResult OdDbNurbSurface::InsertControlPointsAtV ( double  dV,
const OdGePoint3dArray uCtrlPts,
const OdGeDoubleArray uWeights 
)

Inserts a row of control points at the given v knot parameter.

Parameters
dV[in] v parameter.
uCtrlPts[in] An array of control points to be added.
vWeights[in] Array of weight values to add if the surface is rational.
Returns
Returns eOk if successful. If the surface doesn't contain any NURBS information, returns eFail. If the dV parameter is out of range, returns eOutOfRange.
Remarks
This method is implemented only for Spatial modeler and returns eNotImplementedYet status for other modelers.

◆ InsertKnotAtU()

OdResult OdDbNurbSurface::InsertKnotAtU ( double  dU)

Inserts a knot at the specified u parameter. The knot insertion doesn't modify the shape of the surface. It will add a new row of control points in the v direction and adjust the local control point's location.

Parameters
dU[in] u parameter.
Returns
Returns eOk if successful. If the surface doesn't contain any NURBS information, returns eFail. If the surface's knot multiplicity at the u parameter is bigger than the degree in the u direction, returns eInvalidInput.
Remarks
This method is implemented only for Spatial modeler and returns eNotImplementedYet status for other modelers.

◆ InsertKnotAtV()

OdResult OdDbNurbSurface::InsertKnotAtV ( double  dV)

Inserts a knot at the specified v parameter. The knot insertion doesn't modify the shape of the surface. It will add a new row of control points in the u direction and adjust the local control point's location.

Parameters
dV[in] v parameter.
Returns
Returns eOk if successful. If the surface doesn't contain any NURBS information, returns eFail. If the surface's knot multiplicity at the v parameter is bigger than the degree in the v direction, returns eInvalidInput.
Remarks
This method is implemented only for Spatial modeler and returns eNotImplementedYet status for other modelers.

◆ isClosedInU()

OdResult OdDbNurbSurface::isClosedInU ( bool &  bIsClosed) const

Determines whether the surface is closed in the u direction.

Parameters
bIsClosed[out] A passed-in parameter for returning the indicator of whether the surface is closed in the u direction. bIsClosed is equal to true if the surface is closed in the u direction, otherwise it is equal to false.
Returns
Returns eOk if successful. If the surface doesn't contain any NURBS information, returns eFail.

◆ isClosedInV()

OdResult OdDbNurbSurface::isClosedInV ( bool &  bIsClosed) const

Determines whether the surface is closed in the v direction.

Parameters
bIsClosed[out] A passed-in parameter for returning the indicator of whether the surface is closed in the v direction. bIsClosed is equal to true if the surface is closed in the v direction, otherwise it is equal to false.
Returns
Returns eOk if successful. If the surface doesn't contain any NURBS information, returns eFail.

◆ isPeriodicInU()

OdResult OdDbNurbSurface::isPeriodicInU ( bool &  bIsPeriodic) const

Determines whether the surface is periodic in the u direction.

Parameters
bIsPeriodic[out] A passed-in parameter for returning the indicator of whether the surface is periodic in the u direction. bIsPeriodic is equal to true if the surface is periodic in the u direction, otherwise it is equal to false.
Returns
Returns eOk if successful. If the surface doesn't contain any NURBS information, returns eFail.

◆ isPeriodicInV()

OdResult OdDbNurbSurface::isPeriodicInV ( bool &  bIsPeriodic) const

Determines whether the surface is periodic in the v direction.

Parameters
bIsPeriodic[out] A passed-in parameter for returning the indicator of whether the surface is periodic in the v direction. bIsPeriodic is equal to true if the surface is periodic in the v direction, otherwise it is equal to false.
Returns
Returns eOk if successful. If the surface doesn't contain any NURBS information, returns eFail.

◆ isPlanar()

OdResult OdDbNurbSurface::isPlanar ( bool &  bIsPlanar,
OdGePoint3d ptOnSurface,
OdGeVector3d normal 
) const

Determines whether the surface is planar. If the surface is planar, also returns the plane information and normal. If the surface is planar, the method returns true via the bIsPlanar parameter, otherwise the method returns false.

Parameters
bIsPlanar[out] A passed-in parameter for returning the indicator of whether the surface is planar.
ptOnSurface[out] A passed-in parameter for returning the point on the surface (if the surface is planar).
normal[out] A passed-in parameter for returning the plane normal (if the surface is planar).
Returns
Returns eOk if successful. If the surface doesn't contain any NURBS information, returns eFail.

◆ isPointOnSurface()

OdResult OdDbNurbSurface::isPointOnSurface ( const OdGePoint3d point,
bool &  bOnSurface 
) const

Determines whether a specified point is on the surface. If specified point is on the surface, the method returns true via bOnSurface, otherwise the method returns false.

Parameters
point[in] A point.
bOnSurface[out] A passed-in parameter for returning the indicator of whether the specified point is on the surface.
Returns
Returns eOk if successful. If the surface doesn't contain any NURBS information, returns eFail.

◆ isRational()

OdResult OdDbNurbSurface::isRational ( bool &  bIsRational) const

Determines whether the surface is rational. If the surface is rational, the method returns true, otherwise the method returns false.

Parameters
bIsRational[out] A passed-in parameter for returning the indicator of whether the surface is rational.
Returns
Returns eOk if successful. If the surface doesn't contain any NURBS information, returns eFail.

◆ modifyPositionAndTangent()

OdResult OdDbNurbSurface::modifyPositionAndTangent ( double  dU,
double  dV,
const OdGePoint3d point,
const OdGeVector3d uDeriv = NULL,
const OdGeVector3d vDeriv = NULL 
)

Adjusts the location and tangent of a point on the surface with the specified parameter ([u, v]). The local control points are adjusted accordingly. If the pointer uDeriv and vDeriv are equal to NULL, then only the location of the point is adjusted.

Parameters
dU[in] u parameter.
dV[in] v parameter.
point[in] A new location of the point on the surface.
uDeriv[in] The tangent vector in the u direction.
vDeriv[in] The tangent vector in the v direction.
Returns
Returns eOk if successful. If the surface doesn't contain any NURBS information, returns eFail.
Remarks
This method is not implemented.

◆ ODDB_DECLARE_MEMBERS()

OdDbNurbSurface::ODDB_DECLARE_MEMBERS ( OdDbNurbSurface  )

◆ rebuild()

OdResult OdDbNurbSurface::rebuild ( int  iUDegree,
int  iVDegree,
int  iNumUCtrlPts,
int  iNumVCtrlPts,
bool  bRestore = false 
)

Rebuilds the NURBS surface with a specified new degree and quantity of control points in the u and v directions. This operation modifies the shape of the surface.

Parameters
iUDegree[in] The new degree value in the u direction.
iVDegree[in] The new degree value in the v direction.
iNumUCtrlPts[in] The new quantity of control point in the u direction.
iNumVCtrlPts[in] The new quantity of control point in the v direction.
bRestore[in] Restore flag.
Returns
Returns eOk if successful. If the surface doesn't contain any NURBS information, returns eFail.
Remarks
This method is not implemented.

◆ RemoveControlPointsAtU()

OdResult OdDbNurbSurface::RemoveControlPointsAtU ( int  iUDegree)

Removes a row of control points at the specified position in the control points array. The method modifies the shape of the surface.

Parameters
iUDegree[in] An index of the control point to remove from the array.
Returns
Returns eOk if successful. If the surface doesn't contain any NURBS information, returns eFail.
Remarks
This method is implemented only for Spatial modeler and returns eNotImplementedYet status for other modelers.

◆ RemoveControlPointsAtV()

OdResult OdDbNurbSurface::RemoveControlPointsAtV ( int  iVDegree)

Removes a row of control points at the specified position in the control points array. The method modifies the shape of the surface.

Parameters
iVDegree[in] An index of the control point to remove from the array.
Returns
Returns eOk if successful. If the surface doesn't contain any NURBS information, returns eFail.
Remarks
This method is implemented only for Spatial modeler and returns eNotImplementedYet status for other modelers.

◆ set()

OdResult OdDbNurbSurface::set ( int  iUDegree,
int  iVDegree,
bool  bRational,
int  iUNumControlPoints,
int  iVNumControlPoints,
const OdGePoint3dArray ctrlPtsArr,
const OdGeDoubleArray weights,
const OdGeKnotVector uKnots,
const OdGeKnotVector vKnots 
)

Set new data for the existing NURBS surface.

Parameters
iUDegree[in] A new value for degrees in the u direction.
iVDegree[in] A new value for degrees in the v direction.
bRational[in] Determines whether the surface is rational (new value).
IUNumControlPoints[in] A new value of the quantity of control points in the u direction.
iVNumControlPoints[in] A new value of the quantity of control points in the v direction.
ctrlPtsArr[in] A new array of control points (in WCS coordinates).
weights[in] A new array of the weights for each control point.
uKnots[in] A new array of the knot values in the u direction.
vKnots[in] A new array of the knot values in the v direction.
Returns
Returns eOk if successful or an appropriate error code otherwise.
Remarks
The column indexes is for the v direction, and row indexes are for the u direction. For example, if the surface has n control points in the u direction and m control points in the v direction, the array looks like [0,0], [0,1], ...[0,n-1], ..., [m-1,0], [m-1,1], ...[m-1,n-1].

If the surface is rational (bRational == true), the weights array must contain the same number of entries as the ctrlPts array. All weight values must be greater than 0.0. The values in weights and ctrlPts arrays must have the same sequential order as the control points array. If the surface is not rational (bRational == false), the weight array must be empty.

If the surface is not periodic in the u direction, the size of the uKnots vector must be equal to iUNumControlPoints + iUDegree + 1. If the surface is periodic in the u direction, the size of the uKnots vector must be iUNumControlPoints + 1. Similarly, if the surface is not periodic in the v direction, the size of the vKnots vector must be equal to iVNumControlPoints + iVDegree + 1. If the surface is periodic in the v direction, the size of the vKnots vector must be iVNumControlPoints + 1. Each knot must have a value greater than or equal to the value of its predecessor in the array.

If any of the passed-in parameters are not valid, the surface will not be created.

This method is implemented only for Spatial modeler and returns eNotImplementedYet status for other modelers.

◆ setControlPointAt()

OdResult OdDbNurbSurface::setControlPointAt ( int  iUIndex,
int  iVIndex,
const OdGePoint3d point 
)

Sets a new control point (in WCS coordinates) at a specified position in the control points vector.

Parameters
iUIndex[in] An index of a control point in the u direction. Index starts from the 0 value.
iVIndex[in] An index of a control point in the v direction. Index starts from the 0 value.
point[in] A new control point (in WCS coordinates) to be set at the specified position.
Returns
Returns eOk if a control point was returned successfully. If the surface doesn't contain the control point information, the method returns eFail. Returns eOutOfRange if the uIndex or vIndex are not valid.
Remarks
This method is implemented only for Spatial modeler and returns eNotImplementedYet status for other modelers.

◆ setControlPoints()

OdResult OdDbNurbSurface::setControlPoints ( int  iUCount,
int  iVCount,
const OdGePoint3dArray points 
)

Sets the control points.

Parameters
iUCount[in] The new value of the quantity of control points in the u direction.
iVCount[in] The new value of the quantity of control points in the v direction.
points[in] New array of control points (in WCS coordinates).
Returns
Returns eOk if control points were successfully set or an appropriate error code in other case. Returns eFail if the surface doesn't contain the control point information. Returns eInvalidInput if the uCount and vCount are not the same as the current numbers.
Remarks
The new quantity of control points in the u and v direction must be equal to the current values. New control points are allocated in an AcGePoint3d array. The column indexes are for the v direction, and row indexes are for the u direction. For example, if the surface has n control points in the u direction and m control points in the v direction, the array looks like [0,0], [0,1], ...[0,vCount-1], ..., [uCount-1,0], [uCount-1,1], ...[uCount-1,vCount-1].

◆ setWeight()

OdResult OdDbNurbSurface::setWeight ( int  iUIndex,
int  iVIndex,
double  weight 
)

Sets the weight value at a specified position in the weights array.

If the surface is not rational, the method does nothing.

Parameters
iUIndex[in] An index of weight value in the u direction. Index starts from the 0 value.
iVIndex[in] An index of weight value in the v direction. Index starts from the 0 value.
weight[in] A new weight value to be set at a specified position.
Returns
Returns eOk if a new weight value was successfully set. If the surface doesn't contain the weight information (weight array is empty or is NULL), returns eFail. If the uIndex or vIndex values are invalid, returns eOutOfRange.
Remarks

This method is implemented only for Spatial modeler and returns eNotImplementedYet status for other modelers.

The documentation for this class was generated from the following file: