SplineObject Class Reference

#include <c4d_baseobject.h>

Inheritance diagram for SplineObject:

详细描述

Represents a spline object.

私有成员函数

  SplineObject ()
  ~SplineObject ()

Alloc/Free

static SplineObject *  Alloc ( Int32 pcnt, SPLINETYPE type)
static void  Free ( SplineObject *&bl)

Spline Point/Tangent

向量   GetSplinePoint ( Float t, Int32 segment=0, const 向量 *padr=nullptr)
向量   GetSplineTangent ( Float t, Int32 segment=0, const 向量 *padr=nullptr)

Segment

const Segment *  GetSegmentR (void)
Segment *  GetSegmentW (void)
Int32   GetSegmentCount (void)

Tangent

const Tangent *  GetTangentR (void)
Tangent *  GetTangentW (void)
Int32   GetTangentCount (void)

杂项

SPLINETYPE   GetInterpolationType (void) const
LineObject *  GetLineObject ( BaseDocument *doc, Float lod, BaseThread *thread=nullptr)
Bool   IsClosed (void)
Bool   ResizeObject ( Int32 pcnt, Int32 scnt)
Bool   SetDefaultCoeff (void)

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

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

◆  SplineObject()

SplineObject () private

◆  ~SplineObject()

~ SplineObject () private

成员函数文档编制

◆  Alloc()

static SplineObject * Alloc ( Int32   pcnt ,
SPLINETYPE   type  
)
static

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

参数
[in] pcnt The point count.
[in] type The spline type: SPLINETYPE
返回
The allocated Spline object, or nullptr if the allocation failed.

◆  Free()

static void Free ( SplineObject *&  bl )
static

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

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

◆  GetSplinePoint()

向量 GetSplinePoint ( Float   t ,
Int32   segment = 0 ,
const 向量 *  padr = nullptr  
)

Gets the spline point at a position along the given segment.

参数
[in] t The position 0.0 <= t <= 1.0 along the segment.
The positioning is natural, for example t = 0.5 is not necessarily at half the length. Use SplineLengthData::UniformToNatural() to get a uniform distribution.
[in] segment The segment to get the point in.
[in] padr For speedup purposes pass a pointer to the start of the specified segment in the point array. Otherwise the spline has to search its array manually.
返回
The spline point.

◆  GetSplineTangent()

向量 GetSplineTangent ( Float   t ,
Int32   segment = 0 ,
const 向量 *  padr = nullptr  
)

Gets the tangent of a spline at a position along the given segment.

参数
[in] t The position 0.0 <= t <= 1.0 along the segment.
The positioning is natural, for example t = 0.5 is not necessarily at half the length. Use SplineLengthData::UniformToNatural() to get a uniform distribution.
[in] segment The segment to get the point in.
[in] padr For speedup purposes pass a pointer to the start of the specified segment in the point array. Otherwise the spline has to search its array manually.
返回
The spline tangent.

◆  GetSegmentR()

const Segment * GetSegmentR ( void  )

Gets the first element in the read-only segments array.

返回
The read-only segment array address. The Spline object owns the pointed array.

◆  GetSegmentW()

Segment * GetSegmentW ( void  )

Gets the first element in the writable segments array.

返回
The writable segment array address. The Spline object owns the pointed array.

◆  GetSegmentCount()

Int32 GetSegmentCount ( void  )

Gets the number of segments.

返回
The segment count.

◆  GetTangentR()

const Tangent * GetTangentR ( void  )

Gets the first element in the read-only tangents array.

返回
The read-only tangent array address. The Spline object owns the pointed array.

◆  GetTangentW()

Tangent * GetTangentW ( void  )

Gets the first element in the writable tangents array.

返回
The writable tangent array address. The Spline object owns the pointed array.

◆  GetTangentCount()

Int32 GetTangentCount ( void  )

Gets the number of tangents.

返回
The tangent count.

◆  GetInterpolationType()

SPLINETYPE GetInterpolationType ( void  ) const

Gets the interpolation type of the spline.

返回
The interpolation type: SPLINETYPE

◆  GetLineObject()

LineObject * GetLineObject ( BaseDocument *  doc ,
Float   lod ,
BaseThread *  thread = nullptr  
)

Gets a line based object from the spline.

参数
[in] doc The document containing the spline object. The caller owns the pointed document.
[in] lod The level of detail to create the line.
[in] thread A thread to check for a break or nullptr . The caller owns the pointed thread.
返回
A line based representation of the spline. The caller owns the pointed Line object.

◆  IsClosed()

Bool IsClosed ( void  )

Checks if the spline is closed.

返回
true if the spline is closed., otherwise false .

◆  ResizeObject()

Bool ResizeObject ( Int32   pcnt ,
Int32   scnt  
)

Changes the number of segments and points for the spline.

参数
[in] pcnt The new point count.
[in] scnt The new segment count.
返回
true if the number of points and segments was changed successfully, otherwise false .

◆  SetDefaultCoeff()

Bool SetDefaultCoeff ( void  )

Initializes the spline with default coefficients.

返回
true if successful, otherwise false .