SculptObject Class Reference 雕刻

| Library » Sculpt

#include <lib_sculpt.h>

Inheritance diagram for SculptObject:

详细描述

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.
SculptTag is deleted the referenced SculptObject is also deleted.

公共成员函数

Int32   GetSubdivisionCount ()
PolygonObject GetPolygonCopy ( Int32 subdivisionLevel, Bool includeTopLevels=true)
PolygonObject GetOriginalObject ()
PolygonObject GetDisplayPolygonObject ()
Bool   Hit ( BaseDraw *bd, Float mx, Float my, Bool backfaces, SculptHitData &hitData)
Bool   Hit (const 向量 &rayp, const 向量 &rayv, Bool backfaces, SculptHitData &hitData)
Int32   GetPolygonCount ()
Int32   GetPointCount ()
SculptLayerBase GetCurrentLayer ()
Int32   GetCurrentLevel ()
UInt32   GetMemoryUsage ()
SculptLayer AddLayer ()
SculptFolder AddFolder ()
Bool   DeleteSelectedLayer ()
void  更新 ()
const Vector32 GetVertexNormals ()
const Vector32 GetFaceNormals ()
const 向量 GetPointR ()
向量 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, 向量 *pPoints, Bool useMask, Float strength, Int32 index, const 向量 &offset, Bool respectLayerStrength=false)
void  OffsetPreviewPoint ( SculptLayer *pLayer, Bool useMask, Float strength, Int32 index, const 向量 &offset, Bool respectLayerStrength=false)
void  SetPreviewPoint ( SculptLayer *pLayer, Bool useMask, Float strength, Int32 index, const 向量 &offset, Bool respectLayerStrength=false)
void  StartUndo ()
void  EndUndo ()
void  Smooth ( Int32 count, Bool respectMask)
Float32 GetMaskCache ()
Float32   PointPolysAverage ( Int32 vertex, Float32 *values)
向量   PointPolysAverage ( Int32 vertex, 向量 *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)
-  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)

私有成员函数

  SculptObject ()
  ~SculptObject ()

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

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

◆  SculptObject()

SculptObject () private

◆  ~SculptObject()

~ SculptObject () private

成员函数文档编制

◆  GetSubdivisionCount()

Int32 GetSubdivisionCount ( )

Gets the number of Subdivisions that the SculptObject currently has, i.e. how many times it has been subdivided by the user.

返回
The number of subdivision levels.

◆  GetPolygonCopy()

PolygonObject * GetPolygonCopy ( Int32   subdivisionLevel ,
Bool   includeTopLevels = true  
)

Gets a copy of the SculptObject at a specific subdivision level.

注意
The returned object does not contain a copy of the SculptTag .
参数
[in] subdivisionLevel The subdivision level to copy the PolyonObject at.
[in] includeTopLevels If True includes all the detail from any layers that are above subdivisionLevel .
If false includes only the sculpting data for all layers up to and including the subdivisionLevel specified.
返回
The PolygonObject for the subdivision level. The caller owns the pointed PolygonObject .

◆  GetOriginalObject()

PolygonObject * GetOriginalObject ( )

Gets the original PolygonObject that the SculptTag is applied to.

返回
The original PolygonObject that the SculptTag is applied to. The document owns the pointed PolygonObject .

◆  GetDisplayPolygonObject()

PolygonObject * GetDisplayPolygonObject ( )

Gets the PolygonObject that is currently being displayed in the viewport.

注意
SculptBrushToolData::FloodSelectedLayer() calls this returns the same as GetOriginalObject() when sculpting on Polygon Objects that have no SculptTag .
返回
The PolygonObject displayed in the viewport. This is the internal Polygon Object and should never be changed!

◆  Hit() [1/2]

Bool Hit ( BaseDraw bd ,
Float   mx ,
Float   my ,
Bool   backfaces ,
SculptHitData hitData  
)

From a viewport cast a ray, in screen space, onto the SculptObject and return any data if the ray hits the object.

注意
Returns the closest hit point if multiple intersections are found.
警告
To use the Hit() methods the mesh must be unfrozen and both NeedCollisionUpdate(true) and UpdateCollision() should be called to initialize the collision data.
参数
[in] bd The view that the user is casting the ray from. The caller owns the pointed view.
[in] mx The X coordinate (mouse coordinate) in screen space.
[in] my The Y coordinate (mouse coordinate) in screen space.
[in] backfaces true to allow back facing polygons to be hit tested.
If enabled and the back facing hit point is closer than the front hit point, then it is returned.
[out] hitData Filled with the intersection data if the ray hits the object.
返回
true SculptObject was hit, otherwise false .

◆  Hit() [2/2]

Bool Hit ( const 向量 rayp ,
const 向量 rayv ,
Bool   backfaces ,
SculptHitData hitData  
)

Given a ray in object space do a hit intersection against the SculptObject and return any data if the ray hits the object.

注意
Returns the closest hit point if multiple intersections are found.
警告
To use the Hit() methods the mesh must be unfrozen and both NeedCollisionUpdate(true) and UpdateCollision() should be called to initialize the collision data.
参数
[in] rayp The starting position of the ray in object space.
[in] rayv The direction the ray is pointing.
[in] backfaces true to allow back facing polygons to be hit tested.
If enabled and the back facing hit point is closer than the front hit point, then it is returned.
[out] hitData Filled with the intersection data if the ray hits the object.
返回
true SculptObject was hit, otherwise false .

◆  GetPolygonCount()

Int32 GetPolygonCount ( )

Gets the number of polygons at the current subdivision level.

返回
The number of polygons.

◆  GetPointCount()

Int32 GetPointCount ( )

Gets the number of points at the current subdivision level.

返回
The number of points.

◆  GetCurrentLayer()

SculptLayerBase * GetCurrentLayer ( )

Gets the currently selected layer, or folder, selected for the SculptObject .

返回
The currently selected layer or folder.

◆  GetCurrentLevel()

Int32 GetCurrentLevel ( )

Gets the current subdivision level that the SculptObject is currently at.

返回
The current subdivision level.

◆  GetMemoryUsage()

UInt32 GetMemoryUsage ( )

Gets the amount of memory currently used for the SculptObject . This does not include any memory used by OpenGL .

返回
The memory used in bytes.

◆  AddLayer()

SculptLayer * AddLayer ( )

Creates a new layer on the SculptObject at the current subdivision level.

返回
The added layer. The SculptObject owns the pointed SculptLayer .

◆  AddFolder()

SculptFolder * AddFolder ( )

Creates a new folder for the SculptObject .

返回
The added folder. The SculptObject owns the pointed SculptFolder .

◆  DeleteSelectedLayer()

Bool DeleteSelectedLayer ( )

Deletes the currently selected layer (or folder) on the SculptObject (as specified in the Sculpt Layer Manager UI).

注意
If the currently selected layer is a folder then it will only delete the folder if all the layers that are contained in that folder are at the same subdivision level as the current subdivision level.
返回
true if the layer was deleted, otherwise false .

◆  Update()

void Update ( )

Updates all the layers and the SculptObject .

◆  GetVertexNormals()

const Vector32 * GetVertexNormals ( )

Gets the vertex normals for the PolygonObject at its current subdivision level.

返回
The vertex normals.

◆  GetFaceNormals()

const Vector32 * GetFaceNormals ( )

Gets the face normals for the PolygonObject at its current subdivision level.

由于
R17.032
返回
The face normals.

◆  GetPointR()

const 向量 * GetPointR ( )

Gets read only access to the points that will be used for the PolygonObject at its current subdivision level.

返回
The points.

◆  GetPointW()

向量 * GetPointW ( )

Gets write access to the points that will be used for the display of the PolygonObject at the current subdivision level in the viewport.

警告
This method should only be used with the call OffsetPoint() , which should only ever be called from SculptBrushToolData::FloodSelectedLayer() .
返回
The points.

◆  Subdivide()

Bool Subdivide ( )

Subdivides the SculptObject to the next level.

警告
Only works if the SculptObject is already at the top most level and the memory limit (as specified in the preferences) has not been exceeded and also only if there is enough memory on the users computer to successfully do the subdivision.
返回
true if the object was successfully subdivided, otherwise false .

◆  IncreaseSubdivisionLevel()

Bool IncreaseSubdivisionLevel ( )

Increases the subdivision level to the next highest level. If it is already at the top subdivision level then it will do nothing.

返回
true if it was able go up a level, otherwise false .

◆  DecreaseSubdivisionLevel()

Bool DecreaseSubdivisionLevel ( )

Decreases the subdivision level to the down one level. If it is already at level 0 then it will do nothing.

返回
true if it was able go down a level, otherwise false .

◆  GetFirstLayer()

SculptLayerBase * GetFirstLayer ( )

Gets the first layer under the SculptLayerSystem . This is usually the Base layer.

返回
The first layer.

◆  GetBaseLayer()

SculptLayer * GetBaseLayer ( )

Gets the Base layer, which is the special layer that has multiple SculptLayerData children, one for each subdivision level, that allows the user to sculpt on while at any subdivision level.

返回
The Base layer.

◆  GetLayerSystem()

SculptLayerSystem * GetLayerSystem ( )

Gets the layer system that contains all the layers. This is a child node of the SculptObject .

返回
The layer system.

◆  IsFrozen()

Bool IsFrozen ( )

Checks if the SculptObject been frozen. In the UI this is shown in the SculpTag.

返回
true if the object was frozen, otherwise false .

◆  SetFrozen()

void SetFrozen ( Bool   value )

Sets the frozen state of the SculptObject . In the UI this is shown in the SculpTag.
When the object is frozen no changes to the SculptObject or any of its layers are allowed.

注意
PolygonObject has a PhongTag it will also become active when the SculptObject is Frozen.
When not Frozen then SculptObject uses its own internal Vertex Normals and disables the PhongTag on the PolygonObject .
参数
[in] value The frozen state.

◆  GetAllowDeformations()

Bool GetAllowDeformations ( )

Checks if the object is allowed to be deformed by any deformers. In the UI this is shown in the SculpTag.

注意
This option only works if the object is also Frozen. When both these options are enabled, any deformers that are children of the PolygonObject that the SculptTag is applied to, will be able to deform the object in the viewport.
返回
true if the object was frozen, otherwise false .

◆  SetAllowDeformations()

void SetAllowDeformations ( Bool   value )

Sets the "Allow Deformations" checkbox thereby allowing any deformers to have an effect on the display of the SculptObject , as long as it is also frozen.
In the UI this is shown in the SculpTag.

参数
[in] value The "Allow Deformations" state.

◆  UpdateCollision()

void UpdateCollision ( )

Updates any collision data after any changes to the SculptLayer Offsets have been made.

警告
This is required before calling the Hit() methods.

◆  NeedCollisionUpdate()

void NeedCollisionUpdate ( Bool   fullUpdate = false )

Tells the SculptObject that it requires a collision update before the user tries to use any of the Sculpt tools.
Then next time a user tries to use a tool it will first call UpdateCollision() to ensure that the Hit() calls will be correct.

参数
[in] fullUpdate true to update the full mesh, this is not always required.

◆  OffsetPoint()

void OffsetPoint ( SculptLayer pLayer ,
向量 pPoints ,
Bool   useMask ,
Float   strength ,
Int32   index ,
const 向量 offset ,
Bool   respectLayerStrength = false  
)

Offsets a point on the layer when when the interactive flood operation has finished. This is called on the SculptObject by the Sculpt tools.

警告
Should only be called from within SculptBrushToolData::FloodSelectedLayer() .
参数
[in] pLayer The SculptLayer that the brush is operating on.
[in] pPoints The points from the call to GetPoints() which are used to directly effect the drawing of the SculptObject in the viewport.
[in] useMask true to respect the Mask on the Layer or not.
[in] strength The strength of the SculptLayer .
[in] index The index of the point on the PolygonObject for the current subdivision level.
[in] offset The offset to apply to the preview layer.
[in] respectLayerStrength true to respect the strength of the layer or ignore it updating the mesh on screen.

◆  OffsetPreviewPoint()

void OffsetPreviewPoint ( SculptLayer pLayer ,
Bool   useMask ,
Float   strength ,
Int32   index ,
const 向量 offset ,
Bool   respectLayerStrength = false  
)

Adds to the value of the offset on the preview layer when used to do interactive flood updates on the SculptObject by the Sculpt tools.

警告
Should only be called from within SculptBrushToolData::FloodSelectedLayer() .
参数
[in] pLayer The SculptLayer that the brush is operating on.
[in] useMask true to respect the Mask on the Layer or not.
[in] strength The strength of the SculptLayer .
[in] index The index of the point on the PolygonObject for the current subdivision level.
[in] offset The offset to apply to the preview layer.
[in] respectLayerStrength true to respect the strength of the layer or ignore it updating the mesh on screen.

◆  SetPreviewPoint()

void SetPreviewPoint ( SculptLayer pLayer ,
Bool   useMask ,
Float   strength ,
Int32   index ,
const 向量 offset ,
Bool   respectLayerStrength = false  
)

Sets the value of the offset on the preview layer when used to do interactive flood updates on the SculptObject by the Sculpt tools.

警告
Should only be called from within SculptBrushToolData::FloodSelectedLayer()
参数
[in] pLayer The SculptLayer that the brush is operating on.
[in] useMask true to respect the Mask on the Layer or not.
[in] strength The strength of the SculptLayer .
[in] index The index of the point on the PolygonObject for the current subdivision level.
[in] offset The offset to set on the preview layer.
[in] respectLayerStrength true to respect the strength of the layer or ignore it updating the mesh on screen.

◆  StartUndo()

void StartUndo ( )

Calls before any calls to AddOffset(), SetOffset(), AddToMask() or SetMask() to be undone.

警告
This will only work if making changes to a single layer. Changes to multiple layers or layers at different levels is not allowed.
This must be done at the current subdivision level of the layer being changed for these calls to work properly.
EndUndo() must be called after all calls to the above methods have been done.
This must NEVER be called by a Sculpt brush during a stroke.

◆  EndUndo()

void EndUndo ( )

Must be called after StartUndo() once all the point and masks have been changed on the layers.

警告
This must NEVER be called by a Sculpt brush during a stroke.

◆  Smooth()

void Smooth ( Int32   count ,
Bool   respectMask  
)

Smooths the SculptObject and applies the offsets to the currently selected layer.

参数
[in] count The number of times to run the smooth algorithm.
[in] respectMask true it will not smooth any masked out points, if false it will apply it to every point.

◆  GetMaskCache()

Float32 * GetMaskCache ( )

Gets the current mask values for the PolygonObject .
The number of points returned is equal to the number of points on the PolygonObject .

返回
The mask values.

◆  PointPolysAverage() [1/2]

Float32 PointPolysAverage ( Int32   vertex ,
Float32 values  
)

Averages out the values for the vertex PolygonObject .

参数
[in] vertex The vertex number on the PolygonObject to get the average value for.
[in] values The values to average out. This must contain the same number of values as there are points on the PolygonObject .
返回
The mask values.

◆  PointPolysAverage() [2/2]

向量 PointPolysAverage ( Int32   vertex ,
向量 values  
)

Averages out the values for the vertex PolygonObject .

参数
[in] vertex The vertex number on the PolygonObject to get the average value for.
[in] values The values to average out. This must contain the same number of values as there are points on the PolygonObject .
返回
The mask values.

◆  UpdateMask()

void UpdateMask ( Bool   fullUpdate = false )

Updates the mask on the SculptObject .

参数
[in] fullUpdate true to force a full update of the mask.

◆  InitOpenGL()

void InitOpenGL ( BaseDraw bd = nullptr )

Private .
Initializes the SculptObject for the given viewport in OpenGL use.

参数
[in] bd The viewport that is being updated. If it is nullptr then the currently active view will be used.

◆  IsPointSelected()

Bool IsPointSelected ( Int32   index )

Determines if a point should be moved or not in the SculptBrushToolData::FloodSelectedLayer() 方法。

注意
When in Point mode, and there is a selection, it returns true if a point is selected or false if the point is not selected.
If there are no points selected it returns true . When in Polygon mode, and there is a selection, it returns true if a point on any of the selected polygons is selected or false if there is no point selected.
If there are no polygons selected it returns true .
警告
This method only works when the selected object being sculpted on is by a tool and is a PolygonObject without a SculptTag .
It returns false in all other cases.
参数
[in] index The index of the point on the object: 0<= index < GetPointCount()
返回
true if the point was selected, otherwise false .

◆  IsPolygonSelected()

Bool IsPolygonSelected ( Int32   index )

Determines if a polygon should be moved or not in the SculptBrushToolData::FloodSelectedLayer() 方法。

注意
When in Polygon mode, and there is a selection, it returns true if a point on any of the selected polygons is selected or false if there is no point selected.
If there are no polygons selected it returns true .
警告
This method only works when the selected object being sculpted on is by a tool and is a PolygonObject without a SculptTag .
It returns false in all other cases.
参数
[in] index The index of the polygon on the object: 0<= index < GetPolygonCount()
返回
true if the polygon was selected, otherwise false .

◆  GetPolygon()

Bool GetPolygon ( Int32   index ,
CPolygon cpoly  
)

Gets the polygon data at the given index .

参数
[in] index The index of the polygon on the object: 0<= index < GetPolygonCount()
[out] cpoly Filled with the polygon data.
返回
True if the polygon was found, false if not.