29 #ifndef NVBLASTEXTAUTHORINGMESHNOISER_H 30 #define NVBLASTEXTAUTHORINGMESHNOISER_H 71 if (c == 2 && tr[1] == from)
86 if (c == 2 && tr[1] !=
id)
112 enum EdgeFlag { INTERNAL_EDGE, EXTERNAL_BORDER_EDGE, INTERNAL_BORDER_EDGE, EXTERNAL_EDGE, NONE };
118 void setMesh(
const std::vector<Triangle>& mesh);
124 void tesselateInternalSurface(
float maxLen);
133 void applyNoise(
SimplexNoise& noise,
float falloff, int32_t relaxIterations,
float relaxFactor);
135 std::vector<Triangle> getMesh();
138 physx::PxVec3 mOffset;
144 std::vector<Vertex> mVertices;
145 std::vector<TriangleIndexed> mTriangles;
146 std::vector<Edge> mEdges;
147 std::map<Vertex, int32_t, VrtComp> mVertMap;
148 std::map<Edge, int32_t> mEdgeMap;
154 std::vector<Triangle> mResultTriangles;
157 int32_t addVerticeIfNotExist(
const Vertex& p);
158 int32_t addEdge(
const Edge& e);
159 int32_t findEdge(
const Edge& e);
163 void collapseEdge(int32_t
id);
164 void divideEdge(int32_t
id);
165 void updateVertEdgeInfo();
166 void updateEdgeTriangleInfo();
167 void relax(int32_t iterations,
float factor, std::vector<Vertex>& vertices);
168 void recalcNoiseDirs();
171 std::vector<bool> mRestrictionFlag;
172 std::vector<EdgeFlag> mEdgeFlag;
173 std::vector<EdgeToTriangles> mTrMeshEdToTr;
174 std::vector<int32_t> mVertexValence;
175 std::vector<std::vector<int32_t> > mVertexToTriangleMap;
179 std::vector<float> mVerticesDistances;
180 std::vector<physx::PxVec3> mVerticesNormalsSmoothed;
181 std::vector<uint32_t> mPositionMappedVrt;
182 std::vector<std::vector<int32_t> > mGeometryGraph;
184 void prebuildEdgeFlagArray();
185 void computePositionedMapping();
186 void computeFalloffAndNormals();
188 void prebuildTesselatedTriangles();
193 #endif // ! NVBLASTEXTAUTHORINGMESHNOISER_H MeshNoiser()
Definition: NvBlastExtAuthoringMeshNoiser.h:102
EdgeToTriangles()
Definition: NvBlastExtAuthoringMeshNoiser.h:48
void add(int32_t t)
Definition: NvBlastExtAuthoringMeshNoiser.h:55
int32_t c
Definition: NvBlastExtAuthoringMeshNoiser.h:47
EdgeFlag
Definition: NvBlastExtAuthoringMeshNoiser.h:112
Definition: NvBlastExtAuthoringMeshNoiser.h:44
Definition: NvBlastExtAuthoringMeshNoiser.h:99
int32_t tr[2]
Definition: NvBlastExtAuthoringMeshNoiser.h:46
int32_t getNot(int32_t id)
Definition: NvBlastExtAuthoringMeshNoiser.h:80
Definition: NvBlastExtAuthoringPerlinNoise.h:235
Definition: NvBlastExtAuthoringTypes.h:57
Definition: NvBlastExtAuthoringTypes.h:67
void replace(int32_t from, int32_t to)
Definition: NvBlastExtAuthoringMeshNoiser.h:63
Definition: NvBlastArray.h:37