cgv
|
the simple_mesh class is templated over the coordinate type that defaults to float More...
#include <simple_mesh.h>
Public Types | |
using | numeric_type = T |
typedef simple_mesh< T > | mesh_type |
type of axis aligned 3d box | |
typedef cgv::media::axis_aligned_box< T, 3 > | box_type |
type of axis aligned 3d box | |
typedef cgv::math::fvec< T, 2 > | vec2_type |
type of 2d vector | |
typedef cgv::math::fvec< T, 3 > | vec3_type |
type of 3d vector | |
typedef cgv::math::fmat< T, 3, 3 > | mat3_type |
linear transformation | |
![]() | |
enum class | attribute_type { begin =0 , position =0 , texcoords =1 , normal =2 , tangent =3 , color =4 , end =5 } |
different mesh attributes More... | |
enum | AttributeFlags { AF_position = 1 , AF_texcoords = 2 , AF_normal = 4 , AF_tangent = 8 , AF_color = 16 } |
typedef cgv::type::uint32_type | idx_type |
define index type | |
typedef cgv::math::fvec< idx_type, 2 > | idx2_type |
define index pair type | |
typedef cgv::math::fvec< idx_type, 3 > | idx3_type |
define index triple type | |
typedef cgv::math::fvec< idx_type, 4 > | idx4_type |
define index quadruple type | |
typedef illum::textured_surface_material | mat_type |
define material type | |
Public Member Functions | |
simple_mesh (const simple_mesh< T > &sm) | |
copy constructor | |
simple_mesh (simple_mesh< T > &&sm) | |
move constructor | |
simple_mesh (const std::string &conway_notation="") | |
assignment operator | |
simple_mesh< T > & | operator= (const simple_mesh< T > &sm) |
assignment operator | |
simple_mesh< T > & | operator= (simple_mesh< T > &&sm) |
move assignment operator | |
uint32_t | get_coord_size () const |
return the size of one coordinate in bytes | |
void | clear () |
clear simple mesh | |
idx_type | new_position (const vec3_type &p) |
add a new position and return position index | |
idx_type | get_nr_positions () const |
access to positions | |
vec3_type & | position (idx_type pi) |
const vec3_type & | position (idx_type pi) const |
const std::vector< vec3_type > & | get_positions () const |
std::vector< vec3_type > & | ref_positions () |
idx_type | new_normal (const vec3_type &n) |
add a new normal and return normal index | |
bool | has_normals () const |
access to normals | |
idx_type | get_nr_normals () const |
vec3_type & | normal (idx_type ni) |
const vec3_type & | normal (idx_type ni) const |
const std::vector< vec3_type > & | get_normals () const |
idx_type | new_tangent (const vec3_type &tc) |
add a new tangent and return tangent index | |
bool | has_tangents () const |
access to tangents | |
idx_type | get_nr_tangents () const |
vec3_type & | tangent (idx_type ti) |
const vec3_type & | tangent (idx_type ti) const |
idx_type | new_tex_coord (const vec2_type &tc) |
add a new texture coordinate and return texture coordinate index | |
bool | has_tex_coords () const |
access to texture coordinates | |
idx_type | get_nr_tex_coords () const |
vec2_type & | tex_coord (idx_type ti) |
const vec2_type & | tex_coord (idx_type ti) const |
bool | compute_face_normal (idx_type fi, vec3_type &nml, bool normalize=true) const |
compute the normal nml of a face and return whether this was possible | |
vec3_type | compute_face_center (idx_type fi) const |
compute face center | |
void | compute_face_normals (bool construct_normal_indices=true) |
compute per face normals (ensure that per corner normal indices are set correspondingly) | |
void | compute_face_tangents (bool construct_tangent_indices=true) |
compute per face tangents (ensure that per corner tangent indices are set correspondingly) | |
void | ambo () |
Conway ambo operator. | |
void | truncate (T lambda=0.33333f) |
Conway truncate operator. | |
void | snub (T lambda=0.33333f) |
Conway snub operator. | |
void | dual () |
Conway dual operator. | |
void | gyro (T lambda=0.3333f) |
Conway gyro operator. | |
void | join () |
Conway join operator. | |
void | ortho () |
Conway ortho operator. | |
void | construct_conway_polyhedron (const std::string &conway_notation) |
construct new mesh according to Conway polyhedron notation: [a|t|s|d|g|j|o]*[T|C|O|D|I] which is evaluated from right to left and last capital letter is Platonic solid and lowercase letters are Conway operations | |
box_type | compute_box () const |
compute the axis aligned bounding box | |
void | compute_vertex_normals (bool use_parallel_implementation=true) |
compute vertex normals by averaging triangle normals | |
void | construct (const obj_loader_generic< T > &loader, bool copy_grp_info, bool copy_material_info) |
construct from obj loader | |
bool | read (const std::string &file_name) |
read simple mesh from file (currently only obj and stl are supported) | |
bool | write (const std::string &file_name) const |
write simple mesh to file (currently only obj is supported) | |
unsigned | extract_vertex_attribute_buffer (const std::vector< idx4_type > &unique_quadruples, bool include_tex_coords, bool include_normals, bool include_tangents, std::vector< T > &attrib_buffer, bool *include_colors_ptr=0, int *num_floats_in_vertex=nullptr) const |
Extract vertex attribute array and element array buffers for triangulation and edges in wireframe. | |
void | transform (const mat3_type &linear_transformation, const vec3_type &translation) |
apply transformation to mesh | |
void | transform (const mat3_type &linear_transform, const vec3_type &translation, const mat3_type &inverse_linear_transform) |
apply transformation to mesh with given inverse linear transformation | |
![]() | |
simple_mesh_base () | |
default constructor | |
simple_mesh_base (const simple_mesh_base &smb) | |
copy constructor | |
simple_mesh_base (simple_mesh_base &&smb) | |
move constructor | |
simple_mesh_base & | operator= (const simple_mesh_base &smb) |
assignment operator | |
simple_mesh_base & | operator= (simple_mesh_base &&smb) |
move assignment operator | |
idx_type | start_face () |
Create a new empty face to which new corners are added. | |
idx_type | new_corner (idx_type position_index, idx_type normal_index=-1, idx_type tex_coord_index=-1) |
Create a new corner with the given attributes. | |
idx_type | c2p (idx_type ci) const |
return position index of corner | |
idx_type | c2n (idx_type ci) const |
return normal index of corner | |
bool | has_normal_indices () const |
return whether normal indices are stored | |
idx_type | c2t (idx_type ci) const |
return texture index of corner | |
bool | has_tex_coord_indices () const |
return whether texture coordinate indices are stored | |
idx_type | get_nr_faces () const |
return the number of faces | |
idx_type | get_nr_corners () const |
return the number of corners | |
idx_type | begin_corner (idx_type fi) const |
Retrieve the vertex index of the first corner of a face. | |
idx_type | end_corner (idx_type fi) const |
Retrieve index of the vertex which follows the end corner of a face. | |
idx_type | face_degree (idx_type fi) const |
return number of edges/corners of face with index fi | |
size_t | get_nr_materials () const |
return number of materials in mesh | |
idx_type | new_material () |
add a new material and return its index | |
const mat_type & | get_material (size_t i) const |
return const reference to i-th material | |
mat_type & | ref_material (size_t i) |
return reference to i-th material | |
const idx_type & | material_index (idx_type fi) const |
return material index of given face | |
idx_type & | material_index (idx_type fi) |
return reference to material index of given face | |
size_t | get_nr_groups () const |
return number of face groups | |
const std::string & | group_name (size_t i) const |
return the name of the i-th face group | |
std::string & | group_name (size_t i) |
set a new group name | |
idx_type | new_group (const std::string &name) |
add a new group and return its index | |
const idx_type & | group_index (idx_type fi) const |
return group index of given face | |
idx_type & | group_index (idx_type fi) |
return reference to group index of given face | |
void | revert_face_orientation () |
revert face orientation | |
void | sort_faces (std::vector< idx_type > &perm, bool by_group=true, bool by_material=true) const |
Calculate a permutation of face indices which sorts them by group and/or material. | |
void | merge_indices (std::vector< idx_type > &vertex_indices, std::vector< idx4_type > &unique_tuples, bool *include_tex_coords_ptr=0, bool *include_normals_ptr=0, bool *include_tangents_ptr=0) const |
Transforms n individual vertex attribute indices into one list of unique index n-tuples. | |
void | extract_triangle_element_buffer (const std::vector< idx_type > &vertex_indices, std::vector< idx_type > &triangle_element_buffer, const std::vector< idx_type > *face_permutation_ptr=0, std::vector< idx3_type > *material_group_start_ptr=0) const |
Extract element array buffers for triangulation. | |
void | extract_wireframe_element_buffer (const std::vector< idx_type > &vertex_indices, std::vector< idx_type > &edge_element_buffer) const |
Extract element array buffers for edges in wireframe. | |
idx_type | extract_vertex_attribute_buffer_base (const std::vector< idx4_type > &unique_quadruples, AttributeFlags &flags, std::vector< uint8_t > &attrib_buffer) const |
extract vertex attribute buffer for the given flags and return size of vertex in bytes | |
idx_type | compute_inv (std::vector< idx_type > &inv, bool link_non_manifold_edges=false, std::vector< idx_type > *p2c_ptr=0, std::vector< idx_type > *next_ptr=0, std::vector< idx_type > *prev_ptr=0, std::vector< idx_type > *unmatched=0, std::vector< idx_type > *non_manifold=0, std::vector< idx_type > *unmatched_elements=0, std::vector< idx_type > *non_manifold_elements=0) const |
Do inverse matching of half-edges. | |
idx_type | compute_c2e (const std::vector< idx_type > &inv, std::vector< idx_type > &c2e, std::vector< idx_type > *e2c_ptr=0) const |
given the inv corners compute vector storing per corner the edge index and optionally per edge one corner index and return edge count (implementation assumes closed manifold connectivity) | |
void | compute_c2f (std::vector< idx_type > &c2f) const |
compute index vector with per corner its face index | |
![]() | |
colored_model () | |
construct colored model | |
colored_model (const colored_model &cm) | |
copy constructur | |
colored_model (colored_model &&cm) | |
move constructur | |
colored_model & | operator= (const colored_model &cm) |
assignment operator | |
colored_model & | operator= (colored_model &&cm) |
move assignment operator | |
virtual | ~colored_model () |
destruct colored model | |
bool | has_colors () const |
check whether colors have been allocated | |
void | set_color (size_t i, const void *col_ptr) |
set i-th color to color of type stored in storage | |
void | set_color (size_t i, const rgb &col) |
set i-th color from color of type rgb | |
void | set_color (size_t i, const rgb8 &col) |
set i-th color from color of type rgba | |
void | set_color (size_t i, const rgba &col) |
set i-th color from color of type rgb8 | |
void | set_color (size_t i, const rgba8 &col) |
set i-th color from color of type rgba8 | |
void | put_color (size_t i, void *col_ptr) const |
set color of type stored in storage to i-th color | |
void | put_color (size_t i, rgb &col) const |
set color of type rgb to i-th color | |
void | put_color (size_t i, rgba &col) const |
set color of type rgba to i-th color | |
void | put_color (size_t i, rgb8 &col) const |
set color of type rgb8 to i-th color | |
void | put_color (size_t i, rgba8 &col) const |
set color of type rgba8 to i-th color | |
size_t | get_nr_colors () const |
return number of allocated colors | |
void | resize_colors (size_t nr_colors) |
resize the color storage to given number of colors | |
size_t | get_color_size () const |
return the size of one allocated color in byte | |
ColorType | get_color_storage_type () const |
return storage type of colors, if no colors are allocated CT_RGBA8 is returned | |
const void * | get_color_data_ptr () const |
const void * | get_color_data_vector_ptr () const |
void * | ref_color_data_ptr () |
void * | ref_color_data_vector_ptr () |
void | ensure_colors (ColorType _color_type, size_t nr_colors=-1) |
ensure that colors are allocated and of given storage type | |
void | destruct_colors () |
destruct color storage | |
Protected Member Functions | |
bool | has_attribute (attribute_type attr) const |
const uint8_t * | get_attribute_ptr (attribute_type attr, idx_type ai=0) const |
size_t | get_attribute_size (attribute_type attr) const |
size_t | get_attribute_offset (attribute_type attr) const |
vec3_type | compute_normal (const vec3_type &p0, const vec3_type &p1, const vec3_type &p2) |
Protected Attributes | |
std::vector< vec3_type > | positions |
std::vector< vec3_type > | normals |
std::vector< vec3_type > | tangents |
std::vector< vec2_type > | tex_coords |
![]() | |
std::vector< idx_type > | position_indices |
std::vector< idx_type > | tex_coord_indices |
std::vector< idx_type > | normal_indices |
std::vector< idx_type > | tangent_indices |
std::vector< idx_type > | faces |
std::vector< idx_type > | group_indices |
std::vector< std::string > | group_names |
std::vector< idx_type > | material_indices |
std::vector< mat_type > | materials |
![]() | |
abst_color_storage * | color_storage_ptr |
pointer to color storage | |
Friends | |
class | simple_mesh_obj_reader< T > |
Additional Inherited Members | |
![]() | |
static std::string | get_attribute_name (attribute_type attr) |
static AttributeFlags | get_attribute_flag (attribute_type attr) |
the simple_mesh class is templated over the coordinate type that defaults to float
Definition at line 248 of file simple_mesh.h.
typedef cgv::media::axis_aligned_box<T, 3> cgv::media::mesh::simple_mesh< T >::box_type |
type of axis aligned 3d box
Definition at line 256 of file simple_mesh.h.
typedef cgv::math::fmat<T, 3, 3> cgv::media::mesh::simple_mesh< T >::mat3_type |
linear transformation
Definition at line 262 of file simple_mesh.h.
typedef simple_mesh<T> cgv::media::mesh::simple_mesh< T >::mesh_type |
type of axis aligned 3d box
Definition at line 254 of file simple_mesh.h.
using cgv::media::mesh::simple_mesh< T >::numeric_type = T |
Definition at line 251 of file simple_mesh.h.
typedef cgv::math::fvec<T, 2> cgv::media::mesh::simple_mesh< T >::vec2_type |
type of 2d vector
Definition at line 258 of file simple_mesh.h.
typedef cgv::math::fvec<T, 3> cgv::media::mesh::simple_mesh< T >::vec3_type |
type of 3d vector
Definition at line 260 of file simple_mesh.h.
cgv::media::mesh::simple_mesh< T >::simple_mesh | ( | const simple_mesh< T > & | sm | ) |
copy constructor
Definition at line 532 of file simple_mesh.cxx.
cgv::media::mesh::simple_mesh< T >::simple_mesh | ( | simple_mesh< T > && | sm | ) |
move constructor
Definition at line 539 of file simple_mesh.cxx.
cgv::media::mesh::simple_mesh< T >::simple_mesh | ( | const std::string & | conway_notation = "" | ) |
assignment operator
Definition at line 997 of file simple_mesh.cxx.
void cgv::media::mesh::simple_mesh< T >::ambo | ( | ) |
Conway ambo operator.
Definition at line 1002 of file simple_mesh.cxx.
References cgv::media::mesh::simple_mesh< T >::compute_face_normals(), cgv::media::mesh::simple_mesh_base::new_corner(), cgv::media::mesh::simple_mesh< T >::new_position(), and cgv::media::mesh::simple_mesh_base::start_face().
void cgv::media::mesh::simple_mesh< T >::clear | ( | ) |
clear simple mesh
Definition at line 571 of file simple_mesh.cxx.
Referenced by cgv::render::gl::gl_implicit_surface_drawable_base::extract_mesh(), cgv::render::extract_mesh(), and cgv::render::gl::mesh_drawable::read_mesh().
simple_mesh< T >::box_type cgv::media::mesh::simple_mesh< T >::compute_box | ( | ) | const |
compute the axis aligned bounding box
Definition at line 779 of file simple_mesh.cxx.
References cgv::media::axis_aligned_box< T, N >::add_point().
Referenced by cgv::render::gl::mesh_drawable::read_mesh().
simple_mesh< T >::vec3_type cgv::media::mesh::simple_mesh< T >::compute_face_center | ( | idx_type | fi | ) | const |
compute face center
Definition at line 888 of file simple_mesh.cxx.
bool cgv::media::mesh::simple_mesh< T >::compute_face_normal | ( | idx_type | fi, |
vec3_type & | nml, | ||
bool | normalize = true |
||
) | const |
compute the normal nml of a face and return whether this was possible
Definition at line 899 of file simple_mesh.cxx.
References cgv::math::fvec< T, N >::length().
void cgv::media::mesh::simple_mesh< T >::compute_face_normals | ( | bool | construct_normal_indices = true | ) |
compute per face normals (ensure that per corner normal indices are set correspondingly)
Definition at line 923 of file simple_mesh.cxx.
Referenced by cgv::media::mesh::simple_mesh< T >::ambo(), cgv::media::mesh::simple_mesh< T >::dual(), cgv::media::mesh::simple_mesh< T >::gyro(), cgv::media::mesh::simple_mesh< T >::join(), cgv::media::mesh::simple_mesh< T >::snub(), and cgv::media::mesh::simple_mesh< T >::truncate().
void cgv::media::mesh::simple_mesh< T >::compute_face_tangents | ( | bool | construct_tangent_indices = true | ) |
compute per face tangents (ensure that per corner tangent indices are set correspondingly)
Definition at line 944 of file simple_mesh.cxx.
References cgv::math::fvec< T, N >::normalize(), cgv::math::fvec< T, N >::x(), cgv::math::fvec< T, N >::y(), and cgv::math::fvec< T, N >::z().
|
protected |
Definition at line 940 of file simple_mesh.cxx.
void cgv::media::mesh::simple_mesh< T >::compute_vertex_normals | ( | bool | use_parallel_implementation = true | ) |
compute vertex normals by averaging triangle normals
Definition at line 788 of file simple_mesh.cxx.
References cgv::math::fvec< T, N >::normalize().
void cgv::media::mesh::simple_mesh< T >::construct | ( | const obj_loader_generic< T > & | loader, |
bool | copy_grp_info, | ||
bool | copy_material_info | ||
) |
construct from obj loader
Definition at line 433 of file simple_mesh.cxx.
void cgv::media::mesh::simple_mesh< T >::construct_conway_polyhedron | ( | const std::string & | conway_notation | ) |
construct new mesh according to Conway polyhedron notation: [a|t|s|d|g|j|o]*[T|C|O|D|I] which is evaluated from right to left and last capital letter is Platonic solid and lowercase letters are Conway operations
Definition at line 1247 of file simple_mesh.cxx.
void cgv::media::mesh::simple_mesh< T >::dual | ( | ) |
Conway dual operator.
Definition at line 1119 of file simple_mesh.cxx.
References cgv::media::mesh::simple_mesh< T >::compute_face_normals(), cgv::media::mesh::simple_mesh_base::new_corner(), cgv::media::mesh::simple_mesh< T >::new_position(), cgv::math::fvec< T, N >::normalize(), and cgv::media::mesh::simple_mesh_base::start_face().
unsigned cgv::media::mesh::simple_mesh< T >::extract_vertex_attribute_buffer | ( | const std::vector< idx4_type > & | unique_quadruples, |
bool | include_tex_coords, | ||
bool | include_normals, | ||
bool | include_tangents, | ||
std::vector< T > & | attrib_buffer, | ||
bool * | include_colors_ptr = 0 , |
||
int * | num_floats_in_vertex = nullptr |
||
) | const |
Extract vertex attribute array and element array buffers for triangulation and edges in wireframe.
unique_quadruples | A list of unique n-tuples where each entry is an index into attribute vectors of simple_mesh. |
include_tex_coords | True if texture coordinates should be written into the vertex buffer, false otherwise. |
include_normals | True if normals should be written into the vertex buffer, false otherwise. |
include_tangents | True if tangents should be written into the vertex buffer, false otherwise. |
attrib_buffer | will contain the vertex attribute data in interleaved form. |
include_colors_ptr | If nullptr then the vertex buffer won't contain colors, otherwise it will be set to true if the mesh even contains colors or false if not. |
num_floats_in_vertex | If not nullptr will be set to the number of floats which make up one vertex with all its attributes. |
Definition at line 821 of file simple_mesh.cxx.
|
inlineprotectedvirtual |
Implements cgv::media::mesh::simple_mesh_base.
Definition at line 302 of file simple_mesh.h.
|
inlineprotectedvirtual |
Implements cgv::media::mesh::simple_mesh_base.
Definition at line 280 of file simple_mesh.h.
|
inlineprotectedvirtual |
Implements cgv::media::mesh::simple_mesh_base.
Definition at line 291 of file simple_mesh.h.
|
inlinevirtual |
return the size of one coordinate in bytes
Implements cgv::media::mesh::simple_mesh_base.
Definition at line 322 of file simple_mesh.h.
|
inline |
Definition at line 342 of file simple_mesh.h.
|
inline |
Definition at line 339 of file simple_mesh.h.
|
inlinevirtual |
access to positions
Implements cgv::media::mesh::simple_mesh_base.
Definition at line 329 of file simple_mesh.h.
Referenced by cgv::render::gl::gl_implicit_surface_drawable_base::draw_implicit_surface(), and cgv::render::extract_mesh().
|
inline |
Definition at line 348 of file simple_mesh.h.
|
inline |
Definition at line 356 of file simple_mesh.h.
|
inline |
Definition at line 332 of file simple_mesh.h.
void cgv::media::mesh::simple_mesh< T >::gyro | ( | T | lambda = 0.3333f | ) |
Conway gyro operator.
Definition at line 1151 of file simple_mesh.cxx.
References cgv::media::mesh::simple_mesh< T >::compute_face_normals(), cgv::media::mesh::simple_mesh_base::new_corner(), cgv::media::mesh::simple_mesh< T >::new_position(), cgv::math::fvec< T, N >::normalize(), and cgv::media::mesh::simple_mesh_base::start_face().
|
inlineprotectedvirtual |
Implements cgv::media::mesh::simple_mesh_base.
Definition at line 269 of file simple_mesh.h.
|
inline |
access to normals
Definition at line 338 of file simple_mesh.h.
Referenced by cgv::render::mesh_render_info::construct().
|
inline |
access to tangents
Definition at line 347 of file simple_mesh.h.
Referenced by cgv::render::mesh_render_info::construct().
|
inline |
access to texture coordinates
Definition at line 355 of file simple_mesh.h.
Referenced by cgv::render::mesh_render_info::construct().
void cgv::media::mesh::simple_mesh< T >::join | ( | ) |
Conway join operator.
Definition at line 1197 of file simple_mesh.cxx.
References cgv::media::mesh::simple_mesh< T >::compute_face_normals(), cgv::media::mesh::simple_mesh_base::new_corner(), cgv::media::mesh::simple_mesh< T >::new_position(), cgv::math::fvec< T, N >::normalize(), and cgv::media::mesh::simple_mesh_base::start_face().
|
inline |
add a new normal and return normal index
Definition at line 336 of file simple_mesh.h.
Referenced by cgv::render::extract_mesh(), and cgv::render::gl::gl_implicit_surface_drawable_base::new_polygon().
|
inline |
add a new position and return position index
Definition at line 327 of file simple_mesh.h.
Referenced by cgv::media::mesh::simple_mesh< T >::ambo(), cgv::media::mesh::simple_mesh< T >::dual(), cgv::render::extract_mesh(), cgv::media::mesh::simple_mesh< T >::gyro(), cgv::media::mesh::simple_mesh< T >::join(), cgv::render::gl::gl_implicit_surface_drawable_base::new_vertex(), cgv::media::mesh::simple_mesh< T >::snub(), and cgv::media::mesh::simple_mesh< T >::truncate().
|
inline |
add a new tangent and return tangent index
Definition at line 345 of file simple_mesh.h.
|
inline |
add a new texture coordinate and return texture coordinate index
Definition at line 353 of file simple_mesh.h.
Referenced by cgv::render::extract_mesh().
|
inline |
Definition at line 340 of file simple_mesh.h.
|
inline |
Definition at line 341 of file simple_mesh.h.
simple_mesh< T > & cgv::media::mesh::simple_mesh< T >::operator= | ( | const simple_mesh< T > & | sm | ) |
assignment operator
Definition at line 547 of file simple_mesh.cxx.
References cgv::media::mesh::simple_mesh_base::operator=().
simple_mesh< T > & cgv::media::mesh::simple_mesh< T >::operator= | ( | simple_mesh< T > && | sm | ) |
move assignment operator
Definition at line 559 of file simple_mesh.cxx.
References cgv::media::mesh::simple_mesh_base::operator=().
void cgv::media::mesh::simple_mesh< T >::ortho | ( | ) |
Conway ortho operator.
Definition at line 1242 of file simple_mesh.cxx.
|
inline |
Definition at line 330 of file simple_mesh.h.
|
inline |
Definition at line 331 of file simple_mesh.h.
bool cgv::media::mesh::simple_mesh< T >::read | ( | const std::string & | file_name | ) |
read simple mesh from file (currently only obj and stl are supported)
read simple mesh from file
Definition at line 694 of file simple_mesh.cxx.
References stl_reader::StlMesh< TNumber, TIndex >::num_tris(), stl_reader::StlMesh< TNumber, TIndex >::num_vrts(), stl_reader::StlMesh< TNumber, TIndex >::raw_normals(), cgv::media::mesh::obj_reader_base::read_obj(), cgv::utils::to_lower(), stl_reader::StlMesh< TNumber, TIndex >::tri_corner_ind(), stl_reader::StlMesh< TNumber, TIndex >::tri_normal(), and stl_reader::StlMesh< TNumber, TIndex >::vrt_coords().
Referenced by vr::get_vrmesh_render_info(), vr_test::init(), and cgv::render::gl::mesh_drawable::read_mesh().
|
inline |
Definition at line 333 of file simple_mesh.h.
void cgv::media::mesh::simple_mesh< T >::snub | ( | T | lambda = 0.33333f | ) |
Conway snub operator.
Definition at line 1074 of file simple_mesh.cxx.
References cgv::media::mesh::simple_mesh< T >::compute_face_normals(), cgv::media::mesh::simple_mesh_base::new_corner(), cgv::media::mesh::simple_mesh< T >::new_position(), and cgv::media::mesh::simple_mesh_base::start_face().
|
inline |
Definition at line 349 of file simple_mesh.h.
|
inline |
Definition at line 350 of file simple_mesh.h.
|
inline |
Definition at line 357 of file simple_mesh.h.
|
inline |
Definition at line 358 of file simple_mesh.h.
void cgv::media::mesh::simple_mesh< T >::transform | ( | const mat3_type & | linear_transform, |
const vec3_type & | translation, | ||
const mat3_type & | inverse_linear_transform | ||
) |
apply transformation to mesh with given inverse linear transformation
Definition at line 878 of file simple_mesh.cxx.
void cgv::media::mesh::simple_mesh< T >::transform | ( | const mat3_type & | linear_transformation, |
const vec3_type & | translation | ||
) |
apply transformation to mesh
Definition at line 873 of file simple_mesh.cxx.
void cgv::media::mesh::simple_mesh< T >::truncate | ( | T | lambda = 0.33333f | ) |
Conway truncate operator.
Definition at line 1038 of file simple_mesh.cxx.
References cgv::media::mesh::simple_mesh< T >::compute_face_normals(), cgv::media::mesh::simple_mesh_base::new_corner(), cgv::media::mesh::simple_mesh< T >::new_position(), and cgv::media::mesh::simple_mesh_base::start_face().
bool cgv::media::mesh::simple_mesh< T >::write | ( | const std::string & | file_name | ) | const |
write simple mesh to file (currently only obj is supported)
Definition at line 745 of file simple_mesh.cxx.
|
friend |
Definition at line 262 of file simple_mesh.h.
|
protected |
Definition at line 266 of file simple_mesh.h.
|
protected |
Definition at line 265 of file simple_mesh.h.
|
protected |
Definition at line 267 of file simple_mesh.h.
|
protected |
Definition at line 268 of file simple_mesh.h.