26#ifndef __ODGIMATERIALITEM_H__
27#define __ODGIMATERIALITEM_H__
247 static void rxInitDefaultTextureDataImplementation();
249 static void rxUninitDefaultTextureDataImplementation();
OdRxObject OdDbBaseDatabase
OdArray< OdGiPixelBGRA32, OdMemoryAllocator< OdGiPixelBGRA32 > > OdGiPixelBGRA32Array
OdSmartPtr< OdGiMaterialTexture > OdGiMaterialTexturePtr
OdSmartPtr< OdGiMaterialRenderItem > OdGiMaterialRenderItemPtr
OdSmartPtr< OdGiMaterialItem > OdGiMaterialItemPtr
OdSmartPtr< OdGiMaterialTextureManager > OdGiMaterialTextureManagerPtr
OdSmartPtr< OdGiMaterialTextureEntry > OdGiMaterialTextureEntryPtr
OdSmartPtr< OdGiMaterialTextureLoadPE > OdGiMaterialTextureLoadPEPtr
OdSmartPtr< OdGiMaterialTextureLoaderExt > OdGiMaterialTextureLoaderExtPtr
OdSmartPtr< OdGiMaterialTextureData > OdGiMaterialTextureDataPtr
virtual void setMaterialId(const OdDbStub *matId=NULL)=0
virtual void setCachedData(OdRxObjectPtr data)=0
virtual const OdDbStub * materialId() const =0
ODRX_DECLARE_MEMBERS(OdGiMaterialItem)
virtual OdGiMaterialTextureEntryPtr diffuseTexture() const =0
virtual bool haveDiffuseTexture() const =0
virtual OdRxObjectPtr cachedData() const =0
virtual OdUInt32 checkTexturesEnabled(const char *pOrder=nullptr, bool bCheckAny=true) const =0
virtual OdGiMaterialTextureEntryPtr diffuseTexture()=0
virtual OdGiMaterialTextureEntryPtr createDiffuseTexture()=0
virtual void removeDiffuseTexture()=0
virtual bool isMaterialIdValid(const OdDbStub *matId)=0
virtual bool haveEnvironmentTexture() const =0
ODRX_DECLARE_MEMBERS(OdGiMaterialRenderItem)
virtual bool haveSpecularTexture() const =0
virtual OdGiMaterialTextureEntryPtr environmentTexture() const =0
virtual OdGiMaterialTextureEntryPtr roughnessTexture()=0
virtual bool haveOpacityTexture() const =0
virtual OdGiMaterialTextureEntryPtr createRefractionTexture()=0
virtual OdGiMaterialTextureEntryPtr reflectionTexture() const =0
virtual OdGiMaterialTextureEntryPtr reflectionTexture()=0
virtual void removeBumpTexture()=0
virtual void removeEmissionTexture()=0
virtual bool haveNormalMapTexture() const =0
virtual OdGiMaterialTextureEntryPtr normalMapTexture()=0
virtual OdGiMaterialTextureEntryPtr createOpacityTexture()=0
virtual void removeCutoutsTexture()=0
virtual OdGiMaterialTextureEntryPtr bumpTexture()=0
virtual void removeNormalMapTexture()=0
virtual OdGiMaterialTextureEntryPtr bumpTexture() const =0
virtual OdGiMaterialTextureEntryPtr refractionTexture()=0
virtual bool haveEmissionTexture() const =0
virtual void removeEnvironmentTexture()=0
virtual OdGiMaterialTextureEntryPtr createBumpTexture()=0
virtual OdGiMaterialTextureEntryPtr createSpecularTexture()=0
virtual void removeRefractionTexture()=0
virtual OdGiMaterialTextureEntryPtr emissionTexture()=0
virtual OdGiMaterialTextureEntryPtr specularTexture() const =0
virtual OdGiMaterialTextureEntryPtr createReflectionTexture()=0
virtual OdGiMaterialTextureEntryPtr refractionTexture() const =0
virtual OdGiMaterialTextureEntryPtr createRoughnessTexture()=0
virtual bool haveBumpTexture() const =0
virtual OdGiMaterialTextureEntryPtr createCutoutsTexture()=0
virtual void removeSpecularTexture()=0
virtual bool haveRoughnessTexture() const =0
virtual bool haveCutoutsTexture() const =0
virtual OdGiMaterialTextureEntryPtr cutoutsTexture() const =0
virtual OdGiMaterialTextureEntryPtr emissionTexture() const =0
virtual OdGiMaterialTextureEntryPtr normalMapTexture() const =0
virtual OdGiMaterialTextureEntryPtr roughnessTexture() const =0
virtual void removeReflectionTexture()=0
virtual OdGiMaterialTextureEntryPtr cutoutsTexture()=0
virtual OdGiMaterialTextureEntryPtr createEnvironmentTexture()=0
virtual OdGiMaterialTextureEntryPtr opacityTexture()=0
virtual OdGiMaterialTextureEntryPtr createNormalMapTexture()=0
virtual bool haveRefractionTexture() const =0
virtual OdGiMaterialTextureEntryPtr createEmissionTexture()=0
virtual OdGiMaterialTextureEntryPtr environmentTexture()=0
virtual OdGiMaterialTextureEntryPtr specularTexture()=0
virtual bool haveReflectionTexture() const =0
virtual OdGiMaterialTextureEntryPtr opacityTexture() const =0
virtual void removeOpacityTexture()=0
virtual void removeRoughnessTexture()=0
static OdRxClass * defaultTextureDataImplementationDesc()
friend class OdGiModuleObject
virtual void textureDataUnlinked(bool bReason=false)
virtual void setTextureData(OdGiMaterialTextureData::DevDataVariant pDeviceInfo, const OdGiImageBGRA32 &image)=0
virtual bool haveData() const =0
virtual void textureData(OdGiPixelBGRA32Array &data, OdUInt32 &width, OdUInt32 &height) const =0
ODRX_DECLARE_MEMBERS(OdGiMaterialTextureData)
static OdSmartPtr< OdGiMaterialTextureData > createDefaultTextureDataImplementation()
virtual OdUInt32 proceduralTextureWidth() const =0
virtual OdGiMaterialTextureDataPtr textureData() const =0
virtual bool setGiMaterialTexture(OdGiMaterialTextureData::DevDataVariant pDeviceInfo, OdRxClass *pTexDataImpl, const OdGiContext &giCtx, OdGiMaterialTexturePtr pTexture, OdGiMaterialTextureManager *pManager=NULL)=0
virtual OdUInt32 proceduralTextureHeight() const =0
virtual void setTextureData(OdGiMaterialTextureData *pTextureData, OdGiMaterialTextureManager *pManager=NULL)=0
virtual void setProceduralTextureHeight(OdUInt32 height)=0
virtual void setProceduralTextureResolution(OdUInt32 width, OdUInt32 height)=0
virtual bool setGiMaterialTexture(OdGiMaterialTextureData::DevDataVariant pDeviceInfo, OdRxClass *pTexDataImpl, const OdGiContext &giCtx, const OdString &fileName, OdGiMaterialTextureManager *pManager=NULL)=0
virtual bool isTextureInitialized() const =0
virtual void setProceduralTextureWidth(OdUInt32 width)=0
ODRX_DECLARE_MEMBERS(OdGiMaterialTextureEntry)
virtual double proceduralTextureQuality() const =0
virtual bool setGiMaterialTexture(OdGiMaterialTextureData::DevDataVariant pDeviceInfo, OdRxClass *pTexDataImpl, const OdGiContext &giCtx, const OdGiMaterialMap &matMap, OdGiMaterialTextureManager *pManager=NULL)=0
virtual void setProceduralTextureQuality(double coef)=0
virtual bool setGiMaterialTexture(OdGiMaterialTextureData::DevDataVariant pDeviceInfo, OdRxClass *pTexDataImpl, const OdGiContext &giCtx, double opacity, OdGiMaterialTextureManager *pManager=NULL)=0
virtual void textureLoadingFailed(const OdString &fileName, OdDbBaseDatabase *pDb)=0
OdGiMaterialTextureLoadPE()
ODRX_DECLARE_MEMBERS(OdGiMaterialTextureLoadPE)
virtual void startTextureLoading(OdString &fileName, OdDbBaseDatabase *pDb)=0
virtual void textureLoaded(const OdString &fileName, OdDbBaseDatabase *pDb)=0
virtual OdGiMaterialTextureDataPtr loadTexture(OdGiMaterialTextureData::DevDataVariant pDeviceInfo, OdRxClass *pTexDataImpl, const OdGiContext &giCtx, OdGiMaterialTextureEntry *pEntry, OdGiMaterialTexturePtr pTexture)=0
virtual bool allowTextureLoading(OdGiMaterialTexturePtr pTexture)=0
ODRX_DECLARE_MEMBERS(OdGiMaterialTextureLoaderExt)
virtual OdUInt32 numTextureEntries() const =0
virtual OdGiMaterialTextureDataPtr searchTexture(OdGiMaterialTexturePtr pTexture)=0
virtual OdGiMaterialTexturePtr textureEntryKey(OdUInt32 nIndex) const =0
virtual ManageType manageType() const =0
virtual void setManageType(ManageType type)=0
virtual void linkTexture(const OdGiMaterialMap &matMap, OdGiMaterialTextureDataPtr pData)=0
virtual OdGiMaterialTextureDataPtr searchTexture(const OdString &fileName)=0
virtual OdGiMaterialTextureDataPtr tryToLoad(OdGiMaterialTextureData::DevDataVariant pDeviceInfo, OdRxClass *pTexDataImpl, const OdGiContext &giCtx, OdGiMaterialTextureEntry *pEntry, OdGiMaterialTexturePtr pTexture)=0
virtual void linkTexture(const OdString &fileName, OdGiMaterialTextureDataPtr pData)=0
ODRX_DECLARE_MEMBERS(OdGiMaterialTextureManager)
@ kFileAndProceduralTextures
virtual OdGiMaterialTextureLoaderExtPtr materialLoaderExt() const =0
virtual OdGiMaterialTextureDataPtr tryToLoad(OdGiMaterialTextureData::DevDataVariant pDeviceInfo, OdRxClass *pTexDataImpl, const OdGiContext &giCtx, OdGiMaterialTextureEntry *pEntry, const OdGiMaterialMap &matMap)=0
virtual bool unlinkTexture(OdGiMaterialTextureData *pData)=0
virtual OdGiMaterialTextureDataPtr searchTexture(const OdGiMaterialMap &matMap)=0
virtual void linkTexture(OdGiMaterialTexturePtr pTexture, OdGiMaterialTextureDataPtr pData)=0
virtual void setMaterialLoaderExt(OdGiMaterialTextureLoaderExt *pExt)=0
virtual OdGiMaterialTextureDataPtr tryToLoad(OdGiMaterialTextureData::DevDataVariant pDeviceInfo, OdRxClass *pTexDataImpl, const OdGiContext &giCtx, OdGiMaterialTextureEntry *pEntry, const OdString &fileName)=0
virtual OdGiMaterialTextureDataPtr textureEntryData(OdUInt32 nIndex) const =0
virtual bool isAvailable(const OdGiMaterialTextureData *pData) const =0
GLint GLenum GLsizei width
GLint GLenum GLsizei GLsizei GLint GLsizei const void * data
GLuint GLsizei GLsizei GLint GLenum * type
GLint GLenum GLsizei GLsizei height
DevDataVariantType m_ddvType
DevDataVariant & setRxObject(OdRxObjectPtr ptr)
DevDataVariant(void *ptr)
DevDataVariantType type() const
OdRxObjectPtr getRxObject() const
OdRxObjectPtr m_pRxObject
DevDataVariant(OdRxObjectPtr ptr)
DevDataVariant & setPtr(void *ptr)
@ DevDataVariantType_Void
@ DevDataVariantType_RxObject