aboutsummaryrefslogtreecommitdiff
path: root/APEX_1.4/module/basicfs/include/AttractorFSAsset.h
diff options
context:
space:
mode:
authorgit perforce import user <a@b>2016-10-25 12:29:14 -0600
committerSheikh Dawood Abdul Ajees <Sheikh Dawood Abdul Ajees>2016-10-25 18:56:37 -0500
commit3dfe2108cfab31ba3ee5527e217d0d8e99a51162 (patch)
treefa6485c169e50d7415a651bf838f5bcd0fd3bfbd /APEX_1.4/module/basicfs/include/AttractorFSAsset.h
downloadphysx-3.4-3dfe2108cfab31ba3ee5527e217d0d8e99a51162.tar.xz
physx-3.4-3dfe2108cfab31ba3ee5527e217d0d8e99a51162.zip
Initial commit:
PhysX 3.4.0 Update @ 21294896 APEX 1.4.0 Update @ 21275617 [CL 21300167]
Diffstat (limited to 'APEX_1.4/module/basicfs/include/AttractorFSAsset.h')
-rw-r--r--APEX_1.4/module/basicfs/include/AttractorFSAsset.h186
1 files changed, 186 insertions, 0 deletions
diff --git a/APEX_1.4/module/basicfs/include/AttractorFSAsset.h b/APEX_1.4/module/basicfs/include/AttractorFSAsset.h
new file mode 100644
index 00000000..00a1ad8c
--- /dev/null
+++ b/APEX_1.4/module/basicfs/include/AttractorFSAsset.h
@@ -0,0 +1,186 @@
+/*
+ * Copyright (c) 2008-2015, NVIDIA CORPORATION. All rights reserved.
+ *
+ * NVIDIA CORPORATION and its licensors retain all intellectual property
+ * and proprietary rights in and to this software, related documentation
+ * and any modifications thereto. Any use, reproduction, disclosure or
+ * distribution of this software and related documentation without an express
+ * license agreement from NVIDIA CORPORATION is strictly prohibited.
+ */
+
+
+#ifndef __ATTRACTOR_FS_ASSET_H__
+#define __ATTRACTOR_FS_ASSET_H__
+
+#include "BasicFSAssetImpl.h"
+#include "AttractorFSAssetPreview.h"
+#include "AttractorFSAssetParams.h"
+#include "AttractorFSActorParams.h"
+#include "ApexAuthorableObject.h"
+
+namespace nvidia
+{
+namespace apex
+{
+class RenderMeshAsset;
+}
+namespace basicfs
+{
+
+class AttractorFSActorImpl;
+
+class AttractorFSAsset : public BasicFSAssetImpl
+{
+ friend class BasicFSAssetDummyAuthoring;
+public:
+ APEX_RW_LOCKABLE_BOILERPLATE
+
+ AttractorFSAsset(ModuleBasicFSImpl*, ResourceList&, const char*);
+ AttractorFSAsset(ModuleBasicFSImpl*, ResourceList&, NvParameterized::Interface*, const char*);
+ ~AttractorFSAsset();
+
+ /* Asset */
+ AuthObjTypeID getObjTypeID() const
+ {
+ return mAssetTypeID;
+ }
+ const char* getObjTypeName() const
+ {
+ return getClassName();
+ }
+
+ /* ApexInterface */
+ virtual void release()
+ {
+ mModule->mSdk->releaseAsset(*this);
+ }
+
+ // TODO: implement forceLoadAssets
+ uint32_t forceLoadAssets()
+ {
+ return 0;
+ }
+
+ NvParameterized::Interface* getAssetNvParameterized() const
+ {
+ return mParams;
+ }
+
+ NvParameterized::Interface* releaseAndReturnNvParameterizedInterface(void)
+ {
+ NvParameterized::Interface* ret = mParams;
+ mParams = NULL;
+ release();
+ return ret;
+ }
+
+ /* BasicFSAsset specific methods */
+ void destroy();
+
+ /**
+ * \brief Apply any changes that may been made to the NvParameterized::Interface on this asset.
+ */
+ virtual void applyEditingChanges(void)
+ {
+ APEX_INVALID_OPERATION("Not yet implemented!");
+ }
+
+ NvParameterized::Interface* getDefaultActorDesc();
+ virtual Actor* createApexActor(const NvParameterized::Interface& /*parms*/, Scene& /*apexScene*/);
+
+ AttractorFSPreview* createAttractorFSPreview(const AttractorFSPreviewDesc& desc, AssetPreviewScene* previewScene);
+ AttractorFSPreview* createAttractorFSPreviewImpl(const AttractorFSPreviewDesc& desc, AttractorFSAsset* TurboAsset, AssetPreviewScene* previewScene);
+ void releaseAttractorFSPreview(AttractorFSPreview& preview);
+
+ NvParameterized::Interface* getDefaultAssetPreviewDesc();
+
+ virtual AssetPreview* createApexAssetPreview(const NvParameterized::Interface& /*params*/, AssetPreviewScene* previewScene);
+
+ virtual bool isValidForActorCreation(const ::NvParameterized::Interface& /*parms*/, Scene& /*apexScene*/) const
+ {
+ return true; // todo implement this method
+ }
+
+ /* Typical asset members */
+ static const char* getClassName() // return to protected
+ {
+ return ATTRACTOR_FS_AUTHORING_TYPE_NAME;
+ }
+
+protected:
+
+ static AuthObjTypeID mAssetTypeID;
+
+ AttractorFSAssetParams* mParams;
+ AttractorFSActorParams* mDefaultActorParams;
+ AttractorFSPreviewParams* mDefaultPreviewParams;
+
+ friend class ModuleBasicFSImpl;
+ friend class AttractorFSActorImpl;
+ template <class T_Module, class T_Asset, class T_AssetAuthoring> friend class nvidia::apex::ApexAuthorableObject;
+
+};
+
+class AttractorFSAssetAuthoring : public AttractorFSAsset, public ApexAssetAuthoring, public BasicFSAssetAuthoring
+{
+public:
+ APEX_RW_LOCKABLE_BOILERPLATE
+
+ /* BasicFSAssetAuthoring */
+ AttractorFSAssetAuthoring(ModuleBasicFSImpl* m, ResourceList& l) :
+ AttractorFSAsset(m, l, "AttractorFSAssetAuthoring") {}
+
+ AttractorFSAssetAuthoring(ModuleBasicFSImpl* m, ResourceList& l, const char* name) :
+ AttractorFSAsset(m, l, name) {}
+
+ AttractorFSAssetAuthoring(ModuleBasicFSImpl* m, ResourceList& l, NvParameterized::Interface* params, const char* name) :
+ AttractorFSAsset(m, l, params, name) {}
+
+ ~AttractorFSAssetAuthoring() {}
+ void destroy()
+ {
+ delete this;
+ }
+
+ /* AssetAuthoring */
+ const char* getName(void) const
+ {
+ return AttractorFSAsset::getName();
+ }
+ const char* getObjTypeName() const
+ {
+ return AttractorFSAsset::getClassName();
+ }
+ bool prepareForPlatform(nvidia::apex::PlatformTag)
+ {
+ APEX_INVALID_OPERATION("Not Implemented.");
+ return false;
+ }
+
+ void setToolString(const char* toolName, const char* toolVersion, uint32_t toolChangelist)
+ {
+ ApexAssetAuthoring::setToolString(toolName, toolVersion, toolChangelist);
+ }
+
+ /* ApexInterface */
+ virtual void release()
+ {
+ mModule->mSdk->releaseAssetAuthoring(*this);
+ }
+
+ NvParameterized::Interface* getNvParameterized() const
+ {
+ return AttractorFSAsset::getAssetNvParameterized();
+ }
+
+ NvParameterized::Interface* releaseAndReturnNvParameterizedInterface(void)
+ {
+ return AttractorFSAsset::releaseAndReturnNvParameterizedInterface();
+ }
+
+};
+
+}
+} // end namespace nvidia::apex
+
+#endif \ No newline at end of file