10 #include "triangleiterator.h"
11 #include "renderglobals.h"
215 return (vertexValues.
first() * (1.0f - coords.x - coords.y)) + (vertexValues.
second() * coords.x) + (vertexValues.
third() * coords.y);
221 glm::vec3 min(math::max<float>());
222 glm::vec3 max(math::min<float>());
225 for (
const auto& point : positions.
getData())
227 if (point.x < min.x) { min.x = point.x; }
228 if (point.x > max.x) { max.x = point.x; }
229 if (point.y < min.y) { min.y = point.y; }
230 if (point.y > max.y) { max.y = point.y; }
231 if (point.z < min.z) { min.z = point.z; }
232 if (point.z > max.z) { max.z = point.z; }
242 computeBoundingBox<T>(mesh, mesh_bounds);
249 glm::vec3 min(math::max<float>());
250 glm::vec3 max(math::min<float>());
255 const auto& point = positions[i];
256 if (point.x < min.x) { min.x = point.x; }
257 if (point.x > max.x) { max.x = point.x; }
258 if (point.y < min.y) { min.y = point.y; }
259 if (point.y > max.y) { max.y = point.y; }
260 if (point.z < min.z) { min.z = point.z; }
261 if (point.z > max.z) { max.z = point.z; }
271 computeBoundingBox<T>(mesh, shape);
glm::vec3 mMinCoordinates
Box min coordinates.
Definition: box.h:104
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 computeBoundingSphere(const math::Box &box)
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:219
glm::vec3 NAPAPI computeTriangleNormal(const TriangleData< glm::vec3 > &vertices)
T interpolateVertexAttr(const TriangleData< T > &vertexValues, const glm::vec3 &barycentricCoordinates)
Definition: meshutils.h:213
bool NAPAPI isTriangleMesh(const nap::MeshInstance &meshInstance)
float NAPAPI computeCameraDistance(const glm::vec2 &planeDimensions, float cameraFOV)
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:107
glm::vec3 mMaxCoordinates
Box max coordinates.
Definition: box.h:105
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