diff options
Diffstat (limited to 'APEX_1.4/module/basicfs/include/JetFSAssetPreview.h')
| -rw-r--r-- | APEX_1.4/module/basicfs/include/JetFSAssetPreview.h | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/APEX_1.4/module/basicfs/include/JetFSAssetPreview.h b/APEX_1.4/module/basicfs/include/JetFSAssetPreview.h new file mode 100644 index 00000000..3ad34004 --- /dev/null +++ b/APEX_1.4/module/basicfs/include/JetFSAssetPreview.h @@ -0,0 +1,108 @@ +/* + * 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 __JET_ASSET_PREVIEW_H__ +#define __JET_ASSET_PREVIEW_H__ + +#include "ApexPreview.h" +#include "ApexRWLockable.h" +#include "ApexSDKIntl.h" +#include "JetFSPreview.h" +#include "RenderDebugInterface.h" + +namespace nvidia +{ +namespace basicfs +{ + +class JetFSAsset; + +/** +\brief Descriptor for a JetFS Preview Asset +*/ +class JetFSPreviewDesc +{ +public: + JetFSPreviewDesc() : + mPose(PxMat44()), + mPreviewDetail(APEX_JET::JET_DRAW_FULL_DETAIL) + { + mPose = PxMat44(PxIdentity); + }; + + /** + \brief The pose that translates from preview coordinates to world coordinates. + */ + PxMat44 mPose; + /** + \brief The detail options of the preview drawing + */ + uint32_t mPreviewDetail; +}; + +/* + APEX asset preview asset. + Preview. +*/ +class JetFSAssetPreview : public JetFSPreview, public ApexResource, public ApexPreview, public ApexRWLockable +{ +public: + APEX_RW_LOCKABLE_BOILERPLATE + + JetFSAssetPreview(const JetFSPreviewDesc& PreviewDesc, ApexSDK* myApexSDK, JetFSAsset* myAsset, AssetPreviewScene* previewScene); + void drawJetFSPreview(void); + void destroy(); + + void setPose(const PxMat44& pose); // Sets the preview instance's pose. This may include scaling. + const PxMat44 getPose() const; + + // from RenderDataProvider + void lockRenderResources(void); + void unlockRenderResources(void); + void updateRenderResources(bool rewriteBuffers = false, void* userRenderData = 0); + + // from Renderable.h + void dispatchRenderResources(UserRenderer& renderer); + PxBounds3 getBounds(void) const; + + // from ApexResource.h + void release(void); + +private: + + ~JetFSAssetPreview(); + PxMat44 mPose; // the pose for the preview rendering + ApexSDK* mApexSDK; // pointer to the APEX SDK + JetFSAsset* mAsset; // our parent JetFS Asset + RenderDebugInterface* mApexRenderDebug; // Pointer to the RenderLines class to draw the + PxMat33 mDirToWorld; + AssetPreviewScene* mPreviewScene; + + // preview stuff + uint32_t mPreviewDetail; // the detail options of the preview drawing + + int32_t mDrawGroupShape; + int32_t mDrawGroupTorus; + +// void setHalfLengthDimensions(PxVec3 halfLenDim); + void setDetailLevel(uint32_t detail); + + void drawPreviewAssetInfo(); + void drawShape(/*uint32_t color*/); + void toggleDrawPreview(); + void setDrawGroupsPose(); + void drawInfoLine(uint32_t lineNum, const char* str); +}; + +} +} // namespace nvidia + +#endif // __TURBULENCE_ASSET_PREVIEW_H__ |