// Copyright 1998-2015 Epic Games, Inc. All Rights Reserved. #pragma once class FFbxImportUIDetails : public IDetailCustomization { public: /** Makes a new instance of this detail layout class for a specific detail view requesting it */ static TSharedRef MakeInstance(); /** IDetailCustomization interface */ virtual void CustomizeDetails( IDetailLayoutBuilder& DetailBuilder ) override; /** End IDetailCustomization interface */ void CollectChildPropertiesRecursive(TSharedPtr Node, TArray>& OutProperties); /** Checks whether a metadata string is valid for a given import type * @param ImportType the type of mesh being imported * @param MetaData the metadata string to validate */ bool IsImportTypeMetaDataValid(EFBXImportType& ImportType, FString& MetaData); /** Called if the mesh mode (static / skeletal) changes */ void MeshImportModeChanged(); /** Called if the import mesh option for skeletal meshes is changed */ void ImportMeshToggleChanged(); TWeakObjectPtr ImportUI; // The UI data object being customised IDetailLayoutBuilder* CachedDetailBuilder; // The detail builder for this cusomtomisation private: /** Use MakeInstance to create an instance of this class */ FFbxImportUIDetails(); /** Sets a custom widget for the StaticMeshLODGroup property */ void SetStaticMeshLODGroupWidget(IDetailPropertyRow& PropertyRow, const TSharedPtr& Handle); /** Called when the StaticMeshLODGroup spinbox is changed */ void OnLODGroupChanged(TSharedPtr NewValue, ESelectInfo::Type SelectInfo, TWeakPtr HandlePtr); /** Called to determine the visibility of the VertexOverrideColor property */ bool GetVertexOverrideColorEnabledState() const; /** LOD group options. */ TArray LODGroupNames; TArray> LODGroupOptions; /** Cached StaticMeshLODGroup property handle */ TSharedPtr StaticMeshLODGroupPropertyHandle; /** Cached VertexColorImportOption property handle */ TSharedPtr VertexColorImportOptionHandle; };