10 #include "triangleiterator.h"
11 #include "renderglobals.h"
14 #include <utility/dllexport.h>
170 return (vertexValues.
first() * (1.0f - coords.x - coords.y)) + (vertexValues.
second() * coords.x) + (vertexValues.
third() * coords.y);
173 template <
typename T>
176 glm::vec3 min(math::max<float>());
177 glm::vec3 max(math::min<float>());
180 for (
const auto& point : positions.
getData())
182 if (point.x < min.x) { min.x = point.x; }
183 if (point.x > max.x) { max.x = point.x; }
184 if (point.y < min.y) { min.y = point.y; }
185 if (point.y > max.y) { max.y = point.y; }
186 if (point.z < min.z) { min.z = point.z; }
187 if (point.z > max.z) { max.z = point.z; }
193 template <
typename T>
196 glm::vec3 min(math::max<float>());
197 glm::vec3 max(math::min<float>());
202 const auto& point = positions[i];
203 if (point.x < min.x) { min.x = point.x; }
204 if (point.x > max.x) { max.x = point.x; }
205 if (point.y < min.y) { min.y = point.y; }
206 if (point.y > max.y) { max.y = point.y; }
207 if (point.z < min.z) { min.z = point.z; }
208 if (point.z > max.z) { max.z = point.z; }
glm::vec3 mMinCoordinates
Box min coordinates.
Definition: box.h:98
float NAPAPI computeTriangleArea(const TriangleData< glm::vec3 > &vertices)
bool NAPAPI intersect(const glm::vec3 &rayOrigin, const glm::vec3 &rayDirection, const TriangleData< glm::vec3 > &vertices, glm::vec3 &outCoordinates)
const T & third() const
Definition: triangleiterator.h:57
const std::vector< uint32 > & getIndices() const
Definition: mesh.h:101
void NAPAPI computeConnectivity(const nap::MeshInstance &mesh, MeshConnectivityMap &outConnectivityMap)
std::vector< std::vector< Triangle > > MeshConnectivityMap
Definition: meshutils.h:21
constexpr const char * position
Default mesh position vertex attribute name.
Definition: renderglobals.h:75
void NAPAPI setTriangleIndices(nap::MeshShape &mesh, EDrawMode drawMode, int number, const std::array< int, 3 > &indices)
float NAPAPI computeArea(nap::MeshInstance &mesh, const nap::VertexAttribute< glm::vec3 > &vertices, std::vector< float > &outList)
void computeBoundingBox(const MeshInstance &mesh, math::Box &outBox)
Definition: meshutils.h:174
glm::vec3 NAPAPI computeTriangleNormal(const TriangleData< glm::vec3 > &vertices)
T interpolateVertexAttr(const TriangleData< T > &vertexValues, const glm::vec3 &barycentricCoordinates)
Definition: meshutils.h:168
bool NAPAPI isTriangleMesh(const nap::MeshInstance &meshInstance)
VertexAttribute< T > & getAttribute(const std::string &id)
Definition: triangleiterator.h:23
void NAPAPI reverseWindingOrder(nap::MeshInstance &mesh)
const std::vector< ELEMENTTYPE > & getData() const
Definition: vertexattribute.h:95
glm::vec3 mMaxCoordinates
Box max coordinates.
Definition: box.h:99
Definition: templateapp.h:17
const T & first() const
Definition: triangleiterator.h:35
glm::vec3 NAPAPI computeBarycentric(const glm::vec3 &point, const TriangleData< glm::vec3 > &triangle)
int NAPAPI getTriangleCount(const MeshInstance &meshInstance)
void NAPAPI generateIndices(nap::MeshShape &shape, int vertexCount, bool loop=false, int offset=0)
void NAPAPI computeNormals(const nap::MeshInstance &mesh, const nap::VertexAttribute< glm::vec3 > &vertices, nap::VertexAttribute< glm::vec3 > &outNormals)
const T & second() const
Definition: triangleiterator.h:46
EDrawMode
Definition: mesh.h:28