Files
Brandyn / Techy fcc1b09210 init
2026-04-04 15:40:51 -05:00

60 lines
1.8 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "CADModelConverter.h"
#include "CADOptions.h"
#include "IDatasmithSceneElements.h"
#include "TechSoftInterface.h"
struct FDatasmithMeshElementPayload;
struct FDatasmithTessellationOptions;
typedef void A3DAsmPartDefinition;
typedef void A3DAsmProductOccurrence;
typedef void A3DEntity;
typedef void A3DRiRepresentationItem;
typedef void A3DTopoBrepData;
class PARAMETRICSURFACE_API FCADModelToTechSoftConverterBase : public CADLibrary::ICADModelConverter
{
public:
FCADModelToTechSoftConverterBase(CADLibrary::FImportParameters InImportParameters)
: ImportParameters(InImportParameters)
{
}
virtual void InitializeProcess() override;
virtual bool RepairTopology() override;
virtual bool SaveModel(const TCHAR* InFolderPath, TSharedPtr<IDatasmithMeshElement> MeshElement) override;
virtual bool Tessellate(const CADLibrary::FMeshParameters& InMeshParameters, FMeshDescription& OutMeshDescription) override;
virtual void SetImportParameters(double ChordTolerance, double MaxEdgeLength, double NormalTolerance, CADLibrary::EStitchingTechnique StitchingTechnique) override
{
ImportParameters.SetTesselationParameters(ChordTolerance, MaxEdgeLength, NormalTolerance, StitchingTechnique);
}
virtual bool IsSessionValid() override
{
return true;
}
virtual bool AddGeometry(const CADLibrary::FCADModelGeometry& Geometry) override { return false; }
virtual void AddSurfaceDataForMesh(const TCHAR* InFilePath, const CADLibrary::FMeshParameters& InMeshParameters, const FDatasmithTessellationOptions& InTessellationOptions, FDatasmithMeshElementPayload& OutMeshPayload) const override;
protected:
CADLibrary::FImportParameters ImportParameters;
TArray<A3DRiRepresentationItem*> RiRepresentationItems;
CADLibrary::FUniqueTechSoftModelFile ModelFile;
};