diff options
| author | Bryan Galdrikian <[email protected]> | 2017-02-24 09:32:20 -0800 |
|---|---|---|
| committer | Bryan Galdrikian <[email protected]> | 2017-02-24 09:32:20 -0800 |
| commit | e1bf674c16e3c8472b29574159c789cd3f0c64e0 (patch) | |
| tree | 9f0cfce09c71a2c27ff19589fcad6cd83504477c /sdk/toolkit/include/NvBlastTkAsset.h | |
| parent | first commit (diff) | |
| download | blast-e1bf674c16e3c8472b29574159c789cd3f0c64e0.tar.xz blast-e1bf674c16e3c8472b29574159c789cd3f0c64e0.zip | |
Updating to [email protected] and [email protected] with a new directory structure.
NvBlast folder is gone, files have been moved to top level directory. README is changed to reflect this.
Diffstat (limited to 'sdk/toolkit/include/NvBlastTkAsset.h')
| -rw-r--r-- | sdk/toolkit/include/NvBlastTkAsset.h | 136 |
1 files changed, 136 insertions, 0 deletions
diff --git a/sdk/toolkit/include/NvBlastTkAsset.h b/sdk/toolkit/include/NvBlastTkAsset.h new file mode 100644 index 0000000..987da7d --- /dev/null +++ b/sdk/toolkit/include/NvBlastTkAsset.h @@ -0,0 +1,136 @@ +/* +* Copyright (c) 2016-2017, 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 NVBLASTTKASSET_H +#define NVBLASTTKASSET_H + +#include "NvBlastTkSerializable.h" +#include "NvBlastTypes.h" +#include "PxVec3.h" + +// Forward declarations +struct NvBlastAsset; + + +namespace Nv +{ +namespace Blast +{ + +/** +A descriptor stored by a TkAsset for an internal joint. Internal joints are created when a TkAsset is instanced into a TkActor. +*/ +struct TkAssetJointDesc +{ + uint32_t nodeIndices[2]; //!< The graph node indices corresponding to the support chunks joined by a joint + physx::PxVec3 attachPositions[2]; //!< The joint's attachment positions in asset-local space +}; + + +/** +The static data associated with a destructible actor. TkAsset encapsulates an NvBlastAsset. In addition to the NvBlastAsset, +the TkAsset stores joint descriptors (see TkAssetJointDesc). +*/ +class TkAsset : public TkSerializable +{ +public: + /** + Access to underlying low-level asset. + + \return a pointer to the (const) low-level NvBlastAsset object. + */ + virtual const NvBlastAsset* getAssetLL() const = 0; + + /** + Get the number of chunks in this asset. + + NOTE: Wrapper function over low-level function call, see NvBlastAssetGetChunkCount for details. + + \return the number of chunks in the asset. + */ + virtual uint32_t getChunkCount() const = 0; + + /** + Get the number of leaf chunks in the given asset. + + NOTE: Wrapper function over low-level function call, see NvBlastAssetGetLeafChunkCount for details. + + \return the number of leaf chunks in the asset. + */ + virtual uint32_t getLeafChunkCount() const = 0; + + /** + Get the number of bonds in the given asset. + + NOTE: Wrapper function over low-level function call, see NvBlastAssetGetBondCount for details. + + \return the number of bonds in the asset. + */ + virtual uint32_t getBondCount() const = 0; + + /** + Access an array of chunks of the given asset. + + NOTE: Wrapper function over low-level function call, see NvBlastAssetGetChunks for details. + + \return a pointer to an array of chunks of the asset. + */ + virtual const NvBlastChunk* getChunks() const = 0; + + /** + Access an array of bonds of the given asset. + + NOTE: Wrapper function over low-level function call, see NvBlastAssetGetBonds for details. + + \return a pointer to an array of bonds of the asset. + */ + virtual const NvBlastBond* getBonds() const = 0; + + /** + Access an support graph for the given asset. + + NOTE: Wrapper function over low-level function call, see NvBlastAssetGetSupportGraph for details. + + \return a struct of support graph for the given asset. + */ + virtual const NvBlastSupportGraph getGraph() const = 0; + + /** + Retrieve the size (in bytes) of the LL asset. + + NOTE: Wrapper function over low-level function call, see NvBlastAssetGetSize for details. + + \return the size of the data block (in bytes). + */ + virtual uint32_t getDataSize() const = 0; + + /** + The number of internal TkJoint objects that will be created when this asset is instanced into a TkActor + (see TkFramework::createActor). These joints will not trigger TkJointUpdateEvent events + until this actor is split into actors such that a joint connects two actors. At this time the actor's family + will dispatch a TkJointUpdateEvent::External event during a call to TkGroup::sync() (see TkGroup). + + \return the number of descriptors for internal joints. + */ + virtual uint32_t getJointDescCount() const = 0; + + /** + The descriptors for the internal joints created when this asset is instanced. (See getJointDescCount.) + + \return a pointer to the array of descriptors for internal joints. + */ + virtual const TkAssetJointDesc* getJointDescs() const = 0; +}; + +} // namespace Blast +} // namespace Nv + + +#endif // ifndef NVBLASTTKASSET_H |