aboutsummaryrefslogtreecommitdiff
path: root/samples/SampleBase/blast/BlastAssetBoxes.cpp
diff options
context:
space:
mode:
authorBryan Galdrikian <[email protected]>2018-05-31 11:36:08 -0700
committerBryan Galdrikian <[email protected]>2018-05-31 11:36:08 -0700
commit7115f60b91b5717d90f643fd692010905c7004db (patch)
treeeffd68c6978751c517d54c2f2bb5bb6e7dc93e18 /samples/SampleBase/blast/BlastAssetBoxes.cpp
parentUpdating BlastTool zip (diff)
downloadarchived-blast-1.1.3_rc1.tar.xz
archived-blast-1.1.3_rc1.zip
Blast 1.1.3. See docs/release_notes.txt.v1.1.3_rc1
Diffstat (limited to 'samples/SampleBase/blast/BlastAssetBoxes.cpp')
-rwxr-xr-x[-rw-r--r--]samples/SampleBase/blast/BlastAssetBoxes.cpp204
1 files changed, 102 insertions, 102 deletions
diff --git a/samples/SampleBase/blast/BlastAssetBoxes.cpp b/samples/SampleBase/blast/BlastAssetBoxes.cpp
index b31e67c..0bb23b3 100644..100755
--- a/samples/SampleBase/blast/BlastAssetBoxes.cpp
+++ b/samples/SampleBase/blast/BlastAssetBoxes.cpp
@@ -1,102 +1,102 @@
-// This code contains NVIDIA Confidential Information and is disclosed to you
-// under a form of NVIDIA software license agreement provided separately to you.
-//
-// Notice
-// NVIDIA Corporation and its licensors retain all intellectual property and
-// proprietary rights in and to this software and 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.
-//
-// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
-// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
-// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
-// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
-//
-// Information and code furnished is believed to be accurate and reliable.
-// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
-// information or for any infringement of patents or other rights of third parties that may
-// result from its use. No license is granted by implication or otherwise under any patent
-// or patent rights of NVIDIA Corporation. Details are subject to change without notice.
-// This code supersedes and replaces all information previously supplied.
-// NVIDIA Corporation products are not authorized for use as critical
-// components in life support devices or systems without express written approval of
-// NVIDIA Corporation.
-//
-// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
-
-
-#include "BlastAssetBoxes.h"
-#include "BlastFamilyBoxes.h"
-#include "NvBlastExtPxAsset.h"
-#include "PxPhysics.h"
-#include "cooking/PxCooking.h"
-
-
-BlastAssetBoxes::BlastAssetBoxes(TkFramework& framework, PxPhysics& physics, PxCooking& cooking, Renderer& renderer, const Desc& desc)
- : BlastAsset(renderer)
-{
- // generate boxes slices procedurally
- CubeAssetGenerator::generate(m_generatorAsset, desc.generatorSettings);
-
- // asset desc / tk asset
- ExtPxAssetDesc assetDesc;
- assetDesc.chunkDescs = m_generatorAsset.solverChunks.data();
- assetDesc.chunkCount = (uint32_t)m_generatorAsset.solverChunks.size();
- assetDesc.bondDescs = m_generatorAsset.solverBonds.data();
- assetDesc.bondCount = (uint32_t)m_generatorAsset.solverBonds.size();
- std::vector<uint8_t> bondFlags(assetDesc.bondCount);
- std::fill(bondFlags.begin(), bondFlags.end(), desc.jointAllBonds ? 1 : 0);
- assetDesc.bondFlags = bondFlags.data();
-
- // box convex
- PxVec3 vertices[8] = { { -1, -1, -1 }, { -1, -1, 1 }, { -1, 1, -1 }, { -1, 1, 1 }, { 1, -1, -1 }, { 1, -1, 1 }, { 1, 1, -1 }, { 1, 1, 1 } };
- PxConvexMeshDesc convexMeshDesc;
- convexMeshDesc.points.count = 8;
- convexMeshDesc.points.data = vertices;
- convexMeshDesc.points.stride = sizeof(PxVec3);
- convexMeshDesc.flags = PxConvexFlag::eCOMPUTE_CONVEX;
- m_boxMesh = cooking.createConvexMesh(convexMeshDesc, physics.getPhysicsInsertionCallback());
-
- // prepare chunks
- const uint32_t chunkCount = (uint32_t)m_generatorAsset.solverChunks.size();
- std::vector<ExtPxAssetDesc::ChunkDesc> pxChunks(chunkCount);
- std::vector<ExtPxAssetDesc::SubchunkDesc> pxSubchunks;
- pxSubchunks.reserve(chunkCount);
- for (uint32_t i = 0; i < m_generatorAsset.solverChunks.size(); i++)
- {
- uint32_t chunkID = m_generatorAsset.solverChunks[i].userData;
- GeneratorAsset::BlastChunkCube& cube = m_generatorAsset.chunks[chunkID];
- PxVec3 position = *reinterpret_cast<PxVec3*>(&cube.position);
- PxVec3 extents = *reinterpret_cast<PxVec3*>(&cube.extents);
- ExtPxAssetDesc::ChunkDesc& chunk = pxChunks[chunkID];
- ExtPxAssetDesc::SubchunkDesc subchunk =
- {
- PxTransform(position),
- PxConvexMeshGeometry(m_boxMesh, PxMeshScale(extents / 2))
- };
- pxSubchunks.push_back(subchunk);
- chunk.subchunks = &pxSubchunks.back();
- chunk.subchunkCount = 1;
- chunk.isStatic = (position.y - (extents.y - desc.generatorSettings.extents.y) / 2) <= desc.staticHeight;
- }
-
- // create asset
- assetDesc.pxChunks = pxChunks.data();
- m_pxAsset = ExtPxAsset::create(assetDesc, framework);
-
- initialize();
-}
-
-
-BlastAssetBoxes::~BlastAssetBoxes()
-{
- m_boxMesh->release();
- m_pxAsset->release();
-}
-
-
-BlastFamilyPtr BlastAssetBoxes::createFamily(PhysXController& physXConroller, ExtPxManager& pxManager, const ActorDesc& desc)
-{
- return BlastFamilyPtr(new BlastFamilyBoxes(physXConroller, pxManager, m_renderer, *this, desc));
-}
+// This code contains NVIDIA Confidential Information and is disclosed to you
+// under a form of NVIDIA software license agreement provided separately to you.
+//
+// Notice
+// NVIDIA Corporation and its licensors retain all intellectual property and
+// proprietary rights in and to this software and 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.
+//
+// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+//
+// Information and code furnished is believed to be accurate and reliable.
+// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+// information or for any infringement of patents or other rights of third parties that may
+// result from its use. No license is granted by implication or otherwise under any patent
+// or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+// This code supersedes and replaces all information previously supplied.
+// NVIDIA Corporation products are not authorized for use as critical
+// components in life support devices or systems without express written approval of
+// NVIDIA Corporation.
+//
+// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.
+
+
+#include "BlastAssetBoxes.h"
+#include "BlastFamilyBoxes.h"
+#include "NvBlastExtPxAsset.h"
+#include "PxPhysics.h"
+#include "cooking/PxCooking.h"
+
+
+BlastAssetBoxes::BlastAssetBoxes(TkFramework& framework, PxPhysics& physics, PxCooking& cooking, Renderer& renderer, const Desc& desc)
+ : BlastAsset(renderer)
+{
+ // generate boxes slices procedurally
+ CubeAssetGenerator::generate(m_generatorAsset, desc.generatorSettings);
+
+ // asset desc / tk asset
+ ExtPxAssetDesc assetDesc;
+ assetDesc.chunkDescs = m_generatorAsset.solverChunks.data();
+ assetDesc.chunkCount = (uint32_t)m_generatorAsset.solverChunks.size();
+ assetDesc.bondDescs = m_generatorAsset.solverBonds.data();
+ assetDesc.bondCount = (uint32_t)m_generatorAsset.solverBonds.size();
+ std::vector<uint8_t> bondFlags(assetDesc.bondCount);
+ std::fill(bondFlags.begin(), bondFlags.end(), desc.jointAllBonds ? 1 : 0);
+ assetDesc.bondFlags = bondFlags.data();
+
+ // box convex
+ PxVec3 vertices[8] = { { -1, -1, -1 }, { -1, -1, 1 }, { -1, 1, -1 }, { -1, 1, 1 }, { 1, -1, -1 }, { 1, -1, 1 }, { 1, 1, -1 }, { 1, 1, 1 } };
+ PxConvexMeshDesc convexMeshDesc;
+ convexMeshDesc.points.count = 8;
+ convexMeshDesc.points.data = vertices;
+ convexMeshDesc.points.stride = sizeof(PxVec3);
+ convexMeshDesc.flags = PxConvexFlag::eCOMPUTE_CONVEX;
+ m_boxMesh = cooking.createConvexMesh(convexMeshDesc, physics.getPhysicsInsertionCallback());
+
+ // prepare chunks
+ const uint32_t chunkCount = (uint32_t)m_generatorAsset.solverChunks.size();
+ std::vector<ExtPxAssetDesc::ChunkDesc> pxChunks(chunkCount);
+ std::vector<ExtPxAssetDesc::SubchunkDesc> pxSubchunks;
+ pxSubchunks.reserve(chunkCount);
+ for (uint32_t i = 0; i < m_generatorAsset.solverChunks.size(); i++)
+ {
+ uint32_t chunkID = m_generatorAsset.solverChunks[i].userData;
+ GeneratorAsset::BlastChunkCube& cube = m_generatorAsset.chunks[chunkID];
+ PxVec3 position = *reinterpret_cast<PxVec3*>(&cube.position);
+ PxVec3 extents = *reinterpret_cast<PxVec3*>(&cube.extents);
+ ExtPxAssetDesc::ChunkDesc& chunk = pxChunks[chunkID];
+ ExtPxAssetDesc::SubchunkDesc subchunk =
+ {
+ PxTransform(position),
+ PxConvexMeshGeometry(m_boxMesh, PxMeshScale(extents / 2))
+ };
+ pxSubchunks.push_back(subchunk);
+ chunk.subchunks = &pxSubchunks.back();
+ chunk.subchunkCount = 1;
+ chunk.isStatic = (position.y - (extents.y - desc.generatorSettings.extents.y) / 2) <= desc.staticHeight;
+ }
+
+ // create asset
+ assetDesc.pxChunks = pxChunks.data();
+ m_pxAsset = ExtPxAsset::create(assetDesc, framework);
+
+ initialize();
+}
+
+
+BlastAssetBoxes::~BlastAssetBoxes()
+{
+ m_boxMesh->release();
+ m_pxAsset->release();
+}
+
+
+BlastFamilyPtr BlastAssetBoxes::createFamily(PhysXController& physXConroller, ExtPxManager& pxManager, const ActorDesc& desc)
+{
+ return BlastFamilyPtr(new BlastFamilyBoxes(physXConroller, pxManager, m_renderer, *this, desc));
+}