APEX Framework: Asset.h Source File

NVIDIA APEX

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.