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)