Rhino C++ API  8.5
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

Classes

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  DupOpt { DupOpt::Attach, DupOpt::NoAttach }
 
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
 
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 override
 
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) override
 
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 IRhRdkPreviewAppearanceDefaults * AppearanceDefaults (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)
 
bool CheckComplete (ON_wString &sReason) const
 
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
 
CRhinoDocDocumentAssoc (void)
 
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 RDK_DEPRECATED CRhRdkContentDuplicate (void) const
 
const RDK_DEPRECATED CRhRdkContentDuplicateEx (bool reserved) const
 
const CRhRdkContentDuplicateEx (DupOpt d) 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 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
 
RDK_DEPRECATED unsigned int RenderCRC (const CRenderCRCFlags &rcrcFlags, const IRhRdkLinearWorkflow &lw) const
 
unsigned int RenderCRC (const CRenderCRCFlags &rcrcFlags, const ON_LinearWorkflow &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
 
bool SetDocumentAssoc (const CRhRdkContent &) 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
 
ON_RenderContentToON_RenderContent (bool bRecursive=true) 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 IRhRdkThumbViewDefaults * ViewDefaults (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 std::shared_ptr< CRhRdkMaterialDefault (void)
 
static CRhRdkMaterialFromOnMaterial (const ON_Material &material, const CRhinoDoc *pDocAssoc)
 
static ON_Texture::TYPE TextureTypeFromUsage (ChildSlotUsage u)
 
static ChildSlotUsage UsageFromTextureType (ON_Texture::TYPE type)
 
static const CRhRdkMaterialWorstPossibleMaterial (void)
 
- Static Public Member Functions inherited from CRhRdkContent
static RhRdkChangeContext ChangeContextFromSetContext (SetContext sc)
 
static RDK_DEPRECATED CRhRdkContentCreateObjectFromType (UUID uuidType)
 
static CRhRdkContentFromON_RenderContent (const class ON_RenderContent &rc, const CRhinoDoc *pDocAssoc, bool bRecursive)
 
static RDK_DEPRECATED CRhRdkContentFromXMLStream (const wchar_t *wszXML)
 
static RDK_DEPRECATED CRhRdkContentFromXMLStream (const wchar_t *wszXML, const CRhinoDoc *pDocAssoc)
 
static CRhRdkContentFromXMLStream (const wchar_t *wszXML, const CRhinoDoc *pDocAssoc, bool bUseXMLInstanceId)
 
static bool IsChangeContextUIBased (RhRdkChangeContext cc)
 
static SetContext SetContextFromChangeContext (RhRdkChangeContext cc)
 
static void UninitializeAndDelete (CRhRdkContent *pContent)
 
- 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
strong
Enumerator
None 
Diffuse 
Transparency 
Opacity 
Bump 
Environment 
PBR_base_color 
PBR_opacity 
PBR_bump 
PBR_subsurface 
PBR_subsurface_scattering 
PBR_subsurface_scattering_color 
PBR_subsurface_scattering_radius 
PBR_metallic 
PBR_specular 
PBR_specular_tint 
PBR_roughness 
PBR_anisotropic 
PBR_anisotropic_rotation 
PBR_sheen 
PBR_sheen_tint 
PBR_clearcoat 
PBR_clearcoat_roughness 
PBR_opacity_ior 
PBR_opacity_roughness 
PBR_emission 
PBR_ambient_occlusion 
PBR_displacement 
PBR_clearcoat_bump 
PBR_alpha 
Any 

Constructor & Destructor Documentation

◆ CRhRdkMaterial()

CRhRdkMaterial::CRhRdkMaterial ( )

◆ ~CRhRdkMaterial()

virtual CRhRdkMaterial::~CRhRdkMaterial ( )
virtual

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.

Parameters
objRefis a reference to an object or sub-face to assign the material to.
Note
This is the simple version which might ask the user questions using message boxes. For more control over this, see the other version.
Returns
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.

Parameters
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.
Returns
true if successful, else false.

◆ BumpTextureChildSlotName()

virtual RDK_DEPRECATED ON_wString CRhRdkMaterial::BumpTextureChildSlotName ( void  ) const
protectedvirtual

This method is deprecated in favor of TextureChildSlotName().

◆ Category()

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

Implements CRhRdkContent.

Reimplemented in CRhRdkBasicMaterial.

◆ Default()

static std::shared_ptr<CRhRdkMaterial> CRhRdkMaterial::Default ( void  )
static

◆ DiffuseTextureChildSlotName()

virtual RDK_DEPRECATED ON_wString CRhRdkMaterial::DiffuseTextureChildSlotName ( void  ) const
protectedvirtual

This method is deprecated in favor of TextureChildSlotName().

◆ DynamicIcon()

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

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().

Parameters
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.
Returns
true if successful, else false.

Implements CRhRdkContent.

◆ EnvironmentTextureChildSlotName()

virtual RDK_DEPRECATED ON_wString CRhRdkMaterial::EnvironmentTextureChildSlotName ( void  ) const
protectedvirtual

This method is deprecated in favor of TextureChildSlotName().

◆ EVF()

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

Emergency virtual function for future expansion.

Reimplemented from CRhRdkCoreContent.

◆ FastMakeCopy()

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

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.
        #endif
    }

    // IMPORTANT: Do not call the base class.

    return pCopy;
}

Reimplemented from CRhRdkContent.

◆ FromOnMaterial()

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

◆ GetTextureChannelInfo()

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

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)
overridevirtual

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

Parameters
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
overridevirtual

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

Parameters
sizeis the desired physical size of the imagery, in pixels.
dibOutis a DIB that accepts the created imagery.
Returns
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
virtual
Returns
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
finaloverridevirtual
Returns
The kind of the content.

Implements CRhRdkContent.

◆ LibraryFileExtension()

virtual const wchar_t* CRhRdkMaterial::LibraryFileExtension ( void  ) const
overridevirtual
Returns
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
overridevirtual

Copies the current content including its children.

Parameters
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.
Note
The copy can subsequently be attached to a document if desired.
The copied contents will be found by RhRdkFindContentInstance().
Returns
A copy of the content tree.

Reimplemented from CRhRdkContent.

Reimplemented in CRhRdkBasicMaterial, and CRhRdkBasicMaterialBase.

◆ NewPreviewBackground()

virtual CRhRdkPreviewBackground* CRhRdkMaterial::NewPreviewBackground ( void  ) const
overridevirtual

Reimplemented from CRhRdkCoreContent.

◆ NewPreviewGeometry()

virtual CRhRdkPreviewGeometry* CRhRdkMaterial::NewPreviewGeometry ( void  ) const
overridevirtual

Reimplemented from CRhRdkCoreContent.

◆ NewPreviewSceneServer()

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

◆ PreviewBackgroundFlags()

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

Implements CRhRdkContent.

◆ PreviewGeometryFlags()

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

Implements CRhRdkContent.

◆ PreviewLightingFlags()

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

Implements CRhRdkContent.

◆ PreviewSceneType()

virtual ePreviewSceneType CRhRdkMaterial::PreviewSceneType ( void  ) const
inlineoverridevirtual

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

Returns
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)
overridevirtual

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.

Parameters
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
overridevirtual

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.

◆ SimulateMaterial() [1/2]

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

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 ToOnMaterial() 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
protectedvirtual

Reimplemented in CRhRdkBasicMaterial.

◆ TextureRequiresLinearWorkflowAdjustment()

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

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)
static

◆ TextureUsage()

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

Helper function.

◆ TransparencyTextureChildSlotName()

virtual RDK_DEPRECATED ON_wString CRhRdkMaterial::TransparencyTextureChildSlotName ( void  ) const
protectedvirtual

This method is deprecated in favor of TextureChildSlotName().

◆ UpdateDocumentTables()

virtual bool CRhRdkMaterial::UpdateDocumentTables ( void  ) const
overridevirtual

Called by Changed() to update Rhino document tables.

Returns
true if successful, else false.

Implements CRhRdkContent.

◆ UsageFromTextureType()

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

◆ WorstPossibleMaterial()

static const CRhRdkMaterial* CRhRdkMaterial::WorstPossibleMaterial ( void  )
static