A SculptObject is used to interact with the data referenced by a SculptTag.
The SculptTag on a PolygonObject references a SculptObject that is stored in a Scene Hook within the document.
When the SculptTag is deleted the referenced SculptObject is also deleted. 
 | 
| Int32  | GetSubdivisionCount () | 
|   | 
| PolygonObject *  | GetPolygonCopy (Int32 subdivisionLevel, Bool includeTopLevels=true) | 
|   | 
| PolygonObject *  | GetOriginalObject () | 
|   | 
| const PolygonObject *  | GetOriginalObject () const | 
|   | 
| PolygonObject *  | GetDisplayPolygonObject () | 
|   | 
| Bool  | Hit (BaseDraw *bd, Float mx, Float my, Bool backfaces, SculptHitData &hitData) | 
|   | 
| Bool  | Hit (const Vector &rayp, const Vector &rayv, Bool backfaces, SculptHitData &hitData) | 
|   | 
| Int32  | GetPolygonCount () | 
|   | 
| Int32  | GetPointCount () | 
|   | 
| SculptLayerBase *  | GetCurrentLayer () | 
|   | 
| Int32  | GetCurrentLevel () | 
|   | 
| UInt32  | GetMemoryUsage () | 
|   | 
| SculptLayer *  | AddLayer () | 
|   | 
| SculptFolder *  | AddFolder () | 
|   | 
| Bool  | DeleteSelectedLayer () | 
|   | 
| void  | Update () | 
|   | 
| const Vector32 *  | GetVertexNormals () | 
|   | 
| const Vector32 *  | GetFaceNormals () | 
|   | 
| const Vector *  | GetPointR () | 
|   | 
| Vector *  | GetPointW () | 
|   | 
| Bool  | Subdivide () | 
|   | 
| Bool  | IncreaseSubdivisionLevel () | 
|   | 
| Bool  | DecreaseSubdivisionLevel () | 
|   | 
| SculptLayerBase *  | GetFirstLayer () | 
|   | 
| SculptLayer *  | GetBaseLayer () | 
|   | 
| SculptLayerSystem *  | GetLayerSystem () | 
|   | 
| Bool  | IsFrozen () | 
|   | 
| void  | SetFrozen (Bool value) | 
|   | 
| Bool  | GetAllowDeformations () | 
|   | 
| void  | SetAllowDeformations (Bool value) | 
|   | 
| void  | UpdateCollision () | 
|   | 
| void  | NeedCollisionUpdate (Bool fullUpdate=false) | 
|   | 
| void  | OffsetPoint (SculptLayer *pLayer, Vector *pPoints, Bool useMask, Float strength, Int32 index, const Vector &offset, Bool respectLayerStrength=false) | 
|   | 
| void  | OffsetPreviewPoint (SculptLayer *pLayer, Bool useMask, Float strength, Int32 index, const Vector &offset, Bool respectLayerStrength=false) | 
|   | 
| void  | SetPreviewPoint (SculptLayer *pLayer, Bool useMask, Float strength, Int32 index, const Vector &offset, Bool respectLayerStrength=false) | 
|   | 
| void  | StartUndo () | 
|   | 
| void  | EndUndo () | 
|   | 
| void  | Smooth (Int32 count, Bool respectMask) | 
|   | 
| Float32 *  | GetMaskCache () | 
|   | 
| Float32  | PointPolysAverage (Int32 vertex, Float32 *values) | 
|   | 
| Vector  | PointPolysAverage (Int32 vertex, Vector *values) | 
|   | 
| void  | UpdateMask (Bool fullUpdate=false) | 
|   | 
| void  | InitOpenGL (BaseDraw *bd=nullptr) | 
|   | 
| Bool  | IsPointSelected (Int32 index) | 
|   | 
| Bool  | IsPolygonSelected (Int32 index) | 
|   | 
| Bool  | GetPolygon (Int32 index, CPolygon &cpoly) | 
|   | 
| void  | SetBit (Int32 mask) | 
|   | 
| Bool  | GetBit (Int32 mask) const | 
|   | 
| void  | DelBit (Int32 mask) | 
|   | 
| void  | ToggleBit (Int32 mask) | 
|   | 
| Int32  | GetAllBits () const | 
|   | 
| void  | SetAllBits (Int32 bits) | 
|   | 
| void  | SetBitEx (Int32 mask, Int32 flags) | 
|   | 
| const Char *  | GetViewportRenderId (VIEWPORT_RENDER_ID typeId) const | 
|   | 
| BaseList2D *  | GetNext () | 
|   | 
| const BaseList2D *  | GetNext () const | 
|   | 
| BaseList2D *  | GetPred () | 
|   | 
| const BaseList2D *  | GetPred () const | 
|   | 
| BaseContainer  | GetData () | 
|   | 
| void  | SetData (const BaseContainer &bc, Bool add=true) | 
|   | 
| const BaseContainer &  | GetDataInstanceRef () const | 
|   | 
| BaseContainer &  | GetDataInstanceRef () | 
|   | 
| const BaseContainer *  | GetDataInstance () const | 
|   | 
| BaseContainer *  | GetDataInstance () | 
|   | 
| String  | GetName () const | 
|   | 
| void  | SetName (const maxon::String &name, Bool setDirty=true) | 
|   | 
| String  | GetBubbleHelp () | 
|   | 
| Bool  | TransferGoal (BaseList2D *dst, Bool undolink) | 
|   | 
| Bool  | TransferMarker (BaseList2D *dst) const | 
|   | 
| Bool  | CopyDynamicDescriptionFrom (const BaseList2D *src) | 
|   | 
| Bool  | Scale (Float scale) | 
|   | 
| Bool  | Edit () | 
|   | 
| void  | GetIcon (IconData *dat) | 
|   | 
| GeListHead *  | GetNLARoot (Bool create) | 
|   | 
| BaseList2D *  | AnimationLayerRemap (BaseObject **layer=nullptr) | 
|   | 
| String  | GetTypeName () const | 
|   | 
| BaseList2D *  | GetMain () const | 
|   | 
| void  | InsertTrackSorted (CTrack *track) | 
|   | 
| Bool  | AddEventNotification (BaseList2D *bl, NOTIFY_EVENT eventid, NOTIFY_EVENT_FLAG flags, const BaseContainer *data) | 
|   | 
| Bool  | RemoveEventNotification (const BaseDocument *doc, BaseList2D *bl, NOTIFY_EVENT eventid) | 
|   | 
| Bool  | FindEventNotification (const BaseDocument *doc, BaseList2D *bl, NOTIFY_EVENT eventid) | 
|   | 
| Bool  | SetDescIDState (const DescID &id, DESCIDSTATE descidstate) | 
|   | 
| DESCIDSTATE  | GetDescIDState (const DescID &id, Bool tolerant) const | 
|   | 
| GeListHead *  | GetOverrideRoot (Bool create) | 
|   | 
| BaseOverride *  | GetFirstOverride () | 
|   | 
| GeListHead *  | GetShaderRepositoryRoot (Bool create) | 
|   | 
| GeListHead *  | GetHiddenShaderRoot (Bool create) | 
|   | 
| maxon::NimbusForwardRef  | GetNimbusRef (const maxon::Id &spaceId) const | 
|   | 
| maxon::Result< maxon::NimbusForwardRef >  | PrivateGetOrCreateNimbusRef (const maxon::Id &spaceId) | 
|   | 
| void  | RemoveNimbusRef (const maxon::Id &spaceId) | 
|   | 
| maxon::Result< maxon::HashMap< maxon::Id, maxon::NimbusForwardRef > >  | GetAllNimbusRefs () const | 
|   | 
| Bool  | IsNodeBased () const | 
|   | 
| maxon::Result< Bool >  | GetAccessedObjects (METHOD_ID method, AccessedObjectsCallback &access) const | 
|   | 
| maxon::Result< Bool >  | GetAccessedObjectsRec (ACCESSED_OBJECTS_MASK read, ACCESSED_OBJECTS_MASK write, METHOD_ID method, Bool withSiblings, Bool withChildren, AccessedObjectsCallback &access) const | 
|   | 
| maxon::Result< Bool >  | GetAccessedObjectsOfHierarchy (ACCESSED_OBJECTS_MASK read, ACCESSED_OBJECTS_MASK write, METHOD_ID method, AccessedObjectsCallback &access) const | 
|   | 
| maxon::Result< Bool >  | GetAccessedObjectsOfChildren (ACCESSED_OBJECTS_MASK read, ACCESSED_OBJECTS_MASK write, METHOD_ID method, AccessedObjectsCallback &access) const | 
|   | 
| maxon::Result< Bool >  | GetAccessedObjectsOfFirstChildHierarchy (ACCESSED_OBJECTS_MASK read, ACCESSED_OBJECTS_MASK write, METHOD_ID method, AccessedObjectsCallback &access) const | 
|   | 
| maxon::Result< maxon::GenericData >  | GroupChanges () | 
|   | 
| void  | GetMarkerStampEx (UInt32 *l1, UInt32 *l2) | 
|   | 
| const GeMarker &  | GetMarker () const | 
|   | 
| void  | SetMarker (const GeMarker &m) | 
|   | 
| Bool  | AddUniqueID (Int32 appid, const Char *const mem, Int bytes) | 
|   | 
| Bool  | FindUniqueID (Int32 appid, const Char *&mem, Int &bytes) const | 
|   | 
| Int32  | GetUniqueIDCount () const | 
|   | 
| Bool  | GetUniqueIDIndex (Int32 idx, Int32 &id, const Char *&mem, Int &bytes) const | 
|   | 
| Bool  | SetAnimatedParameter (const CTrack *track, const DescID &id, const GeData &t_data1, const GeData &t_data2, Float mix, DESCFLAGS_SET flags) | 
|   | 
| Bool  | GetAnimatedParameter (const DescID &id, GeData &t_data1, GeData &t_data2, Float &mix, DESCFLAGS_GET flags) const | 
|   | 
| BaseShader *  | GetFirstShader () const | 
|   | 
| void  | InsertShader (BaseShader *shader, BaseShader *pred=nullptr) | 
|   | 
| void  | ClearKeyframeSelection () | 
|   | 
| Bool  | FindKeyframeSelection (const DescID &id) | 
|   | 
| Bool  | SetKeyframeSelection (const DescID &id, Bool selection) | 
|   | 
| Bool  | KeyframeSelectionContent () | 
|   | 
| LayerObject *  | GetLayerObject (const BaseDocument *doc) | 
|   | 
| const LayerObject *  | GetLayerObject (const BaseDocument *doc) const | 
|   | 
| Bool  | SetLayerObject (const LayerObject *layer) | 
|   | 
| const LayerData *  | GetLayerData (const BaseDocument *doc, Bool rawdata=false) const | 
|   | 
| Bool  | SetLayerData (BaseDocument *doc, const LayerData &data) | 
|   | 
| GeListHead *  | GetCTrackRoot (Bool create) | 
|   | 
| const GeListHead *  | GetCTrackRoot () const | 
|   | 
| CTrack *  | GetFirstCTrack () | 
|   | 
| const CTrack *  | GetFirstCTrack () const | 
|   | 
| CTrack *  | FindCTrack (const DescID &id) | 
|   | 
| const CTrack *  | FindCTrack (const DescID &id) const | 
|   | 
| GeListNode *  | GetNext () | 
|   | 
| const GeListNode *  | GetNext () const | 
|   | 
| GeListNode *  | GetPred () | 
|   | 
| const GeListNode *  | GetPred () const | 
|   | 
| GeListNode *  | GetDown () | 
|   | 
| const GeListNode *  | GetDown () const | 
|   | 
| GeListNode *  | GetUp () | 
|   | 
| const GeListNode *  | GetUp () const | 
|   | 
| GeListNode *  | GetDownLast () | 
|   | 
| const GeListNode *  | GetDownLast () const | 
|   | 
| void  | InsertBefore (GeListNode *bl) | 
|   | 
| void  | InsertAfter (GeListNode *bl) | 
|   | 
| void  | InsertUnder (GeListNode *bl) | 
|   | 
| void  | InsertUnderLast (GeListNode *bl) | 
|   | 
| void  | Remove () | 
|   | 
| void  | FlushChilds () | 
|   | 
| void  | MoveChildrenTo (GeListNode *dest) | 
|   | 
| GeListHead *  | GetListHead () | 
|   | 
| const GeListHead *  | GetListHead () const | 
|   | 
| Int32  | GetNodeID (Int32 index=0) const | 
|   | 
| template<typename CAST >  | 
| const CAST *  | GetNodeData (Int32 index=0) const | 
|   | 
| template<typename CAST >  | 
| CAST *  | GetNodeData (Int32 index=0) | 
|   | 
| void  | SetCustomData (GeListNode *node) | 
|   | 
| GeListNode *  | GetCustomData () | 
|   | 
| const GeListNode *  | GetCustomData () const | 
|   | 
| const BaseDocument *  | GetDocument () const | 
|   | 
| BaseDocument *  | GetDocument () | 
|   | 
| maxon::Result< Bool >  | GetBranchInfo (const maxon::ValueReceiver< const BranchInfo & > &info, GETBRANCHINFO flags) const | 
|   | 
| Bool  | IsDocumentRelated () const | 
|   | 
| Int32  | GetInfo () const | 
|   | 
| Bool  | GetNBit (NBIT bit) const | 
|   | 
| UInt32  | GetNBitMask (Int32 index) const | 
|   | 
| Bool  | ChangeNBit (NBIT bit, NBITCONTROL bitmode) | 
|   | 
| Int32  | GetType () const | 
|   | 
| Int32  | GetRealType () const | 
|   | 
| Int32  | GetDiskType () const | 
|   | 
| Bool  | IsInstanceOf (Int32 id) const | 
|   | 
| Int32  | GetClassification () const | 
|   | 
| Bool  | Message (Int32 type, void *data=nullptr) | 
|   | 
| Bool  | MultiMessage (MULTIMSG_ROUTE flags, Int32 type, void *data) | 
|   | 
| C4DAtom *  | GetClone (COPYFLAGS flags, AliasTrans *trn) const | 
|   | 
| Bool  | CopyTo (C4DAtom *dst, COPYFLAGS flags, AliasTrans *trn) const | 
|   | 
| Bool  | Read (HyperFile *hf, Int32 id, Int32 level) | 
|   | 
| Bool  | Write (HyperFile *hf) const | 
|   | 
| Bool  | ReadObject (HyperFile *hf, Bool readheader) | 
|   | 
| Bool  | WriteObject (HyperFile *hf) const | 
|   | 
| Bool  | GetDescription (Description *description, DESCFLAGS_DESC flags) const | 
|   | 
| Bool  | GetParameter (const DescID &id, GeData &t_data, DESCFLAGS_GET flags) const | 
|   | 
| Bool  | SetParameter (const DescID &id, const GeData &t_data, DESCFLAGS_SET flags) | 
|   | 
| DynamicDescription *  | GetDynamicDescriptionWritable () | 
|   | 
| const DynamicDescription *  | GetDynamicDescription () const | 
|   | 
| Bool  | CopyDynamicDescriptionFrom (const BaseList2D *src) | 
|   | 
| Bool  | GetEnabling (const DescID &id, const GeData &t_data, DESCFLAGS_ENABLE flags, const BaseContainer *itemdesc) const | 
|   | 
| Bool  | TranslateDescID (const DescID &id, DescID &res_id, C4DAtom *&res_at) | 
|   | 
| UInt32  | GetDirty (DIRTYFLAGS flags) const | 
|   | 
| void  | SetDirty (DIRTYFLAGS flags) | 
|   | 
| UInt32  | GetHDirty (HDIRTYFLAGS mask) const | 
|   | 
| void  | SetHDirty (HDIRTYFLAGS mask) | 
|   |