Main Page Class List Class Members

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

- File List
- File Members

# sdk/extensions/authoring/source/NvBlastExtAuthoringMeshUtils.h

Go to the documentation of this file.

    00001 #include <cinttypes>
    00002 #include <map>
    00003 #include <set>
    00004 #include <vector>
    00005 #include "NvBlastExtAuthoringTypes.h"
    00006
    00007 namespace physx
    00008 {
    00009     class PxVec3;
    00010 };
    00011
    00012 namespace Nv
    00013 {
    00014 namespace Blast
    00015 {
    00016
    00017     class Mesh;
    00018
    00031 void    setCuttingBox(const physx::PxVec3& point, const physx::PxVec3& normal, Mesh* mesh, float size, int64_t id);
    00039 Mesh*   getCuttingBox(const physx::PxVec3& point, const physx::PxVec3& normal, float size, int64_t id, int32_t interiorMaterialId);
    00040
    00046 Mesh*   getBigBox(const physx::PxVec3& point, float size, int32_t interiorMaterialId);
    00047
    00061 Mesh* getNoisyCuttingBoxPair(const physx::PxVec3& point, const physx::PxVec3& normal, float size, float jaggedPlaneSize, physx::PxVec3 resolution, int64_t id, float amplitude, float frequency, int32_t octaves, int32_t seed, int32_t interiorMaterialId);
    00062
    00063
    00068 void inverseNormalAndIndices(Mesh* mesh);
    00069
    00070 struct CmpVec
    00071 {
    00072     bool operator()(const physx::PxVec3& v1, const physx::PxVec3& v2) const;
    00073 };
    00074
    00075 typedef std::map<physx::PxVec3, std::map<uint32_t, uint32_t>, CmpVec> PointMap;
    00076
    00077 struct SharedFace
    00078 {
    00079     SharedFace() {}
    00080     SharedFace(uint32_t inW, uint32_t inH, int64_t inUD, int32_t inMatId) : w(inW), h(inH), f(Facet( 0, 3, inUD, inMatId ))
    00081     {
    00082         vertices.reserve((w + 1) * (h + 1));
    00083     }
    00084     uint32_t w, h;
    00085     Facet f;
    00086     std::vector<Nv::Blast::Vertex> vertices;
    00087     std::vector<Nv::Blast::Edge> edges;
    00088     std::vector<Nv::Blast::Facet> facets;
    00089 };
    00090
    00091 struct CmpSharedFace
    00092 {
    00093     bool operator()(const std::pair<physx::PxVec3, physx::PxVec3>& pv1, const std::pair<physx::PxVec3, physx::PxVec3>& pv2) const;
    00094 };
    00095
    00096 typedef std::map<std::pair<physx::PxVec3, physx::PxVec3>, SharedFace, CmpSharedFace> SharedFacesMap;
    00097
    00098 struct CutoutConfiguration;
    00099
    00100 void buildCuttingConeFaces(const CutoutConfiguration& conf, const std::vector<std::vector<physx::PxVec3>>& points,
    00101     float heightBot, float heightTop, float conicityBot, float conicityTop,
    00102     int64_t& id, int32_t seed, int32_t interiorMaterialId, SharedFacesMap& sharedFacesMap);
    00103
    00119 Mesh*   getCuttingCone(const CutoutConfiguration& conf,
    00120     const std::vector<physx::PxVec3>& points, const std::set<int32_t>& smoothingGroups,
    00121     float heightBot, float heightTop, float conicityBot, float conicityTop,
    00122     int64_t& id, int32_t seed, int32_t interiorMaterialId, const SharedFacesMap& sharedFacesMap, bool inverseNormals = false);
    00123
    00124 };
    00125 };

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