PolygonObject Class Reference

#include <c4d_baseobject.h>

Inheritance diagram for PolygonObject:

详细描述

Represents a Polygon object.

注意
Has to be created with Alloc() and destroyed with Free() 。使用 AutoAlloc to automate the allocation and destruction based on scope.

私有成员函数

  PolygonObject ()
  ~PolygonObject ()

Alloc/Free

static PolygonObject Alloc ( Int32 pcnt, Int32 vcnt)
static void  Free ( PolygonObject *&bl)

Selected/Hidden Polygon/Edge

BaseSelect GetPolygonS (void)
const BaseSelect GetPolygonS (void) const
BaseSelect GetPolygonH (void)
const BaseSelect GetPolygonH (void) const
EdgeBaseSelect GetEdgeS (void)
const EdgeBaseSelect GetEdgeS (void) const
EdgeBaseSelect GetEdgeH (void)
const EdgeBaseSelect GetEdgeH (void) const
EdgeBaseSelect GetPhongBreak (void)
const EdgeBaseSelect GetPhongBreak (void) const
BaseSelect GetShadingBreak ( Bool includeBorderEdges, Bool includeUserBreak, Bool includeUserNormals, Float userNormalsAngle= DegToRad (5.0), Float autoNormalsAngle= DegToRad (180.0))

Polygon

const CPolygon GetPolygonR (void) const
CPolygon GetPolygonW (void)
Int32   GetPolygonCount (void) const

Resize Object

Bool   ResizeObject ( Int32 pcnt, Int32 vcnt)
Bool   ResizeObject ( Int32 pcnt, Int32 vcnt, Int32 ncnt)
Bool   ResizeObject ( Int32 pcnt, Int32 vcnt, Int32 ncnt, Int32 vc_flags)

Get/Set Edge Selection

BaseSelect GetSelectedEdges ( Neighbor *e, EDGESELECTIONTYPE ltype)
BaseSelect GetSelectedEdges ( Neighbor *e, BaseSelect *sel)
Bool   SetSelectedEdges ( Neighbor *e, BaseSelect *pSel, EDGESELECTIONTYPE ltype)

Phong Normals

Vector32 CreatePhongNormals ()

N-gon

Bool   GetPolygonTranslationMap ( Int32 &ngoncnt, Int32 *&polymap)
Bool   GetNGonTranslationMap ( Int32 ngoncnt, Int32 *polymap, Int32 **&ngons)
Pgon GetAndBuildNgon (void)
Int32   GetNgonCount (void)
void  GetSelectedNgons ( BaseSelect *sel)
void  GetHiddenNgons ( BaseSelect *sel)
NgonBase GetNgonBase ()
Bool   ValidateEdgeSelection ( BaseSelect *sel)
Bool   ValidateEdgeSelection ()
Bool   GetEdgeSelection ( BaseSelect *sel, EDGESELECTIONTYPE type)
void  GetNgonEdgesCompact ( UChar *&edges)

Additional Inherited Members

-  Public Member Functions inherited from PointObject
BaseSelect GetPointS (void)
const BaseSelect GetPointS (void) const
BaseSelect GetPointH (void)
const BaseSelect GetPointH (void) const
const 向量 GetPointR (void) const
向量 GetPointW (void)
Int32   GetPointCount (void) const
Float32 CalcVertexMap ( BaseObject *modifier)
Bool   ResizeObject ( Int32 pcnt)
void  IncreaseBoundingBox ( Int32 cnt, 向量 *v)
-  Public Member Functions inherited from BaseObject
BaseObject GetNext (void)
BaseObject GetPred (void)
BaseObject GetUp (void)
BaseObject GetDown (void)
BaseObject GetDownLast (void)
向量   GetAbsPos () const
void  SetAbsPos (const 向量 &v)
向量   GetAbsScale () const
void  SetAbsScale (const 向量 &v)
向量   GetAbsRot () const
void  SetAbsRot (const 向量 &v)
向量   GetFrozenPos () const
void  SetFrozenPos (const 向量 &v)
向量   GetFrozenScale () const
void  SetFrozenScale (const 向量 &v)
向量   GetFrozenRot () const
void  SetFrozenRot (const 向量 &v)
向量   GetRelPos () const
void  SetRelPos (const 向量 &v)
向量   GetRelScale () const
void  SetRelScale (const 向量 &v)
向量   GetRelRot () const
void  SetRelRot (const 向量 &v)
const 矩阵 GetMl (void) const
void  SetMl (const 矩阵 &m)
矩阵   GetFrozenMln () const
矩阵   GetRelMln () const
矩阵   GetRelMl () const
void  SetRelMl (const 矩阵 &m)
矩阵   GetMg () const
void  SetMg (const 矩阵 &m)
矩阵   GetMln () const
矩阵   GetMgn () const
矩阵   GetUpMg () const
void  CopyMatrixTo ( BaseObject *dst)
向量   GetMp (void)
向量   GetRad (void)
Int32   GetEditorMode (void) const
Int32   GetEditorModeH (void) const
void  SetEditorMode ( Int32 mode)
Int32   GetRenderMode (void) const
Int32   GetRenderModeH (void) const
void  SetRenderMode ( Int32 mode)
Bool   GetDeformMode (void) const
void  SetDeformMode ( Bool mode)
Int32   GetRealDeformMode (void) const
void  SetRealDeformMode ( Int32 mode)
Int32   GetUniqueIP (void)
void  SetUniqueIP ( Int32 ip)
BaseTag GetFirstTag (void)
BaseTag GetLastTag (void)
BaseTag GetTag ( Int32 type, Int32 nr=0)
const maxon::BaseArray < BaseTag * > *  GetTagsOfType ( Int32 type) const
const maxon::BaseArray < BaseTag * > *  GetTagsWithFlags ( Int32 flags) const
const void *  GetTagDataR ( Int32 type, Int32 nr=0) const
void *  GetTagDataW ( Int32 type, Int32 nr=0)
Int32   GetTagDataCount ( Int32 type) const
BaseTag MakeTag ( Int32 type, BaseTag *pred=nullptr)
VariableTag MakeVariableTag ( Int32 type, Int32 count, BaseTag *pred=nullptr)
void  InsertTag ( BaseTag *tp, BaseTag *pred=nullptr)
void  KillTag ( Int32 type, Int32 nr=0)
Bool   CopyTagsTo ( BaseObject *dest, Int32 visible, Int32 variable, Int32 hierarchical, AliasTrans *trans)
BaseObject GetCache ( HierarchyHelp *hh=nullptr)
BaseObject GetDeformCache (void)
LineObject GetIsoparm (void)
void  SetIsoparm ( LineObject *l)
BaseObject GetCacheParent (void) const
BaseObject GetCacheTopParent (void) const
Bool   SetPhong ( Bool on, Bool anglelimit, Float angle)
Bool   IsDirty ( DIRTYFLAGS flags)
void  SetDirty ( DIRTYFLAGS flags)
Bool   CheckCache ( HierarchyHelp *hh)
void  Touch (void)
void  GetColorProperties ( ObjectColorProperties *prop)
void  SetColorProperties ( ObjectColorProperties *prop)
const 矩阵 GetModelingAxis ( BaseDocument *doc)
void  SetModelingAxis (const 矩阵 &m)
BaseObject GetAndCheckHierarchyClone ( HierarchyHelp *hh, BaseObject *op, HIERARCHYCLONEFLAGS flags, Bool *dirty, AliasTrans *trans, Bool allchildren)
BaseObject GetHierarchyClone ( HierarchyHelp *hh, BaseObject *op, HIERARCHYCLONEFLAGS flags, Bool *dirty, AliasTrans *trans)
BaseObject GetHierarchyClone ( HierarchyHelp *hh, BaseObject *op, HIERARCHYCLONEFLAGS flags, Bool *dirty, AliasTrans *trans, DIRTYFLAGS dirtyflags)
void  NewDependenceList (void)
Bool   CompareDependenceList (void)
void  AddDependence ( HierarchyHelp *hh, BaseObject *op)
void  AddDependence ( HierarchyHelp *hh, BaseObject *op, DIRTYFLAGS dirtyflags)
void  TouchDependenceList (void)
void  SetRotationOrder ( ROTATIONORDER order)
ROTATIONORDER   GetRotationOrder (void) const
void  SetQuaternionRotationMode ( Bool active, Bool bUndo)
Bool   IsQuaternionRotationMode (void)
Bool   SynchronizeVectorTrackKeys ( Int32 vectorTrackID, Bool bUndo, BaseTime startRange= BaseTime (-108000, 1), BaseTime endRange= BaseTime (108000, 1))
Bool   FindBestEulerAngle ( Int32 rotationTrackID, Bool bAdjustTangent, Bool bUndo, BaseTime startRange= BaseTime (-108000, 1), BaseTime endRange= BaseTime (108000, 1))
Bool   EvaluateSynchronizedRotation (const BaseTime &time, ANIMATEFLAGS flags, 向量 *resultRotation=nullptr)
Bool   GetVectorTracks (const DescID &id, CTrack *&xfound, CTrack *&yfound, CTrack *&zfound)
Bool   GetVectorCurves ( CCurve *curveToSearch, CCurve *&xfound, CCurve *&yfound, CCurve *&zfound)
UInt64   GetGUID ()
Int32   GetHighlightHandle ( BaseDraw *bd)
SplineObject GetRealSpline (void)
Float   GetVisibility ( Float parent)
Bool   SearchHierarchy ( BaseObject *op)
BaseObject GetOrigin ( Bool safe)
void  SetOrigin ( BaseObject *origin)
BaseObject GetTopOrigin ( Bool parent, Bool safe)
BaseObject GetEditObject ( BaseObject **psds, DISPLAYEDITSTATE state, Bool safetey=true)
void  RemoveFromCache (void)
DRAWRESULT   ObjDraw ( DRAWPASS drawpass, BaseDraw *bd, BaseDrawHelp *bh)
-  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)
-  Static Public Member Functions inherited from BaseObject
static BaseObject Alloc ( Int32 type)
static void  Free ( BaseObject *&bl)
-  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

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

◆  PolygonObject()

PolygonObject () private

◆  ~PolygonObject()

~ PolygonObject () private

成员函数文档编制

◆  Alloc()

static PolygonObject * Alloc ( Int32   pcnt ,
Int32   vcnt  
)
static

Allocates a Polygon object. Destroy the allocated Polygon object with Free() 。使用 AutoAlloc to automate the allocation and destruction based on scope.

参数
[in] pcnt The point count.
[in] vcnt The polygon count.
返回
The allocated Polygon object, or nullptr if the allocation failed.

◆  Free()

static void Free ( PolygonObject *&  bl )
static

Destructs Polygon objects allocated with Alloc() 。使用 AutoAlloc to automate the allocation and destruction based on scope.

参数
[in,out] bl The Polygon object to destruct. If the pointer is nullptr nothing happens. The pointer is assigned nullptr afterwards.

◆  GetPolygonS() [1/2]

BaseSelect * GetPolygonS ( void  )

Gets the selected polygons (visible ones only).

返回
The selection of visible polygons. The Polygon object owns the pointed base select.

◆  GetPolygonS() [2/2]

const BaseSelect * GetPolygonS ( void  ) const

Gets the selected polygons (visible ones only).

返回
The selection of visible polygons. The Polygon object owns the pointed base select.

◆  GetPolygonH() [1/2]

BaseSelect * GetPolygonH ( void  )

Gets the hidden polygons (hidden ones within the editor only).

返回
The hidden polygons. The Polygon object owns the pointed base select.

◆  GetPolygonH() [2/2]

const BaseSelect * GetPolygonH ( void  ) const

Gets the hidden polygons (hidden ones within the editor only).

返回
The hidden polygons. The Polygon object owns the pointed base select.

◆  GetEdgeS() [1/2]

EdgeBaseSelect * GetEdgeS ( void  )

Gets the selected edges (visible ones only).
The edges are indexed by 4 * polygon + edge where polygon is the polygon index and edge is the edge index between 0 and 3 .

注意
If the selection is changed make sure it is still valid, so that shared edges have a well-defined selection status.
It is safer to use SetSelectedEdges() .
返回
The selection of visible edges. The Polygon object owns the pointed base select.
另请参阅
GetSelectedEdges()
SetSelectedEdges()

◆  GetEdgeS() [2/2]

const EdgeBaseSelect * GetEdgeS ( void  ) const

Gets the selected edges (visible ones only).
The edges are indexed by 4 * polygon + edge where polygon is the polygon index and edge is the edge index between 0 and 3 .

注意
If the selection is changed make sure it is still valid, so that shared edges have a well-defined selection status.
It is safer to use SetSelectedEdges() .
返回
The selection of visible edges. The Polygon object owns the pointed base select.
另请参阅
GetSelectedEdges()
SetSelectedEdges()

◆  GetEdgeH() [1/2]

EdgeBaseSelect * GetEdgeH ( void  )

Gets the hidden edges (hidden ones within the editor only).
The edges are indexed by 4 * polygon + edge where polygon is the polygon index and edge is the edge index between 0 and 3 .

注意
If this selection is changed make sure it is still valid, so that shared edges have a well-defined selection status.
It is safer to use SetSelectedEdges() .
返回
The hidden edges. The Polygon object owns the pointed base select.

◆  GetEdgeH() [2/2]

const EdgeBaseSelect * GetEdgeH ( void  ) const

Gets the hidden edges (hidden ones within the editor only).
The edges are indexed by 4 * polygon + edge where polygon is the polygon index and edge is the edge index between 0 and 3 .

注意
If this selection is changed make sure it is still valid, so that shared edges have a well-defined selection status.
It is safer to use SetSelectedEdges() .
返回
The hidden edges. The Polygon object owns the pointed base select.

◆  GetPhongBreak() [1/2]

EdgeBaseSelect * GetPhongBreak ( void  )

Gets the Phong break edges.
The edges are indexed by 4 * polygon + edge where polygon is the polygon index and edge is the edge index between 0 and 3 .

注意
If the selection is changed make sure it is still valid, so that shared edges have a well-defined selection status.
It is safer to use SetSelectedEdges() .
返回
The Phong break edges. The Polygon object owns the pointed base select.

◆  GetPhongBreak() [2/2]

const EdgeBaseSelect * GetPhongBreak ( void  ) const

Gets the Phong break edges.
The edges are indexed by 4 * polygon + edge where polygon is the polygon index and edge is the edge index between 0 and 3 .

注意
If the selection is changed make sure it is still valid, so that shared edges have a well-defined selection status.
It is safer to use SetSelectedEdges() .
返回
The Phong break edges. The Polygon object owns the pointed base select.

◆  GetShadingBreak()

BaseSelect * GetShadingBreak ( Bool   includeBorderEdges ,
Bool   includeUserBreak ,
Bool   includeUserNormals ,
Float   userNormalsAngle = DegToRad(5.0) ,
Float   autoNormalsAngle = DegToRad(180.0)  
)

Gets the shading break edges based on neighbor polygons shading edges and a specified

由于
R19

Border edges can optionally be marked as break edges. Current break edges can optionally be included (merged) in the resulting break edges.

Finally, user normal vectors can optionally be considered using a separate angle limit for this purpose.

注意
The edges are indexed by 4 * polygon + edge where polygon is the polygon index and edge is the edge index between 0 and 3 .
由于
R19
参数
[in] includeBorderEdges true to mark border edges as break edges, otherwise false .
[in] includeUserBreak true to include the user break edges (same as obtained with GetPhongBreak), otherwise false .
[in] includeUserNormals true to consider user normals using the userNormalAngle parameter, otherwise false .
[in] userNormalsAngle The angle limit in radians beyond which polygon vertex normals sharing edge vertices create a break edge.
[in] autoNormalsAngle The angle limit in radians beyond which polygon normals sharing an edge create a break edge.
返回
The shading break edges. The PolygonObject owns the pointed BaseSelect .

◆  GetPolygonR()

const CPolygon * GetPolygonR ( void  ) const

Gets the start of the read-only array of polygons.

注意
While this function may sound trivial and cheap, internally it is not. For performance reasons, it is not recommended to use this function inside a loop or inside a loop condition.
返回
The first element in the read-only polygon array. The Polygon object owns the pointed array.

◆  GetPolygonW()

CPolygon * GetPolygonW ( void  )

Gets the start of the writable array of polygons.

注意
While this function may sound trivial and cheap, internally it is not. For performance reasons, it is not recommended to use this function inside a loop or inside a loop condition.
返回
The first element in the writable polygon array. The Polygon object owns the pointed array.

◆  GetPolygonCount()

Int32 GetPolygonCount ( void  ) const

Gets the number of polygons in the object.

注意
While this function may sound trivial and cheap, internally it is not. For performance reasons, it is not recommended to use this function inside a loop or inside a loop condition.
返回
The polygon count.

◆  ResizeObject() [1/3]

Bool ResizeObject ( Int32   pcnt ,
Int32   vcnt  
)

Changes the number of points and polygons in the object.

参数
[in] pcnt The new number of points.
[in] vcnt The new number of polygons.
返回
true if the number of points and polygons was changed successfully, otherwise false .

◆  ResizeObject() [2/3]

Bool ResizeObject ( Int32   pcnt ,
Int32   vcnt ,
Int32   ncnt  
)

Changes the number of points, polygons and N-gons in the object.

参数
[in] pcnt The new number of points.
[in] vcnt The new number of polygons.
[in] ncnt The new number of N-gons.
返回
true if the number of points, polygons and N-gons was changed successfully, otherwise false .

◆  ResizeObject() [3/3]

Bool ResizeObject ( Int32   pcnt ,
Int32   vcnt ,
Int32   ncnt ,
Int32   vc_flags  
)

Changes the number of points, polygons and N-gons in the object with variable changed flags.

参数
[in] pcnt The new number of points.
[in] vcnt The new number of polygons.
[in] ncnt The new number of N-gons.
[in] vc_flags The variable changed flags: VC_FLAGS
返回
true if the number of points, polygons and N-gons was changed successfully, otherwise false .

◆  GetSelectedEdges() [1/2]

BaseSelect * GetSelectedEdges ( Neighbor e ,
EDGESELECTIONTYPE   ltype  
)

Gets the selected, hidden or phong break edges.
The edges are indexed uniquely by a Neighbor object, so each edge has a single index.

注意
Convenience wrapper around GetEdgeS() , GetEdgeH() and GetPhongBreak() .
警告
The returned BaseSelect * must be deleted with BaseSelect::Free() afterwards.
参数
[in] e The neighbor object with information about the edge topology.
Must be initialized with all polygons: Neighbor::Init (poly->GetPointCount(), poly->GetPolygonR(), poly->GetPolygonCount(), nullptr );
[in] ltype The type of edge selection to get: EDGESELECTIONTYPE
返回
The selected edges. The caller owns the pointed base select.

◆  GetSelectedEdges() [2/2]

BaseSelect * GetSelectedEdges ( Neighbor e ,
BaseSelect sel  
)

Converts a regular edge selection ( 4 * polygon + edge ) to an edge selection that can be used with the PolyInfo::edge array.

警告
The returned BaseSelect * must be deleted with BaseSelect::Free() afterwards.
参数
[in] e The neighbor object with information about the edge topology.
Must be initialized with all polygons: Neighbor::Init (poly->GetPointCount(), poly->GetPolygonR(), poly->GetPolygonCount(), nullptr );
[in] sel The selection to convert. The caller owns the pointed base select.
返回
The converted selection. The caller owns the pointed base select.

◆  SetSelectedEdges()

Bool SetSelectedEdges ( Neighbor e ,
BaseSelect pSel ,
EDGESELECTIONTYPE   ltype  
)

Sets the selected, hidden or phong break edges.
The edges are indexed uniquely by a Neighbor object, so each edge has a single index.

注意
Convenience wrapper around GetEdgeS() , GetEdgeH() and GetPhongBreak() .
参数
[in] e The neighbor object with information about the edge topology.
Must be initialized with all polygons: Neighbor::Init (poly->GetPointCount(), poly->GetPolygonR(), poly->GetPolygonCount(), nullptr );
[in] pSel The edge selection. The caller owns the pointed base select.
[in] ltype The type of edge selection to set: EDGESELECTIONTYPE
返回
true if the edge selection succeeded, otherwise false .

◆  CreatePhongNormals()

Vector32 * CreatePhongNormals ( )

Gets an array with the stored Phong normals of the object.
The array contains 4* GetPolygonCount() vectors, one for each point of each face (including the unused fourth point for triangles).

注意
Only valid if the object has a Phong tag.
警告
The returned array has to be freed with DeleteMem() afterwards.
返回
The Phong normals. The caller owns the pointed array.

◆  GetPolygonTranslationMap()

Bool GetPolygonTranslationMap ( Int32 ngoncnt ,
Int32 *&  polymap  
)

Gets a translation map from polygon indices to N-gon indices.
polymap[i] = p then polygon i is part of the N-gon p .

警告
polymap needs to be freed with DeleteMem() afterwards.
参数
[in,out] ngoncnt Assigned the number of N-gons.
This is not the same value as returned by GetNgonCount() . ngoncnt includes all regular polygons as well.
[in,out] polymap Assigned a pointer to the N-gon index map. The caller owns the pointed array.
返回
true if successful, otherwise false .

◆  GetNGonTranslationMap()

Bool GetNGonTranslationMap ( Int32   ngoncnt ,
Int32 polymap ,
Int32 **&  ngons  
)

Gets a translation map from N-gon indices to polygon indices.
The number of polygons in N-gon i is stored in ngons[i][0] . Then the polygon indices are stored in ngons[i][j] where j goes from 1 to ngons[i][0] .

警告
ngons map needs to be freed with DeleteMem() afterwards.
参数
[in,out] ngoncnt The number of N-gons. Use the value returned by GetPolygonTranslationMap() , not GetNgonCount() .
[in,out] polymap The polygon map. Use the map returned by GetPolygonTranslationMap() , or a similarly formatted array. The caller owns the pointed array.
[in,out] ngons Assigned a pointer to the polygon index map. The caller owns the pointed array.
返回
true if successful, otherwise false .

◆  GetAndBuildNgon()

Pgon * GetAndBuildNgon ( void  )

Gets the start of the array of N-gons.

返回
The N-gon array. The Polygon object owns the pointed array.

◆  GetNgonCount()

Int32 GetNgonCount ( void  )

Gets the number of N-gons in the object, i.e. the number of polygons with more points than 4 .

返回
The number of N-gons.

◆  GetSelectedNgons()

void GetSelectedNgons ( BaseSelect sel )

Gets the current N-gon selection.
It has the same order as the GetNGonTranslationMap() .

参数
[out] sel Assigned the current N-gon selection.

◆  GetHiddenNgons()

void GetHiddenNgons ( BaseSelect sel )

Gets the current hidden N-gon selection.
It has the same order as GetNGonTranslationMap() .

参数
[out] sel Assigned the current hidden N-gon selection.

◆  GetNgonBase()

NgonBase * GetNgonBase ( )

Gets the NgonBase instance for the object.

返回
The N-gon base. The Polygon object owns the pointed NgonBase .

◆  ValidateEdgeSelection() [1/2]

Bool ValidateEdgeSelection ( BaseSelect sel )

Deselects all selected edges in sel that are N-gon edges.

参数
[in] sel The selection to check for N-gon edges. The caller owns the pointed BaseSelect .
返回
true if successful, otherwise false .

◆  ValidateEdgeSelection() [2/2]

Bool ValidateEdgeSelection ( )

Deselects all selected edges that are N-gon edges.

返回
true if successful, otherwise false .

◆  GetEdgeSelection()

Bool GetEdgeSelection ( BaseSelect sel ,
EDGESELECTIONTYPE   type  
)

Deselects all edges in sel that are N-gon edges as specified by type.

参数
[in] sel The selection to check for N-gon edges. The caller owns the pointed BaseSelect .
[in] type The type of selection to check: EDGESELECTIONTYPE
返回
true if successful, otherwise false .

◆  GetNgonEdgesCompact()

void GetNgonEdgesCompact ( UChar *&  edges )

Retrieves an array that contains N-gon information for each polygon.
edges[poly_index] & (1 << edge_index) != 0 the edge is a hidden N-gon edge, where edge_index is between 0 - 3 for quads and 0 , 1 or 3 for triangles.

警告
edges array needs to be freed with DeleteMem() afterwards.
参数
[out] edges Assigned a pointer to the compact N-gon edges array. The caller owns the pointed array.
Neighbor::Init
virtual Bool Init(Int32 pcnt, const CPolygon *vadr, Int32 vcnt, BaseSelect *bs)