24 #include "../libcommon/exception_cpe.hpp"
25 #include "../lib3d/vec3.hpp"
26 #include "../lib3d/vec2.hpp"
50 const vec3&
vertex(
const unsigned int& index)
const;
55 const vec3&
vertex_of_polygon(
const unsigned int& index_polygon,
const unsigned int& index_vertex)
const;
60 const vec3&
normal(
const unsigned int& index)
const;
65 const vec3&
color(
const unsigned int& index)
const;
70 const int&
connectivity(
const unsigned int& index)
const;
75 const vec2&
texture(
const unsigned int& index)
const;
84 const std::vector<vec3>&
get_color()
const;
107 void add_triangle(
const int u0,
const int u1,
const int u2);
177 void scale(
const double& sx,
const double& sy,
const double& sz);
196 void load_file(
const std::string &filename);
void scale(const double &sx, const double &sy, const double &sz)
scale the mesh with anisotropical values
Definition: mesh.cpp:126
std::vector< vec2 > v_texture
internal texture coordinate storage
Definition: mesh.hpp:216
const std::vector< vec3 > & get_vertices() const
return internal vertices vector
Definition: mesh.cpp:36
unsigned int number_of_vertices() const
get the number of vertices
Definition: mesh.cpp:296
void add_vertex(const vec3 &vertex_to_add)
Add a vertex to the mesh.
Definition: mesh.cpp:307
void add_triangle(const int u0, const int u1, const int u2)
Add a triangle to the mesh.
Definition: mesh.cpp:309
const vec3 & vertex(const unsigned int &index) const
Accessor to the vertex value.
Definition: mesh.cpp:167
std::vector< int > v_connectivity
internal connectivity storage
Definition: mesh.hpp:219
mesh & operator+=(const vec3 &x)
internal translation
Definition: mesh.cpp:67
const std::vector< int > & get_connectivity() const
return internal connectivity vector
Definition: mesh.cpp:39
const int & connectivity(const unsigned int &index) const
Accessor to the connectivity value.
Definition: mesh.cpp:267
std::vector< vec3 > v_color
internal color storage
Definition: mesh.hpp:214
void fill_color_xyz()
fill mesh with color depending of (x,y,z)-coordinates
Definition: mesh.cpp:131
const vec2 & texture(const unsigned int &index) const
Accessor to the uv-texture value.
Definition: mesh.cpp:242
const std::vector< vec3 > & get_color() const
return internal color vector
Definition: mesh.cpp:38
std::vector< vec3 > get_normal_per_vertex() const
get the vector per vertex
Definition: mesh.cpp:325
Matrix 3x3.
Definition: matrix3.hpp:36
const vec3 & vertex_of_polygon(const unsigned int &index_polygon, const unsigned int &index_vertex) const
Accessor to the vertex value.
Definition: mesh.cpp:383
friend mesh operator-(const mesh &m, const vec3 &x)
translation
Definition: mesh.cpp:74
unsigned int number_of_triangle() const
get the number of triangle
Definition: mesh.cpp:292
void apply(const cpe::matrix3 R)
Apply matrix to every vertices.
Definition: mesh.cpp:301
Container class for a generic mesh with normal, color, texture, ...
Definition: mesh.hpp:38
void add_texture(const vec2 &texture_to_add)
Add a texture to the mesh.
Definition: mesh.cpp:308
std::vector< vec3 > v_normal
internal normal storage
Definition: mesh.hpp:212
void load_file(const std::string &filename)
load a off file
Definition: mesh.cpp:46
const std::vector< vec3 > & get_normal() const
return internal normal vector
Definition: mesh.cpp:37
Vectors/Points 2D.
Definition: vec2.hpp:34
std::vector< vec3 > v_vertices
internal vertices storage
Definition: mesh.hpp:210
mesh & operator*=(const double &s)
uniform scaling
Definition: mesh.cpp:84
const vec3 & color(const unsigned int &index) const
Accessor to the color value.
Definition: mesh.cpp:217
void fill_color_normal()
fill mesh with color depending of normal orientation
Definition: mesh.cpp:157
const vec3 & normal(const unsigned int &index) const
Accessor to the normal value.
Definition: mesh.cpp:192
std::vector< vec3 > get_normal_per_polygon() const
get the vector per polygon
Definition: mesh.cpp:358
Vectors/Points 3D.
Definition: vec3.hpp:36
friend mesh operator+(const vec3 &x, const mesh &m)
translation
Definition: mesh.cpp:65
const std::vector< vec2 > & get_texture() const
return internal uv texture vector
Definition: mesh.cpp:316
void compute_normal()
Compute a per-vertex normal and fill the internal vector.
Definition: mesh.cpp:60
friend mesh operator*(const double &s, const mesh &m)
uniform scaling
Definition: mesh.cpp:82
void auto_scale(const double &scale=1.0)
Set vertices to fit in scalex[-1,1]x[-1,1].
Definition: mesh.cpp:91
mesh & operator-=(const vec3 &x)
internal translation
Definition: mesh.cpp:75
void fill_color(const vec3 &c)
fill mesh with constant color
Definition: mesh.cpp:120