#pragma once
#ifdef IMPOSTER_BAKER
//#include "CoreMinimal.h"
//#include "UObject/ObjectMacros.h"
//#include "GameFramework/Actor.h"
//#include "Engine/Scene.h"
//#include "SimplygonCustomPipelines.h"
//#include "ImpostorGeneratorHelperActor.generated.h"
//
//UCLASS(MinimalAPI, collapsecategories, Blueprintable)
//class AImpostorGeneratorHelperActor : public AActor
//{
//	GENERATED_UCLASS_BODY()
//	
//	private:
//	
//	UPROPERTY(Category = "ImpostorGenerator|SceneComponent", AdvancedDisplay, VisibleAnywhere, BlueprintReadOnly, meta = (AllowPrivateAccess = "true"))
//	class USceneComponent* SceneComponent;
//		
//	/** Dummpy camera component */
//	UPROPERTY(Category = "ImpostorGenerator|CameraComponent", AdvancedDisplay,VisibleAnywhere, BlueprintReadOnly, meta = (AllowPrivateAccess = "true"))
//	class UCameraComponent* CameraComponent;
//	
//	/** The camera component for this imposter */
//	UPROPERTY(Category = "ImpostorGenerator|CameraDirection", VisibleAnywhere, AdvancedDisplay, BlueprintReadOnly, meta = (AllowPrivateAccess = "true"))
//	class UArrowComponent* CameraDirection;
//	
//	public:
//	UPROPERTY(Category = ImpostorGenerator, EditAnywhere, BlueprintReadOnly, meta = (AllowPrivateAccess = "true"))
//	TArray<AActor*> ActorsToBake;
//
//	UPROPERTY(Category = ImpostorGenerator, EditAnywhere, BlueprintReadOnly, meta = (AllowPrivateAccess = "true"))
//	FString PackagePath;
//
//
//	//User Adjustable Settings
//	UPROPERTY(EditAnywhere, Category = ImpostorFromSingleViewSettings)
//	FImpostorFromSingleViewSettings ImpostorFromSingleViewSettings;
//
//	UPROPERTY(EditAnywhere, Category = OutputTextureSize)
//	FIntPoint Size;
//
//	UPROPERTY(EditAnywhere, Instanced, Category = MaterialCasting)
//	TArray<USimplygonMaterialCaster*> MaterialPropertyCasters;
//	
//	UPROPERTY(Instanced)
//	UImpostorFromSingleViewPipeline* ImpostorPipeline;
//
//	
//
//public:
//	/** Returns CameraComponent subobject **/
//	class UCameraComponent* GetCameraComponent() const { return CameraComponent; }
//	class UArrowComponent* GetArrowComponent() const { return CameraDirection; }
//
//
//	void PostLoadSubobjects(FObjectInstancingGraph* OuterInstanceGraph) override;
//	virtual bool IsEditorOnly() const { return true; };
//	virtual class USceneComponent* GetDefaultAttachComponent() const override;
//
//#if WITH_EDITOR
//	virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override;
//	void Update();
//	void CopySettingsToPipeline();
//	bool IsValidPipeline();
//#endif
//
//};
#endif