// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #ifdef USE_TECHSOFT_SDK #include "TechSoftInterface.h" namespace CADLibrary { // Single-ownership smart TeshSoft object // Use this when you need to manage TechSoft object's lifetime. // // TechSoft give access to void pointers // According to the context, the class name of the void pointer is known but the class is unknown // i.e. A3DSDKTypes.h defines all type like : // typedef void A3DEntity; // typedef void A3DAsmModelFile; ... // // From a pointer, TechSoft give access to a copy of the associated structure : // // const A3DXXXXX* pPointer; // A3DXXXXXData sData; // the structure // A3D_INITIALIZE_DATA(A3DXXXXXData, sData); // initialization of the structure // A3DXXXXXXGet(pPointer, &sData); // Copy of the data of the pointer in the structure // ... // A3DXXXXXXGet(NULL, &sData); // Free the structure // // A3D_INITIALIZE_DATA, and all A3DXXXXXXGet methods are TechSoft macro // template class TUniqueTSObjBase { public: /** * Constructor of an initialized ObjectType object */ TUniqueTSObjBase() : bDataFromTechSoft(false) , Status(A3DStatus::A3D_SUCCESS) { InitializeData(); } /** * Constructor of an filled ObjectType object with the data of DataPtr * @param DataPtr: the pointer of the data to copy */ explicit TUniqueTSObjBase(IndexerType DataPtr) : bDataFromTechSoft(false) { InitializeData(); FillFrom(DataPtr); } ~TUniqueTSObjBase() { ResetData(); } /** * Fill the structure with the data of a new DataPtr */ A3DStatus FillFrom(IndexerType EntityPtr) { ResetData(); if (EntityPtr == GetDefaultIndexerValue()) { Status = A3DStatus::A3D_ERROR; } else { Status = GetData(EntityPtr); if (Status == A3DStatus::A3D_SUCCESS) { bDataFromTechSoft = true; } } return Status; } template A3DStatus FillWith(A3DStatus(*Getter)(const A3DEntity*, ObjectType*, InArgTypes&&...), const A3DEntity* EntityPtr, InArgTypes&&... Args) { ResetData(); if (EntityPtr == GetDefaultIndexerValue()) { Status = A3DStatus::A3D_ERROR; } else { Status = Getter(EntityPtr, &Data, Forward(Args)...); if (Status == A3DStatus::A3D_SUCCESS) { bDataFromTechSoft = true; } } return Status; } /** * Empty the structure */ void Reset() { ResetData(); } /** * Return * - A3DStatus::A3D_SUCCESS if the data is filled * - A3DStatus::A3D_ERROR if the data is empty */ A3DStatus GetStatus() { return Status; } /** * Return true if the data is filled */ const bool IsValid() const { return Status == A3DStatus::A3D_SUCCESS; } // Non-copyable TUniqueTSObjBase(const TUniqueTSObjBase&) = delete; TUniqueTSObjBase& operator=(const TUniqueTSObjBase&) = delete; // Conversion methods const ObjectType& operator*() const { return Data; } ObjectType& operator*() { check(IsValid()); return Data; } const ObjectType* operator->() const { check(IsValid()); return &Data; } ObjectType* operator->() { check(IsValid()); return &Data; } /** * Return the structure pointer */ ObjectType* GetPtr() { if (Status != A3DStatus::A3D_SUCCESS) { return nullptr; } return &Data; } private: ObjectType Data; bool bDataFromTechSoft = false; A3DStatus Status = A3DStatus::A3D_ERROR; /** * DefaultValue is used to initialize "Data" with GetData method * According to IndexerType, the value is either nullptr for const A3DEntity* either something like "A3D_DEFAULT_MATERIAL_INDEX" ((A3DUns16)-1) for uint32 * @see ResetData */ CADINTERFACES_API IndexerType GetDefaultIndexerValue() const; CADINTERFACES_API void InitializeData() #ifdef USE_TECHSOFT_SDK ; #else { return A3DStatus::A3D_ERROR; } #endif CADINTERFACES_API A3DStatus GetData(IndexerType AsmModelFilePtr); #ifdef USE_TECHSOFT_SDK ; #else { return A3DStatus::A3D_ERROR; } #endif void ResetData() { if (bDataFromTechSoft) { GetData(GetDefaultIndexerValue()); } else { InitializeData(); } Status = A3DStatus::A3D_SUCCESS; bDataFromTechSoft = false; } }; template using TUniqueTSObj = TUniqueTSObjBase; template using TUniqueTSObjFromIndex = TUniqueTSObjBase; // TUniqueTSObj ----------------------------------- template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; // TUniqueTSObjFromIndex ----------------------------------- template<> CADINTERFACES_API void TUniqueTSObjFromIndex::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObjFromIndex::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObjFromIndex::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObjFromIndex::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObjFromIndex::InitializeData(); template<> CADINTERFACES_API void TUniqueTSObjFromIndex::InitializeData(); template<> CADINTERFACES_API A3DStatus TUniqueTSObjFromIndex::GetData(const uint32 InEntityIndex); template<> CADINTERFACES_API A3DStatus TUniqueTSObjFromIndex::GetData(const uint32 InEntityIndex); template<> CADINTERFACES_API A3DStatus TUniqueTSObjFromIndex::GetData(const uint32 InEntityIndex); template<> CADINTERFACES_API A3DStatus TUniqueTSObjFromIndex::GetData(const uint32 InEntityIndex); template<> CADINTERFACES_API A3DStatus TUniqueTSObjFromIndex::GetData(const uint32 InEntityIndex); template<> CADINTERFACES_API A3DStatus TUniqueTSObjFromIndex::GetData(const uint32 InEntityIndex); template<> CADINTERFACES_API uint32 TUniqueTSObjFromIndex::GetDefaultIndexerValue() const; template<> CADINTERFACES_API uint32 TUniqueTSObjFromIndex::GetDefaultIndexerValue() const; template<> CADINTERFACES_API uint32 TUniqueTSObjFromIndex::GetDefaultIndexerValue() const; template<> CADINTERFACES_API uint32 TUniqueTSObjFromIndex::GetDefaultIndexerValue() const; template<> CADINTERFACES_API uint32 TUniqueTSObjFromIndex::GetDefaultIndexerValue() const; template<> CADINTERFACES_API uint32 TUniqueTSObjFromIndex::GetDefaultIndexerValue() const; // A3DUTF8Char* ----------------------------------- template<> CADINTERFACES_API void TUniqueTSObj::InitializeData(); template<> CADINTERFACES_API A3DStatus TUniqueTSObj::GetData(const A3DEntity* InEntityPtr); template<> CADINTERFACES_API const A3DEntity* TUniqueTSObj::GetDefaultIndexerValue() const; class CADINTERFACES_API FTechSoftDefaultValue { public: static const uint32 Material; static const uint32 Picture; static const uint32 RgbColor; static const uint32 Style; static const uint32 TextureApplication; static const uint32 TextureDefinition; }; } #endif