// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "Containers/ArrayView.h" #include "CoreMinimal.h" #include "Math/Vector.h" #include "UObject/NoExportTypes.h" #include "UObject/ObjectMacros.h" #include "DNACalibCommand.h" #include "DNACalibVectorOperation.h" class FDNACalibSetVertexPositionsCommand : public IDNACalibCommand { public: DNACALIBMODULE_API FDNACalibSetVertexPositionsCommand(); DNACALIBMODULE_API FDNACalibSetVertexPositionsCommand(uint16 MeshIndex, TArrayView Positions, EDNACalibVectorOperation Operation); DNACALIBMODULE_API FDNACalibSetVertexPositionsCommand(uint16 MeshIndex, TArrayView Xs, TArrayView Ys, TArrayView Zs, EDNACalibVectorOperation Operation); DNACALIBMODULE_API FDNACalibSetVertexPositionsCommand(uint16 MeshIndex, TArrayView Positions, TArrayView Masks, EDNACalibVectorOperation Operation); DNACALIBMODULE_API FDNACalibSetVertexPositionsCommand(uint16 MeshIndex, TArrayView Xs, TArrayView Ys, TArrayView Zs, TArrayView Masks, EDNACalibVectorOperation Operation); DNACALIBMODULE_API ~FDNACalibSetVertexPositionsCommand(); FDNACalibSetVertexPositionsCommand(const FDNACalibSetVertexPositionsCommand&) = delete; FDNACalibSetVertexPositionsCommand& operator=(const FDNACalibSetVertexPositionsCommand&) = delete; DNACALIBMODULE_API FDNACalibSetVertexPositionsCommand(FDNACalibSetVertexPositionsCommand&&); DNACALIBMODULE_API FDNACalibSetVertexPositionsCommand& operator=(FDNACalibSetVertexPositionsCommand&&); DNACALIBMODULE_API void SetMeshIndex(uint16 MeshIndex); DNACALIBMODULE_API void SetPositions(TArrayView Positions); DNACALIBMODULE_API void SetPositions(TArrayView Xs, TArrayView Ys, TArrayView Zs); DNACALIBMODULE_API void SetMasks(TArrayView Masks); DNACALIBMODULE_API void SetOperation(EDNACalibVectorOperation Operation); DNACALIBMODULE_API void Run(FDNACalibDNAReader* Output) override; private: class Impl; TUniquePtr ImplPtr; };