Container class for a vector of MC_v3d. More...
Public Member Functions | |
MC_v3d_vector () | |
empty constructor, void vector | |
MC_v3d_vector (const int &new_size) | |
constructor of a zeros vector of a given size | |
MC_v3d_vector (const MC_v3d &v0) | |
direct constructor with a MC_v3d | |
MC_v3d_vector (const MC_v3d &v0, const MC_v3d &v1) | |
direct constructor with a MC_v3d | |
MC_v3d_vector (const MC_v3d &v0, const MC_v3d &v1, const MC_v3d &v2) | |
direct constructor with a MC_v3d | |
MC_v3d_vector (const MC_v3d &v0, const MC_v3d &v1, const MC_v3d &v2, const MC_v3d &v3) | |
direct constructor with a MC_v3d | |
MC_v3d_vector (const MC_v3d &v0, const MC_v3d &v1, const MC_v3d &v2, const MC_v3d &v3, const MC_v3d &v4) | |
direct constructor with a MC_v3d | |
MC_v3d_vector (const MC_v3d_vector &vec) | |
copy constructor | |
MC_v3d_vector (const std::vector< MC_v3d > &vec) | |
direct constructor from a vector of MC_v3d | |
MC_v3d_vector (const std::set< MC_v3d, MC_v3d_less > set) | |
direct constructor from a set of MC_v3d | |
MC_v3d_vector (const std::map< MC_v3d, int, MC_v3d_less > map) | |
direct constructor from a map of MC_v3d | |
MC_v3d_vector (const MC_double_vector &x_vector, const MC_double_vector &y_vector, const MC_double_vector &z_vector) | |
direct constructor from a vector of x,y and z coordinates | |
void | assert_bounds (const int &u) const |
Assert the value stays within the bounds. | |
int | size () const |
get the size of the vector | |
void | clear () |
clear the vector to size 0 | |
MC_v3d_vector & | resize (const int &new_size) |
resize the vector in deleting value of adding zeros | |
MC_v3d_vector & | add (const MC_v3d &x) |
push back a R3 vector | |
MC_v3d_vector & | add (const MC_v3d_vector &v_x) |
push back a vector of MC_v3d& | |
MC_v3d_vector & | set (const int &k_index, const MC_v3d &x) |
MC_v3d_vector & | set (const mesh_conv::MC_int_vector &k_index, const MC_v3d_vector &x) |
const MC_v3d & | first () const |
return the first element (error if the list is empty) | |
MC_v3d & | first () |
return the first element (error if the list is empty) | |
const MC_v3d & | last () const |
return the last element (error if the list is empty) | |
MC_v3d & | last () |
return the last element (error if the list is empty) | |
MC_double_vector | component (const int &k_dim) const |
extract one of the dimension of the vector | |
MC_v3d_vector | operator- () const |
change the opposite sign of the current vector (unary negation) | |
MC_v3d_vector & | operator+= (const MC_v3d &to_add) |
internal add a value | |
MC_v3d_vector & | operator-= (const MC_v3d &to_sub) |
internal substraction | |
MC_v3d_vector & | operator*= (const double &to_mult) |
internal multiplication | |
MC_v3d_vector & | operator/= (const double &to_subdiv) |
internal divide | |
MC_v3d_vector & | operator+= (const MC_v3d_vector &to_add) |
internal add values | |
MC_v3d_vector & | operator-= (const MC_v3d_vector &to_sub) |
internal substraction | |
MC_v3d_vector & | operator*= (const MC_matrix &M) |
internal application of a matrix to the vector of MC_v3d (does the product x'=M*x) | |
MC_v3d_vector & | operator*= (const MC_double_vector &w) |
internal pointwise multiplication by a MC_double_vector | |
MC_v3d_vector | normalized () const |
normalize each vector independently | |
MC_v3d_vector & | scale (const MC_v3d_vector &s) |
internal scale the set of point by multipling componentwise with a v3d | |
std::pair< MC_v3d_vector, double > | scaled_to_unit () const |
homogeneous scale the point set to fit into [0,1] | |
MC_v3d | barycenter () const |
get the barycenter of the positions | |
const MC_v3d & | operator() (const int &k_index) const |
get operator | |
MC_v3d & | operator() (const int &k_index) |
get operator | |
const MC_v3d & | operator[] (const int &k_index) const |
get operator | |
MC_v3d & | operator[] (const int &k_index) |
get operator | |
MC_v3d_vector | operator() (const MC_int_vector &index) const |
get a subset of the vector | |
MC_v3d_vector | operator[] (const MC_int_vector &index) const |
get a subset of the vector | |
const MC_v3d * | pointer () const |
get pointer | |
MC_v3d * | pointer_unprotected () |
get pointer | |
std::map< MC_v3d, int, MC_v3d_less > | to_map () const |
convert to std::map (coords is key and store the position as value) | |
std::set< MC_v3d, MC_v3d_less > | to_set () const |
convert to std::set | |
std::list< MC_v3d > | to_list () const |
convert to list in the same order | |
std::pair< MC_v3d, MC_v3d > | bounding_box_elements () const |
get the extreme position min and max | |
MC_v3d | bounding_box_length () const |
return the length in x,y,z coordinates of the bounding box | |
std::ostream & | export_stream (std::ostream &output) const |
write to a stream in a transfering format (each coordinate separated by a space) | |
MC_v3d_vector & | read_stream (std::istream &input) |
read from a stream in a transfering format (each coordinate separated by a space) | |
Static Public Member Functions | |
static MC_v3d_vector | zeros (const int &new_size) |
build a vector of size new_size filled with zero | |
static MC_v3d | sum (const MC_v3d_vector &vec) |
do a summation over the MC_v3d_vector | |
static MC_double_vector | norm (const MC_v3d_vector &vec) |
return the norm a the vector independently | |
Protected Attributes | |
std::vector< MC_v3d > | v |
internal storage | |
Friends | |
MC_v3d_vector | operator<< (const MC_v3d_vector &vec, const MC_v3d &value) |
add a value at the end of the vertex | |
MC_v3d_vector | operator<< (const MC_v3d_vector &vec, const MC_v3d_vector &value) |
add a vector of values at the end of the vertex | |
MC_v3d_vector | operator+ (const MC_v3d_vector &vec, const MC_v3d &to_add) |
add a MC_v3d value to the vector | |
MC_v3d_vector | operator+ (const MC_v3d &to_add, const MC_v3d_vector &vec) |
add a MC_v3d value to the vector | |
MC_v3d_vector | operator- (const MC_v3d_vector &vec, const MC_v3d &to_sub) |
substract a MC_v3d value to the vector | |
MC_v3d_vector | operator* (const MC_v3d_vector &vec, const double &to_mult) |
multiply a double value to the vector | |
MC_v3d_vector | operator* (const double &to_mult, const MC_v3d_vector &vec) |
multiply a double value to the vector | |
MC_v3d_vector | operator/ (const MC_v3d_vector &vec, const double &to_subdiv) |
divide a double value to the vector | |
MC_v3d_vector | operator+ (const MC_v3d_vector &vec, const MC_v3d_vector &to_add) |
add a set of value to the vector | |
MC_v3d_vector | operator- (const MC_v3d_vector &vec, const MC_v3d_vector &to_sub) |
substract a v3d value to the vector | |
MC_v3d_vector | operator* (const MC_matrix &M, const MC_v3d_vector &vec) |
apply a matrix to the vector of MC_v3d | |
MC_v3d_vector | operator* (const MC_double_vector w, const MC_v3d_vector &vec) |
apply a pointwise multiplication by a MC_double_vector | |
MC_v3d_vector | operator* (const MC_v3d_vector &vec, const MC_double_vector &w) |
apply a pointwise multiplication by a MC_double_vector | |
std::ostream & | operator<< (std::ostream &output, const MC_v3d_vector &in) |
write to ostream the list (u0 u1 u2 ... ) |
Container class for a vector of MC_v3d.
Internal structure is a std::vector<MV_v3d>
mesh_conv::MC_v3d_vector::MC_v3d_vector | ( | ) |
empty constructor, void vector
mesh_conv::MC_v3d_vector::MC_v3d_vector | ( | const int & | new_size | ) |
constructor of a zeros vector of a given size
References v.
mesh_conv::MC_v3d_vector::MC_v3d_vector | ( | const MC_v3d & | v0 | ) |
mesh_conv::MC_v3d_vector::MC_v3d_vector | ( | const MC_v3d_vector & | vec | ) |
copy constructor
References v.
mesh_conv::MC_v3d_vector::MC_v3d_vector | ( | const std::vector< MC_v3d > & | vec | ) |
mesh_conv::MC_v3d_vector::MC_v3d_vector | ( | const std::set< MC_v3d, MC_v3d_less > | set | ) |
mesh_conv::MC_v3d_vector::MC_v3d_vector | ( | const std::map< MC_v3d, int, MC_v3d_less > | map | ) |
direct constructor from a map of MC_v3d
mesh_conv::MC_v3d_vector::MC_v3d_vector | ( | const MC_double_vector & | x_vector, | |
const MC_double_vector & | y_vector, | |||
const MC_double_vector & | z_vector | |||
) |
direct constructor from a vector of x,y and z coordinates
References mesh_conv::MC_double_vector::size(), and v.
MC_v3d_vector & mesh_conv::MC_v3d_vector::add | ( | const MC_v3d_vector & | v_x | ) |
MC_v3d_vector & mesh_conv::MC_v3d_vector::add | ( | const MC_v3d & | x | ) |
void mesh_conv::MC_v3d_vector::assert_bounds | ( | const int & | u | ) | const |
Assert the value stays within the bounds.
References v.
Referenced by operator()(), and operator[]().
MC_v3d mesh_conv::MC_v3d_vector::barycenter | ( | ) | const |
get the extreme position min and max
References first(), size(), and v.
Referenced by bounding_box_length(), and scaled_to_unit().
MC_v3d mesh_conv::MC_v3d_vector::bounding_box_length | ( | ) | const |
return the length in x,y,z coordinates of the bounding box
References bounding_box_elements().
Referenced by scaled_to_unit().
void mesh_conv::MC_v3d_vector::clear | ( | ) |
clear the vector to size 0
References v.
MC_double_vector mesh_conv::MC_v3d_vector::component | ( | const int & | k_dim | ) | const |
extract one of the dimension of the vector
References size(), v, and zeros().
Referenced by mesh_conv::MC_matrix::rotation_axis_to_axis_with_gradient().
std::ostream & mesh_conv::MC_v3d_vector::export_stream | ( | std::ostream & | output | ) | const |
MC_v3d & mesh_conv::MC_v3d_vector::first | ( | ) |
const MC_v3d & mesh_conv::MC_v3d_vector::first | ( | ) | const |
return the first element (error if the list is empty)
Referenced by bounding_box_elements(), mesh_conv::MC_v3d::MC_v3d(), mesh_conv::operator+(), operator+=(), mesh_conv::operator-(), and operator-=().
MC_v3d & mesh_conv::MC_v3d_vector::last | ( | ) |
const MC_v3d & mesh_conv::MC_v3d_vector::last | ( | ) | const |
MC_double_vector mesh_conv::MC_v3d_vector::norm | ( | const MC_v3d_vector & | vec | ) | [static] |
MC_v3d_vector mesh_conv::MC_v3d_vector::normalized | ( | ) | const |
MC_v3d_vector mesh_conv::MC_v3d_vector::operator() | ( | const MC_int_vector & | index | ) | const |
get a subset of the vector
References mesh_conv::MC_int_vector::size(), size(), v, and zeros().
MC_v3d & mesh_conv::MC_v3d_vector::operator() | ( | const int & | k_index | ) |
const MC_v3d & mesh_conv::MC_v3d_vector::operator() | ( | const int & | k_index | ) | const |
MC_v3d_vector & mesh_conv::MC_v3d_vector::operator*= | ( | const MC_double_vector & | w | ) |
internal pointwise multiplication by a MC_double_vector
References mesh_conv::MC_double_vector::first(), mesh_conv::MC_double_vector::size(), size(), and v.
MC_v3d_vector & mesh_conv::MC_v3d_vector::operator*= | ( | const MC_matrix & | M | ) |
MC_v3d_vector & mesh_conv::MC_v3d_vector::operator*= | ( | const double & | to_mult | ) |
MC_v3d_vector & mesh_conv::MC_v3d_vector::operator+= | ( | const MC_v3d_vector & | to_add | ) |
MC_v3d_vector & mesh_conv::MC_v3d_vector::operator+= | ( | const MC_v3d & | to_add | ) |
MC_v3d_vector mesh_conv::MC_v3d_vector::operator- | ( | ) | const |
MC_v3d_vector & mesh_conv::MC_v3d_vector::operator-= | ( | const MC_v3d_vector & | to_sub | ) |
MC_v3d_vector & mesh_conv::MC_v3d_vector::operator-= | ( | const MC_v3d & | to_sub | ) |
MC_v3d_vector & mesh_conv::MC_v3d_vector::operator/= | ( | const double & | to_subdiv | ) |
MC_v3d_vector mesh_conv::MC_v3d_vector::operator[] | ( | const MC_int_vector & | index | ) | const |
get a subset of the vector
MC_v3d & mesh_conv::MC_v3d_vector::operator[] | ( | const int & | k_index | ) |
const MC_v3d & mesh_conv::MC_v3d_vector::operator[] | ( | const int & | k_index | ) | const |
MC_v3d * mesh_conv::MC_v3d_vector::pointer_unprotected | ( | ) |
MC_v3d_vector & mesh_conv::MC_v3d_vector::read_stream | ( | std::istream & | input | ) |
read from a stream in a transfering format (each coordinate separated by a space)
References add().
MC_v3d_vector & mesh_conv::MC_v3d_vector::resize | ( | const int & | new_size | ) |
resize the vector in deleting value of adding zeros
References v.
Referenced by mesh_conv::operator*(), mesh_conv::operator+(), mesh_conv::operator-(), operator-(), mesh_conv::operator/(), and zeros().
MC_v3d_vector & mesh_conv::MC_v3d_vector::scale | ( | const MC_v3d_vector & | s | ) |
std::pair< MC_v3d_vector, double > mesh_conv::MC_v3d_vector::scaled_to_unit | ( | ) | const |
homogeneous scale the point set to fit into [0,1]
References bounding_box_elements(), bounding_box_length(), and size().
MC_v3d_vector & mesh_conv::MC_v3d_vector::set | ( | const mesh_conv::MC_int_vector & | k_index, | |
const MC_v3d_vector & | x | |||
) |
set an indexed value to a certain component. Adjust the size automatically
k_index and x must have the same size (or x must be of size 1)
References mesh_conv::MC_int_vector::size(), size(), and zeros().
MC_v3d_vector & mesh_conv::MC_v3d_vector::set | ( | const int & | k_index, | |
const MC_v3d & | x | |||
) |
int mesh_conv::MC_v3d_vector::size | ( | ) | const |
get the size of the vector
References v.
Referenced by add(), barycenter(), bounding_box_elements(), component(), export_stream(), first(), last(), mesh_conv::MC_matrix::MC_matrix(), mesh_conv::MC_v3d::MC_v3d(), norm(), normalized(), operator()(), mesh_conv::MC_v3d_vector_less::operator()(), mesh_conv::operator*(), operator*=(), mesh_conv::operator+(), operator+=(), mesh_conv::operator-(), operator-(), operator-=(), mesh_conv::operator/(), operator/=(), mesh_conv::operator<<(), mesh_conv::MC_quaternion::quat_interp(), scale(), scaled_to_unit(), set(), sum(), to_list(), to_map(), and to_set().
MC_v3d mesh_conv::MC_v3d_vector::sum | ( | const MC_v3d_vector & | vec | ) | [static] |
do a summation over the MC_v3d_vector
References size().
Referenced by barycenter(), and mesh_conv::MC_quaternion::quat_interp().
std::list< MC_v3d > mesh_conv::MC_v3d_vector::to_list | ( | ) | const |
std::map< MC_v3d, int, MC_v3d_less > mesh_conv::MC_v3d_vector::to_map | ( | ) | const |
std::set< MC_v3d, MC_v3d_less > mesh_conv::MC_v3d_vector::to_set | ( | ) | const |
MC_v3d_vector mesh_conv::MC_v3d_vector::zeros | ( | const int & | new_size | ) | [static] |
build a vector of size new_size filled with zero
References resize().
Referenced by component(), norm(), mesh_conv::MC_v3d::normalized_with_gradient(), operator()(), mesh_conv::operator+(), mesh_conv::operator-(), and set().
MC_v3d_vector operator* | ( | const MC_v3d_vector & | vec, | |
const MC_double_vector & | w | |||
) | [friend] |
apply a pointwise multiplication by a MC_double_vector
MC_v3d_vector operator* | ( | const MC_double_vector | w, | |
const MC_v3d_vector & | vec | |||
) | [friend] |
apply a pointwise multiplication by a MC_double_vector
MC_v3d_vector operator* | ( | const MC_matrix & | M, | |
const MC_v3d_vector & | vec | |||
) | [friend] |
apply a matrix to the vector of MC_v3d
MC_v3d_vector operator* | ( | const double & | to_mult, | |
const MC_v3d_vector & | vec | |||
) | [friend] |
multiply a double value to the vector
MC_v3d_vector operator* | ( | const MC_v3d_vector & | vec, | |
const double & | to_mult | |||
) | [friend] |
multiply a double value to the vector
MC_v3d_vector operator+ | ( | const MC_v3d_vector & | vec, | |
const MC_v3d_vector & | to_add | |||
) | [friend] |
add a set of value to the vector
to_add must be of size 1 or vec.size()
MC_v3d_vector operator+ | ( | const MC_v3d & | to_add, | |
const MC_v3d_vector & | vec | |||
) | [friend] |
add a MC_v3d value to the vector
MC_v3d_vector operator+ | ( | const MC_v3d_vector & | vec, | |
const MC_v3d & | to_add | |||
) | [friend] |
add a MC_v3d value to the vector
MC_v3d_vector operator- | ( | const MC_v3d_vector & | vec, | |
const MC_v3d_vector & | to_sub | |||
) | [friend] |
substract a v3d value to the vector
to_sub must be of size 1 or vec.size()
MC_v3d_vector operator- | ( | const MC_v3d_vector & | vec, | |
const MC_v3d & | to_sub | |||
) | [friend] |
substract a MC_v3d value to the vector
MC_v3d_vector operator/ | ( | const MC_v3d_vector & | vec, | |
const double & | to_subdiv | |||
) | [friend] |
divide a double value to the vector
std::ostream& operator<< | ( | std::ostream & | output, | |
const MC_v3d_vector & | in | |||
) | [friend] |
write to ostream the list (u0 u1 u2 ... )
MC_v3d_vector operator<< | ( | const MC_v3d_vector & | vec, | |
const MC_v3d_vector & | value | |||
) | [friend] |
add a vector of values at the end of the vertex
MC_v3d_vector operator<< | ( | const MC_v3d_vector & | vec, | |
const MC_v3d & | value | |||
) | [friend] |
add a value at the end of the vertex
std::vector<MC_v3d> mesh_conv::MC_v3d_vector::v [protected] |
internal storage
Referenced by add(), assert_bounds(), bounding_box_elements(), clear(), component(), export_stream(), first(), last(), MC_v3d_vector(), normalized(), operator()(), operator*=(), operator+=(), operator-(), operator-=(), operator/=(), operator[](), pointer(), pointer_unprotected(), resize(), scale(), set(), size(), to_list(), to_map(), and to_set().