5 #include "DatasmithDefinitions.h"
6 #include "DatasmithTypes.h"
8 #include "Containers/Map.h"
9 #include "Math/Color.h"
10 #include "Math/Vector.h"
11 #include "Math/Quat.h"
12 #include "Templates/SharedPointer.h"
13 #include "Misc/SecureHash.h"
28 virtual bool IsA(EDatasmithElementType Type)
const = 0;
31 virtual bool IsSubType(uint64 SubType)
const = 0;
34 virtual const TCHAR* GetName()
const = 0;
37 virtual void SetName(
const TCHAR* InName ) = 0;
40 virtual const TCHAR* GetLabel()
const = 0;
43 virtual void SetLabel(
const TCHAR* InLabel) = 0;
50 virtual FMD5Hash CalculateElementHash(
bool bForce) = 0;
59 virtual EDatasmithKeyValuePropertyType GetPropertyType()
const = 0;
62 virtual void SetPropertyType( EDatasmithKeyValuePropertyType InType ) = 0;
65 virtual const TCHAR* GetValue()
const = 0;
68 virtual void SetValue(
const TCHAR* Value ) = 0;
78 virtual FVector GetTranslation()
const = 0;
81 virtual void SetTranslation(
float InX,
float InY,
float InZ) = 0;
84 virtual void SetTranslation(
const FVector& Value) = 0;
87 virtual FVector GetScale()
const = 0;
90 virtual void SetScale(
float InX,
float InY,
float InZ) = 0;
93 virtual void SetScale(
const FVector& Value) = 0;
96 virtual FQuat GetRotation()
const = 0;
99 virtual void SetRotation(
float InX,
float InY,
float InZ,
float InW) = 0;
102 virtual void SetRotation(
const FQuat& Value) = 0;
105 virtual void SetUseParentTransform(
bool bUseParentTransform) = 0;
108 virtual FTransform GetRelativeTransform()
const = 0;
111 virtual const TCHAR* GetLayer()
const = 0;
114 virtual void SetLayer(
const TCHAR* InLayer) = 0;
117 virtual void AddTag(
const TCHAR* InTag) = 0;
120 virtual void ResetTags() = 0;
123 virtual int32 GetTagsCount()
const = 0;
126 virtual const TCHAR* GetTag(int32 TagIndex)
const = 0;
129 virtual void AddChild(
const TSharedPtr< IDatasmithActorElement >& InChild, EDatasmithActorAttachmentRule AttachementRule = EDatasmithActorAttachmentRule::KeepWorldTransform) = 0;
132 virtual int32 GetChildrenCount()
const = 0;
135 virtual TSharedPtr< IDatasmithActorElement > GetChild(int32 InIndex) = 0;
136 virtual const TSharedPtr< IDatasmithActorElement >& GetChild(int32 InIndex)
const = 0;
138 virtual void RemoveChild(
const TSharedPtr< IDatasmithActorElement >& InChild) = 0;
141 virtual void SetIsAComponent(
bool Value) = 0;
142 virtual bool IsAComponent()
const = 0;
145 virtual void SetAsSelector(
bool bInIsASelector) = 0;
148 virtual bool IsASelector()
const = 0;
151 virtual void SetSelectionIndex(int32 InSelectionID) = 0;
154 virtual int32 GetSelectionIndex()
const = 0;
157 virtual void SetVisibility(
bool bInVisibility) = 0;
160 virtual bool GetVisibility()
const = 0;
174 virtual const TCHAR* GetFile()
const = 0;
177 virtual void SetFile(
const TCHAR* InFile) = 0;
180 virtual FMD5Hash GetFileHash()
const = 0;
183 virtual void SetFileHash(FMD5Hash Hash) = 0;
193 virtual void SetDimensions(
const float InArea,
const float InWidth,
const float InHeight,
const float InDepth) = 0;
196 virtual FVector GetDimensions()
const = 0;
199 virtual float GetArea()
const = 0;
202 virtual float GetWidth()
const = 0;
205 virtual float GetHeight()
const = 0;
208 virtual float GetDepth()
const = 0;
211 virtual int32 GetLightmapCoordinateIndex()
const = 0;
217 virtual void SetLightmapCoordinateIndex(int32 UVChannel) = 0;
220 virtual int32 GetLightmapSourceUV()
const = 0;
223 virtual void SetLightmapSourceUV( int32 UVChannel ) = 0;
226 virtual void SetMaterial(
const TCHAR* MaterialPathName, int32 SlotId) = 0;
229 virtual const TCHAR* GetMaterial(int32 SlotId)
const = 0;
232 virtual int32 GetMaterialSlotCount()
const = 0;
235 virtual TSharedPtr<const IDatasmithMaterialIDElement> GetMaterialSlotAt(int32 Index)
const = 0;
236 virtual TSharedPtr<IDatasmithMaterialIDElement> GetMaterialSlotAt(int32 Index) = 0;
240 virtual int32 GetLODCount()
const = 0;
243 virtual void SetLODCount(int32 Count) = 0;
245 friend class FDatasmithStaticMeshImporter;
264 virtual void AddMaterialOverride(
const TCHAR* MaterialName, int32 Id) = 0;
267 virtual void AddMaterialOverride(
const TSharedPtr<IDatasmithMaterialIDElement>& Material) = 0;
270 virtual int32 GetMaterialOverridesCount()
const = 0;
273 virtual TSharedPtr<IDatasmithMaterialIDElement> GetMaterialOverride(int32 i) = 0;
276 virtual TSharedPtr<const IDatasmithMaterialIDElement> GetMaterialOverride(int32 i)
const = 0;
279 virtual void RemoveMaterialOverride(
const TSharedPtr<IDatasmithMaterialIDElement>& Material) = 0;
282 virtual const TCHAR* GetStaticMeshPathName()
const = 0;
288 virtual void SetStaticMeshPathName(
const TCHAR* InStaticMeshPathName) = 0;
298 virtual int32 GetInstancesCount()
const = 0;
305 virtual void ReserveSpaceForInstances(int32 NumIntances) = 0;
312 virtual int32 AddInstance(
const FTransform& Transform) = 0;
319 virtual FTransform GetInstance(int32 InstanceIndex)
const = 0;
326 virtual void RemoveInstance(int32 InstanceIndex) = 0;
335 virtual bool IsEnabled()
const = 0;
338 virtual void SetEnabled(
bool bIsEnabled) = 0;
341 virtual double GetIntensity()
const = 0;
344 virtual void SetIntensity(
double Intensity) = 0;
347 virtual FLinearColor GetColor()
const = 0;
350 virtual void SetColor(FLinearColor Color) = 0;
353 virtual double GetTemperature()
const = 0;
356 virtual void SetTemperature(
double Temperature) = 0;
359 virtual bool GetUseTemperature()
const = 0;
362 virtual void SetUseTemperature(
bool bUseTemperature) = 0;
365 virtual const TCHAR* GetIesFile()
const = 0;
368 virtual void SetIesFile(
const TCHAR* IesFile) = 0;
371 virtual bool GetUseIes()
const = 0;
374 virtual void SetUseIes(
bool bUseIes) = 0;
377 virtual double GetIesBrightnessScale()
const = 0;
380 virtual void SetIesBrightnessScale(
double IesBrightnessScale) = 0;
383 virtual bool GetUseIesBrightness()
const = 0;
386 virtual void SetUseIesBrightness(
bool bUseIesBrightness) = 0;
389 virtual FQuat GetIesRotation()
const = 0;
392 virtual void SetIesRotation(
const FQuat& IesRotation) = 0;
395 virtual TSharedPtr< IDatasmithMaterialIDElement >& GetLightFunctionMaterial() = 0;
398 virtual void SetLightFunctionMaterial(
const TSharedPtr< IDatasmithMaterialIDElement >& InMaterial) = 0;
401 virtual void SetLightFunctionMaterial(
const TCHAR* InMaterialName) = 0;
407 virtual void SetIntensityUnits(EDatasmithLightUnits InUnits) = 0;
408 virtual EDatasmithLightUnits GetIntensityUnits()
const = 0;
411 virtual float GetSourceRadius()
const = 0;
414 virtual void SetSourceRadius(
float SourceRadius) = 0;
417 virtual float GetSourceLength()
const = 0;
420 virtual void SetSourceLength(
float SourceLength) = 0;
423 virtual float GetAttenuationRadius()
const = 0;
426 virtual void SetAttenuationRadius(
float AttenuationRadius) = 0;
433 virtual float GetInnerConeAngle()
const = 0;
436 virtual void SetInnerConeAngle(
float InnerConeAngle) = 0;
439 virtual float GetOuterConeAngle()
const = 0;
442 virtual void SetOuterConeAngle(
float OuterConeAngle) = 0;
456 virtual EDatasmithLightShape GetLightShape()
const = 0;
459 virtual void SetLightShape(EDatasmithLightShape Shape) = 0;
462 virtual void SetLightType(EDatasmithAreaLightType LightType) = 0;
463 virtual EDatasmithAreaLightType GetLightType()
const = 0;
466 virtual void SetWidth(
float InWidth) = 0;
467 virtual float GetWidth()
const = 0;
470 virtual void SetLength(
float InLength) = 0;
471 virtual float GetLength()
const = 0;
489 virtual float GetSensorWidth()
const = 0;
492 virtual void SetSensorWidth(
float SensorWidth) = 0;
495 virtual float GetSensorAspectRatio()
const = 0;
498 virtual void SetSensorAspectRatio(
float SensorAspectRatio) = 0;
501 virtual bool GetEnableDepthOfField()
const = 0;
504 virtual void SetEnableDepthOfField(
bool bEnableDepthOfField) = 0;
507 virtual float GetFocusDistance()
const = 0;
510 virtual void SetFocusDistance(
float FocusDistance) = 0;
513 virtual float GetFStop()
const = 0;
516 virtual void SetFStop(
float FStop) = 0;
519 virtual float GetFocalLength()
const = 0;
522 virtual void SetFocalLength(
float FocalLength) = 0;
525 virtual TSharedPtr< IDatasmithPostProcessElement >& GetPostProcess() = 0;
528 virtual const TSharedPtr< IDatasmithPostProcessElement >& GetPostProcess()
const = 0;
531 virtual void SetPostProcess(
const TSharedPtr< IDatasmithPostProcessElement >& PostProcess) = 0;
534 virtual const TCHAR* GetLookAtActor()
const = 0;
537 virtual void SetLookAtActor(
const TCHAR* ActorName) = 0;
540 virtual bool GetLookAtAllowRoll()
const = 0;
543 virtual void SetLookAtAllowRoll(
bool bAllow) = 0;
550 virtual const TCHAR* GetClassOrPathName()
const = 0;
551 virtual void SetClassOrPathName(
const TCHAR* InClassOrPathName ) = 0;
554 virtual int32 GetPropertiesCount()
const = 0;
557 virtual const TSharedPtr< IDatasmithKeyValueProperty >& GetProperty(int32 i)
const = 0;
558 virtual TSharedPtr< IDatasmithKeyValueProperty >& GetProperty(int32 i) = 0;
561 virtual const TSharedPtr< IDatasmithKeyValueProperty >& GetPropertyByName(
const TCHAR* Name)
const = 0;
562 virtual TSharedPtr< IDatasmithKeyValueProperty >& GetPropertyByName(
const TCHAR* Name) = 0;
565 virtual void AddProperty(
const TSharedPtr< IDatasmithKeyValueProperty >& Property ) = 0;
568 virtual void RemoveProperty(
const TSharedPtr< IDatasmithKeyValueProperty >& Property ) = 0;
575 virtual void SetHeightmap(
const TCHAR* FilePath ) = 0;
576 virtual const TCHAR* GetHeightmap()
const = 0;
579 virtual void SetMaterial(
const TCHAR* MaterialPathName ) = 0;
580 virtual const TCHAR* GetMaterial()
const = 0;
588 virtual int32 GetId()
const = 0;
589 virtual void SetId(int32 Id) = 0;
602 virtual bool IsSingleShaderMaterial()
const = 0;
605 virtual bool IsClearCoatMaterial()
const = 0;
608 virtual void AddShader(
const TSharedPtr< IDatasmithShaderElement >& Shader) = 0;
611 virtual int32 GetShadersCount()
const = 0;
614 virtual TSharedPtr< IDatasmithShaderElement >& GetShader(int32 InIndex) = 0;
617 virtual const TSharedPtr< IDatasmithShaderElement >& GetShader(int32 InIndex)
const = 0;
625 virtual EDatasmithMasterMaterialType GetMaterialType()
const = 0;
626 virtual void SetMaterialType( EDatasmithMasterMaterialType InType ) = 0;
628 virtual EDatasmithMasterMaterialQuality GetQuality()
const = 0;
629 virtual void SetQuality( EDatasmithMasterMaterialQuality InQuality ) = 0;
632 virtual const TCHAR* GetCustomMaterialPathName()
const = 0;
633 virtual void SetCustomMaterialPathName(
const TCHAR* InPathName ) = 0;
636 virtual int32 GetPropertiesCount()
const = 0;
639 virtual const TSharedPtr< IDatasmithKeyValueProperty >& GetProperty(int32 i)
const = 0;
640 virtual TSharedPtr< IDatasmithKeyValueProperty >& GetProperty(int32 i) = 0;
643 virtual const TSharedPtr< IDatasmithKeyValueProperty >& GetPropertyByName(
const TCHAR* Name)
const = 0;
644 virtual TSharedPtr< IDatasmithKeyValueProperty >& GetPropertyByName(
const TCHAR* Name) = 0;
647 virtual void AddProperty(
const TSharedPtr< IDatasmithKeyValueProperty >& Property ) = 0;
656 virtual float GetTemperature()
const = 0;
659 virtual void SetTemperature(
float Temperature) = 0;
662 virtual FLinearColor GetColorFilter()
const = 0;
665 virtual void SetColorFilter(FLinearColor ColorFilter) = 0;
668 virtual float GetVignette()
const = 0;
671 virtual void SetVignette(
float Vignette) = 0;
674 virtual float GetDof()
const = 0;
677 virtual void SetDof(
float Dof) = 0;
680 virtual float GetMotionBlur()
const = 0;
683 virtual void SetMotionBlur(
float MotionBlur) = 0;
686 virtual float GetSaturation()
const = 0;
689 virtual void SetSaturation(
float Saturation) = 0;
692 virtual float GetCameraISO()
const = 0;
695 virtual void SetCameraISO(
float CameraISO) = 0;
698 virtual float GetCameraShutterSpeed()
const = 0;
699 virtual void SetCameraShutterSpeed(
float CameraShutterSpeed) = 0;
702 virtual float GetDepthOfFieldFstop()
const = 0;
703 virtual void SetDepthOfFieldFstop(
float Fstop ) = 0;
711 virtual const TSharedRef< IDatasmithPostProcessElement >& GetSettings()
const = 0;
712 virtual void SetSettings(
const TSharedRef< IDatasmithPostProcessElement >& Settings) = 0;
715 virtual bool GetEnabled()
const = 0;
716 virtual void SetEnabled(
bool bEnabled ) = 0;
719 virtual bool GetUnbound()
const = 0;
720 virtual void SetUnbound(
bool bUnbound) = 0;
729 virtual TSharedPtr<IDatasmithCompositeTexture>& GetEnvironmentComp() = 0;
732 virtual const TSharedPtr<IDatasmithCompositeTexture>& GetEnvironmentComp()
const = 0;
735 virtual void SetEnvironmentComp(
const TSharedPtr<IDatasmithCompositeTexture>& EnvironmentComp) = 0;
738 virtual bool GetIsIlluminationMap()
const = 0;
741 virtual void SetIsIlluminationMap(
bool bIsIlluminationMap) = 0;
750 virtual const TCHAR* GetFile()
const = 0;
753 virtual void SetFile(
const TCHAR* File) = 0;
763 virtual void SetData(
const uint8* InData, uint32 InDataSize, EDatasmithTextureFormat InFormat) = 0;
766 virtual const uint8* GetData(uint32& OutDataSize, EDatasmithTextureFormat& OutFormat)
const = 0;
769 virtual FMD5Hash GetFileHash()
const = 0;
772 virtual void SetFileHash(FMD5Hash Hash) = 0;
775 virtual EDatasmithTextureMode GetTextureMode()
const = 0;
778 virtual void SetTextureMode(EDatasmithTextureMode Mode) = 0;
781 virtual EDatasmithTextureFilter GetTextureFilter()
const = 0;
784 virtual void SetTextureFilter(EDatasmithTextureFilter Filter) = 0;
787 virtual EDatasmithTextureAddress GetTextureAddressX()
const = 0;
790 virtual void SetTextureAddressX(EDatasmithTextureAddress Mode) = 0;
793 virtual EDatasmithTextureAddress GetTextureAddressY()
const = 0;
796 virtual void SetTextureAddressY(EDatasmithTextureAddress Mode) = 0;
799 virtual bool GetAllowResize()
const = 0;
802 virtual void SetAllowResize(
bool bAllowResize) = 0;
805 virtual float GetRGBCurve()
const = 0;
808 virtual void SetRGBCurve(
const float InRGBCurve) = 0;
828 virtual double GetIOR()
const = 0;
831 virtual void SetIOR(
double Value) = 0;
834 virtual double GetIORk()
const = 0;
837 virtual void SetIORk(
double Value) = 0;
840 virtual double GetIORRefra()
const = 0;
843 virtual void SetIORRefra(
double Value) = 0;
846 virtual double GetBumpAmount()
const = 0;
849 virtual void SetBumpAmount(
double Value) = 0;
852 virtual bool GetTwoSided()
const = 0;
855 virtual void SetTwoSided(
bool Value) = 0;
858 virtual FLinearColor GetDiffuseColor()
const = 0;
861 virtual void SetDiffuseColor(FLinearColor Value) = 0;
864 virtual const TCHAR* GetDiffuseTexture()
const = 0;
867 virtual void SetDiffuseTexture(
const TCHAR* Value) = 0;
876 virtual TSharedPtr<IDatasmithCompositeTexture>& GetDiffuseComp() = 0;
879 virtual const TSharedPtr<IDatasmithCompositeTexture>& GetDiffuseComp()
const = 0;
882 virtual void SetDiffuseComp(
const TSharedPtr<IDatasmithCompositeTexture>& Value) = 0;
885 virtual FLinearColor GetReflectanceColor()
const = 0;
888 virtual void SetReflectanceColor(FLinearColor Value) = 0;
891 virtual const TCHAR* GetReflectanceTexture()
const = 0;
894 virtual void SetReflectanceTexture(
const TCHAR* Value) = 0;
903 virtual TSharedPtr<IDatasmithCompositeTexture>& GetRefleComp() = 0;
906 virtual const TSharedPtr<IDatasmithCompositeTexture>& GetRefleComp()
const = 0;
909 virtual void SetRefleComp(
const TSharedPtr<IDatasmithCompositeTexture>& Value) = 0;
912 virtual double GetRoughness()
const = 0;
915 virtual void SetRoughness(
double Value) = 0;
918 virtual const TCHAR* GetRoughnessTexture()
const = 0;
921 virtual void SetRoughnessTexture(
const TCHAR* Value) = 0;
930 virtual TSharedPtr<IDatasmithCompositeTexture>& GetRoughnessComp() = 0;
933 virtual const TSharedPtr<IDatasmithCompositeTexture>& GetRoughnessComp()
const = 0;
936 virtual void SetRoughnessComp(
const TSharedPtr<IDatasmithCompositeTexture>& Value) = 0;
939 virtual const TCHAR* GetNormalTexture()
const = 0;
942 virtual void SetNormalTexture(
const TCHAR* Value) = 0;
951 virtual TSharedPtr<IDatasmithCompositeTexture>& GetNormalComp() = 0;
954 virtual const TSharedPtr<IDatasmithCompositeTexture>& GetNormalComp()
const = 0;
957 virtual void SetNormalComp(
const TSharedPtr<IDatasmithCompositeTexture>& Value) = 0;
960 virtual const TCHAR* GetBumpTexture()
const = 0;
963 virtual void SetBumpTexture(
const TCHAR* Value) = 0;
972 virtual TSharedPtr<IDatasmithCompositeTexture>& GetBumpComp() = 0;
975 virtual const TSharedPtr<IDatasmithCompositeTexture>& GetBumpComp()
const = 0;
978 virtual void SetBumpComp(
const TSharedPtr<IDatasmithCompositeTexture>& Value) = 0;
981 virtual FLinearColor GetTransparencyColor()
const = 0;
984 virtual void SetTransparencyColor(FLinearColor Value) = 0;
987 virtual const TCHAR* GetTransparencyTexture()
const = 0;
990 virtual void SetTransparencyTexture(
const TCHAR* Value) = 0;
999 virtual TSharedPtr<IDatasmithCompositeTexture>& GetTransComp() = 0;
1002 virtual const TSharedPtr<IDatasmithCompositeTexture>& GetTransComp()
const = 0;
1005 virtual void SetTransComp(
const TSharedPtr<IDatasmithCompositeTexture>& Value) = 0;
1008 virtual const TCHAR* GetMaskTexture()
const = 0;
1011 virtual void SetMaskTexture(
const TCHAR* Value) = 0;
1020 virtual TSharedPtr<IDatasmithCompositeTexture>& GetMaskComp() = 0;
1023 virtual const TSharedPtr<IDatasmithCompositeTexture>& GetMaskComp()
const = 0;
1026 virtual void SetMaskComp(
const TSharedPtr<IDatasmithCompositeTexture>& Value) = 0;
1029 virtual const TCHAR* GetDisplaceTexture()
const = 0;
1032 virtual void SetDisplaceTexture(
const TCHAR* Value) = 0;
1041 virtual double GetDisplace()
const = 0;
1044 virtual void SetDisplace(
double Value) = 0;
1047 virtual double GetDisplaceSubDivision()
const = 0;
1050 virtual void SetDisplaceSubDivision(
double Value) = 0;
1053 virtual TSharedPtr<IDatasmithCompositeTexture>& GetDisplaceComp() = 0;
1056 virtual const TSharedPtr<IDatasmithCompositeTexture>& GetDisplaceComp()
const = 0;
1059 virtual void SetDisplaceComp(
const TSharedPtr<IDatasmithCompositeTexture>& Value) = 0;
1062 virtual double GetMetal()
const = 0;
1065 virtual void SetMetal(
double Value) = 0;
1068 virtual const TCHAR* GetMetalTexture()
const = 0;
1071 virtual void SetMetalTexture(
const TCHAR* Value) = 0;
1080 virtual TSharedPtr<IDatasmithCompositeTexture>& GetMetalComp() = 0;
1083 virtual const TSharedPtr<IDatasmithCompositeTexture>& GetMetalComp()
const = 0;
1086 virtual void SetMetalComp(
const TSharedPtr<IDatasmithCompositeTexture>& Value) = 0;
1089 virtual FLinearColor GetEmitColor()
const = 0;
1092 virtual void SetEmitColor(FLinearColor Value) = 0;
1095 virtual const TCHAR* GetEmitTexture()
const = 0;
1098 virtual void SetEmitTexture(
const TCHAR* Value) = 0;
1107 virtual double GetEmitTemperature()
const = 0;
1110 virtual void SetEmitTemperature(
double Value) = 0;
1113 virtual double GetEmitPower()
const = 0;
1116 virtual void SetEmitPower(
double Value) = 0;
1119 virtual TSharedPtr<IDatasmithCompositeTexture>& GetEmitComp() = 0;
1122 virtual const TSharedPtr<IDatasmithCompositeTexture>& GetEmitComp()
const = 0;
1125 virtual void SetEmitComp(
const TSharedPtr<IDatasmithCompositeTexture>& Value) = 0;
1132 virtual bool GetLightOnly()
const = 0;
1138 virtual void SetLightOnly(
bool Value) = 0;
1144 virtual FLinearColor GetWeightColor()
const = 0;
1150 virtual void SetWeightColor(FLinearColor Value) = 0;
1156 virtual const TCHAR* GetWeightTexture()
const = 0;
1162 virtual void SetWeightTexture(
const TCHAR* Value) = 0;
1180 virtual TSharedPtr<IDatasmithCompositeTexture>& GetWeightComp() = 0;
1186 virtual const TSharedPtr<IDatasmithCompositeTexture>& GetWeightComp()
const = 0;
1192 virtual void SetWeightComp(
const TSharedPtr<IDatasmithCompositeTexture>& Value) = 0;
1198 virtual double GetWeightValue()
const = 0;
1204 virtual void SetWeightValue(
double Value) = 0;
1210 virtual EDatasmithBlendMode GetBlendMode()
const = 0;
1216 virtual void SetBlendMode(EDatasmithBlendMode Value) = 0;
1222 virtual bool GetIsStackedLayer()
const = 0;
1228 virtual void SetIsStackedLayer(
bool Value) = 0;
1231 virtual const EDatasmithShaderUsage GetShaderUsage()
const = 0;
1234 virtual void SetShaderUsage(EDatasmithShaderUsage InMaterialUsage) = 0;
1237 virtual const bool GetUseEmissiveForDynamicAreaLighting()
const = 0;
1240 virtual void SetUseEmissiveForDynamicAreaLighting(
bool InUseEmissiveForDynamicAreaLighting) = 0;
1246 typedef TPair<float, const TCHAR*> ParamVal;
1254 virtual bool IsValid()
const = 0;
1257 virtual EDatasmithCompMode GetMode()
const = 0;
1260 virtual void SetMode(EDatasmithCompMode Mode) = 0;
1263 virtual int32 GetParamSurfacesCount()
const = 0;
1269 virtual bool GetUseTexture(int32 i) = 0;
1272 virtual const TCHAR* GetParamTexture(int32 i) = 0;
1275 virtual void SetParamTexture(int32 InIndex,
const TCHAR* InTexture) = 0;
1284 virtual bool GetUseColor(int32 i) = 0;
1287 virtual const FLinearColor& GetParamColor(int32 i) = 0;
1290 virtual bool GetUseComposite(int32 i) = 0;
1296 virtual int32 GetParamVal1Count()
const = 0;
1299 virtual ParamVal GetParamVal1(int32 i)
const = 0;
1302 virtual void AddParamVal1(ParamVal InParamVal) = 0;
1308 virtual int32 GetParamVal2Count()
const = 0;
1311 virtual ParamVal GetParamVal2(int32 i)
const = 0;
1314 virtual void AddParamVal2(ParamVal InParamVal) = 0;
1317 virtual TSharedPtr<IDatasmithCompositeTexture>& GetParamSubComposite(int32 i) = 0;
1320 virtual void AddSurface(
const TSharedPtr<IDatasmithCompositeTexture>& SubComp) = 0;
1323 virtual int32 GetParamMaskSurfacesCount()
const = 0;
1326 virtual const TCHAR* GetParamMask(int32 i) = 0;
1335 virtual TSharedPtr<IDatasmithCompositeTexture>& GetParamMaskSubComposite(int32 i) = 0;
1338 virtual const FLinearColor& GetParamMaskColor(int32 i)
const = 0;
1341 virtual bool GetMaskUseComposite(int32 i)
const = 0;
1344 virtual void AddMaskSurface(
const TSharedPtr<IDatasmithCompositeTexture>& MaskSubComp) = 0;
1347 virtual void AddMaskSurface(
const FLinearColor& Color) = 0;
1350 virtual const TCHAR* GetBaseTextureName()
const = 0;
1353 virtual const TCHAR* GetBaseColName()
const = 0;
1356 virtual const TCHAR* GetBaseValName()
const = 0;
1359 virtual const TCHAR* GetBaseCompName()
const = 0;
1369 virtual void SetBaseNames(
const TCHAR* InTextureName,
const TCHAR* InColorName,
const TCHAR* InValueName,
const TCHAR* InCompName) = 0;
1375 virtual void AddSurface(
const FLinearColor& Color) = 0;
1378 virtual void ClearSurface() = 0;
1385 virtual const TSharedPtr< IDatasmithElement >& GetAssociatedElement()
const = 0;
1388 virtual void SetAssociatedElement(
const TSharedPtr< IDatasmithElement >& Element) = 0;
1391 virtual int32 GetPropertiesCount()
const = 0;
1394 virtual const TSharedPtr< IDatasmithKeyValueProperty >& GetProperty(int32 i)
const = 0;
1395 virtual TSharedPtr< IDatasmithKeyValueProperty >& GetProperty(int32 i) = 0;
1398 virtual const TSharedPtr< IDatasmithKeyValueProperty >& GetPropertyByName(
const TCHAR* Name)
const = 0;
1399 virtual TSharedPtr< IDatasmithKeyValueProperty >& GetPropertyByName(
const TCHAR* Name) = 0;
1402 virtual void AddProperty(
const TSharedPtr< IDatasmithKeyValueProperty >& Property ) = 0;
1411 virtual void Reset() = 0;
1414 virtual const TCHAR* GetHost()
const = 0;
1421 virtual void SetHost(
const TCHAR*) = 0;
1424 virtual const TCHAR* GetExporterVersion()
const = 0;
1432 virtual void SetExporterVersion(
const TCHAR*) = 0;
1435 virtual const TCHAR* GetExporterSDKVersion()
const = 0;
1443 virtual void SetExporterSDKVersion(
const TCHAR*) = 0;
1446 virtual const TCHAR* GetVendor()
const = 0;
1453 virtual void SetVendor(
const TCHAR*) = 0;
1456 virtual const TCHAR* GetProductName()
const = 0;
1463 virtual void SetProductName(
const TCHAR*) = 0;
1466 virtual const TCHAR* GetProductVersion()
const = 0;
1473 virtual void SetProductVersion(
const TCHAR*) = 0;
1476 virtual const TCHAR* GetUserID()
const = 0;
1483 virtual void SetUserID(
const TCHAR*) = 0;
1486 virtual const TCHAR* GetUserOS()
const = 0;
1493 virtual void SetUserOS(
const TCHAR*) = 0;
1496 virtual int32 GetExportDuration()
const = 0;
1503 virtual void SetExportDuration(int32) = 0;
1510 virtual bool GetUsePhysicalSky()
const = 0;
1516 virtual void SetUsePhysicalSky(
bool bInUsePhysicalSky) = 0;
1523 virtual void AddMesh(
const TSharedPtr< IDatasmithMeshElement >& InMesh) = 0;
1526 virtual int32 GetMeshesCount()
const = 0;
1529 virtual TSharedPtr< IDatasmithMeshElement > GetMesh(int32 InIndex) = 0;
1532 virtual const TSharedPtr< IDatasmithMeshElement >& GetMesh(int32 InIndex)
const = 0;
1539 virtual void RemoveMesh(
const TSharedPtr< IDatasmithMeshElement >& InMesh) = 0;
1544 virtual void EmptyMeshes() = 0;
1551 virtual void AddActor(
const TSharedPtr< IDatasmithActorElement >& InActor) = 0;
1554 virtual int32 GetActorsCount()
const = 0;
1557 virtual TSharedPtr< IDatasmithActorElement > GetActor(int32 InIndex) = 0;
1560 virtual const TSharedPtr< IDatasmithActorElement >& GetActor(int32 InIndex)
const = 0;
1567 virtual void RemoveActor(
const TSharedPtr< IDatasmithActorElement >& InActor, EDatasmithActorRemovalRule RemoveRule) = 0;
1574 virtual void AddMaterial(
const TSharedPtr< IDatasmithBaseMaterialElement >& InMaterial) = 0;
1577 virtual int32 GetMaterialsCount()
const = 0;
1578 virtual TSharedPtr< IDatasmithBaseMaterialElement > GetMaterial(int32 InIndex) = 0;
1579 virtual const TSharedPtr< IDatasmithBaseMaterialElement >& GetMaterial(int32 InIndex)
const = 0;
1586 virtual void RemoveMaterial(
const TSharedPtr< IDatasmithBaseMaterialElement >& InMaterial) = 0;
1591 virtual void EmptyMaterials() = 0;
1598 virtual void AddTexture(
const TSharedPtr< IDatasmithTextureElement >& InTexture) = 0;
1601 virtual int32 GetTexturesCount()
const = 0;
1602 virtual TSharedPtr< IDatasmithTextureElement > GetTexture(int32 InIndex) = 0;
1603 virtual const TSharedPtr< IDatasmithTextureElement >& GetTexture(int32 InIndex)
const = 0;
1610 virtual void RemoveTexture(
const TSharedPtr< IDatasmithTextureElement >& InTexture) = 0;
1615 virtual void EmptyTextures() = 0;
1623 virtual void SetPostProcess(
const TSharedPtr< IDatasmithPostProcessElement >& InPostProcess) = 0;
1624 virtual TSharedPtr< IDatasmithPostProcessElement > GetPostProcess() = 0;
1625 virtual const TSharedPtr< IDatasmithPostProcessElement >& GetPostProcess()
const = 0;
1632 virtual void AddLODScreenSize(
float ScreenSize ) = 0;
1633 virtual int32 GetLODScreenSizesCount()
const = 0;
1634 virtual float GetLODScreenSize(int32 InIndex)
const = 0;
1640 virtual void AddMetaData(
const TSharedPtr< IDatasmithMetaDataElement >& InMetaData) = 0;
1642 virtual int32 GetMetaDataCount()
const = 0;
1643 virtual TSharedPtr< IDatasmithMetaDataElement > GetMetaData(int32 InIndex) = 0;
1644 virtual const TSharedPtr< IDatasmithMetaDataElement >& GetMetaData(int32 InIndex)
const = 0;
1645 virtual TSharedPtr< IDatasmithMetaDataElement > GetMetaData(
const TSharedPtr<IDatasmithElement>& Element) = 0;
1646 virtual const TSharedPtr< IDatasmithMetaDataElement >& GetMetaData(
const TSharedPtr<IDatasmithElement>& Element)
const = 0;
1653 virtual void AddLevelSequence(
const TSharedRef< IDatasmithLevelSequenceElement >& InSequence) = 0;
1656 virtual int32 GetLevelSequencesCount()
const = 0;
1659 virtual TSharedPtr< IDatasmithLevelSequenceElement > GetLevelSequence(int32 InIndex) = 0;
1666 virtual void RemoveLevelSequence(
const TSharedRef< IDatasmithLevelSequenceElement>& InSequence) = 0;
1669 virtual void AttachActor(
const TSharedPtr< IDatasmithActorElement >& NewParent,
const TSharedPtr< IDatasmithActorElement >& Child, EDatasmithActorAttachmentRule AttachmentRule) = 0;
1671 virtual void AttachActorToSceneRoot(
const TSharedPtr< IDatasmithActorElement >& Child, EDatasmithActorAttachmentRule AttachmentRule) = 0;