4 #include "IDatasmithSceneElements.h"
5 #include "DatasmithDefinitions.h"
6 #include "DatasmithSceneFactory.h"
7 #include "DatasmithUtils.h"
9 #include "Containers/Array.h"
10 #include "Containers/UnrealString.h"
11 #include "Math/UnrealMathUtility.h"
12 #include "Templates/SharedPointer.h"
14 template<
typename InterfaceType >
21 virtual bool IsA( EDatasmithElementType InType )
const override {
return ( uint64(Type) & uint64(InType) ) != 0; }
22 virtual bool IsSubType( uint64 InSubType )
const override {
return ( InSubType & SubType ) != 0; }
24 virtual const TCHAR* GetName()
const override {
return *Name; }
25 virtual void SetName(
const TCHAR* InName)
override { Name = FDatasmithUtils::SanitizeObjectName(InName); }
27 virtual const TCHAR* GetLabel()
const override {
return Label.IsEmpty() ? GetName() : *Label; }
28 virtual void SetLabel(
const TCHAR* InLabel)
override { Label = FDatasmithUtils::SanitizeObjectName(InLabel); }
30 virtual FMD5Hash CalculateElementHash(
bool)
override {
return ElementHash; }
37 EDatasmithElementType Type;
41 template<
typename InterfaceType >
54 EDatasmithKeyValuePropertyType
GetPropertyType()
const override {
return PropertyType; }
57 const TCHAR*
GetValue()
const override {
return *Value; }
58 void SetValue(
const TCHAR* InValue )
override;
64 EDatasmithKeyValuePropertyType PropertyType;
68 template<
typename InterfaceType >
74 virtual FVector GetTranslation()
const override {
return Translation; }
75 virtual void SetTranslation(
float InX,
float InY,
float InZ)
override { SetTranslation( FVector( InX, InY, InZ ) ); }
78 virtual FVector GetScale()
const override {
return Scale; }
79 virtual void SetScale(
float InX,
float InY,
float InZ)
override { SetScale( FVector( InX, InY, InZ ) ); }
82 virtual FQuat GetRotation()
const override {
return Rotation; }
83 virtual void SetRotation(
float InX,
float InY,
float InZ,
float InW)
override { SetRotation( FQuat( InX, InY, InZ, InW ) ); }
86 virtual void SetUseParentTransform(
bool bInUseParentTransform)
override { bUseParentTransform = bInUseParentTransform;}
87 virtual FTransform GetRelativeTransform()
const override;
89 virtual const TCHAR* GetLayer()
const override {
return *Layer; }
90 virtual void SetLayer(
const TCHAR* InLayer)
override { Layer = InLayer; }
92 virtual void AddTag(
const TCHAR* InTag)
override { Tags.Add(InTag); }
93 virtual void ResetTags()
override { Tags.Reset(); }
94 virtual int32 GetTagsCount()
const {
return Tags.Num(); }
95 virtual const TCHAR* GetTag(int32 TagIndex)
const override {
return Tags.IsValidIndex(TagIndex) ? *Tags[TagIndex] :
nullptr; }
97 virtual void AddChild(
const TSharedPtr< IDatasmithActorElement >& InChild, EDatasmithActorAttachmentRule AttachementRule = EDatasmithActorAttachmentRule::KeepWorldTransform)
override;
98 virtual int32 GetChildrenCount()
const override {
return Children.Num(); }
100 virtual TSharedPtr< IDatasmithActorElement >
GetChild(int32 InIndex)
override {
return Children.IsValidIndex(InIndex) ? Children[InIndex] : NullActorPtr; };
101 virtual const TSharedPtr< IDatasmithActorElement >&
GetChild(int32 InIndex)
const override {
return Children.IsValidIndex(InIndex) ? Children[InIndex] : NullActorPtr; };
102 virtual void RemoveChild(
const TSharedPtr< IDatasmithActorElement >& InChild)
override { Children.Remove(InChild); static_cast< FDatasmithActorElementImpl* >( InChild.Get() )->Parent.Reset(); }
104 virtual void SetIsAComponent(
bool Value) { bIsAComponent = Value; }
105 virtual bool IsAComponent()
const override {
return bIsAComponent; }
107 virtual void SetAsSelector(
bool bInAsSelector)
override { bIsASelector = bInAsSelector; }
108 virtual bool IsASelector()
const override {
return bIsASelector; }
111 virtual void SetSelectionIndex(int32 InSelectionIdx)
override { SelectionIdx = InSelectionIdx; }
116 virtual void SetVisibility(
bool bInVisibility)
override { bVisibility = bInVisibility; }
117 virtual bool GetVisibility()
const override {
return bVisibility; }
127 static TSharedPtr<IDatasmithActorElement> NullActorPtr;
135 TArray< FString > Tags;
137 TArray< TSharedPtr< IDatasmithActorElement > > Children;
138 TSharedPtr< IDatasmithActorElement > Parent;
143 bool bUseParentTransform;
147 template<
typename InterfaceType >
150 template<
typename T >
153 , Translation(FVector::ZeroVector)
154 , Scale(FVector::OneVector)
155 , Rotation(FQuat::Identity)
156 , bIsAComponent(false)
157 , bIsASelector(false)
159 , bUseParentTransform(true)
164 template<
typename T >
167 FTransform ActorTransform( GetRotation(), GetTranslation(), GetScale() );
169 if ( Parent.IsValid() && bUseParentTransform )
171 FTransform ParentTransform( Parent->GetRotation(), Parent->GetTranslation(), Parent->GetScale() );
173 return ActorTransform.GetRelativeTransform( ParentTransform );
176 return ActorTransform;
179 template<
typename T >
182 if ( AttachementRule == EDatasmithActorAttachmentRule::KeepRelativeTransform )
184 FTransform RelativeTransform( InChild->GetRotation(), InChild->GetTranslation(), InChild->GetScale() );
185 FTransform ParentTransform( GetRotation(), GetTranslation(), GetScale() );
187 FTransform WorldTransform = RelativeTransform * ParentTransform;
189 InChild->SetRotation( WorldTransform.GetRotation() );
190 InChild->SetTranslation( WorldTransform.GetTranslation() );
191 InChild->SetScale( WorldTransform.GetScale3D() );
194 Children.Add(InChild);
195 static_cast< FDatasmithActorElementImpl* >( InChild.Get() )->Parent = this->AsShared();
198 template<
typename T >
201 FTransform ThisWorldTransform( GetRotation(), GetTranslation(), GetScale() );
203 for ( TSharedPtr< IDatasmithActorElement >& Child : Children )
205 if ( !Child.IsValid() )
213 FTransform ChildWorldTransform( Child->GetRotation(), Child->GetTranslation(), Child->GetScale() );
215 FTransform ChildRelativeTransform = ChildWorldTransform.GetRelativeTransform( ThisWorldTransform );
216 ChildImpl->Rotation = ChildRelativeTransform.GetRotation();
217 ChildImpl->Translation = ChildRelativeTransform.GetTranslation();
218 ChildImpl->Scale = ChildRelativeTransform.GetScale3D();
222 template<
typename T >
225 FTransform ThisWorldTransform( GetRotation(), GetTranslation(), GetScale() );
227 for ( TSharedPtr< IDatasmithActorElement >& Child : Children )
229 if ( !Child.IsValid() )
236 FTransform ChildRelativeTransform( Child->GetRotation(), Child->GetTranslation(), Child->GetScale() );
238 FTransform ChildWorldTransform = ChildRelativeTransform * ThisWorldTransform;
239 ChildImpl->Rotation = ChildWorldTransform.GetRotation();
240 ChildImpl->Translation = ChildWorldTransform.GetTranslation();
241 ChildImpl->Scale = ChildWorldTransform.GetScale3D();
254 virtual const TCHAR*
GetFile()
const override {
return *File; }
255 virtual void SetFile(
const TCHAR* InFile)
override { File = InFile; };
257 virtual FMD5Hash
GetFileHash()
const override {
return FileHash; }
258 virtual void SetFileHash(FMD5Hash Hash)
override { FileHash = Hash; }
260 virtual void SetDimensions(
const float InArea,
const float InWidth,
const float InHeight,
const float InDepth)
override { Area = InArea; Width = InWidth; Height = InHeight; Depth = InDepth;};
261 virtual FVector
GetDimensions()
const override {
return FVector{ Width, Height, Depth }; }
263 virtual float GetArea()
const override {
return Area; }
264 virtual float GetWidth()
const override {
return Width; }
265 virtual float GetHeight()
const override {
return Height; }
266 virtual float GetDepth()
const override {
return Depth; }
274 virtual void SetMaterial(
const TCHAR* MaterialPathName, int32 SlotId)
override;
275 virtual const TCHAR*
GetMaterial(int32 SlotId)
const override;
278 virtual TSharedPtr<const IDatasmithMaterialIDElement>
GetMaterialSlotAt(int32 Index)
const override;
279 virtual TSharedPtr<IDatasmithMaterialIDElement>
GetMaterialSlotAt(int32 Index)
override;
283 virtual void SetLODCount(int32 Count)
override { LODCount = Count; }
293 int32 LightmapCoordinateIndex;
294 int32 LightmapSourceUV;
295 TArray<TSharedPtr<IDatasmithMaterialIDElement>> MaterialSlots;
303 virtual int32 GetId()
const override {
return Id; }
304 virtual void SetId(int32 InId)
override { Id = InId; }
310 template<
typename InterfaceType = IDatasmithMeshActorElement >
316 virtual void AddMaterialOverride(
const TCHAR* InMaterialName, int32 Id)
override;
317 virtual void AddMaterialOverride(
const TSharedPtr< IDatasmithMaterialIDElement >& Material)
override;
319 virtual int32 GetMaterialOverridesCount()
const override;
320 virtual TSharedPtr<IDatasmithMaterialIDElement> GetMaterialOverride(int32 i)
override;
321 virtual TSharedPtr<const IDatasmithMaterialIDElement> GetMaterialOverride(int32 i)
const override;
322 virtual void RemoveMaterialOverride(
const TSharedPtr< IDatasmithMaterialIDElement >& Material)
override;
324 virtual const TCHAR* GetStaticMeshPathName()
const override;
325 virtual void SetStaticMeshPathName(
const TCHAR* InStaticMeshName)
override;
331 FString StaticMeshPathName;
332 TArray< TSharedPtr< IDatasmithMaterialIDElement > > Materials;
335 template <
typename InterfaceType >
341 template <
typename InterfaceType >
347 template <
typename InterfaceType >
350 FString MaterialName = FDatasmithUtils::SanitizeObjectName(InMaterialName);
352 for (
const TSharedPtr< IDatasmithMaterialIDElement >& Material : Materials)
354 if (FString(Material->GetName()) == MaterialName && Material->GetId() == Id)
360 TSharedPtr< IDatasmithMaterialIDElement > MaterialIDElement = FDatasmithSceneFactory::CreateMaterialId(*MaterialName);
361 MaterialIDElement->SetId(Id);
362 Materials.Add(MaterialIDElement);
365 template <
typename InterfaceType >
368 Materials.Add(Material);
371 template <
typename InterfaceType >
374 return (int32)Materials.Num();
377 template <
typename InterfaceType >
380 if (Materials.IsValidIndex(i))
384 const TSharedPtr<IDatasmithMaterialIDElement> InvalidMaterialID;
385 return InvalidMaterialID;
388 template <
typename InterfaceType >
391 if (Materials.IsValidIndex(i))
395 const TSharedPtr<IDatasmithMaterialIDElement> InvalidMaterialID;
396 return InvalidMaterialID;
399 template <
typename InterfaceType >
402 Materials.Remove(Material);
405 template <
typename InterfaceType >
408 return *StaticMeshPathName;
411 template <
typename InterfaceType >
414 StaticMeshPathName = InStaticMeshName;
426 virtual int32
AddInstance(
const FTransform& Transform)
override;
427 virtual FTransform
GetInstance(int32 InstanceIndex)
const override;
431 TArray<FTransform> Instances;
434 template<
typename InterfaceType = IDatasmithLightActorElement >
438 virtual bool IsEnabled()
const override {
return bEnabled; }
439 virtual void SetEnabled(
bool bInIsEnabled)
override { bEnabled = bInIsEnabled; }
441 virtual double GetIntensity()
const override {
return Intensity; }
442 virtual void SetIntensity(
double InIntensity)
override { Intensity = InIntensity; }
444 virtual FLinearColor GetColor()
const override {
return Color; }
445 virtual void SetColor(FLinearColor InColor)
override { Color = InColor; }
447 virtual double GetTemperature()
const override {
return Temperature; }
448 virtual void SetTemperature(
double InTemperature)
override { Temperature = InTemperature; }
450 virtual bool GetUseTemperature()
const override {
return bUseTemperature; }
451 virtual void SetUseTemperature(
bool bInUseTemperature)
override { bUseTemperature = bInUseTemperature; }
453 virtual const TCHAR* GetIesFile()
const override {
return *IesFile; }
454 virtual void SetIesFile(
const TCHAR* InIesFile)
override { IesFile = InIesFile; }
456 virtual bool GetUseIes()
const override {
return bUseIes; }
457 virtual void SetUseIes(
bool bInUseIes)
override { bUseIes = bInUseIes; }
459 virtual double GetIesBrightnessScale()
const override {
return IesBrightnessScale; }
460 virtual void SetIesBrightnessScale(
double InIesBrightnessScale)
override { IesBrightnessScale = InIesBrightnessScale; }
462 virtual bool GetUseIesBrightness()
const override {
return bUseIesBrightness; }
463 virtual void SetUseIesBrightness(
bool bInUseIesBrightness)
override { bUseIesBrightness = bInUseIesBrightness; }
465 virtual FQuat GetIesRotation()
const override {
return IesRotation; }
466 virtual void SetIesRotation(
const FQuat& InIesRotation)
override { IesRotation = InIesRotation; }
468 TSharedPtr< IDatasmithMaterialIDElement >& GetLightFunctionMaterial()
override {
return LightFunctionMaterial; }
470 void SetLightFunctionMaterial(
const TSharedPtr< IDatasmithMaterialIDElement >& InMaterial)
override { LightFunctionMaterial = InMaterial; }
472 void SetLightFunctionMaterial(
const TCHAR* InMaterialName)
override
474 FString MaterialName = FDatasmithUtils::SanitizeObjectName(InMaterialName);
475 LightFunctionMaterial = FDatasmithSceneFactory::CreateMaterialId(*MaterialName);
489 Temperature = 6500.0;
490 bUseTemperature =
false;
492 IesBrightnessScale = 1.0;
493 bUseIesBrightness =
false;
495 IesRotation = FQuat::Identity;
504 bool bUseTemperature;
509 double IesBrightnessScale;
510 bool bUseIesBrightness;
512 TSharedPtr< IDatasmithMaterialIDElement > LightFunctionMaterial;
517 template<
typename InterfaceType = IDatasmithPo
intLightElement >
526 virtual void SetIntensityUnits(EDatasmithLightUnits InUnits) { Units = InUnits; }
527 virtual EDatasmithLightUnits GetIntensityUnits()
const {
return Units; }
529 virtual float GetSourceRadius()
const override {
return SourceRadius; }
530 virtual void SetSourceRadius(
float InSourceRadius)
override { SourceRadius = InSourceRadius; }
532 virtual float GetSourceLength()
const override {
return SourceLength; }
533 virtual void SetSourceLength(
float InSourceLength)
override { SourceLength = InSourceLength;}
535 virtual float GetAttenuationRadius()
const override {
return AttenuationRadius; }
536 virtual void SetAttenuationRadius(
float InAttenuationRadius)
override { AttenuationRadius = InAttenuationRadius; }
542 Units = EDatasmithLightUnits::Unitless;
545 AttenuationRadius = -1;
549 EDatasmithLightUnits Units;
552 float AttenuationRadius;
555 template<
typename InterfaceType = IDatasmithSpotLightElement >
564 virtual float GetInnerConeAngle()
const override
566 return InnerConeAngle;
569 virtual void SetInnerConeAngle(
float InInnerConeAngle)
override
571 InnerConeAngle = InInnerConeAngle;
574 virtual float GetOuterConeAngle()
const override
576 return OuterConeAngle;
579 virtual void SetOuterConeAngle(
float InOuterConeAngle)
override
581 OuterConeAngle = InOuterConeAngle;
588 InnerConeAngle = 45.f;
589 OuterConeAngle = 60.f;
593 float InnerConeAngle;
594 float OuterConeAngle;
611 , LightShape( EDatasmithLightShape::Rectangle )
612 , LightType( EDatasmithAreaLightType::Point )
618 virtual EDatasmithLightShape
GetLightShape()
const override {
return LightShape; }
619 virtual void SetLightShape(EDatasmithLightShape InShape)
override { LightShape = InShape; }
621 virtual EDatasmithAreaLightType GetLightType()
const override {
return LightType; }
622 virtual void SetLightType(EDatasmithAreaLightType InLightType)
override { LightType = InLightType; }
624 virtual void SetWidth(
float InWidth)
override { Width = InWidth; }
625 virtual float GetWidth()
const override {
return Width; }
627 virtual void SetLength(
float InLength)
override { Length = InLength; }
628 virtual float GetLength()
const override {
return Length; }
631 EDatasmithLightShape LightShape;
632 EDatasmithAreaLightType LightType;
652 virtual void SetTemperature(
float InTemperature)
override { Temperature = InTemperature; }
655 virtual void SetColorFilter(FLinearColor InColorFilter)
override { ColorFilter = InColorFilter; }
658 virtual void SetVignette(
float InVignette)
override { Vignette = InVignette; }
660 virtual float GetDof()
const override {
return Dof; }
661 virtual void SetDof(
float InDof)
override { Dof = InDof; }
664 virtual void SetMotionBlur(
float InMotionBlur)
override { MotionBlur = InMotionBlur; }
667 virtual void SetSaturation(
float InSaturation)
override { Saturation = InSaturation; }
670 virtual void SetCameraISO(
float InCameraISO)
override { CameraISO = InCameraISO; }
673 virtual void SetCameraShutterSpeed(
float InCameraShutterSpeed)
override { CameraShutterSpeed = InCameraShutterSpeed; }
676 virtual void SetDepthOfFieldFstop(
float InFstop )
override { Fstop = InFstop; }
680 FLinearColor ColorFilter;
686 float CameraShutterSpeed;
695 virtual const TSharedRef< IDatasmithPostProcessElement >&
GetSettings()
const override {
return Settings; }
696 virtual void SetSettings(
const TSharedRef< IDatasmithPostProcessElement >& InSettings)
override { Settings = InSettings; }
699 virtual void SetEnabled(
bool bInEnabled ) { bEnabled = bInEnabled; }
701 virtual bool GetUnbound()
const override {
return bUnbound; }
702 virtual void SetUnbound(
bool bInUnbound)
override { bUnbound = bInUnbound; }
705 TSharedRef< IDatasmithPostProcessElement > Settings;
723 virtual void SetEnableDepthOfField(
bool bInEnableDepthOfField)
override { bEnableDepthOfField = bInEnableDepthOfField; }
728 virtual float GetFStop()
const override;
729 virtual void SetFStop(
float InFStop)
override;
734 virtual TSharedPtr< IDatasmithPostProcessElement >&
GetPostProcess()
override;
735 virtual const TSharedPtr< IDatasmithPostProcessElement >&
GetPostProcess()
const override;
736 virtual void SetPostProcess(
const TSharedPtr< IDatasmithPostProcessElement >& InPostProcess)
override;
739 virtual void SetLookAtActor(
const TCHAR* InActorName)
override { ActorName = InActorName; }
745 TSharedPtr< IDatasmithPostProcessElement > PostProcess;
748 float SensorAspectRatio;
749 bool bEnableDepthOfField;
754 bool bLookAtAllowRoll;
767 virtual void SetClassOrPathName(
const TCHAR* InClassOrPathName )
override { ClassOrPathName = InClassOrPathName; }
773 virtual const TSharedPtr< IDatasmithKeyValueProperty >&
GetProperty(int32 i)
const override {
return Properties[i]; }
774 virtual TSharedPtr< IDatasmithKeyValueProperty >& GetProperty(int32 i)
override {
return Properties[i]; }
777 virtual const TSharedPtr< IDatasmithKeyValueProperty >& GetPropertyByName(
const TCHAR* Name)
const override;
778 virtual TSharedPtr< IDatasmithKeyValueProperty >& GetPropertyByName(
const TCHAR* Name)
override;
781 virtual void AddProperty(
const TSharedPtr< IDatasmithKeyValueProperty >& Property )
override;
784 virtual void RemoveProperty(
const TSharedPtr< IDatasmithKeyValueProperty >& Property )
override { Properties.RemoveSingleSwap( Property ); }
787 FString ClassOrPathName;
789 TArray< TSharedPtr< IDatasmithKeyValueProperty > > Properties;
790 TMap< FString, int > PropertyIndexMap;
799 SetScale( 100.f, 100.f, 100.f );
802 virtual void SetHeightmap(
const TCHAR* InFilePath )
override { HeightmapFilePath = InFilePath; }
803 virtual const TCHAR* GetHeightmap()
const override {
return *HeightmapFilePath; }
805 virtual void SetMaterial(
const TCHAR* InMaterialPathName )
override { MaterialPathName = InMaterialPathName; }
806 virtual const TCHAR* GetMaterial()
const override {
return *MaterialPathName; }
809 FString HeightmapFilePath;
810 FString MaterialPathName;
819 virtual const TSharedPtr<IDatasmithCompositeTexture>&
GetEnvironmentComp()
const override;
821 virtual void SetEnvironmentComp(
const TSharedPtr<IDatasmithCompositeTexture>& InEnvironmentComp)
override;
826 TSharedPtr<IDatasmithCompositeTexture> EnvironmentComp;
827 bool bIsIlluminationMap;
837 virtual const TCHAR*
GetFile()
const override;
838 virtual void SetFile(
const TCHAR* InFile)
override;
840 virtual void SetData(
const uint8* InData, uint32 InDataSize, EDatasmithTextureFormat InFormat)
override;
841 virtual const uint8*
GetData(uint32& OutDataSize, EDatasmithTextureFormat& OutFormat)
const override;
843 virtual FMD5Hash
GetFileHash()
const override {
return FileHash; }
844 virtual void SetFileHash(FMD5Hash Hash)
override { FileHash = Hash; }
847 virtual void SetTextureMode(EDatasmithTextureMode InMode)
override;
862 virtual void SetRGBCurve(
float InRGBCurve)
override;
868 EDatasmithTextureMode TextureMode;
869 EDatasmithTextureFilter TextureFilter;
870 EDatasmithTextureAddress TextureAddressX;
871 EDatasmithTextureAddress TextureAddressY;
876 EDatasmithTextureFormat TextureFormat;
884 virtual double GetIOR()
const override {
return IOR; }
885 virtual void SetIOR(
double InValue)
override { IOR = InValue; }
887 virtual double GetIORk()
const override {
return IORk; }
888 virtual void SetIORk(
double InValue)
override { IORk = InValue; }
891 virtual void SetIORRefra(
double Value)
override { IORRefra = Value; }
894 virtual void SetBumpAmount(
double InValue)
override { BumpAmount = InValue; }
897 virtual void SetTwoSided(
bool InValue)
override { bTwoSided = InValue; }
900 virtual void SetDiffuseColor(FLinearColor InValue)
override { DiffuseColor = InValue; }
908 virtual TSharedPtr<IDatasmithCompositeTexture>&
GetDiffuseComp()
override {
return DiffuseComp; }
909 virtual const TSharedPtr<IDatasmithCompositeTexture>&
GetDiffuseComp()
const override {
return DiffuseComp; }
910 virtual void SetDiffuseComp(
const TSharedPtr<IDatasmithCompositeTexture>& InValue)
override { DiffuseComp = InValue; }
921 virtual TSharedPtr<IDatasmithCompositeTexture>&
GetRefleComp()
override {
return RefleComp; }
922 virtual const TSharedPtr<IDatasmithCompositeTexture>&
GetRefleComp()
const override {
return RefleComp; }
923 virtual void SetRefleComp(
const TSharedPtr<IDatasmithCompositeTexture>& InValue)
override { RefleComp = InValue; }
926 virtual void SetRoughness(
double InValue)
override { Roughness = InValue; }
931 virtual TSharedPtr<IDatasmithCompositeTexture>&
GetRoughnessComp()
override {
return RoughnessComp; }
932 virtual const TSharedPtr<IDatasmithCompositeTexture>&
GetRoughnessComp()
const override {
return RoughnessComp; }
933 virtual void SetRoughnessComp(
const TSharedPtr<IDatasmithCompositeTexture>& InValue)
override { RoughnessComp = InValue; }
944 virtual TSharedPtr<IDatasmithCompositeTexture>&
GetNormalComp()
override {
return NormalComp; }
945 virtual const TSharedPtr<IDatasmithCompositeTexture>&
GetNormalComp()
const override {
return NormalComp; }
946 virtual void SetNormalComp(
const TSharedPtr<IDatasmithCompositeTexture>& InValue)
override { NormalComp = InValue; }
949 virtual void SetBumpTexture(
const TCHAR* Value)
override { BumpTexture = Value; }
954 virtual TSharedPtr<IDatasmithCompositeTexture>&
GetBumpComp()
override {
return BumpComp; }
955 virtual const TSharedPtr<IDatasmithCompositeTexture>&
GetBumpComp()
const override {
return BumpComp; }
956 virtual void SetBumpComp(
const TSharedPtr<IDatasmithCompositeTexture>& InValue)
override { BumpComp = InValue; }
967 virtual TSharedPtr<IDatasmithCompositeTexture>&
GetTransComp()
override {
return TransComp; }
968 virtual const TSharedPtr<IDatasmithCompositeTexture>&
GetTransComp()
const override {
return TransComp; }
969 virtual void SetTransComp(
const TSharedPtr<IDatasmithCompositeTexture>& InValue)
override { TransComp = InValue; }
972 virtual void SetMaskTexture(
const TCHAR* InValue)
override { MaskTexture = InValue; }
977 virtual TSharedPtr<IDatasmithCompositeTexture>&
GetMaskComp()
override {
return MaskComp; }
978 virtual const TSharedPtr<IDatasmithCompositeTexture>&
GetMaskComp()
const override {
return MaskComp; }
979 virtual void SetMaskComp(
const TSharedPtr<IDatasmithCompositeTexture>& InValue)
override { MaskComp = InValue; }
988 virtual void SetDisplace(
double InValue)
override { Displace = InValue; }
993 virtual TSharedPtr<IDatasmithCompositeTexture>&
GetDisplaceComp()
override {
return DisplaceComp; }
994 virtual const TSharedPtr<IDatasmithCompositeTexture>&
GetDisplaceComp()
const override {
return DisplaceComp; }
995 virtual void SetDisplaceComp(
const TSharedPtr<IDatasmithCompositeTexture>& InValue)
override { DisplaceComp = InValue; }
997 virtual double GetMetal()
const override {
return Metal; }
998 virtual void SetMetal(
double InValue)
override { Metal = InValue; }
1006 virtual TSharedPtr<IDatasmithCompositeTexture>&
GetMetalComp()
override {
return MetalComp; }
1007 virtual const TSharedPtr<IDatasmithCompositeTexture>&
GetMetalComp()
const override {
return MetalComp; }
1008 virtual void SetMetalComp(
const TSharedPtr<IDatasmithCompositeTexture>& Value)
override { MetalComp = Value; }
1011 virtual void SetEmitTexture(
const TCHAR* InValue)
override { EmitTexture = InValue; }
1017 virtual void SetEmitColor(FLinearColor InValue)
override { EmitColor = InValue; }
1023 virtual void SetEmitPower(
double InValue)
override { EmitPower = InValue; }
1025 virtual TSharedPtr<IDatasmithCompositeTexture>&
GetEmitComp()
override {
return EmitComp; }
1026 virtual const TSharedPtr<IDatasmithCompositeTexture>&
GetEmitComp()
const override {
return EmitComp; }
1027 virtual void SetEmitComp(
const TSharedPtr<IDatasmithCompositeTexture>& InValue)
override { EmitComp = InValue; }
1033 virtual void SetWeightColor(FLinearColor InValue)
override { WeightColor = InValue; }
1041 virtual TSharedPtr<IDatasmithCompositeTexture>&
GetWeightComp()
override {
return WeightComp; }
1042 virtual const TSharedPtr<IDatasmithCompositeTexture>&
GetWeightComp()
const override {
return WeightComp; }
1043 virtual void SetWeightComp(
const TSharedPtr<IDatasmithCompositeTexture>& InValue)
override { WeightComp = InValue; }
1048 virtual EDatasmithBlendMode
GetBlendMode()
const override {
return BlendMode; }
1049 virtual void SetBlendMode(EDatasmithBlendMode InValue)
override { BlendMode = InValue; }
1054 virtual const EDatasmithShaderUsage
GetShaderUsage()
const override {
return ShaderUsage; }
1055 virtual void SetShaderUsage(EDatasmithShaderUsage InShaderUsage)
override { ShaderUsage = InShaderUsage; };
1068 FLinearColor DiffuseColor;
1069 FString DiffuseTexture;
1071 TSharedPtr<IDatasmithCompositeTexture> DiffuseComp;
1073 FLinearColor ReflectanceColor;
1074 FString ReflectanceTexture;
1076 TSharedPtr<IDatasmithCompositeTexture> RefleComp;
1079 FString RoughnessTexture;
1081 TSharedPtr<IDatasmithCompositeTexture> RoughnessComp;
1083 FString NormalTexture;
1085 TSharedPtr<IDatasmithCompositeTexture> NormalComp;
1087 FString BumpTexture;
1089 TSharedPtr<IDatasmithCompositeTexture> BumpComp;
1091 FLinearColor TransparencyColor;
1092 FString TransparencyTexture;
1094 TSharedPtr<IDatasmithCompositeTexture> TransComp;
1096 FString MaskTexture;
1098 TSharedPtr<IDatasmithCompositeTexture> MaskComp;
1100 FString DisplaceTexture;
1103 double DisplaceSubDivision;
1104 TSharedPtr<IDatasmithCompositeTexture> DisplaceComp;
1107 FString MetalTexture;
1109 TSharedPtr<IDatasmithCompositeTexture> MetalComp;
1111 FString EmitTexture;
1113 FLinearColor EmitColor;
1114 double EmitTemperature;
1116 TSharedPtr<IDatasmithCompositeTexture> EmitComp;
1120 FLinearColor WeightColor;
1121 FString WeightTexture;
1123 TSharedPtr<IDatasmithCompositeTexture> WeightComp;
1126 EDatasmithBlendMode BlendMode;
1127 bool bIsStackedLayer;
1129 EDatasmithShaderUsage ShaderUsage;
1130 bool bUseEmissiveForDynamicAreaLighting;
1133 template<
typename InterfaceType >
1140 template<
typename T >
1154 virtual void AddShader(
const TSharedPtr< IDatasmithShaderElement >& InShader)
override;
1157 virtual TSharedPtr< IDatasmithShaderElement >&
GetShader(int32 InIndex)
override;
1158 virtual const TSharedPtr< IDatasmithShaderElement >&
GetShader(int32 InIndex)
const override;
1161 TArray< TSharedPtr< IDatasmithShaderElement > > Shaders;
1169 virtual EDatasmithMasterMaterialType GetMaterialType()
const {
return MaterialType; }
1170 virtual void SetMaterialType( EDatasmithMasterMaterialType InType )
override { MaterialType = InType; }
1172 virtual EDatasmithMasterMaterialQuality GetQuality()
const {
return Quality; }
1173 virtual void SetQuality( EDatasmithMasterMaterialQuality InQuality ) { Quality = InQuality; }
1176 virtual void SetCustomMaterialPathName(
const TCHAR* InPathName ){ CustomMaterialPathName = InPathName; }
1180 const TSharedPtr< IDatasmithKeyValueProperty >&
GetProperty( int32 InIndex )
const override;
1181 TSharedPtr< IDatasmithKeyValueProperty >&
GetProperty( int32 InIndex )
override;
1183 const TSharedPtr< IDatasmithKeyValueProperty >&
GetPropertyByName(
const TCHAR* InName )
const override;
1184 TSharedPtr< IDatasmithKeyValueProperty >&
GetPropertyByName(
const TCHAR* InName )
override;
1186 void AddProperty(
const TSharedPtr< IDatasmithKeyValueProperty >& InProperty )
override;
1189 TArray< TSharedPtr< IDatasmithKeyValueProperty > > Properties;
1190 TMap< FString, int > PropertyIndexMap;
1192 EDatasmithMasterMaterialType MaterialType;
1193 EDatasmithMasterMaterialQuality Quality;
1195 FString CustomMaterialPathName;
1205 bool GetUseTexture()
const;
1206 bool GetUseColor()
const;
1207 bool GetUseComposite()
const;
1210 const TCHAR* GetParamTexture()
const;
1211 void SetParamTexture(
const TCHAR* InTexture);
1212 const FLinearColor& GetParamColor()
const;
1213 TSharedPtr<IDatasmithCompositeTexture>& GetParamSubComposite();
1217 FString ParamTextures;
1218 FLinearColor ParamColor;
1219 TSharedPtr<IDatasmithCompositeTexture> ParamSubComposite;
1220 bool bParamUseTexture;
1228 virtual bool IsValid()
const override;
1230 virtual EDatasmithCompMode
GetMode()
const override {
return CompMode; }
1231 virtual void SetMode(EDatasmithCompMode InMode)
override { CompMode = InMode; }
1237 virtual void SetParamTexture(int32 InIndex,
const TCHAR* InTexture)
override;
1242 virtual const FLinearColor&
GetParamColor(int32 InIndex)
override;
1247 virtual ParamVal
GetParamVal1(int32 InIndex)
const override;
1248 virtual void AddParamVal1(ParamVal InParamVal)
override { ParamVal1.Add( ParamValImpl( InParamVal.Key, InParamVal.Value ) ); }
1251 virtual ParamVal
GetParamVal2(int32 InIndex)
const override;
1252 virtual void AddParamVal2(ParamVal InParamVal)
override { ParamVal2.Add( ParamValImpl( InParamVal.Key, InParamVal.Value ) ); }
1255 virtual const TCHAR*
GetParamMask(int32 InIndex)
override;
1274 virtual void SetBaseNames(
const TCHAR* InTextureName,
const TCHAR* InColorName,
const TCHAR* InValueName,
const TCHAR* InCompName)
override;
1280 ParamSurfaces.Empty();
1284 TArray<FDatasmithCompositeSurface> ParamSurfaces;
1285 TArray<FDatasmithCompositeSurface> ParamMaskSurfaces;
1287 typedef TPair<float, FString> ParamValImpl;
1288 TArray<ParamValImpl> ParamVal1;
1289 TArray<ParamValImpl> ParamVal2;
1291 EDatasmithCompMode CompMode;
1294 FString BaseTexName;
1295 FString BaseColName;
1296 FString BaseValName;
1297 FString BaseCompName;
1310 virtual const TSharedPtr< IDatasmithKeyValueProperty >&
GetProperty(int32 i)
const override {
return Properties[i]; }
1311 virtual TSharedPtr< IDatasmithKeyValueProperty >& GetProperty(int32 i)
override {
return Properties[i]; }
1313 const TSharedPtr< IDatasmithKeyValueProperty >& GetPropertyByName(
const TCHAR* InName )
const override;
1314 TSharedPtr< IDatasmithKeyValueProperty >& GetPropertyByName(
const TCHAR* InName )
override;
1316 virtual void AddProperty(
const TSharedPtr< IDatasmithKeyValueProperty >& Property )
override;
1319 TSharedPtr< IDatasmithElement > AssociatedElement;
1320 TArray< TSharedPtr< IDatasmithKeyValueProperty > > Properties;
1321 TMap< FString, int > PropertyIndexMap;
1329 virtual void Reset()
override;
1338 Hostname = InHostname;
1347 virtual const TCHAR*
GetVendor()
const override {
return *Vendor; }
1348 virtual void SetVendor(
const TCHAR* InVendor)
override { Vendor = InVendor; }
1351 virtual void SetProductName(
const TCHAR* InProductName)
override { ProductName = InProductName; }
1354 virtual void SetProductVersion(
const TCHAR* InProductVersion)
override { ProductVersion = InProductVersion; }
1356 virtual const TCHAR*
GetUserID()
const override {
return *UserID; }
1357 virtual void SetUserID(
const TCHAR* InUserID)
override { UserID = InUserID; }
1359 virtual const TCHAR*
GetUserOS()
const override {
return *UserOS; }
1360 virtual void SetUserOS(
const TCHAR* InUserOS)
override { UserOS = InUserOS; }
1363 virtual void SetExportDuration(int32 InExportDuration)
override { ExportDuration = InExportDuration; }
1365 virtual void AddMesh(
const TSharedPtr< IDatasmithMeshElement >& InMesh)
override { Meshes.Add(InMesh); }
1367 virtual TSharedPtr< IDatasmithMeshElement > GetMesh(int32 InIndex)
override;
1368 virtual const TSharedPtr< IDatasmithMeshElement >& GetMesh(int32 InIndex)
const override;
1369 virtual void RemoveMesh(
const TSharedPtr< IDatasmithMeshElement >& InMesh)
override { Meshes.Remove(InMesh); }
1372 virtual void AddActor(
const TSharedPtr< IDatasmithActorElement >& InActor)
override { Actors.Add(InActor); }
1374 virtual TSharedPtr< IDatasmithActorElement >
GetActor(int32 InIndex)
override {
return Actors[InIndex]; }
1375 virtual const TSharedPtr< IDatasmithActorElement >&
GetActor(int32 InIndex)
const override {
return Actors[InIndex]; }
1376 virtual void RemoveActor(
const TSharedPtr< IDatasmithActorElement >& InActor, EDatasmithActorRemovalRule RemoveRule)
override;
1378 virtual void AddMaterial(
const TSharedPtr< IDatasmithBaseMaterialElement >& InMaterial)
override { Materials.Add(InMaterial); }
1380 virtual TSharedPtr< IDatasmithBaseMaterialElement > GetMaterial(int32 InIndex)
override {
return Materials[InIndex]; }
1381 virtual const TSharedPtr< IDatasmithBaseMaterialElement >& GetMaterial(int32 InIndex)
const override {
return Materials[InIndex]; }
1382 virtual void RemoveMaterial(
const TSharedPtr< IDatasmithBaseMaterialElement >& InMaterial)
override { Materials.Remove(InMaterial); }
1385 virtual void AddTexture(
const TSharedPtr< IDatasmithTextureElement >& InTexture)
override { Textures.Add(InTexture); }
1387 virtual TSharedPtr< IDatasmithTextureElement > GetTexture(int32 InIndex)
override {
return Textures[InIndex]; }
1388 virtual const TSharedPtr< IDatasmithTextureElement >& GetTexture(int32 InIndex)
const override {
return Textures[InIndex]; }
1389 virtual void RemoveTexture(
const TSharedPtr< IDatasmithTextureElement >& InTexture)
override { Textures.Remove(InTexture); }
1392 virtual void SetPostProcess(
const TSharedPtr< IDatasmithPostProcessElement >& InPostProcess)
override { PostProcess = InPostProcess; }
1393 virtual TSharedPtr< IDatasmithPostProcessElement > GetPostProcess()
override {
return PostProcess; }
1394 virtual const TSharedPtr< IDatasmithPostProcessElement >& GetPostProcess()
const override {
return PostProcess; }
1399 virtual void AddLODScreenSize(
float ScreenSize )
override { LODScreenSizes.Add( FMath::Clamp( ScreenSize, 0.f, 1.f ) ); }
1400 virtual int32 GetLODScreenSizesCount()
const override {
return LODScreenSizes.Num(); }
1401 virtual float GetLODScreenSize(int32 InIndex)
const override {
return LODScreenSizes.IsValidIndex( InIndex ) ? LODScreenSizes[InIndex] : 0.f; }
1403 virtual void AddMetaData(
const TSharedPtr< IDatasmithMetaDataElement >& InMetaData)
override { MetaData.Add(InMetaData); ElementToMetaDataMap.Add(InMetaData->GetAssociatedElement(), InMetaData); }
1405 virtual int32 GetMetaDataCount()
const override {
return MetaData.Num(); }
1406 virtual TSharedPtr< IDatasmithMetaDataElement > GetMetaData(int32 InIndex)
override;
1407 virtual const TSharedPtr< IDatasmithMetaDataElement >& GetMetaData(int32 InIndex)
const override;
1408 virtual TSharedPtr< IDatasmithMetaDataElement > GetMetaData(
const TSharedPtr<IDatasmithElement>& Element)
override;
1409 virtual const TSharedPtr< IDatasmithMetaDataElement >& GetMetaData(
const TSharedPtr<IDatasmithElement>& Element)
const override;
1411 virtual void AddLevelSequence(
const TSharedRef< IDatasmithLevelSequenceElement >& InSequence)
override { LevelSequences.Add(InSequence); }
1416 return LevelSequences.IsValidIndex(InIndex) ? LevelSequences[InIndex] : TSharedPtr< IDatasmithLevelSequenceElement >();
1419 virtual void RemoveLevelSequence(
const TSharedRef< IDatasmithLevelSequenceElement >& InSequence)
override { LevelSequences.Remove(InSequence); }
1421 virtual void AttachActor(
const TSharedPtr< IDatasmithActorElement >& NewParent,
const TSharedPtr< IDatasmithActorElement >& Child, EDatasmithActorAttachmentRule AttachmentRule)
override;
1422 virtual void AttachActorToSceneRoot(
const TSharedPtr< IDatasmithActorElement >& Child, EDatasmithActorAttachmentRule AttachmentRule)
override;
1425 TArray< TSharedPtr< IDatasmithActorElement > > Actors;
1426 TArray< TSharedPtr< IDatasmithMeshElement > > Meshes;
1427 TArray< TSharedPtr< IDatasmithBaseMaterialElement > > Materials;
1428 TArray< TSharedPtr< IDatasmithTextureElement > > Textures;
1429 TArray< TSharedPtr< IDatasmithMetaDataElement > > MetaData;
1430 TArray< TSharedRef< IDatasmithLevelSequenceElement > > LevelSequences;
1431 TArray< float > LODScreenSizes;
1432 TSharedPtr< IDatasmithPostProcessElement > PostProcess;
1433 TMap< TSharedPtr< IDatasmithElement >, TSharedPtr< IDatasmithMetaDataElement> > ElementToMetaDataMap;
1436 FString ExporterVersion;
1437 FString ExporterSDKVersion;
1439 FString ProductName;
1440 FString ProductVersion;
1444 uint32 ExportDuration;
virtual void RemoveMaterial(const TSharedPtr< IDatasmithBaseMaterialElement > &InMaterial) override
Removes a Material Element from the scene.
Definition: DatasmithSceneElementsImpl.h:1382
virtual void SetLookAtActor(const TCHAR *InActorName) override
Set camera look at actor name.
Definition: DatasmithSceneElementsImpl.h:739
virtual void ClearSurface() override
Purges all the surfaces that could be used as layers inside this composite.
Definition: DatasmithSceneElementsImpl.h:1278
Definition: DatasmithSceneElementsImpl.h:1198
virtual void SetMetalTexture(const TCHAR *InValue) override
Set the diffuse filename.
Definition: DatasmithSceneElementsImpl.h:1001
virtual FVector GetDimensions() const override
Get the bounding box dimension of the mesh, in a vector in the form of (Width, Height,...
Definition: DatasmithSceneElementsImpl.h:261
virtual void SetDisplaceComp(const TSharedPtr< IDatasmithCompositeTexture > &InValue) override
Set the displacement compound map.
Definition: DatasmithSceneElementsImpl.h:995
virtual int32 GetLightmapCoordinateIndex() const
Get the UV channel that will be used for the lightmap.
Definition: DatasmithSceneElementsImpl.h:268
void SetPropertyType(EDatasmithKeyValuePropertyType InType) override
Set the type of this property.
virtual const TCHAR * GetReflectanceTexture() const override
Get the reflectance filename.
Definition: DatasmithSceneElementsImpl.h:915
virtual void AddTexture(const TSharedPtr< IDatasmithTextureElement > &InTexture) override
Adds a new Texture Element to the scene (it won't be applied to any material).
Definition: DatasmithSceneElementsImpl.h:1385
virtual bool IsClearCoatMaterial() const override
Returns true if the material has a clear coat layer, false otherwise.
virtual void SetDisplace(double InValue) override
Set the displacement value in centimeters.
Definition: DatasmithSceneElementsImpl.h:988
Definition: DatasmithSceneElementsImpl.h:1223
virtual void SetTransparencyTexture(const TCHAR *InValue) override
Set the transparency filename.
Definition: DatasmithSceneElementsImpl.h:962
virtual const TCHAR * GetBaseValName() const override
Returns the string that identifies the value element.
Definition: DatasmithSceneElementsImpl.h:1271
virtual FMD5Hash GetFileHash() const override
Return a MD5 hash of the content of the Mesh Element.
Definition: DatasmithSceneElementsImpl.h:257
virtual const TSharedPtr< IDatasmithCompositeTexture > & GetBumpComp() const override
Get the bumpmapping compound map.
Definition: DatasmithSceneElementsImpl.h:955
virtual void SetProductVersion(const TCHAR *InProductVersion) override
Sets the product version of the application used to export the scene.
Definition: DatasmithSceneElementsImpl.h:1354
virtual TSharedPtr< IDatasmithCompositeTexture > & GetDiffuseComp() override
Get the diffuse compound map.
Definition: DatasmithSceneElementsImpl.h:908
virtual EDatasmithCompMode GetMode() const override
Gets the composition mode like color correction etc.
Definition: DatasmithSceneElementsImpl.h:1230
virtual FMD5Hash CalculateElementHash(bool bForce) override
Return a MD5 hash of the content of the Element.
virtual void SetMaskTextureSampler(FDatasmithTextureSampler InValue) override
Set the opacity mask UV coordinates.
Definition: DatasmithSceneElementsImpl.h:975
virtual int32 GetParamVal2Count() const override
Get the number of value2 parameters.
Definition: DatasmithSceneElementsImpl.h:1250
virtual const TCHAR * GetBaseTextureName() const override
Returns the string that identifies the texture element.
Definition: DatasmithSceneElementsImpl.h:1269
virtual bool GetTwoSided() const override
Get the two sided material attribute.
Definition: DatasmithSceneElementsImpl.h:896
virtual void SetTextureAddressY(EDatasmithTextureAddress InMode) override
Set texture Y axis address mode.
virtual const TSharedPtr< IDatasmithKeyValueProperty > & GetProperty(int32 i) const override
Get the property i-th of this actor.
Definition: DatasmithSceneElementsImpl.h:773
virtual void SetLightOnly(bool InValue) override
Sets material is used as lighting only.
Definition: DatasmithSceneElementsImpl.h:1030
virtual void SetPostProcess(const TSharedPtr< IDatasmithPostProcessElement > &InPostProcess) override
Set a new Postprocess for the scene.
Definition: DatasmithSceneElementsImpl.h:1392
virtual void SetCameraISO(float InCameraISO) override
Set camera ISO.
Definition: DatasmithSceneElementsImpl.h:670
virtual const TSharedPtr< IDatasmithCompositeTexture > & GetNormalComp() const override
Get the normalmapping compound map.
Definition: DatasmithSceneElementsImpl.h:945
Definition: DatasmithSceneElementsImpl.h:247
virtual double GetMetal() const override
Get the metalness value.
Definition: DatasmithSceneElementsImpl.h:997
virtual void SetEnableDepthOfField(bool bInEnableDepthOfField) override
The focus method of the camera, either None (no DoF) or Manual.
Definition: DatasmithSceneElementsImpl.h:723
virtual FLinearColor GetEmitColor() const override
Get the emmitance color in linear space.
Definition: DatasmithSceneElementsImpl.h:1016
virtual float GetSensorAspectRatio() const override
Get framebuffer aspect ratio (width/height)
virtual bool GetUseColor(int32 InIndex) override
Gets color usage.
virtual void AddSurface(const FLinearColor &InColor) override
Creates a new surface that will be used as layer inside this composite using a color in linear space.
Definition: DatasmithSceneElementsImpl.h:1277
virtual double GetDisplace() const override
Get the displacement value in centimeters.
Definition: DatasmithSceneElementsImpl.h:987
Definition: IDatasmithSceneElements.h:1243
Definition: DatasmithSceneElementsImpl.h:690
virtual double GetIORRefra() const override
Get the InIndex of Refraction value.
Definition: DatasmithSceneElementsImpl.h:890
virtual void SetTransTextureSampler(FDatasmithTextureSampler InValue) override
Set the transparency UV coordinates.
Definition: DatasmithSceneElementsImpl.h:965
virtual const TCHAR * GetBaseCompName() const override
Returns the string that identifies the composite element.
Definition: DatasmithSceneElementsImpl.h:1272
virtual bool IsValid() const override
Gets the validity of the composite texture.
virtual const TSharedPtr< IDatasmithCompositeTexture > & GetTransComp() const override
Get the transparency compound map.
Definition: DatasmithSceneElementsImpl.h:968
virtual int32 AddInstance(const FTransform &Transform) override
Add an instance.
Definition: DatasmithSceneElementsImpl.h:1146
virtual float GetRGBCurve() const override
Get texture gamma <= 0 for auto.
virtual void EmptyTextures() override
Remove all textures from the scene.
Definition: DatasmithSceneElementsImpl.h:1390
virtual void SetTemperature(float InTemperature) override
Set color filter temperature in Kelvin.
Definition: DatasmithSceneElementsImpl.h:652
virtual bool GetEnabled() const
Whether this volume is enabled or not.
Definition: DatasmithSceneElementsImpl.h:698
virtual int32 GetLevelSequencesCount() const override
Returns the number of level sequences in the scene.
Definition: DatasmithSceneElementsImpl.h:1412
virtual void SetWeightTextureSampler(FDatasmithTextureSampler InValue) override
Set the weight UV coordinates Weight color, texture and value are only used for multilayered material...
Definition: DatasmithSceneElementsImpl.h:1039
virtual void SetMaterial(const TCHAR *MaterialPathName, int32 SlotId) override
Set the material slot Id to use the material MaterialPathName.
virtual void SetBumpTexture(const TCHAR *Value) override
Set the bumpmapping filename.
Definition: DatasmithSceneElementsImpl.h:949
virtual const TCHAR * GetDiffuseTexture() const override
Get the diffuse filename.
Definition: DatasmithSceneElementsImpl.h:902
virtual float GetDepthOfFieldFstop() const override
Defines the opening of the camera lens, Aperture is 1/fstop, typical lens go down to f/1....
Definition: DatasmithSceneElementsImpl.h:675
virtual TSharedPtr< IDatasmithCompositeTexture > & GetMetalComp() override
Get the diffuse compound map.
Definition: DatasmithSceneElementsImpl.h:1006
virtual const TCHAR * GetClassOrPathName() const override
The class name or path to the blueprint to instantiate.
Definition: DatasmithSceneElementsImpl.h:766
void ConvertChildsToWorld()
Converts all childs transforms to world.
Definition: DatasmithSceneElementsImpl.h:223
Definition: DatasmithSceneElementsImpl.h:813
virtual void AddActor(const TSharedPtr< IDatasmithActorElement > &InActor) override
Adds an Actor to the scene.
Definition: DatasmithSceneElementsImpl.h:1372
int32 GetPropertiesCount() const override
Get the total amount of properties in this material.
Definition: DatasmithSceneElementsImpl.h:1178
virtual void SetUserOS(const TCHAR *InUserOS) override
Sets the user's OS name.
Definition: DatasmithSceneElementsImpl.h:1360
virtual TSharedPtr< IDatasmithCompositeTexture > & GetEmitComp() override
Get the emmitance compound map.
Definition: DatasmithSceneElementsImpl.h:1025
virtual const uint8 * GetData(uint32 &OutDataSize, EDatasmithTextureFormat &OutFormat) const override
Retun the optional data, if loading from memory.
virtual TSharedPtr< IDatasmithCompositeTexture > & GetParamMaskSubComposite(int32 InIndex) override
Get the ith composite texture inside this composite used as layer mask.
virtual const TCHAR * GetBaseColName() const override
Returns the string that identifies the color element.
Definition: DatasmithSceneElementsImpl.h:1270
Definition: DatasmithSceneElementsImpl.h:1324
virtual int32 GetMaterialSlotCount() const override
Get the number of material slot set on this mesh.
virtual void SetBumpAmount(double InValue) override
Set the bump/normal amount.
Definition: DatasmithSceneElementsImpl.h:894
virtual const TCHAR * GetLookAtActor() const override
Get camera look at actor name.
Definition: DatasmithSceneElementsImpl.h:738
virtual const TCHAR * GetFile() const override
Get the output filename, it can be absolute or relative to the scene file.
Definition: DatasmithSceneElementsImpl.h:254
virtual void SetIORk(double InValue) override
Set the Ior K effect, this is used for more advanced representations of the reflection fresnel effect...
Definition: DatasmithSceneElementsImpl.h:888
virtual void SetEmitPower(double InValue) override
Set the emmitance power in lumens.
Definition: DatasmithSceneElementsImpl.h:1023
virtual void SetTransComp(const TSharedPtr< IDatasmithCompositeTexture > &InValue) override
Set the transparency compound map.
Definition: DatasmithSceneElementsImpl.h:969
virtual TSharedPtr< IDatasmithCompositeTexture > & GetRoughnessComp() override
Get the roughness compound map.
Definition: DatasmithSceneElementsImpl.h:931
virtual void SetTextureFilter(EDatasmithTextureFilter InFilter) override
Set texture filter.
virtual void SetLODCount(int32 Count) override
Set number of LODs.
Definition: DatasmithSceneElementsImpl.h:283
virtual const TCHAR * GetParamMask(int32 InIndex) override
Get the i-th layer mask's filename.
virtual void SetSaturation(float InSaturation) override
Set color saturation.
Definition: DatasmithSceneElementsImpl.h:667
virtual void AddSurface(const TCHAR *InTexture, FDatasmithTextureSampler InTexUV) override
Creates a new surface that will be used as layer inside this composite using the texture filename and...
Definition: DatasmithSceneElementsImpl.h:1276
Definition: DatasmithSceneElementsImpl.h:15
virtual bool GetLightOnly() const override
Gets material is used as lighting only.
Definition: DatasmithSceneElementsImpl.h:1029
virtual void SetVendor(const TCHAR *InVendor) override
Sets the vendor name of the application used to export the scene.
Definition: DatasmithSceneElementsImpl.h:1348
virtual void SetDisplaceTextureSampler(FDatasmithTextureSampler InValue) override
Set the displacement UV coordinates.
Definition: DatasmithSceneElementsImpl.h:985
virtual void SetNormalTexture(const TCHAR *InValue) override
Set the normalmapping filename.
Definition: DatasmithSceneElementsImpl.h:939
virtual const TCHAR * GetBumpTexture() const override
Get the bumpmapping filename.
Definition: DatasmithSceneElementsImpl.h:948
virtual double GetEmitTemperature() const override
Get the emmitance temperature color.
Definition: DatasmithSceneElementsImpl.h:1019
virtual void SetData(const uint8 *InData, uint32 InDataSize, EDatasmithTextureFormat InFormat) override
Set the output data buffer, used only when no output filename is set.
virtual void SetTransparencyColor(FLinearColor InValue) override
Set the transparency color in linear space.
Definition: DatasmithSceneElementsImpl.h:959
virtual void SetRoughnessTexture(const TCHAR *InValue) override
Set the roughness filename.
Definition: DatasmithSceneElementsImpl.h:929
virtual const FLinearColor & GetParamColor(int32 InIndex) override
Get the i-th color in linear space.
virtual void AddMaskSurface(const TSharedPtr< IDatasmithCompositeTexture > &InMaskSubComp) override
Adds a new composite texture inside this composite used as layer mask.
Definition: DatasmithSceneElementsImpl.h:1267
virtual FDatasmithTextureSampler GetDisplaceTextureSampler() const override
Get the displacement UV coordinates.
Definition: DatasmithSceneElementsImpl.h:984
virtual EDatasmithTextureAddress GetTextureAddressX() const override
Get texture X axis address mode.
virtual const TCHAR * GetExporterVersion() const override
Returns the Datasmith format version used to export the scene.
Definition: DatasmithSceneElementsImpl.h:1341
virtual void ReserveSpaceForInstances(int32 NumIntances) override
Reserve memory for a number of instance.
virtual int32 GetTexturesCount() const override
Returns the amount of textures added to the scene.
Definition: DatasmithSceneElementsImpl.h:1386
virtual double GetBumpAmount() const override
Get the bump/normal amount.
Definition: DatasmithSceneElementsImpl.h:893
virtual EDatasmithTextureAddress GetTextureAddressY() const override
Get texture Y axis address mode.
virtual EDatasmithTextureMode GetTextureMode() const override
Get texture usage.
virtual int32 GetParamMaskSurfacesCount() const override
Get the amount of layer masks.
Definition: DatasmithSceneElementsImpl.h:1254
virtual void SetSelectionIndex(int32 InSelectionIdx) override
Set the index of the child which is active in a selector
Definition: DatasmithSceneElementsImpl.h:111
virtual void SetEmitColor(FLinearColor InValue) override
Set the emmitance color in linear space.
Definition: DatasmithSceneElementsImpl.h:1017
void AddProperty(const TSharedPtr< IDatasmithKeyValueProperty > &InProperty) override
Add a property to this material.
virtual void SetEmitTemperature(double InValue) override
Set the emmitance temperature color.
Definition: DatasmithSceneElementsImpl.h:1020
virtual FLinearColor GetColorFilter() const override
Set color filter in linear color scale.
Definition: DatasmithSceneElementsImpl.h:654
Definition: DatasmithSceneElementsImpl.h:793
virtual void SetWidth(float InWidth) override
Set the area light shape size on the Y axis.
Definition: DatasmithSceneElementsImpl.h:624
virtual void SetMetalTextureSampler(FDatasmithTextureSampler InValue) override
Set the diffuse UV coordinates.
Definition: DatasmithSceneElementsImpl.h:1004
virtual void AddMaterial(const TSharedPtr< IDatasmithBaseMaterialElement > &InMaterial) override
Adds a new Material to the scene (it won't be applied to any mesh).
Definition: DatasmithSceneElementsImpl.h:1378
virtual double GetRoughness() const override
Get the roughness color in linear space.
Definition: DatasmithSceneElementsImpl.h:925
virtual const TSharedPtr< IDatasmithCompositeTexture > & GetDiffuseComp() const override
Get the diffuse compound map.
Definition: DatasmithSceneElementsImpl.h:909
virtual void SetLightType(EDatasmithAreaLightType InLightType) override
Set the type of light for an area light: Point/Spot/Rect.
Definition: DatasmithSceneElementsImpl.h:622
virtual const TCHAR * GetExporterSDKVersion() const override
Return the enterprise version of the SDK used by the exporter.
Definition: DatasmithSceneElementsImpl.h:1344
virtual double GetDisplaceSubDivision() const override
Get the displacement subdivision multiplier.
Definition: DatasmithSceneElementsImpl.h:990
virtual void EmptyMaterials() override
Remove all materials from the scene.
Definition: DatasmithSceneElementsImpl.h:1383
virtual void SetDof(float InDof) override
Set depth of field multiplier.
Definition: DatasmithSceneElementsImpl.h:661
virtual void AddMesh(const TSharedPtr< IDatasmithMeshElement > &InMesh) override
Adds a new Mesh to the scene.
Definition: DatasmithSceneElementsImpl.h:1365
virtual void SetBumpTextureSampler(FDatasmithTextureSampler InValue) override
Set the bumpmapping UV coordinates.
Definition: DatasmithSceneElementsImpl.h:952
virtual int32 GetParamVal1Count() const override
Get the number of value1 parameters.
Definition: DatasmithSceneElementsImpl.h:1246
virtual const EDatasmithShaderUsage GetShaderUsage() const override
Get the domain of this shader.
Definition: DatasmithSceneElementsImpl.h:1054
Definition: DatasmithSceneElementsImpl.h:298
virtual void SetIORRefra(double Value) override
Set the InIndex of Refraction value.
Definition: DatasmithSceneElementsImpl.h:891
virtual const TCHAR * GetFile() const override
Get texture filename.
virtual void SetNormalTextureSampler(FDatasmithTextureSampler InValue) override
Set the normalmapping UV coordinates.
Definition: DatasmithSceneElementsImpl.h:942
virtual void SetExportDuration(int32 InExportDuration) override
Sets the time taken to export the scene.
Definition: DatasmithSceneElementsImpl.h:1363
virtual bool GetIsStackedLayer() const override
Get the if this layer is weighted as a stack.
Definition: DatasmithSceneElementsImpl.h:1051
virtual const TCHAR * GetProductName() const override
Returns the product name of the application used to export the scene.
Definition: DatasmithSceneElementsImpl.h:1350
virtual FDatasmithTextureSampler GetWeightTextureSampler() const override
Get the weight UV coordinates Weight color, texture and value are only used for multilayered material...
Definition: DatasmithSceneElementsImpl.h:1038
virtual float GetFocalLength() const override
Get camera focal length in millimeters.
virtual const TCHAR * GetDisplaceTexture() const override
Get the displacement filename.
Definition: DatasmithSceneElementsImpl.h:981
virtual void SetUserID(const TCHAR *InUserID) override
Sets the user identifier who exported the scene.
Definition: DatasmithSceneElementsImpl.h:1357
virtual void SetIsStackedLayer(bool InValue) override
Set the if this layer is weighted as a stack.
Definition: DatasmithSceneElementsImpl.h:1052
virtual void SetRGBCurve(float InRGBCurve) override
Set texture gamma <= 0 for auto.
virtual void SetMaterial(const TCHAR *InMaterialPathName) override
The name or path to the material to assign to this landscape layer.
Definition: DatasmithSceneElementsImpl.h:805
virtual FLinearColor GetReflectanceColor() const override
Get the reflectance color in linear space.
Definition: DatasmithSceneElementsImpl.h:912
virtual void AddMaskSurface(const TCHAR *InMask, const FDatasmithTextureSampler InMaskSampler) override
Adds a new layer mask from its filename.
Definition: DatasmithSceneElementsImpl.h:1258
virtual const TSharedPtr< IDatasmithCompositeTexture > & GetRefleComp() const override
Get the reflectance compound map.
Definition: DatasmithSceneElementsImpl.h:922
virtual int32 GetLightmapSourceUV() const override
Get the source UV channel that will be used at import to generate the lightmap UVs.
Definition: DatasmithSceneElementsImpl.h:271
virtual FDatasmithTextureSampler GetParamMaskTextureSampler(int32 InIndex) override
Get the ith layer mask's uv element.
Definition: DatasmithSceneElementsImpl.h:556
virtual const TCHAR * GetParamTexture(int32 InIndex) override
Get the filename of the i-th texture.
Definition: DatasmithSceneElementsImpl.h:879
virtual void RemoveTexture(const TSharedPtr< IDatasmithTextureElement > &InTexture) override
Removes a Texture Element from the scene.
Definition: DatasmithSceneElementsImpl.h:1389
virtual const TCHAR * GetVendor() const override
Returns the vendor name of the application used to export the scene.
Definition: DatasmithSceneElementsImpl.h:1347
virtual void SetFile(const TCHAR *InFile) override
Set the output filename, it can be absolute or relative to the scene file.
Definition: DatasmithSceneElementsImpl.h:255
Definition: DatasmithSceneElementsImpl.h:646
virtual void SetMaskTexture(const TCHAR *InValue) override
Set the opacity mask filename.
Definition: DatasmithSceneElementsImpl.h:972
virtual void SetEmitTextureSampler(FDatasmithTextureSampler InValue) override
Set the emmitance UV coordinates.
Definition: DatasmithSceneElementsImpl.h:1014
virtual float GetSensorWidth() const override
Get camera sensor width in millimeters.
virtual FLinearColor GetWeightColor() const override
Get the weight color in linear space.
Definition: DatasmithSceneElementsImpl.h:1032
virtual FLinearColor GetDiffuseColor() const override
Get the diffuse color in linear space.
Definition: DatasmithSceneElementsImpl.h:899
virtual void AddSurface(const TSharedPtr< IDatasmithCompositeTexture > &SubComp) override
Adds a new nested composite texture.
Definition: DatasmithSceneElementsImpl.h:1264
virtual ParamVal GetParamVal2(int32 InIndex) const override
Get the Value2 parameter.
virtual void SetReflectanceTexture(const TCHAR *InValue) override
Set the reflectance filename.
Definition: DatasmithSceneElementsImpl.h:916
virtual float GetCameraShutterSpeed() const override
The camera shutter speed in 1/seconds (ie: 60 = 1/60s)
Definition: DatasmithSceneElementsImpl.h:672
virtual bool GetMaskUseComposite(int32 InIndex) const override
Returns true if composite texture mask should be used.
virtual const TSharedPtr< IDatasmithCompositeTexture > & GetEmitComp() const override
Get the emmitance compound map.
Definition: DatasmithSceneElementsImpl.h:1026
virtual FMD5Hash GetFileHash() const override
Return a MD5 hash of the content of the Texture Element.
Definition: DatasmithSceneElementsImpl.h:843
Definition: DatasmithSceneElementsImpl.h:711
virtual double GetWeightValue() const override
Get the weight power value Weight color, texture and value are only used for multilayered materials.
Definition: DatasmithSceneElementsImpl.h:1045
virtual void SetDimensions(const float InArea, const float InWidth, const float InHeight, const float InDepth) override
Set surface area and bounding box dimensions to be used on lightmap size calculation.
Definition: DatasmithSceneElementsImpl.h:260
virtual EDatasmithLightShape GetLightShape() const override
Get the light shape Rectangle/Sphere/Disc/Cylinder.
Definition: DatasmithSceneElementsImpl.h:618
virtual bool GetEnableDepthOfField() const override
The focus method of the camera, either None (no DoF) or Manual.
Definition: DatasmithSceneElementsImpl.h:722
virtual int32 GetActorsCount() const override
Returns the amount of actors added to the scene.
Definition: DatasmithSceneElementsImpl.h:1373
virtual void SetMaskComp(const TSharedPtr< IDatasmithCompositeTexture > &InValue) override
Set the opacity mask compound map.
Definition: DatasmithSceneElementsImpl.h:979
Definition: DatasmithSceneElementsImpl.h:757
virtual int32 GetMeshesCount() const override
Returns the amount of meshes added to the scene.
Definition: DatasmithSceneElementsImpl.h:1366
virtual FDatasmithTextureSampler GetMaskTextureSampler() const override
Get the opacity mask UV coordinates.
Definition: DatasmithSceneElementsImpl.h:974
virtual TSharedPtr< IDatasmithCompositeTexture > & GetWeightComp() override
Get the weight compound map Weight color, texture and value are only used for multilayered materials.
Definition: DatasmithSceneElementsImpl.h:1041
virtual void SetWeightColor(FLinearColor InValue) override
Set the weight color in linear space.
Definition: DatasmithSceneElementsImpl.h:1033
Definition: DatasmithSceneElementsImpl.h:830
virtual FTransform GetInstance(int32 InstanceIndex) const override
Get the transform of a specified instance.
virtual bool GetLookAtAllowRoll() const override
Get camera look at allow roll state.
Definition: DatasmithSceneElementsImpl.h:741
virtual int32 GetLODCount() const override
Get number of LODs.
Definition: DatasmithSceneElementsImpl.h:282
virtual bool GetIsIlluminationMap() const override
Returns true if it is used for illumination, false if it is used as background.
virtual float GetTemperature() const override
Get color filter temperature in Kelvin.
Definition: DatasmithSceneElementsImpl.h:651
virtual TSharedPtr< IDatasmithShaderElement > & GetShader(int32 InIndex) override
Get the shader i-th of this material.
virtual TSharedPtr< IDatasmithActorElement > GetActor(int32 InIndex) override
Returns the actor using this index.
Definition: DatasmithSceneElementsImpl.h:1374
virtual TSharedPtr< IDatasmithActorElement > GetChild(int32 InIndex) override
Get the 'InIndex'th child of the actor
Definition: DatasmithSceneElementsImpl.h:100
virtual void SetTwoSided(bool InValue) override
Set the two sided material attribute.
Definition: DatasmithSceneElementsImpl.h:897
Definition: DatasmithSceneElementsImpl.h:1164
virtual void SetDiffuseComp(const TSharedPtr< IDatasmithCompositeTexture > &InValue) override
Set the diffuse compound map.
Definition: DatasmithSceneElementsImpl.h:910
virtual const TCHAR * GetMetalTexture() const override
Get the diffuse filename.
Definition: DatasmithSceneElementsImpl.h:1000
virtual TSharedPtr< IDatasmithCompositeTexture > & GetDisplaceComp() override
Get the displacement compound map.
Definition: DatasmithSceneElementsImpl.h:993
virtual const TSharedPtr< IDatasmithActorElement > & GetActor(int32 InIndex) const override
Returns the actor using this index.
Definition: DatasmithSceneElementsImpl.h:1375
virtual TSharedPtr< const IDatasmithMaterialIDElement > GetMaterialSlotAt(int32 Index) const override
Get the material mapping for slot Index.
virtual FDatasmithTextureSampler GetTransTextureSampler() const override
Get the transparency UV coordinates.
Definition: DatasmithSceneElementsImpl.h:964
virtual void SetWeightComp(const TSharedPtr< IDatasmithCompositeTexture > &InValue) override
Set the weight compound map Weight color, texture and value are only used for multilayered materials.
Definition: DatasmithSceneElementsImpl.h:1043
virtual FDatasmithTextureSampler GetRefleTextureSampler() const override
Get the reflectance UV coordinates.
Definition: DatasmithSceneElementsImpl.h:918
virtual const TCHAR * GetTransparencyTexture() const override
Get the transparency filename.
Definition: DatasmithSceneElementsImpl.h:961
virtual bool GetUseComposite(int32 InIndex) override
Returns true if composite texture should be used.
virtual const TCHAR * GetNormalTexture() const override
Get the normalmapping filename.
Definition: DatasmithSceneElementsImpl.h:938
virtual void AddMaskSurface(const FLinearColor &InColor) override
Creates a new surface to be used as mask that will be used as layer inside this composite using a col...
Definition: DatasmithSceneElementsImpl.h:1259
virtual const TCHAR * GetUserID() const override
Returns the user identifier who exported the scene.
Definition: DatasmithSceneElementsImpl.h:1356
virtual FDatasmithTextureSampler GetMetalTextureSampler() const override
Get the diffuse UV coordinates.
Definition: DatasmithSceneElementsImpl.h:1003
virtual void SetMetal(double InValue) override
Set the metalness value.
Definition: DatasmithSceneElementsImpl.h:998
virtual void SetMotionBlur(float InMotionBlur) override
Set motion blur multiplier.
Definition: DatasmithSceneElementsImpl.h:664
virtual float GetHeight() const override
Get the bounding box height.
Definition: DatasmithSceneElementsImpl.h:265
virtual float GetArea() const override
Get the total surface area.
Definition: DatasmithSceneElementsImpl.h:263
virtual void SetBlendMode(EDatasmithBlendMode InValue) override
Set the blending mode.
Definition: DatasmithSceneElementsImpl.h:1049
virtual void SetEmitTexture(const TCHAR *InValue) override
Set the emmitance filename.
Definition: DatasmithSceneElementsImpl.h:1011
virtual void SetLightmapSourceUV(int32 UVChannel) override
Set the source UV channel that will be used at import to generate the lightmap UVs.
Definition: DatasmithSceneElementsImpl.h:272
virtual FDatasmithTextureSampler GetBumpTextureSampler() const override
Get the bumpmapping UV coordinates.
Definition: DatasmithSceneElementsImpl.h:951
virtual double GetIOR() const override
Get the Ior N value, usually Ior K is set to 0 so this will control the entire reflection fresnel eff...
Definition: DatasmithSceneElementsImpl.h:884
virtual void AddParamVal1(ParamVal InParamVal) override
Add a new Value1 parameter.
Definition: DatasmithSceneElementsImpl.h:1248
virtual void SetDiffuseColor(FLinearColor InValue) override
Set the diffuse color in linear space.
Definition: DatasmithSceneElementsImpl.h:900
virtual void SetProductName(const TCHAR *InProductName) override
Sets the product name of the application used to export the scene.
Definition: DatasmithSceneElementsImpl.h:1351
virtual void SetIOR(double InValue) override
Set the Ior N value, usually Ior K is set to 0 so this will control the entire reflection fresnel eff...
Definition: DatasmithSceneElementsImpl.h:885
const TSharedPtr< IDatasmithKeyValueProperty > & GetProperty(int32 InIndex) const override
Get the property i-th of this material.
virtual FDatasmithTextureSampler GetDiffTextureSampler() const override
Get the diffuse UV coordinates.
Definition: DatasmithSceneElementsImpl.h:905
virtual const FLinearColor & GetParamMaskColor(int32 i) const override
Get the i-th color in linear space.
virtual void SetAllowResize(bool bInAllowResize) override
Set allow texture resizing.
virtual void SetBumpComp(const TSharedPtr< IDatasmithCompositeTexture > &InValue) override
Set the bumpmapping compound map.
Definition: DatasmithSceneElementsImpl.h:956
Definition: DatasmithSceneElementsImpl.h:597
Definition: DatasmithSceneElementsImpl.h:311
virtual void RemoveMesh(const TSharedPtr< IDatasmithMeshElement > &InMesh) override
Remove a Mesh to the scene.
Definition: DatasmithSceneElementsImpl.h:1369
virtual void SetHost(const TCHAR *InHostname)
Sets the name of the host application from which we're exporting from.
Definition: DatasmithSceneElementsImpl.h:1336
const TSharedPtr< IDatasmithKeyValueProperty > & GetPropertyByName(const TCHAR *InName) const override
Get a property by its name if it exists.
virtual TSharedPtr< IDatasmithCompositeTexture > & GetBumpComp() override
Get the bumpmapping compound map.
Definition: DatasmithSceneElementsImpl.h:954
virtual void SetUseEmissiveForDynamicAreaLighting(bool InUseEmissiveForDynamicAreaLighting) override
Get use Emissive for dynamic area lighting.
Definition: DatasmithSceneElementsImpl.h:1058
virtual TSharedPtr< IDatasmithLevelSequenceElement > GetLevelSequence(int32 InIndex) override
Returns the level sequence using this index.
Definition: DatasmithSceneElementsImpl.h:1414
virtual void SetParamTexture(int32 InIndex, const TCHAR *InTexture) override
Sets the new texture for the index-th item.
Definition: DatasmithSceneElementsImpl.h:1134
virtual void SetReflectanceColor(FLinearColor InValue) override
Set the reflectance color in linear space.
Definition: DatasmithSceneElementsImpl.h:913
virtual bool IsSingleShaderMaterial() const override
Returns true if the material has only one shader, false otherwise.
virtual FLinearColor GetTransparencyColor() const override
Get the transparency color in linear space.
Definition: DatasmithSceneElementsImpl.h:958
virtual void SetPostProcess(const TSharedPtr< IDatasmithPostProcessElement > &InPostProcess) override
Set camera's postprocess.
Definition: DatasmithSceneElementsImpl.h:518
virtual int32 GetMaterialsCount() const override
Returns the amount of materials added to the scene.
Definition: DatasmithSceneElementsImpl.h:1379
Definition: DatasmithSceneElementsImpl.h:69
virtual float GetVignette() const override
Get vignette amount.
Definition: DatasmithSceneElementsImpl.h:657
Definition: DatasmithSceneElementsImpl.h:637
virtual void SetFocalLength(float InFocalLength) override
Set camera focal length in millimeters.
virtual void SetEnvironmentComp(const TSharedPtr< IDatasmithCompositeTexture > &InEnvironmentComp) override
Set the environment map.
virtual int32 GetExportDuration() const override
Returns the time taken to export the scene.
Definition: DatasmithSceneElementsImpl.h:1362
virtual float GetDepth() const override
Get the bounding box depth.
Definition: DatasmithSceneElementsImpl.h:266
virtual void SetRefleComp(const TSharedPtr< IDatasmithCompositeTexture > &InValue) override
Set the reflectance compound map.
Definition: DatasmithSceneElementsImpl.h:923
virtual bool GetAllowResize() const override
Get allow texture resizing.
virtual void SetTextureAddressX(EDatasmithTextureAddress InMode) override
Set texture X axis address mode.
virtual void AddParamVal2(ParamVal InParamVal) override
Add a new Value2 parameter.
Definition: DatasmithSceneElementsImpl.h:1252
virtual FDatasmithTextureSampler GetEmitTextureSampler() const override
Get the emmitance UV coordinates.
Definition: DatasmithSceneElementsImpl.h:1013
virtual void SetDisplaceTexture(const TCHAR *InValue) override
Set the displacement filename.
Definition: DatasmithSceneElementsImpl.h:982
virtual bool GetUsePhysicalSky() const override
Physical Sky could be generated in a large amount of modes, like material, lights etc that's why it h...
Definition: DatasmithSceneElementsImpl.h:1397
virtual TSharedPtr< IDatasmithCompositeTexture > & GetNormalComp() override
Get the normalmapping compound map.
Definition: DatasmithSceneElementsImpl.h:944
virtual EDatasmithBlendMode GetBlendMode() const override
Get the blending mode.
Definition: DatasmithSceneElementsImpl.h:1048
virtual const TCHAR * GetUserOS() const override
Returns the OS name used by user who exported the scene.
Definition: DatasmithSceneElementsImpl.h:1359
virtual ParamVal GetParamVal1(int32 InIndex) const override
Get the i-th Value1 parameter.
void ConvertChildsToRelative()
Converts all childs transforms to relative.
Definition: DatasmithSceneElementsImpl.h:199
virtual void SetHeightmap(const TCHAR *InFilePath) override
The path to the heightmap file.
Definition: DatasmithSceneElementsImpl.h:802
virtual int32 GetPropertiesCount() const override
Get the total amount of properties in this actor.
Definition: DatasmithSceneElementsImpl.h:770
virtual double GetIORk() const override
Get the Ior K effect, this is used for more advanced representations of the reflection fresnel effect...
Definition: DatasmithSceneElementsImpl.h:887
virtual void SetRoughnessComp(const TSharedPtr< IDatasmithCompositeTexture > &InValue) override
Set the roughness compound map.
Definition: DatasmithSceneElementsImpl.h:933
virtual void SetDiffTextureSampler(FDatasmithTextureSampler InValue) override
Set the diffuse UV coordinates.
Definition: DatasmithSceneElementsImpl.h:906
virtual void SetVignette(float InVignette) override
Set vignette amount.
Definition: DatasmithSceneElementsImpl.h:658
virtual int32 GetInstancesCount() const override
Get the number of instances.
virtual void SetBaseNames(const TCHAR *InTextureName, const TCHAR *InColorName, const TCHAR *InValueName, const TCHAR *InCompName) override
Sets the strings that identifies the different elements on this composite.
virtual void SetDisplaceSubDivision(double InValue) override
Set the displacement subdivision multiplier.
Definition: DatasmithSceneElementsImpl.h:991
virtual void SetDiffuseTexture(const TCHAR *InValue) override
Set the diffuse filename.
Definition: DatasmithSceneElementsImpl.h:903
virtual void RemoveProperty(const TSharedPtr< IDatasmithKeyValueProperty > &Property) override
Removes a property from this actor, doesn't preserve ordering.
Definition: DatasmithSceneElementsImpl.h:784
virtual void SetExporterVersion(const TCHAR *InVersion) override
Sets the Datasmith version used to export the scene.
Definition: DatasmithSceneElementsImpl.h:1342
virtual TSharedPtr< IDatasmithCompositeTexture > & GetTransComp() override
Get the transparency compound map.
Definition: DatasmithSceneElementsImpl.h:967
virtual void SetShaderUsage(EDatasmithShaderUsage InShaderUsage) override
Set the domain of this shader.
Definition: DatasmithSceneElementsImpl.h:1055
virtual float GetSaturation() const override
Get color saturation.
Definition: DatasmithSceneElementsImpl.h:666
virtual const TCHAR * GetMaskTexture() const override
Get the opacity mask filename.
Definition: DatasmithSceneElementsImpl.h:971
virtual void SetLookAtAllowRoll(bool bAllow) override
Set camera look at allow roll state.
Definition: DatasmithSceneElementsImpl.h:742
virtual void SetLightmapCoordinateIndex(int32 UVChannel)
Set the UV channel that will be used for the lightmap Note: If the lightmap coordinate index is somet...
Definition: DatasmithSceneElementsImpl.h:269
virtual TSharedPtr< IDatasmithCompositeTexture > & GetRefleComp() override
Get the reflectance compound map.
Definition: DatasmithSceneElementsImpl.h:921
const TCHAR * GetValue() const override
Get the value of this property.
Definition: DatasmithSceneElementsImpl.h:57
virtual void SetSensorAspectRatio(float InSensorAspectRatio) override
Set framebuffer aspect ratio (width/height)
Definition: DatasmithSceneElementsImpl.h:49
virtual float GetFocusDistance() const override
Get camera focus distance in centimeters.
virtual const TSharedPtr< IDatasmithCompositeTexture > & GetWeightComp() const override
Get the weight compound map Weight color, texture and value are only used for multilayered materials.
Definition: DatasmithSceneElementsImpl.h:1042
EDatasmithKeyValuePropertyType GetPropertyType() const override
Get the type of this property.
Definition: DatasmithSceneElementsImpl.h:54
virtual FDatasmithTextureSampler & GetParamTextureSampler(int32 InIndex) override
Get the i-th uv element.
Definition: DatasmithTypes.h:16
virtual float GetMotionBlur() const override
Get motion blur multiplier.
Definition: DatasmithSceneElementsImpl.h:663
virtual TSharedPtr< IDatasmithCompositeTexture > & GetEnvironmentComp() override
Get the environment map.
virtual int32 GetShadersCount() const override
Get the total amount of shaders in this material.
virtual void SetSensorWidth(float InSensorWidth) override
Set camera sensor width in millimeters.
virtual const TCHAR * GetCustomMaterialPathName() const
Only used when the material type is set to Custom.
Definition: DatasmithSceneElementsImpl.h:1175
virtual void SetTextureMode(EDatasmithTextureMode InMode) override
Set texture usage.
virtual void SetMode(EDatasmithCompMode InMode) override
Sets the composition mode like color correction etc.
Definition: DatasmithSceneElementsImpl.h:1231
virtual const TCHAR * GetHost() const
Sets the name of the host application which created the scene.
Definition: DatasmithSceneElementsImpl.h:1331
virtual void SetNormalComp(const TSharedPtr< IDatasmithCompositeTexture > &InValue) override
Set the normalmapping compound map.
Definition: DatasmithSceneElementsImpl.h:946
virtual EDatasmithTextureFilter GetTextureFilter() const override
Get texture filter.
virtual float GetFStop() const override
Get camera FStop also known as FNumber.
virtual const TSharedPtr< IDatasmithCompositeTexture > & GetDisplaceComp() const override
Get the displacement compound map.
Definition: DatasmithSceneElementsImpl.h:994
virtual void RemoveLevelSequence(const TSharedRef< IDatasmithLevelSequenceElement > &InSequence) override
Removes a level sequence from the scene.
Definition: DatasmithSceneElementsImpl.h:1419
virtual void SetRoughness(double InValue) override
Set the roughness color in linear space.
Definition: DatasmithSceneElementsImpl.h:926
virtual void SetRoughTextureSampler(FDatasmithTextureSampler InValue) override
Set the roughness UV coordinates.
Definition: DatasmithSceneElementsImpl.h:936
virtual void RemoveInstance(int32 InstanceIndex) override
Remove an instance.
virtual TSharedPtr< IDatasmithPostProcessElement > & GetPostProcess() override
Get camera's postprocess.
virtual float GetWidth() const override
Get the bounding box width.
Definition: DatasmithSceneElementsImpl.h:264
virtual FDatasmithTextureSampler GetNormalTextureSampler() const override
Get the normalmapping UV coordinates.
Definition: DatasmithSceneElementsImpl.h:941
virtual void SetEmitComp(const TSharedPtr< IDatasmithCompositeTexture > &InValue) override
Set the emmitance compound map.
Definition: DatasmithSceneElementsImpl.h:1027
virtual const TSharedPtr< IDatasmithCompositeTexture > & GetMaskComp() const override
Get the opacity mask compound map.
Definition: DatasmithSceneElementsImpl.h:978
virtual double GetEmitPower() const override
Get the emmitance power in lumens.
Definition: DatasmithSceneElementsImpl.h:1022
Definition: DatasmithUtils.h:14
virtual void AddMetaData(const TSharedPtr< IDatasmithMetaDataElement > &InMetaData) override
Add a metadata to the scene There should be only one metadata per Datasmith element (the element asso...
Definition: DatasmithSceneElementsImpl.h:1403
virtual void SetMetalComp(const TSharedPtr< IDatasmithCompositeTexture > &Value) override
Set the diffuse compound map.
Definition: DatasmithSceneElementsImpl.h:1008
virtual void SetUsePhysicalSky(bool bInUsePhysicalSky) override
Enable or disable the usage of Physical Sky Notice that if a HDRI environment is used this gets disab...
Definition: DatasmithSceneElementsImpl.h:1396
virtual void SetWeightValue(double InValue) override
Set the weight power value Weight color, texture and value are only used for multilayered materials.
Definition: DatasmithSceneElementsImpl.h:1046
Definition: DatasmithSceneElementsImpl.h:606
Definition: DatasmithSceneElementsImpl.h:417
virtual TSharedPtr< IDatasmithCompositeTexture > & GetParamSubComposite(int32 InIndex) override
Get the i-th nested composite texture.
virtual void SetColorFilter(FLinearColor InColorFilter) override
Get color filter in linear color scale.
Definition: DatasmithSceneElementsImpl.h:655
virtual bool GetUseTexture(int32 InIndex) override
Gets texture usage.
virtual const TSharedPtr< IDatasmithCompositeTexture > & GetMetalComp() const override
Get the diffuse compound map.
Definition: DatasmithSceneElementsImpl.h:1007
virtual const TSharedPtr< IDatasmithCompositeTexture > & GetRoughnessComp() const override
Get the roughness compound map.
Definition: DatasmithSceneElementsImpl.h:932
virtual void SetIsIlluminationMap(bool bInIsIlluminationMap) override
Set true for being used as illumination, false for being used as background.
virtual void AddLevelSequence(const TSharedRef< IDatasmithLevelSequenceElement > &InSequence) override
Adds a level sequence to the scene.
Definition: DatasmithSceneElementsImpl.h:1411
virtual FMD5Hash CalculateElementHash(bool bForce) override
Return a MD5 hash of the content of the Element.
virtual void SetRefleTextureSampler(FDatasmithTextureSampler InValue) override
Set the reflectance UV coordinates.
Definition: DatasmithSceneElementsImpl.h:919
virtual TSharedPtr< IDatasmithCompositeTexture > & GetMaskComp() override
Get the opacity mask compound map.
Definition: DatasmithSceneElementsImpl.h:977
virtual void AddLODScreenSize(float ScreenSize) override
Adds a new LOD screen size setting.
Definition: DatasmithSceneElementsImpl.h:1399
virtual void SetFile(const TCHAR *InFile) override
Set texture filename.
virtual const TCHAR * GetProductVersion() const override
Returns the product version of the application used to export the scene.
Definition: DatasmithSceneElementsImpl.h:1353
virtual bool GetUnbound() const override
Whether this volume covers the whole world, or just the area inside its bounds.
Definition: DatasmithSceneElementsImpl.h:701
virtual const TCHAR * GetRoughnessTexture() const override
Get the roughness filename.
Definition: DatasmithSceneElementsImpl.h:928
void SetValue(const TCHAR *InValue) override
Sets the value of this property.
virtual void SetFStop(float InFStop) override
Set camera FStop also known as FNumber.
virtual const TCHAR * GetEmitTexture() const override
Get the emmitance filename.
Definition: DatasmithSceneElementsImpl.h:1010
virtual float GetCameraISO() const override
Get camera ISO.
Definition: DatasmithSceneElementsImpl.h:669
virtual void AddShader(const TSharedPtr< IDatasmithShaderElement > &InShader) override
Adds a new shader to the material stack.
virtual void SetLightShape(EDatasmithLightShape InShape) override
Set the light shape Rectangle/Sphere/Disc/Cylinder.
Definition: DatasmithSceneElementsImpl.h:619
Definition: DatasmithSceneElementsImpl.h:435
virtual FDatasmithTextureSampler GetRoughTextureSampler() const override
Get the roughness UV coordinates.
Definition: DatasmithSceneElementsImpl.h:935
virtual void SetWeightTexture(const TCHAR *InValue) override
Set the weight filename Weight color, texture and value are only used for multilayered materials.
Definition: DatasmithSceneElementsImpl.h:1036
virtual const TSharedRef< IDatasmithPostProcessElement > & GetSettings() const override
The post process settings to use for this volume.
Definition: DatasmithSceneElementsImpl.h:695
virtual const bool GetUseEmissiveForDynamicAreaLighting() const override
Set use Emissive for dynamic area lighting.
Definition: DatasmithSceneElementsImpl.h:1057
virtual void SetFileHash(FMD5Hash Hash) override
Set the MD5 hash of the current texture file.
Definition: DatasmithSceneElementsImpl.h:844
virtual float GetDof() const override
Get depth of field multiplier.
Definition: DatasmithSceneElementsImpl.h:660
virtual void SetLength(float InLength) override
Set the area light shape size on the X axis.
Definition: DatasmithSceneElementsImpl.h:627
virtual int32 GetSelectionIndex() const override
Get the index of the child which is active in a selector.
Definition: DatasmithSceneElementsImpl.h:114
virtual int32 GetParamSurfacesCount() const override
Get the number of surfaces.
Definition: DatasmithSceneElementsImpl.h:1232
virtual void EmptyMeshes() override
Remove all meshes from the scene.
Definition: DatasmithSceneElementsImpl.h:1370
virtual const TCHAR * GetWeightTexture() const override
Get the weight filename Weight color, texture and value are only used for multilayered materials.
Definition: DatasmithSceneElementsImpl.h:1035
virtual void SetFileHash(FMD5Hash Hash) override
Set the MD5 hash of the current mesh file.
Definition: DatasmithSceneElementsImpl.h:258
virtual void SetFocusDistance(float InFocusDistance) override
Set camera focus distance in centimeters.
virtual const TCHAR * GetMaterial(int32 SlotId) const override
Get the name of the material mapped to slot Id, return nullptr if slot isn't mapped.
virtual void SetExporterSDKVersion(const TCHAR *InVersion) override
Sets the enterprise SDK version used to export the scene.
Definition: DatasmithSceneElementsImpl.h:1345