SculptLayerData Class Reference 雕刻

| Library » Sculpt

#include <lib_sculpt.h>

Inheritance diagram for SculptLayerData:

详细描述

A SculptObject contains a SculptLayerSystem . This layer system can have many layers where each layer has exactly 1 SculptLayerData .
There is one exception to this rule, and that is the Base layer, which has a SculptLayerData for every subdivision level.
A SculptLayerData node contains all the offset and mask data for that layer at its subdivision level.

公共成员函数

Int32   GetSubdivisionLevel ()
Int32   GetPointCount ()
Bool   GetOffset ( Int32 index, 向量 &offset)
void  SetOffset ( Int32 index, const 向量 &fullOffset)
void  AddOffset ( Int32 index, const 向量 &offset)
Bool   GetMask ( Int32 index, Float32 &mask)
void  SetMask ( Int32 index, Float32 mask)
void  AddToMask ( Int32 index, Float32 mask)
Bool   HasMask ()
void  ClearMask ()
void  ClearLayer ()
void  InitializeAllPointData ()
void  InitializeAllMaskData ()
void  TouchPointForUndo ( Int32 index)
void  TouchMaskForUndo ( Int32 index)
-  Public Member Functions inherited from BaseList2D
const Char GetViewportRenderId ( VIEWPORT_RENDER_ID typeId) const
BaseList2D GetNext ()
BaseList2D GetPred ()
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)
BaseContainer   GetData ()
void  SetData (const BaseContainer &bc, Bool add=true)
const BaseContainer GetDataInstance () const
BaseContainer GetDataInstance ()
const BaseContainer GetDataInstanceRef () const
BaseContainer GetDataInstanceRef ()
String   GetName () const
void  SetName (const maxon::String &name)
String   GetBubbleHelp ()
Bool   TransferGoal ( BaseList2D *dst, Bool undolink)
Bool   TransferMarker ( BaseList2D *dst) const
Bool   比例 ( Float scale)
Bool   编辑 ()
void  GetIcon ( IconData *dat)
GeListHead GetNLARoot ()
BaseList2D AnimationLayerRemap ( BaseObject **layer=nullptr)
String   GetTypeName ()
BaseList2D GetMain () const
void  InsertTrackSorted ( CTrack *track)
Bool   AddEventNotification ( BaseList2D *bl, NOTIFY_EVENT eventid, NOTIFY_EVENT_FLAG flags, const BaseContainer *data)
Bool   RemoveEventNotification ( BaseDocument *doc, BaseList2D *bl, NOTIFY_EVENT eventid)
Bool   FindEventNotification ( BaseDocument *doc, BaseList2D *bl, NOTIFY_EVENT eventid)
Bool   SetDescIDState (const DescID &id, DESCIDSTATE descidstate)
DESCIDSTATE   GetDescIDState (const DescID &id, Bool tolerant) const
GeListHead GetOverrideRoot ()
BaseOverride GetFirstOverride ()
GeListHead GetShaderRepositoryRoot ()
GeListHead GetHiddenShaderRoot ()
maxon::NimbusInterface *  GetNimbusRef (const maxon::Id &spaceId) const
maxon::Result < maxon::NimbusInterface * >  GetOrCreateNimbusRef (const maxon::Id &spaceId)
void  RemoveNimbusRef (const maxon::Id &spaceId)
maxon::Result < maxon::HashMap < maxon::Id , maxon::ForwardRef < maxon::NimbusRef > > >  GetAllNimbusRefs () const
Bool   IsNodeBased () const
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 ( 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)
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 ( BaseDocument *doc)
Bool   SetLayerObject ( LayerObject *layer)
const LayerData GetLayerData ( BaseDocument *doc, Bool rawdata=false)
Bool   SetLayerData ( BaseDocument *doc, const LayerData &data)
GeListHead GetCTrackRoot ()
CTrack GetFirstCTrack ()
CTrack FindCTrack (const DescID &id)
-  Public Member Functions inherited from GeListNode
GeListNode GetNext ()
GeListNode GetPred ()
GeListNode GetDown ()
GeListNode GetUp ()
GeListNode GetDownLast ()
void  InsertBefore ( GeListNode *bl)
void  InsertAfter ( GeListNode *bl)
void  InsertUnder ( GeListNode *bl)
void  InsertUnderLast ( GeListNode *bl)
void  移除 ()
GeListHead GetListHead ()
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 ()
BaseDocument GetDocument ()
Int32   GetBranchInfo ( BranchInfo *info, Int32 max, GETBRANCHINFO flags)
Bool   IsDocumentRelated ()
Int32   GetInfo ()
Bool   GetNBit ( NBIT bit) const
UInt32   GetNBitMask ( Int32 index) const
Bool   ChangeNBit ( NBIT bit, NBITCONTROL bitmode)
-  Public Member Functions inherited from C4DAtom
Int32   GetType () const
Int32   GetRealType () const
Int32   GetDiskType () const
Bool   IsInstanceOf ( Int32 id) const
Int32   GetClassification () const
Bool   消息 ( Int32 type, void *data=nullptr)
Bool   MultiMessage ( MULTIMSG_ROUTE flags, Int32 type, void *data)
C4DAtom GetClone ( COPYFLAGS flags, AliasTrans *trn)
Bool   CopyTo ( C4DAtom *dst, COPYFLAGS flags, AliasTrans *trn)
Bool   读取 ( HyperFile *hf, Int32 id, Int32 level)
Bool   Write ( HyperFile *hf)
Bool   ReadObject ( HyperFile *hf, Bool readheader)
Bool   WriteObject ( HyperFile *hf)
Bool   GetDescription ( 描述 *description, DESCFLAGS_DESC flags)
Bool   GetParameter (const DescID &id, GeData &t_data, DESCFLAGS_GET flags)
Bool   SetParameter (const DescID &id, const GeData &t_data, DESCFLAGS_SET flags)
DynamicDescription GetDynamicDescription ()
Bool   GetEnabling (const DescID &id, const GeData &t_data, DESCFLAGS_ENABLE flags, const BaseContainer *itemdesc)
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)

私有成员函数

  SculptLayerData ()
  ~SculptLayerData ()

Additional Inherited Members

-  Static Public Member Functions inherited from BaseList2D
static BaseList2D Alloc ( Int32 type)
static void  Free ( BaseList2D *&bl)
-  Static Public Attributes inherited from BaseList2D
static const Int32   SETBIT_FLAG_NODIRTY
static const Int32   SETBIT_FLAG_REMOVE

构造函数 & 析构函数文档编制

◆  SculptLayerData()

SculptLayerData () private

◆  ~SculptLayerData()

~ SculptLayerData () private

成员函数文档编制

◆  GetSubdivisionLevel()

Int32 GetSubdivisionLevel ( )

Gets the subdivision level that the layer contains data for.

返回
The subdivision level.

◆  GetPointCount()

Int32 GetPointCount ( )

Gets the number of points on the polygon object that the layer has.

返回
The number of points on the polygon object.

◆  GetOffset()

Bool GetOffset ( Int32   index ,
向量 offset  
)

Gets the offset for the given point index on the layer.

参数
[in] index The index of the point on the polygon object: 0 <= index < GetPointCount()
[out] offset Assigned the offset value for the point.
返回
true if there was offset data for the point. false if no offset data was allocated for the point.

◆  SetOffset()

void SetOffset ( Int32   index ,
const 向量 fullOffset  
)

Sets the offset for the given point index on the layer.

警告
Be sure to call SculptObject::Update() after all changes to the offsets have been made. This will update the SculptObject display.
Also call SculptObject::UpdateCollision() if any of the SculptObject::Hit() methods is used afterwards.
If this method is going to be called from multiple threads then be sure to call InitializeAllPointData() before using this method.
参数
[in] index The index of the point on the polygon object: 0 <= index < GetPointCount()
[out] fullOffset The offset vector to set.

◆  AddOffset()

void AddOffset ( Int32   index ,
const 向量 offset  
)

Adds to the existing offset value at the given point index on the layer.

警告
Be sure to call SculptObject::Update() after all changes to the offsets have been made. This will update the SculptObject display.
Also call SculptObject::UpdateCollision() any of the SculptObject::Hit() methods is used afterwards.
If this method is going to be called from multiple threads then be sure to call InitializeAllPointData() before using this method.
参数
[in] index The index of the point on the polygon object: 0 <= index < GetPointCount()
[out] offset The offset vector to add.

◆  GetMask()

Bool GetMask ( Int32   index ,
Float32 mask  
)

Gets the value of the mask at the given point index on the layer.

参数
[in] index The index of the point on the polygon object: 0 <= index < GetPointCount()
[out] mask Assigned the mask value for the point.
The value is between 0 and 1 where 0 means no mask and 1 fully masked.
返回
true if there was mask data for the point. false if no mask data was allocated for the point.

◆  SetMask()

void SetMask ( Int32   index ,
Float32   mask  
)

Sets the the mask at the given point index on the layer.

警告
If this method is going to be called from multiple threads then be sure to call InitializeAllMaskData() before using this method.
参数
[in] index The index of the point on the polygon object: 0 <= index < GetPointCount()
[in] mask The value of the mask. The value will be clamped between 0 and 1 ; 0 means no mask and 1 fully masked.

◆  AddToMask()

void AddToMask ( Int32   index ,
Float32   mask  
)

Adds to the existing mask at the given point index on the layer.

警告
If this method is going to be called from multiple threads then be sure to call InitializeAllMaskData() before using this method.
参数
[in] index The index of the point on the polygon object: 0 <= index < GetPointCount()
[in] mask The amount to add to the existing mask.

◆  HasMask()

Bool HasMask ( )

Checks to see if the layer has a mask applied to it.

返回
true if there is mask data, otherwise false .

◆  ClearMask()

void ClearMask ( )

Clears all the mask data for the layer.

◆  ClearLayer()

void ClearLayer ( )

Clears all the offsets for the layer.

◆  InitializeAllPointData()

void InitializeAllPointData ( )

Makes sure all the data has been allocated to store all the point data.

注意
SetOffset() or AddOffset() are called from multiple threads then the data needs to be initialized before these calls are made.
If multiple threads are not used the calls to SetOffset() and AddOffset() will only allocate data if required.

◆  InitializeAllMaskData()

void InitializeAllMaskData ( )

Makes sure all the data has been allocated to store all the mask data.

注意
SetMask() or AddToMask() are called from multiple threads then the data needs to be initialized before these calls are made.
If multiple threads are not used the calls to SetMask() and AddToMask() will only allocate data if required.

◆  TouchPointForUndo()

void TouchPointForUndo ( Int32   index )

Marks the point at index so that any modifications to it can be undone.

警告
Must be called after SculptObject::StartUndo() .
This method can not be called from multiple threads.
参数
[in] index The index of the point on the polygon object: 0 <= index < GetPointCount()

◆  TouchMaskForUndo()

void TouchMaskForUndo ( Int32   index )

Marks the masked point at index so that any modifications to the mask can be undone.

警告
Must be called after SculptObject::StartUndo() .
This method can not be called from multiple threads.
参数
[in] index The index of the point on the polygon object: 0 <= index < GetPointCount()