Main Page Class List Class Members

- Main Page
- User's Guide
- Modules
- Namespaces
- Classes
- Files

- File List
- File Members

# sdk/extensions/authoring/include/NvBlastExtAuthoringBondGenerator.h

Go to the documentation of this file.

    00001 // This code contains NVIDIA Confidential Information and is disclosed to you
    00002 // under a form of NVIDIA software license agreement provided separately to you.
    00003 //
    00004 // Notice
    00005 // NVIDIA Corporation and its licensors retain all intellectual property and
    00006 // proprietary rights in and to this software and related documentation and
    00007 // any modifications thereto. Any use, reproduction, disclosure, or
    00008 // distribution of this software and related documentation without an express
    00009 // license agreement from NVIDIA Corporation is strictly prohibited.
    00010 //
    00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
    00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
    00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
    00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
    00015 //
    00016 // Information and code furnished is believed to be accurate and reliable.
    00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
    00018 // information or for any infringement of patents or other rights of third parties that may
    00019 // result from its use. No license is granted by implication or otherwise under any patent
    00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
    00021 // This code supersedes and replaces all information previously supplied.
    00022 // NVIDIA Corporation products are not authorized for use as critical
    00023 // components in life support devices or systems without express written approval of
    00024 // NVIDIA Corporation.
    00025 //
    00026 // Copyright (c) 2020 NVIDIA Corporation. All rights reserved.
    00027
    00028
    00029 #ifndef NVBLASTEXTAUTHORINGBONDGENERATOR_H
    00030 #define NVBLASTEXTAUTHORINGBONDGENERATOR_H
    00031
    00032 #include "NvBlastExtAuthoringTypes.h"
    00033
    00034 struct NvBlastBondDesc;
    00035 struct NvBlastChunkDesc;
    00036 struct NvBlastBond;
    00037
    00038 namespace Nv
    00039 {
    00040 namespace Blast
    00041 {
    00042
    00043 // Forward declarations
    00044 class FractureTool;
    00045 class TriangleProcessor;
    00046 struct PlaneChunkIndexer;
    00047
    00054 struct BondGenerationConfig
    00055 {
    00056     enum BondGenMode { EXACT, AVERAGE };
    00057     float maxSeparation;
    00058     BondGenMode bondMode;
    00059 };
    00060
    00061
    00062 struct PlaneChunkIndexer
    00063 {
    00064     int32_t chunkId;
    00065     int32_t trId;
    00066     NvcPlane plane;
    00067 };
    00068
    00069
    00074 class BlastBondGenerator
    00075 {
    00076 public:
    00077     virtual ~BlastBondGenerator() {}
    00078
    00082     virtual void release() = 0;
    00083
    00093     virtual int32_t buildDescFromInternalFracture(FractureTool* tool, const bool* chunkIsSupport,
    00094         NvBlastBondDesc*& resultBondDescs, NvBlastChunkDesc*& resultChunkDescriptors) = 0;
    00095
    00096
    00107     virtual int32_t createBondBetweenMeshes(uint32_t meshACount, const Triangle* meshA, uint32_t meshBCount, const Triangle* meshB,
    00108         NvBlastBond& resultBond, BondGenerationConfig conf) = 0;
    00109
    00124     virtual int32_t createBondBetweenMeshes(uint32_t meshCount, const uint32_t* geometryOffset, const Triangle* geometry,
    00125         uint32_t overlapsCount, const uint32_t* overlapsA, const uint32_t* overlapsB,
    00126         NvBlastBondDesc*& resultBond, BondGenerationConfig cfg) = 0;
    00127
    00128
    00142     virtual int32_t bondsFromPrefractured(uint32_t meshCount, const uint32_t* geometryOffset, const Triangle* geometry,
    00143         const bool* chunkIsSupport, NvBlastBondDesc*& resultBondDescs,
    00144         BondGenerationConfig conf) = 0;
    00145
    00160     virtual int32_t bondsFromPrefractured(uint32_t meshCount, const uint32_t* convexHullOffset, const CollisionHull** chunkHulls,
    00161         const bool* chunkIsSupport, const uint32_t* meshGroups, NvBlastBondDesc*& resultBondDescs, float maxSeparation) = 0;
    00162
    00163
    00164
    00165 };
    00166
    00167 }   // namespace Blast
    00168 }   // namespace Nv
    00169
    00170 #endif // NVBLASTEXTAUTHORINGBONDGENERATOR_H

Copyright © 2015-2017 NVIDIA Corporation, 2701 San Tomas Expressway, Santa Clara, CA 95050 U.S.A. All rights reserved. www.nvidia.com