Rhino C++ API  7.26
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
CRhRdkMaterial Class Referenceabstract

#include <RhRdkMaterial.h>

Inheritance diagram for CRhRdkMaterial:
CRhRdkCoreContent CRhRdkContent CRhRdkObject IAutoUIExtraRequirements CRhRdkBasicMaterialBase CRhRdkBasicMaterial


class  PhysicallyBased

Public Types

enum  ChildSlotUsage : unsigned int {
  ChildSlotUsage::None = 0x0000000, ChildSlotUsage::Diffuse = 0x0000001, ChildSlotUsage::Transparency = 0x0000002, ChildSlotUsage::Opacity = 0x0000002,
  ChildSlotUsage::Bump = 0x0000004, ChildSlotUsage::Environment = 0x0000008, ChildSlotUsage::PBR_base_color = Diffuse, ChildSlotUsage::PBR_opacity = Transparency,
  ChildSlotUsage::PBR_bump = Bump, ChildSlotUsage::PBR_subsurface = 0x0000020, ChildSlotUsage::PBR_subsurface_scattering = 0x0000040, ChildSlotUsage::PBR_subsurface_scattering_color = 0x0000040,
  ChildSlotUsage::PBR_subsurface_scattering_radius = 0x0000080, ChildSlotUsage::PBR_metallic = 0x0000100, ChildSlotUsage::PBR_specular = 0x0000200, ChildSlotUsage::PBR_specular_tint = 0x0000400,
  ChildSlotUsage::PBR_roughness = 0x0000800, ChildSlotUsage::PBR_anisotropic = 0x0001000, ChildSlotUsage::PBR_anisotropic_rotation = 0x0002000, ChildSlotUsage::PBR_sheen = 0x0004000,
  ChildSlotUsage::PBR_sheen_tint = 0x0008000, ChildSlotUsage::PBR_clearcoat = 0x0010000, ChildSlotUsage::PBR_clearcoat_roughness = 0x0020000, ChildSlotUsage::PBR_opacity_ior = 0x0040000,
  ChildSlotUsage::PBR_opacity_roughness = 0x0080000, ChildSlotUsage::PBR_emission = 0x0100000, ChildSlotUsage::PBR_ambient_occlusion = 0x0200000, ChildSlotUsage::PBR_displacement = 0x0800000,
  ChildSlotUsage::PBR_clearcoat_bump = 0x1000000, ChildSlotUsage::PBR_alpha = 0x2000000, ChildSlotUsage::Any = 0xFFFFFFFF
- Public Types inherited from CRhRdkCoreContent
enum  SectionId : int { TextureSummary = 0x8000, NotUsed = 0x8001 }
- Public Types inherited from CRhRdkContent
enum  : unsigned int {
  bfTextureSummary = 0x0001, bfQuickPreview = 0x0002, bfPreviewCache = 0x0004, bfLocalTextureMapping = 0x0010,
  bfGraphDisplay = 0x0020, bfAdjustment = 0x0080, bfFields = 0x0100, bfNameTypeSection = 0x0800
enum  {
  pg_unused = 0x00000000, pg_sphere = 0x00000001, pg_cube = 0x00000002, pg_cone = 0x00000004,
  pg_pyramid = 0x00000008, pg_torus = 0x00000010, pg_plane = 0x00000020, pg_cone_sphere = 0x00010000,
  pg_scene = 0x00020000, pg_default_mat = pg_sphere | pg_cube | pg_cone | pg_pyramid | pg_torus | pg_plane | pg_scene, pg_default_env = pg_cone_sphere, pg_default_tex = pg_unused,
  pg_mat_scene = pg_scene, force32bit_pgflags = 0xFFFFFFFF
enum  {
  pb_unused = 0x00000000, pb_none = 0x00000001, pb_checker = 0x00000002, pb_custom = 0x00000004,
  pb_scene = 0x00000008, pb_default_mat = pb_none | pb_checker | pb_custom | pb_scene, pb_default_env = pb_unused, pb_default_tex = pb_unused,
  force32bit_pbflags = 0xFFFFFFFF
enum  {
  pl_unused = 0x00000000, pl_simple = 0x00000001, pl_sky = 0x00000002, pl_default_mat = pl_simple | pl_sky,
  pl_default_env = pl_unused, pl_default_tex = pl_unused, force32bit_plflags = 0xFFFFFFFF
enum  CopyMethods : unsigned int { CopyMethods::Normal, CopyMethods::Transient }
enum  CSIContext : unsigned int { CSIContext::All = 0, CSIContext::TextureSummary = 1, CSIContext::Private1 = 2, CSIContext::Private2 = 3 }
enum  DynamicIconUsage : unsigned int { DynamicIconUsage::TreeControl, DynamicIconUsage::SubnodeControl, DynamicIconUsage::ContentControl, DynamicIconUsage::General }
enum  EmbedFilesChoice : unsigned int { EmbedFilesChoice::kNeverEmbed, EmbedFilesChoice::kAlwaysEmbed, EmbedFilesChoice::kAskUser }
enum  ePreviewSceneType { preview_scene_server = 0, texture_2d_image = 1, force32_bit_sceneType = 0xFFFFFFFF }
enum  Harvested : unsigned int { Harvested::None = 0, Harvested::Some = 1, Harvested::All = 2 }
enum  Kinds : unsigned int { Kinds::Unset, Kinds::Material, Kinds::Environment, Kinds::Texture }
enum  ParamSerialMethod : unsigned int { ParamSerialMethod::GetSet, ParamSerialMethod::XmlStream }
enum  ProxyTypes : unsigned int { ProxyTypes::None, ProxyTypes::Single, ProxyTypes::Multi, ProxyTypes::Texture }
enum  ReadParamsContext : unsigned int { ReadParamsContext::Serialization = 0, ReadParamsContext::Harvesting = 1, ReadParamsContext::Rendering = 2 }
enum  WriteParamsContext : unsigned int { WriteParamsContext::Serialization = 0, WriteParamsContext::Harvesting = 1, WriteParamsContext::Rendering = 2, WriteParamsContext::DragDrop = 3 }
- Public Types inherited from IAutoUIExtraRequirements
enum  SetContext : unsigned int { SetContext::UI, SetContext::Drop, SetContext::Program }

Public Member Functions

 CRhRdkMaterial ()
virtual ~CRhRdkMaterial ()
bool AssignTo (const CRhinoObjRef &objRef) const
bool AssignTo (const ON_ClassArray< CRhinoObjRef > &aObjRef, RhRdkAssignToSubFaceChoices sfc, RhRdkAssignToBlockChoices bc, bool bInteractive) const
virtual const wchar_t * Category (void) const override
virtual bool DynamicIcon (const ON_2iSize &size, CRhinoDib &dibOut, DynamicIconUsage usage) const override
virtual void * EVF (const wchar_t *wszFunc, void *pvData) override
virtual CRhRdkContentFastMakeCopy (CopyMethods m) const override
virtual bool GetTextureChannelInfo (ChildSlotUsage usage, TextureChannelInfo &info) const
ON_wString GetTextureChildSlotName (ChildSlotUsage usage) const
const CRhRdkContentGetTextureForUsage (ChildSlotUsage usage) const
virtual Harvested HarvestData (const CRhRdkContent &oldContent) override
virtual bool Icon (const ON_2iSize &size, CRhinoDib &dibOut) const override
CImpl & Impl (void) const
virtual bool IsAssociatedWith (const ON_Material &mat) const
virtual Kinds Kind (void) const final override
virtual const wchar_t * LibraryFileExtension (void) const override
virtual CRhRdkContentMakeCopy (CopyMethods m=CopyMethods::Normal) const override
virtual CRhRdkPreviewBackgroundNewPreviewBackground (void) const override
virtual CRhRdkPreviewGeometryNewPreviewGeometry (void) const override
virtual IRhRdkPreviewSceneServerNewPreviewSceneServer (const CRhRdkSSData &data) const override
virtual UINT PreviewBackgroundFlags (void) const override
virtual UINT PreviewGeometryFlags (void) const override
virtual UINT PreviewLightingFlags (void) const override
virtual ePreviewSceneType PreviewSceneType (void) const override
virtual void SetInstanceName (const wchar_t *wszName) override
virtual bool SetSimulation (IRhRdk_XMLSection &section) const override
virtual const ON_MaterialSimulatedMaterial (CRhRdkTexture::TextureGeneration tg=CRhRdkTexture::TextureGeneration::Allow, int iSimulatedTextureSize=-1, const CRhinoObject *pObject=nullptr) const
bool SmellsLike (const UUID &typeId, bool bIgnoreTextures=false) const
bool SmellsLikeGem (void) const
bool SmellsLikeGlass (void) const
bool SmellsLikeMetal (void) const
bool SmellsLikePaint (void) const
bool SmellsLikePlaster (void) const
bool SmellsLikePlastic (void) const
bool SmellsLikeTexturedGem (void) const
bool SmellsLikeTexturedGlass (void) const
bool SmellsLikeTexturedMetal (void) const
bool SmellsLikeTexturedPaint (void) const
bool SmellsLikeTexturedPlaster (void) const
bool SmellsLikeTexturedPlastic (void) const
virtual bool TextureRequiresLinearWorkflowAdjustment (const wchar_t *wszChildSlotName) const
ChildSlotUsage TextureUsage (const wchar_t *wszChildSlotName) const
virtual bool UpdateDocumentTables (void) const override
- Public Member Functions inherited from CRhRdkCoreContent
 CRhRdkCoreContent ()
 CRhRdkCoreContent (bool bAutoGlobalRegister)
virtual ~CRhRdkCoreContent ()
virtual RDK_DEPRECATED bool AddAutomaticUISection (const wchar_t *wszCaption, int id=0)
virtual bool AddAutomaticUISection (IRhRdkExpandableContentUI &ui, const wchar_t *wszLocalCaption, const wchar_t *wszEnglishCaption, int id=0)
virtual void AddUI (IRhRdkContentUI &ui) const
virtual void AddUISections (IRhRdkExpandableContentUI &ui)
virtual RDK_DEPRECATED void AddUISections (void)
virtual bool CreatePreview (CRhRdkRenderPlugIn &plugIn, const ON_2iSize &sizeImage, RhRdkPreviewQuality qual, const IRhRdkPreviewSceneServer *pSceneServer, IRhRdkPreviewCallbacks *pNotify, CRhinoDib &dibOut) const override
virtual IRhRdkContentUICreateUI (IRhRdkContentEditor &e, const UUID &uuidUI, const CRhRdkContentArray &aInitialClients, void *pReserved) override
virtual IRhRdkCustomCurveGraphSectionCallbackCustomCurveGraphSectionCallback (void)
virtual void GetUIs (ON_SimpleArray< IRhRdkContentUI * > &aOut) const override
virtual ParamSerialMethod ParameterSerializationMethod (void) const override
virtual bool ReadParametersFromSection (const IRhRdk_XMLSection &section, ReadParamsContext context) override
virtual RDK_DEPRECATED bool RecreateTextureSummary (void)
virtual void ReleaseAllEditorUIs (const UUID &uuidEditor, bool bIncludeChildren) const override
virtual void ReleaseAllUIs (bool bIncludeChildren) const override
virtual void TransferUIsFrom (const CRhRdkContent &c)
virtual RDK_DEPRECATED IRhRdkExpandableContentUIUI (void) const override
virtual bool WriteParametersToSection (IRhRdk_XMLSection &section, WriteParamsContext context) const override
- Public Member Functions inherited from CRhRdkContent
 CRhRdkContent ()
 CRhRdkContent (bool bAutoGlobalRegister)
virtual ~CRhRdkContent ()
virtual RDK_DEPRECATED void AddAutoParameters (class IRhRdkParamBlock &paramBlock, int id)
virtual void AddAutoParameters (class IRhRdkParamBlock &paramBlock, int id) const
virtual RDK_DEPRECATED bool AddChild (CRhRdkContent *pChild, const wchar_t *wszChildSlotName)
virtual bool AddToDocumentList (CRhRdkDocument &rdkDoc)
virtual const class IRhRdkPreviewAppearanceDefaultsAppearanceDefaults (void) const
virtual bool AttachCustomUserData (ICustomUserData *data)
virtual bool AutoDelete (void) const
virtual ON_wString AutomaticInstanceName (void) const
virtual CRhRdkContentBeginChange (RhRdkChangeContext cc) const
virtual unsigned int BitFlags (void) const
virtual bool CanBeEdited (void) const
virtual bool ChangeChild (CRhRdkContent *pOldChild, CRhRdkContent *pNewChild)
virtual RDK_DEPRECATED void Changed (eChangeContext cc)
virtual void Changed (void)
virtual RDK_DEPRECATED DWORD ChildrenRenderCRC (void) const
virtual CRhRdkVariant ChildSlotAmount (const wchar_t *wszChildSlotName) const
ON_wString ChildSlotDisplayName (void) const
virtual ON_wString ChildSlotName (void) const
virtual ON_wString ChildSlotNameFromParamName (const wchar_t *wszParamName) const
virtual CRhRdkVariant ChildSlotOn (const wchar_t *wszChildSlotName) const
CRhRdkContentClone (CopyMethods m=CopyMethods::Normal) const
void CommonCtor (bool b)
virtual bool ContentNameTakenFromFileName (void) const
virtual void ConvertMetersToUnits (void)
virtual void ConvertUnitsToMeters (void)
virtual bool CreatedByLoading (void) const
virtual RDK_DEPRECATED HBITMAP CreateLibraryPreview (const class CSize &sizeImage, const IRhRdkPreviewSceneServer *pSceneServer) const
virtual bool CreateLibraryPreview (const ON_2iSize &sizeImage, const IRhRdkPreviewSceneServer *pSceneServer, CRhinoDib &dibOut) const
virtual RDK_DEPRECATED HBITMAP CreatePreview (class CRhRdkRenderPlugIn &plugIn, const class CSize &sizeImage, eRhRdkRenderQuality qual, const class IRhRdkPreviewSceneServer *pSceneServer) const
virtual class IRhRdkContentUICreateUI (class IRhRdkContentEditor &e, const UUID &uuidUI, const class CRhRdkContentArray &aInitialClients, void *pReserved)=0
virtual const ICustomUserDataCustomUserData (const UUID &uuidDataId) const
virtual RDK_DEPRECATED void DecrementUseCount (void) const
virtual void DeleteAllChildren (void)
virtual bool DeleteChild (const wchar_t *wszChildSlotName)
virtual RDK_DEPRECATED void DestroyChildContent (const UUID &uuidPlugIn)
virtual void DestroyChildContent (const UUID &uuidPlugIn) const
virtual bool DetachCustomUserData (ICustomUserData *pUD)
virtual void DisplayContextHelp (HWND hwndParent) const
virtual void DisplayDebugString (const wchar_t *wszTitle=L"") const
ON_wString DisplayName (void) const
virtual RDK_DEPRECATED CRhinoDocDocument (void) const
virtual const CRhinoDocDocumentAssoc (void) const
virtual ON_wString DragText (const UUID &uuidSource) const
ON_wString DragTextEx (const UUID &uuidSource, int version, void *) const
virtual const CRhRdkContentDuplicate (void) const
const CRhRdkContentDuplicateEx (bool reserved) const
virtual IAutoUIExtraRequirementsDuplicateExtraRequirementsInterface (void) const
virtual bool DuplicationInProgress (void) const
virtual CRhRdkContentEdit (void) const
virtual ON_wString EmbeddedFiles (void) const
virtual ON_wString EmbeddedFilesRecursive (void) const
void EmergencyUnregister (void) const
virtual bool EndChange (void)
virtual void ExecuteCommand (UUID uuidCommand, void *pvData) const
virtual const CRhRdkContentFactoryFactory (void) const
class CRhRdkContentFieldsFields (void) const
virtual const CRhRdkContentFindChild (const wchar_t *wszChildSlotName) const
virtual const CRhRdkContentFindInstance (const UUID &uuidInstance) const
virtual RDK_DEPRECATED CRhRdkContentFindInstance (const wchar_t *wszName) const
virtual void FindInstanceByName (const wchar_t *wszName, bool bCaseSensitive, bool bRecurse, OUT CRhRdkContentArray &aContent) const
virtual const CRhRdkContentFirstChild (void) const
virtual const CRhRdkContentForDisplay (void) const
virtual void GetAutoParameters (const IRhRdkParamBlock &paramBlock, int id)
virtual RhRdkChangeContext GetChangeContext (void) const
virtual CChildIterator GetChildIterator (void) const
virtual ON_wString GetDebugString (const wchar_t *wszSeparator, UINT_PTR reserved) const
virtual RDK_DEPRECATED bool GetDefaultsFromUser (HWND)
virtual bool GetDefaultsFromUser (void)
virtual ON_wString GetEnglishParamName (const wchar_t *wszParamName) const
virtual bool GetExtraRequirementParameter (const wchar_t *wszParamName, const wchar_t *wszExtraReqName, CRhRdkVariant &vValueOut) const
virtual void GetInstanceIdsRecursive (class CRhRdkInstanceIdArray &aOut) const
virtual ON_wString GetLocalizedParamName (const wchar_t *wszParamName) const
virtual CRhRdkVariant GetParameter (const wchar_t *wszName) const
virtual RDK_DEPRECATED bool GetParameters (const class IRhRdk_XMLSection &section, eGetParamsContext context)
virtual void * GetShader (const UUID &uuidRenderEngine, void *pvData) const
virtual bool GetSimulation (const IRhRdk_XMLSection &section)
void GetSortedChildren (OUT CRhRdkContentArray &aChild) const
bool GetUnderlyingInstances (OUT CRhRdkContentArray &a) const
virtual bool GlobalRegister (bool bRegister=true)
virtual const UUID & GroupId (void) const
virtual RDK_DEPRECATED HICON Icon (void) const
CImpl & Imp (void) const
virtual RDK_DEPRECATED void IncrementUseCount (void) const
virtual bool Initialize (void)
virtual const UUID & InstanceId (void) const
virtual ON_wString InstanceName (void) const
virtual void InternalChanged (RhRdkChangeContext, const CRhRdkContent *)
virtual ON_wString InternalName (void) const =0
virtual bool IsBasicType (void) const
virtual bool IsBuiltIn (void) const
bool IsChild (void) const
virtual bool IsCompatible (const UUID &uuidRenderEngine) const
virtual bool IsContentTypeAcceptableAsChild (const UUID &uuidType, const wchar_t *wszChildSlotName) const
virtual RDK_DEPRECATED bool IsCRCCached (void) const
virtual bool IsDefaultInstance (void) const
virtual bool IsFactoryProductAcceptableAsChild (const class CRhRdkContentFactory &f, const wchar_t *wszChildSlotName) const
virtual RDK_DEPRECATED bool IsFactoryProductAcceptableAsChild (const class CRhRdkContentFactory *pFactory, const wchar_t *wszChildSlotName) const
virtual bool IsHidden (void) const
virtual bool IsHiddenByAutoDelete (void) const
virtual RDK_DEPRECATED bool IsInDocument (void) const
virtual bool IsKind (CRhRdkContent::Kinds kind) const
virtual bool IsLocked (void) const
virtual bool IsOwnedByDocument (void) const
virtual bool IsPerObject (void) const
virtual bool IsPrivate (void) const
virtual bool IsReference (void) const
virtual bool IsRhinoObjectSelected (void) const
virtual bool IsSurrogate (void) const
virtual bool IsTopLevel (void) const
virtual bool IsUniversal (void) const
virtual bool IsV4Material (void) const
virtual ON_wString LibraryFileName (void) const
virtual RDK_DEPRECATED CRhRdkContentMakeGroupInstance (void)
virtual CRhRdkContentMakeGroupInstance (void) const
virtual CChildSlotIteratorNewChildSlotIterator (CSIContext context) const
virtual class IRhRdkPreviewSceneServerNewPreviewSceneServer (const class CRhRdkSSData &data) const =0
virtual const CRhRdkContentNextSibling (void) const
virtual ON_wString Notes (void) const
virtual bool OnChildChanging (const CRhRdkContent *pOldChild, const CRhRdkContent *pNewChild) const
virtual bool OnChildSlotChanged (const wchar_t *wszChildSlotName) const
virtual bool OnChildSlotChanging (const wchar_t *wszChildSlotName) const
virtual void OnDocumentRegister (void) const
virtual void OnDocumentUnregister (void) const
virtual bool OnExtraRequirementButtonClicked (const wchar_t *wszParamName, const wchar_t *wszButtonName)
virtual void OnFieldChanged (const class CRhRdkContentField &field, const CRhRdkVariant &vOldValue, RhRdkChangeContext cc, void *pReserved)
bool OpenInFirstMainModelessEditor (void) const
virtual RDK_DEPRECATED bool OpenInMainEditor (void) const
virtual RDK_DEPRECATED bool OpenInModalEditor (UINT uFlags=0)
virtual ON_wString ParamNameFromChildSlotName (const wchar_t *wszChildSlotName) const
virtual const CRhRdkContentParent (void) const
virtual UUID PlugInId (void) const =0
virtual int PreviewUpdateDelay (void) const
void Promote (void)
virtual ProxyTypes ProxyType (void) const
virtual const CRhRdkDocumentRdkDocumentAssoc (void) const
virtual UUID RdkDocumentId (void) const
virtual const CRhRdkDocumentRdkDocumentOwner (void) const
virtual const RDK_DEPRECATED CRhRdkDocumentRdkDocumentRegistered (void) const
virtual RDK_DEPRECATED bool ReadParameterXMLStream (const wchar_t *wszStream, eGetParamsContext context)
virtual bool ReadParameterXMLStream (const wchar_t *wszStream, ReadParamsContext context)
virtual bool ReadSimulationXMLStream (wchar_t *wszStream)
RDK_DEPRECATED bool ReadXMLStream (const wchar_t *wszStream)
virtual bool ReadXMLStream (const wchar_t *wszStream, const CRhinoFileReadOptions *pOptions)
virtual bool RemoveFromDocumentList (CRhRdkDocument &rdkDoc)
virtual bool RemoveRdkDocumentAssoc (void)
virtual unsigned int RenderCRC (const CRenderCRCFlags &rcrcFlags) const
unsigned int RenderCRC (const CRenderCRCFlags &rcrcFlags, const IRhRdkLinearWorkflow &lw) const
virtual UUID RenderEngineId (void) const =0
virtual void ResetParametersToDefaults (const ON_ClassArray< ON_wString > &aParams)
virtual RDK_DEPRECATED void ResetUseCount (void) const
virtual void ResolveRelativePaths (const wchar_t *wszPathToFile)
virtual void ResolveURLPaths (bool bForceDownload=false)
ON_wString SavedCSN (void) const
virtual RDK_DEPRECATED bool SaveToLibraryFile (const ON_wString &sFullPath, const IRhRdkPreviewSceneServer *pSceneServer) const
virtual bool SaveToLibraryFile (const ON_wString &sFullPath, const IRhRdkPreviewSceneServer *pSceneServer, EmbedFilesChoice c) const
virtual bool SaveToLibraryFile_Internal (const wchar_t *wszFullPath, const IRhRdkPreviewSceneServer *pSceneServer, bool bEmbedFiles) const
virtual void SetAutoDelete (bool bAutoDelete)
virtual bool SetChild (const CRhRdkContent *pChild, const wchar_t *wszChildSlotName)
virtual bool SetChildSlotAmount (const wchar_t *wszChildSlotName, double dPercent)
virtual void SetChildSlotName (const wchar_t *wszChildSlotName)
virtual bool SetChildSlotOn (const wchar_t *wszChildSlotName, bool bOn)
virtual RDK_DEPRECATED void SetCRCCache (DWORD dwCRC) const
virtual bool SetDocumentAssoc (const CRhinoDoc &doc) const
virtual bool SetExtraRequirementParameter (const wchar_t *wszParamName, const wchar_t *wszExtraReqName, const CRhRdkVariant &vValue, SetContext sc)
virtual void SetGroupId (const UUID &uuidGroup) const
virtual void SetHidden (bool bHidden)
RDK_DEPRECATED void SetHidden (bool bHidden, eChangeContext cc)
virtual void SetInstanceId (UUID uuidInstance)
void SetInstanceName (const wchar_t *wszName, bool bRenameEvents, bool bEnsureNameUnique)
virtual void SetInstanceNameImpl (const wchar_t *wszName, bool bRenameEvents)
void SetInstanceNameImpl (const wchar_t *wszName, bool bRenameEvents, bool bEnsureNameUnique)
virtual RDK_DEPRECATED void SetIsReference (bool b)
void SetIsRenderCRCRecursive (bool bRecursive)
virtual void SetIsRhinoObjectSelected (bool bSelected) const
virtual void SetLocked (void)
virtual void SetNotes (const wchar_t *wszNotes)
RDK_DEPRECATED void SetNotes (const wchar_t *wszNotes, bool bSendEvents)
virtual bool SetParameter (const wchar_t *wszName, const CRhRdkVariant &vValue)
virtual RDK_DEPRECATED bool SetParameter (const wchar_t *wszName, const CRhRdkVariant &vValue, eChangeContext cc)
virtual RDK_DEPRECATED bool SetParameters (class IRhRdk_XMLSection &section, eSetParamsContext context) const
virtual bool SetRdkDocumentAssoc (const CRhRdkDocument &rdkDoc)
virtual bool SetRdkDocumentOwner (CRhRdkDocument *pRdkDoc)
virtual void SetTags (const wchar_t *wszTags, bool bSendEvents=true)
virtual bool SmartUngroupRecursive (void)
virtual bool SupportsCommand (UUID uuidCommand) const
virtual bool SupportsContextHelp (void) const
virtual ON_wString Tags (void) const
virtual CRhRdkContentTopLevel (void)
virtual const CRhRdkContentTopLevel (void) const
virtual CRhRdkContentTopLevelParent (void)
virtual const CRhRdkContentTopLevelParent (void) const
virtual ON_wString TypeDescription (void) const =0
virtual UUID TypeId (void) const =0
virtual ON_wString TypeName (void) const =0
virtual RDK_DEPRECATED bool Ungroup (void)
virtual bool Ungroup (void) const
virtual RDK_DEPRECATED bool UngroupRecursive (void)
virtual bool UngroupRecursive (void) const
virtual void Uninitialize (void)
virtual void UpdatePreview (void) const
virtual RDK_DEPRECATED void UpdateUI (void) const
virtual int UseCount (void) const
virtual void VerifyCopy (const CRhRdkContent *pCopy) const
virtual RDK_DEPRECATED const class IRhRdkThumbViewDefaultsViewDefaults (void) const
virtual RDK_DEPRECATED DWORD WriteParameterXMLStream (wchar_t *wszStream, DWORD dwMaxChars, eSetParamsContext context) const
virtual size_t WriteParameterXMLStream (wchar_t *wszStream, size_t maxChars, WriteParamsContext context) const
virtual size_t WriteSimulationXMLStream (wchar_t *wszStream, size_t maxChars) const
virtual RDK_DEPRECATED DWORD WriteXMLStream (wchar_t *wszStream, DWORD dwMaxChars, eSetParamsContext context) const
virtual size_t WriteXMLStream (wchar_t *wszStream, size_t maxChars, WriteParamsContext context, const CRhinoFileWriteOptions *pOptions) const
- Public Member Functions inherited from CRhRdkObject
 CRhRdkObject ()
virtual ~CRhRdkObject ()
void operator delete (void *buf)
void operator delete[] (void *buf)
void * operator new (size_t size)
void * operator new[] (size_t size)
- Public Member Functions inherited from IAutoUIExtraRequirements
virtual ~IAutoUIExtraRequirements ()

Static Public Member Functions

static CRhRdkMaterialFromOnMaterial (const ON_Material &material, const CRhinoDoc *pDocAssoc)
static ON_Texture::TYPE TextureTypeFromUsage (ChildSlotUsage u)
static ChildSlotUsage UsageFromTextureType (ON_Texture::TYPE type)
- Static Public Member Functions inherited from CRhRdkContent
static RhRdkChangeContext ChangeContextFromSetContext (SetContext sc)
static RDK_DEPRECATED CRhRdkContentCreateObjectFromType (UUID uuidType)
static RDK_DEPRECATED CRhRdkContentFromXMLStream (const wchar_t *wszXML)
static CRhRdkContentFromXMLStream (const wchar_t *wszXML, const CRhinoDoc *pDocAssoc)
static bool IsChangeContextUIBased (RhRdkChangeContext cc)
static SetContext SetContextFromChangeContext (RhRdkChangeContext cc)
- Static Public Member Functions inherited from CRhRdkObject
static void CheckMemory (void)
static void PopulateDebuggingInfo (void)

Protected Member Functions

virtual RDK_DEPRECATED ON_wString BumpTextureChildSlotName (void) const
virtual RDK_DEPRECATED ON_wString DiffuseTextureChildSlotName (void) const
virtual RDK_DEPRECATED ON_wString EnvironmentTextureChildSlotName (void) const
virtual RDK_DEPRECATED void SimulateMaterial (ON_Material &matOut, bool bForDataOnly, const CRhinoObject *pObject=nullptr) const
virtual void SimulateMaterial (ON_Material &matOut, CRhRdkTexture::TextureGeneration tg=CRhRdkTexture::TextureGeneration::Allow, int iSimulatedTextureSize=-1, const CRhinoObject *pObject=nullptr) const =0
virtual ON_wString TextureChildSlotName (ChildSlotUsage usage) const
virtual RDK_DEPRECATED ON_wString TransparencyTextureChildSlotName (void) const
- Protected Member Functions inherited from CRhRdkContent
virtual unsigned int ComputeRenderCRC (const CRenderCRCFlags &rcrcFlags) const

Detailed Description

This is an abstract base class for all kinds of materials.

Member Enumeration Documentation

◆ ChildSlotUsage

enum CRhRdkMaterial::ChildSlotUsage : unsigned int

Constructor & Destructor Documentation

◆ CRhRdkMaterial()

CRhRdkMaterial::CRhRdkMaterial ( )

◆ ~CRhRdkMaterial()

virtual CRhRdkMaterial::~CRhRdkMaterial ( )

Member Function Documentation

◆ AssignTo() [1/2]

bool CRhRdkMaterial::AssignTo ( const CRhinoObjRef objRef) const

Assign the material to an object via an object reference. This can assign to whole objects or to sub-faces of objects, depending on what the objRef refers to.

objRefis a reference to an object or sub-face to assign the material to.
This is the simple version which might ask the user questions using message boxes. For more control over this, see the other version.
true if successful, else false.

◆ AssignTo() [2/2]

bool CRhRdkMaterial::AssignTo ( const ON_ClassArray< CRhinoObjRef > &  aObjRef,
RhRdkAssignToSubFaceChoices  sfc,
RhRdkAssignToBlockChoices  bc,
bool  bInteractive 
) const

Assign the material to a collection of objects via object references. This can assign to whole objects or to sub-faces of objects, depending on what the objRef refers to.

aObjRefis an array of references to objects or sub-faces to assign the material to.
sfcspecifies how to handle existing sub-face assignments.
bcspecifies how to handle blocks (if present in the aObjRef array).
bInteractivespecifies how to ask the user questions. If true, a message box is used, otherwise the command line is used.
true if successful, else false.

◆ BumpTextureChildSlotName()

virtual RDK_DEPRECATED ON_wString CRhRdkMaterial::BumpTextureChildSlotName ( void  ) const

This method is deprecated in favor of TextureChildSlotName().

◆ Category()

virtual const wchar_t* CRhRdkMaterial::Category ( void  ) const
The category of the content.

Implements CRhRdkContent.

Reimplemented in CRhRdkBasicMaterial.

◆ DiffuseTextureChildSlotName()

virtual RDK_DEPRECATED ON_wString CRhRdkMaterial::DiffuseTextureChildSlotName ( void  ) const

This method is deprecated in favor of TextureChildSlotName().

◆ DynamicIcon()

virtual bool CRhRdkMaterial::DynamicIcon ( const ON_2iSize size,
CRhinoDib dibOut,
DynamicIconUsage  usage 
) const

Creates imagery (AKA an 'icon') to represent the content's appearance. This imagery is dynamic, i.e., it changes depending on the content's state (parameters). It is similar to a quick preview and may be implemented in a similar way to CreatePreview().

sizeis the desired physical size of the imagery, in pixels.
dibOutis a DIB that accepts the created imagery.
usagespecifies how the icon will be used.
true if successful, else false.

Implements CRhRdkContent.

◆ EnvironmentTextureChildSlotName()

virtual RDK_DEPRECATED ON_wString CRhRdkMaterial::EnvironmentTextureChildSlotName ( void  ) const

This method is deprecated in favor of TextureChildSlotName().

◆ EVF()

virtual void* CRhRdkMaterial::EVF ( const wchar_t *  wszFunc,
void *  pvData 

Emergency virtual function for future expansion. If you override this method, you must call the base class.

Reimplemented from CRhRdkContent.

◆ FastMakeCopy()

virtual CRhRdkContent* CRhRdkMaterial::FastMakeCopy ( CopyMethods  m) const

Faster version of MakeCopy(). You can call this if you are willing to implement copying for your content's state. This method takes care of copying base state, any fields, and children. If your content uses fields exclusively to store its state, you need to do nothing else after calling it (but see VerifyCopy() below). An example use would be to override the MakeCopy() function as follows:

const CRhRdkContent* CMyContent::MakeCopy(CopyMethods m) const
    CMyContent* pCopy = static_cast<CMyContent*>(FastMakeCopy(m));
    if (nullptr != pCopy)
        // Do any extra member copying here.

        #ifdef _DEBUG
        VerifyCopy(pCopy); // Asserts that FastMakeCopy() and MakeCopy() give the same render CRC.

    // IMPORTANT: Do not call the base class.

    return pCopy;

Reimplemented from CRhRdkContent.

◆ FromOnMaterial()

static CRhRdkMaterial* CRhRdkMaterial::FromOnMaterial ( const ON_Material material,
const CRhinoDoc pDocAssoc 

◆ GetTextureChannelInfo()

virtual bool CRhRdkMaterial::GetTextureChannelInfo ( ChildSlotUsage  usage,
TextureChannelInfo info 
) const

Used by the framework instead of TextureChildSlotName() when simply asking for the texture. Transparency color should vary from white (fully transparent) to black (opaque) if supported. Bump and environment default colors are black. Default implementation calls TextureChildSlotName().

◆ GetTextureChildSlotName()

ON_wString CRhRdkMaterial::GetTextureChildSlotName ( ChildSlotUsage  usage) const

Do not use to determine the texture for a usage - use GetChannelTextureInfo instead. Only use this function for specifically determining the child slot name for use in SetChild, SetChildSlotOn etc.

◆ GetTextureForUsage()

const CRhRdkContent* CRhRdkMaterial::GetTextureForUsage ( ChildSlotUsage  usage) const

Helper function - implemented using GetTextureChannelInfo.

◆ HarvestData()

virtual Harvested CRhRdkMaterial::HarvestData ( const CRhRdkContent oldContent)

Implement this to transfer data from another content to this content during creation.

oldContentis an old content from which the implementation may harvest data.

Implements CRhRdkContent.

Reimplemented in CRhRdkBasicMaterial.

◆ Icon()

virtual bool CRhRdkMaterial::Icon ( const ON_2iSize size,
CRhinoDib dibOut 
) const

Creates imagery (AKA an 'icon') to represent the content's type. This imagery is static, i.e., it does not change.

sizeis the desired physical size of the imagery, in pixels.
dibOutis a DIB that accepts the created imagery.
true if successful, else false.

Implements CRhRdkContent.

Reimplemented in CRhRdkBasicMaterial.

◆ Impl()

CImpl& CRhRdkMaterial::Impl ( void  ) const

◆ IsAssociatedWith()

virtual bool CRhRdkMaterial::IsAssociatedWith ( const ON_Material mat) const
true if the material is associated with 'mat'. The default behavior is to check if the material's instance id is assigned to the ON_Material.

◆ Kind()

virtual Kinds CRhRdkMaterial::Kind ( void  ) const
The kind of the content.

Implements CRhRdkContent.

◆ LibraryFileExtension()

virtual const wchar_t* CRhRdkMaterial::LibraryFileExtension ( void  ) const
A pointer to a fixed string giving the library file extension of the content.

Implements CRhRdkContent.

◆ MakeCopy()

virtual CRhRdkContent* CRhRdkMaterial::MakeCopy ( CopyMethods  m = CopyMethods::Normal) const

Copies the current content including its children.

mis the method used to create the copy. Most (if not all) clients will use the default, 'Normal'. 'Transient' is an advanced feature used for complex internal manipulation of contents; it will rarely, if ever, be used by ordinary clients.
The copy can subsequently be attached to a document if desired.
The copied contents will be found by RhRdkFindContentInstance().
A copy of the content tree.

Reimplemented from CRhRdkContent.

Reimplemented in CRhRdkBasicMaterial.

◆ NewPreviewBackground()

virtual CRhRdkPreviewBackground* CRhRdkMaterial::NewPreviewBackground ( void  ) const

Reimplemented from CRhRdkCoreContent.

◆ NewPreviewGeometry()

virtual CRhRdkPreviewGeometry* CRhRdkMaterial::NewPreviewGeometry ( void  ) const

Reimplemented from CRhRdkCoreContent.

◆ NewPreviewSceneServer()

virtual IRhRdkPreviewSceneServer* CRhRdkMaterial::NewPreviewSceneServer ( const CRhRdkSSData data) const

◆ PreviewBackgroundFlags()

virtual UINT CRhRdkMaterial::PreviewBackgroundFlags ( void  ) const
Bit-flags denoting supported preview background types.

Implements CRhRdkContent.

◆ PreviewGeometryFlags()

virtual UINT CRhRdkMaterial::PreviewGeometryFlags ( void  ) const
Bit-flags denoting supported preview geometry types.

Implements CRhRdkContent.

◆ PreviewLightingFlags()

virtual UINT CRhRdkMaterial::PreviewLightingFlags ( void  ) const
Bit-flags denoting supported preview lighting types.

Implements CRhRdkContent.

◆ PreviewSceneType()

virtual ePreviewSceneType CRhRdkMaterial::PreviewSceneType ( void  ) const

This is an advanced method which you can override in exceptional circumstances.

texture_2d_image if you want RDK to produce a texture preview from the texture evaluator or preview_scene_server to cause RDK to call NewPreviewSceneServer().

Implements CRhRdkContent.

◆ SetInstanceName()

virtual void CRhRdkMaterial::SetInstanceName ( const wchar_t *  wszName)

Set the content's name. If the content is attached to a document, all necessary UI will be updated. This method also creates an undo record and sends the events OnContentRenaming and OnContentRenamed.

wszNameis the new name. If you override this method, please be sure to call the base class.

Reimplemented from CRhRdkContent.

◆ SetSimulation()

virtual bool CRhRdkMaterial::SetSimulation ( IRhRdk_XMLSection section) const

Optionally override this method to add the content's simulation to an XML section. This is needed if you want to avoid having to use WriteSimulationXMLStream() for serialization. For this to work you must return true. The default implementation is a no-op that returns false. This is the easiest and preferred way to serialize the simulation.

Reimplemented from CRhRdkContent.

Reimplemented in CRhRdkBasicMaterial.

◆ SimulatedMaterial()

virtual const ON_Material& CRhRdkMaterial::SimulatedMaterial ( CRhRdkTexture::TextureGeneration  tg = CRhRdkTexture::TextureGeneration::Allow,
int  iSimulatedTextureSize = -1,
const CRhinoObject pObject = nullptr 
) const

Get the material as an ON_Material. Calls SimulateMaterial() if something relevant has changed since the last call.

◆ SimulateMaterial() [1/2]

virtual RDK_DEPRECATED void CRhRdkMaterial::SimulateMaterial ( ON_Material matOut,
bool  bForDataOnly,
const CRhinoObject pObject = nullptr 
) const

This method is deprecated in favor of the one below. bForDataOnly becomes true=CRhRdkTexture::TextureGeneration::Disallow, false=CRhRdkTexture::TextureGeneration::Allow

◆ SimulateMaterial() [2/2]

virtual void CRhRdkMaterial::SimulateMaterial ( ON_Material matOut,
CRhRdkTexture::TextureGeneration  tg = CRhRdkTexture::TextureGeneration::Allow,
int  iSimulatedTextureSize = -1,
const CRhinoObject pObject = nullptr 
) const
protectedpure virtual

Implement this method to modify an ON_Material to simulate this material as best you can. Callers should call SimulatedMaterial() instead which is optimized to only do the simulation if something has changed. IMPORTANT NOTE: Since V6, this function is both pure and implemented, so you should call it from your implementation. The base class version (this one) implements support for setting up the standard texture slots.

Implemented in CRhRdkBasicMaterial.

◆ SmellsLike()

bool CRhRdkMaterial::SmellsLike ( const UUID &  typeId,
bool  bIgnoreTextures = false 
) const

◆ SmellsLikeGem()

bool CRhRdkMaterial::SmellsLikeGem ( void  ) const

◆ SmellsLikeGlass()

bool CRhRdkMaterial::SmellsLikeGlass ( void  ) const

◆ SmellsLikeMetal()

bool CRhRdkMaterial::SmellsLikeMetal ( void  ) const

◆ SmellsLikePaint()

bool CRhRdkMaterial::SmellsLikePaint ( void  ) const

◆ SmellsLikePlaster()

bool CRhRdkMaterial::SmellsLikePlaster ( void  ) const

◆ SmellsLikePlastic()

bool CRhRdkMaterial::SmellsLikePlastic ( void  ) const

◆ SmellsLikeTexturedGem()

bool CRhRdkMaterial::SmellsLikeTexturedGem ( void  ) const

◆ SmellsLikeTexturedGlass()

bool CRhRdkMaterial::SmellsLikeTexturedGlass ( void  ) const

◆ SmellsLikeTexturedMetal()

bool CRhRdkMaterial::SmellsLikeTexturedMetal ( void  ) const

◆ SmellsLikeTexturedPaint()

bool CRhRdkMaterial::SmellsLikeTexturedPaint ( void  ) const

◆ SmellsLikeTexturedPlaster()

bool CRhRdkMaterial::SmellsLikeTexturedPlaster ( void  ) const

◆ SmellsLikeTexturedPlastic()

bool CRhRdkMaterial::SmellsLikeTexturedPlastic ( void  ) const

◆ TextureChildSlotName()

virtual ON_wString CRhRdkMaterial::TextureChildSlotName ( ChildSlotUsage  usage) const

Reimplemented in CRhRdkBasicMaterial.

◆ TextureRequiresLinearWorkflowAdjustment()

virtual bool CRhRdkMaterial::TextureRequiresLinearWorkflowAdjustment ( const wchar_t *  wszChildSlotName) const

The default implementation returns false if the wszChildSlotName is the same as is returned by BumpTextureChildSlotName, otherwise true.
See CRhRdkTexture::IsLinear for more information.

◆ TextureTypeFromUsage()

static ON_Texture::TYPE CRhRdkMaterial::TextureTypeFromUsage ( ChildSlotUsage  u)

◆ TextureUsage()

ChildSlotUsage CRhRdkMaterial::TextureUsage ( const wchar_t *  wszChildSlotName) const

Helper function.

◆ TransparencyTextureChildSlotName()

virtual RDK_DEPRECATED ON_wString CRhRdkMaterial::TransparencyTextureChildSlotName ( void  ) const

This method is deprecated in favor of TextureChildSlotName().

◆ UpdateDocumentTables()

virtual bool CRhRdkMaterial::UpdateDocumentTables ( void  ) const

Called by Changed() to update Rhino document tables.

true if successful, else false.

Implements CRhRdkContent.

◆ UsageFromTextureType()

static ChildSlotUsage CRhRdkMaterial::UsageFromTextureType ( ON_Texture::TYPE  type)