Material Class Reference

#include <c4d_basematerial.h>

Inheritance diagram for Material:

详细描述

The material with the Mmaterial type.

注意
Has to be created with Alloc() and destroyed with Free() 。使用 AutoAlloc to automate the allocation and destruction based on scope.
另请参阅
Mmaterial.h for container IDs.

私有成员函数

  材质 ()
  ~Material ()

Allocation

static 材质 Alloc ()
static void  Free ( 材质 *&bl)

Get/Set Channel State

Bool   GetChannelState ( Int32 channel)
void  SetChannelState ( Int32 channel, Bool state)

Reflection/Specular Layer Access

static Bool   RenderViewportImage ( 材质 *material, BaseDocument *baseDocument, Int32 sizeExponent, Int32 xMin, Int32 yMin, Int32 xMax, Int32 yMax, BaseThread *parentThread, BaseBitmap &bitmap)
static void  ComputeFresnelMetal ( Int32 fresnelMetal, 向量 &fresnelIOR, 向量 &fresnelK)
static Float   ComputeFresnelDielectric ( Int32 fresnelPreset)
ReflectionLayer AddReflectionLayer ()
ReflectionLayer GetReflectionLayerID ( Int32 id)
ReflectionLayer GetReflectionLayerIndex ( Int32 index)
ReflectionLayer GetReflectionLayerTrans ()
Int32   GetReflectionLayerCount ()
Int32   GetReflectionLayerCount ( Bool includeTransparencyLayers)
void  RemoveReflectionLayerID ( Int32 id)
void  RemoveReflectionLayerIndex ( Int32 index)
void  RemoveReflectionAllLayers ()
void  GetAllReflectionShaders ( maxon::BaseArray < BaseShader * > &shaders)
void  GetReflectionPrimaryLayers ( Int32 &reflection_layer, Int32 &specular_layer)

Additional Inherited Members

-  Public Member Functions inherited from BaseMaterial
BaseMaterial GetNext (void)
BaseMaterial GetPred (void)
void  更新 ( Bool preview, Bool rttm)
BaseChannel GetChannel ( Int32 id)
INITRENDERRESULT   InitTextures (const InitRenderStruct &irs)
void  UnlockTextures ()
void  Displace ( VolumeData *sd, const RayPolyWeight *weights)
void  ChangeNormal ( VolumeData *sd)
void  CalcSurface ( VolumeData *sd)
void  CalcTransparency ( VolumeData *sd)
void  CalcAlpha ( VolumeData *sd)
void  CalcVolumetric ( VolumeData *sd)
void  InitCalculation ( VolumeData *sd, INITCALCULATION type)
Bool   比较 ( BaseMaterial *snd)
BaseBitmap GetPreview ( Int32 flags)
RayIllumination GetRayIllumination ()
向量   GetAverageColor ( Int32 channel=-1)
VOLUMEINFO   GetRenderInfo (void)
Bool   HasEditorTransparency ()
Bool   InitEditorPreviewImage ( Int32 exponent, BaseDocument *doc, BaseThread *th, Int32 doccolorspace, Bool linearworkflow)
Bool   InitEditorPreviewImage ( BaseBitmap *bmp, BaseDocument *doc, BaseThread *th, Int32 doccolorspace, Bool linearworkflow) const
-  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 BaseMaterial
static BaseMaterial Alloc ( Int32 type)
static void  Free ( BaseMaterial *&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

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

◆  Material()

材质 () private

◆  ~Material()

~ 材质 () private

成员函数文档编制

◆  Alloc()

static 材质 * Alloc ( )
static

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

返回
The allocated material, or nullptr if the allocation failed.

◆  Free()

static void Free ( 材质 *&  bl )
static

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

参数
[in] bl The material to destruct. If the pointer is nullptr nothing happens. The pointer is assigned nullptr afterwards.

◆  GetChannelState()

Bool GetChannelState ( Int32   channel )

Gets the state of a channel (if it is enabled or disabled).

参数
[in] channel The channel type: CHANNEL
返回
true if the channel is enabled for this material, otherwise false .

◆  SetChannelState()

void SetChannelState ( Int32   channel ,
Bool   state  
)

Sets the state of a channel (if it is enabled or disabled).

参数
[in] channel The type of the channel to enable or disable: CHANNEL
[in] state true to enable the given channel , otherwise false .

◆  AddReflectionLayer()

ReflectionLayer * AddReflectionLayer ( )

Adds a reflection/specular layer.

由于
R16
返回
The added reflection/specular layer. Cinema 4D owns the pointed layer.

◆  GetReflectionLayerID()

ReflectionLayer * GetReflectionLayerID ( Int32   id )

Retrieves a reflection/specular layer by ID.

由于
R16
参数
[in] id The layer ID.
返回
The reflection/specular layer. Cinema 4D owns the pointed layer.

◆  GetReflectionLayerIndex()

ReflectionLayer * GetReflectionLayerIndex ( Int32   index )

Retrieves a reflection/specular layer by index.

由于
R16
参数
[in] index The layer index.
返回
The reflection/specular layer. Cinema 4D owns the pointed layer.

◆  GetReflectionLayerTrans()

ReflectionLayer * GetReflectionLayerTrans ( )

Retrieves the transparency layer.

由于
R16
返回
The transparency layer, or nullptr if not available. Cinema 4D owns the pointed layer.

◆  GetReflectionLayerCount() [1/2]

Int32 GetReflectionLayerCount ( )

Retrieves the number of reflection/specular layers.

由于
R16
返回
The reflection/specular layers' count.

◆  GetReflectionLayerCount() [2/2]

Int32 GetReflectionLayerCount ( Bool   includeTransparencyLayers )

Retrieves the number of reflection/specular layers. Transparency layers can be optionally included in the count.

由于
S22
参数
[in] includeTransparencyLayers Specifies if transparency layers should be included in the count.
返回
The reflection/specular layers' count.

◆  RemoveReflectionLayerID()

void RemoveReflectionLayerID ( Int32   id )

Removes a reflection/specular layer by ID.

由于
R16
参数
[in] id The layer ID.

◆  RemoveReflectionLayerIndex()

void RemoveReflectionLayerIndex ( Int32   index )

Removes a reflection/specular layer by index.

由于
R16
参数
[in] index The layer index.

◆  RemoveReflectionAllLayers()

void RemoveReflectionAllLayers ( )

Deletes all reflection/specular layers.

由于
R16

◆  GetAllReflectionShaders()

void GetAllReflectionShaders ( maxon::BaseArray < BaseShader * > &  shaders )

Retrieves all the reflection/specular shaders.

由于
R16
参数
[out] shaders Assigned all the reflection/specular shaders. Cinema 4D owns the pointed shaders.

◆  GetReflectionPrimaryLayers()

void GetReflectionPrimaryLayers ( Int32 reflection_layer ,
Int32 specular_layer  
)

Retrieves the indices to the primary reflection and specular layers (can be -1 for empty).

由于
R16
参数
[out] reflection_layer The most significant reflection layer.
[out] specular_layer The most significant specular layer.

◆  RenderViewportImage()

static Bool RenderViewportImage ( 材质 material ,
BaseDocument baseDocument ,
Int32   sizeExponent ,
Int32   xMin ,
Int32   yMin ,
Int32   xMax ,
Int32   yMax ,
BaseThread parentThread ,
BaseBitmap bitmap  
)
static

Private .

◆  ComputeFresnelMetal()

static void ComputeFresnelMetal ( Int32   fresnelMetal ,
向量 fresnelIOR ,
向量 fresnelK  
)
static

Private .

◆  ComputeFresnelDielectric()

static Float ComputeFresnelDielectric ( Int32   fresnelPreset )
static

Private .