Asset.h
Go to the documentation of this file.
00001 /* 00002 * Copyright (c) 2008-2017, NVIDIA CORPORATION. All rights reserved. 00003 * 00004 * NVIDIA CORPORATION and its licensors retain all intellectual property 00005 * and proprietary rights in and to this software, related documentation 00006 * and any modifications thereto. Any use, reproduction, disclosure or 00007 * distribution of this software and related documentation without an express 00008 * license agreement from NVIDIA CORPORATION is strictly prohibited. 00009 */ 00010 00011 00012 #ifndef ASSET_H 00013 #define ASSET_H 00014 00020 #include "ApexInterface.h" 00021 #include "ApexSDK.h" 00022 #include "AssetPreviewScene.h" 00023 00024 namespace nvidia 00025 { 00026 namespace apex 00027 { 00028 00029 PX_PUSH_PACK_DEFAULT 00030 00032 typedef const char* PlatformTag; 00033 00034 class Actor; 00035 class AssetPreview; 00036 00040 class Asset : public ApexInterface 00041 { 00042 public: 00046 virtual const char* getName() const = 0; 00047 00054 virtual AuthObjTypeID getObjTypeID() const = 0; 00055 00059 virtual const char* getObjTypeName() const = 0; 00060 00065 virtual uint32_t forceLoadAssets() = 0; 00066 00072 virtual ::NvParameterized::Interface* getDefaultActorDesc() = 0; 00073 00077 virtual ::NvParameterized::Interface* getDefaultAssetPreviewDesc() = 0; 00078 00083 virtual const ::NvParameterized::Interface* getAssetNvParameterized() const = 0; 00084 00088 virtual Actor* createApexActor(const ::NvParameterized::Interface& actorParams, Scene& apexScene) = 0; 00089 00093 virtual AssetPreview* createApexAssetPreview(const ::NvParameterized::Interface& params, AssetPreviewScene* previewScene) = 0; 00094 00098 virtual NvParameterized::Interface* releaseAndReturnNvParameterizedInterface(void) = 0; 00099 00105 virtual bool isValidForActorCreation(const ::NvParameterized::Interface& actorParams, Scene& /*apexScene*/) const = 0; 00106 00112 virtual bool isDirty() const = 0; 00113 00114 protected: 00115 virtual ~Asset() {}; // illegal, do not call 00116 }; 00117 00121 class AssetAuthoring : public ApexInterface 00122 { 00123 public: 00127 virtual const char* getName() const = 0; 00128 00132 virtual const char* getObjTypeName() const = 0; 00133 00137 virtual bool prepareForPlatform(nvidia::apex::PlatformTag) = 0; 00138 00142 virtual ::NvParameterized::Interface* getNvParameterized() const = 0; 00143 00147 virtual NvParameterized::Interface* releaseAndReturnNvParameterizedInterface(void) = 0; 00148 00156 virtual void setToolString(const char* toolName, const char* toolVersion, uint32_t toolChangelist) = 0; 00157 }; 00158 00159 PX_POP_PACK 00160 00161 } 00162 } // end namespace nvidia::apex 00163 00164 #endif // ASSET_H
Generated on Fri Dec 15 2017 13:58:35 Copyright © 2012-2017 NVIDIA Corporation, 2701 San Tomas Expressway, Santa Clara, CA 95050 U.S.A. All rights reserved.