Namespace for CPE classes. More...
Classes | |
class | matrix2 |
Matrix 2x2. More... | |
class | exception_matrix2 |
Special exception class for v3. More... | |
class | matrix3 |
Matrix 3x3. More... | |
class | exception_matrix3 |
Special exception class for v3. More... | |
class | matrix4 |
Matrix 4x4. More... | |
class | exception_matrix4 |
Special exception class for v3. More... | |
class | quaternion |
Quaternion class. More... | |
class | exception_quaternion |
Special exception class for v4. More... | |
class | vec2 |
Vectors/Points 2D. More... | |
class | exception_vec2 |
Special exception class for v2. More... | |
class | vec3 |
Vectors/Points 3D. More... | |
class | exception_vec3 |
Special exception class for v3. More... | |
class | vec4 |
Vectors/Points 4D. More... | |
class | exception_vec4 |
Special exception class for v4. More... | |
class | exception_cpe |
General exception class. More... | |
class | color |
Container class for (r,g,b) color. Each component is between [0,1]. More... | |
class | exception_color |
Exception class for color. More... | |
class | image |
Container for picture data. Data are stored as unsigned char [0,255]. More... | |
class | exception_image |
Special exception class for image. More... | |
class | image_zbuffer |
Container for picture data. Data are stored as unsigned char [0,255]. More... | |
struct | line_discrete |
Container for vector of 2D integer coordinates. More... | |
class | pos2 |
Container for 2D integer positions (pixel position) More... | |
class | exception_p2d |
Exception class for p2d. More... | |
struct | line_pointer |
struct | triangle_scanline |
class | z_buffer |
Class to manage a depth-buffer. More... | |
class | mesh |
Container class for a generic mesh with normal, color, texture, ... More... | |
class | exception_mesh |
Special exception class for image. More... | |
class | mesh_io |
Helper class for I/O mesh. More... | |
class | render_engine |
Renderer. More... | |
struct | scene |
A 3D scene containing a projection matrix and a light. More... | |
struct | shading |
Container for shading parameters (ambiant,diffuse,specular) More... | |
struct | vertex |
A vertex structure containing a position, normal, and a color. More... | |
Typedefs | |
typedef float | color_component |
Functions | |
matrix2 | operator+ (const double &s, const matrix2 &m) |
| |
matrix2 | operator- (const double &s, const matrix2 &m) |
| |
matrix2 | operator* (const double &s, const matrix2 &m) |
multiply by a scalar operator More... | |
std::ostream & | operator<< (std::ostream &stream, const matrix2 &m) |
output the vector in ostream More... | |
matrix3 | operator+ (const double &s, const matrix3 &m) |
| |
matrix3 | operator- (const double &s, const matrix3 &m) |
| |
matrix3 | operator* (const double &s, const matrix3 &m) |
multiply by a scalar operator More... | |
std::ostream & | operator<< (std::ostream &stream, const matrix3 &m) |
output the vector in ostream More... | |
matrix4 | operator+ (const double &s, const matrix4 &m) |
| |
matrix4 | operator- (const double &s, const matrix4 &m) |
| |
matrix4 | operator* (const double &s, const matrix4 &m) |
multiply by a scalar operator More... | |
std::ostream & | operator<< (std::ostream &stream, const matrix4 &m) |
output the vector in ostream More... | |
quaternion | operator* (const double &s, const quaternion &q) |
multiplication with scalar More... | |
vec2 | operator+ (const double &s, const vec2 &p) |
| |
vec2 | operator- (const double &s, const vec2 &p) |
| |
vec2 | operator* (const double &s, const vec2 &p) |
multiply by a scalar operator More... | |
std::ostream & | operator<< (std::ostream &stream, const vec2 &p) |
output the vector in ostream as (x,y,z) More... | |
vec3 | operator+ (const double &s, const vec3 &p) |
| |
vec3 | operator- (const double &s, const vec3 &p) |
| |
vec3 | operator* (const double &s, const vec3 &p) |
multiply by a scalar operator More... | |
std::ostream & | operator<< (std::ostream &stream, const vec3 &p) |
output the vector in ostream as (x,y,z) More... | |
vec4 | operator+ (const double &s, const vec4 &p) |
| |
vec4 | operator- (const double &s, const vec4 &p) |
| |
vec4 | operator* (const double &s, const vec4 &p) |
multiply by a scalar operator More... | |
std::ostream & | operator<< (std::ostream &stream, const vec4 &p) |
output the vector in ostream as (x,y,z) More... | |
std::ostream & | operator<< (std::ostream &stream, const color &c) |
standard output More... | |
color & | operator+= (color &c0, const color &c1) |
color & | operator-= (color &c0, const color &c1) |
color | operator+ (const color &c0, const color &c1) |
color | operator- (const color &c0, const color &c1) |
color & | operator*= (color &c0, float alpha) |
color & | operator/= (color &c0, float alpha) |
color | operator* (const color &c0, float alpha) |
color | operator* (float alpha, const color &c0) |
color | operator/ (const color &c0, float alpha) |
void | draw_line (image &im, const pos2 &u0, const pos2 &u1, const color &c=color(1, 0, 0)) |
draw line on image with uniform color More... | |
void | draw_triangle (image &im, const pos2 &u0, const pos2 &u1, const pos2 &u2, const color &c=color(1, 0, 0)) |
draw triangle with uniform color More... | |
void | export_ppm (const std::string &filename, const image &pic) |
Export the picture into ppm format (ascii) More... | |
void | export_ppm (const std::string &filename, const z_buffer &buffer) |
Export the z-buffer as a gray picture into ppm format (ascii) More... | |
image | read_ppm (const std::string &filename) |
read a ppm picture format More... | |
line_discrete | swap_xy (const line_discrete &line) |
Return a new line_discrete with swaped values between x & y. More... | |
line_discrete | symetry_x (const line_discrete &line) |
Return a new line_discrete which is symetric with respect to x-coordinate. More... | |
line_discrete | symetry_y (const line_discrete &line) |
Return a new line_discrete which is symetric with respect to y-coordinate. More... | |
line_discrete | reverse (const line_discrete &line) |
Return a new line_discrete in the reverse order (last entry <-> first entry) More... | |
line_discrete | compute_line (const pos2 &u0, const pos2 &u1) |
Compute a line_discrete between any positions (u0,u1) More... | |
line_discrete | compute_line_vertical (int x, int y_min, int y_max) |
Compute a horizontal line at constant x between (y_min,y_max). More... | |
line_discrete | compute_line_horizontal (int x_min, int x_max, int y) |
Compute a horizontal line at constant y between (x_min,x_max). More... | |
line_discrete | compute_line_diagonal (int x0, int y0, int x1, int y1) |
Compute diagonal line. More... | |
line_discrete | compute_bresenham (int x0, int y0, int x1, int y1) |
Compute bresenham algorithm in the first quadrant. More... | |
std::ostream & | operator<< (std::ostream &stream, const pos2 &u) |
standard output More... | |
pos2 & | operator+= (pos2 &u1, const pos2 &u2) |
internal sum between two positions More... | |
pos2 & | operator-= (pos2 &u1, const pos2 &u2) |
internal diff between two positions More... | |
pos2 | operator+ (const pos2 &u1, const pos2 &u2) |
sum between two positions More... | |
pos2 | operator- (const pos2 &u1, const pos2 &u2) |
diff between two positions More... | |
mesh | operator+ (const vec3 &x, const mesh &m) |
mesh | operator+ (const mesh &m, const vec3 &x) |
mesh | operator- (const mesh &m, const vec3 &x) |
mesh | operator* (const float &s, const mesh &m) |
mesh | operator* (const mesh &m, const float &s) |
pos2 | real_coordinate_to_image_coordinate (const vec3 &p, int Nx, int Ny) |
Convert real coordinate to image coordinate. More... | |
color | apply_shading (const vertex &v, const scene &scene3d, const shading &shad) |
Apply gouraud shading on the given vertex. More... | |
color | apply_shading (const vec3 &p, const vec3 &n, const color &c, const scene &scene3d, const shading &shad) |
Apply gouraud shading. More... | |
Namespace for CPE classes.
typedef float cpe::color_component |
color cpe::apply_shading | ( | const vertex & | v, |
const scene & | scene3d, | ||
const shading & | shad | ||
) |
Apply gouraud shading on the given vertex.
References cpe::vertex::c, cpe::vertex::n, and cpe::vertex::p.
color cpe::apply_shading | ( | const vec3 & | p, |
const vec3 & | n, | ||
const color & | c, | ||
const scene & | scene3d, | ||
const shading & | shad | ||
) |
Apply gouraud shading.
line_discrete cpe::compute_bresenham | ( | int | x0, |
int | y0, | ||
int | x1, | ||
int | y1 | ||
) |
Compute bresenham algorithm in the first quadrant.
line_discrete cpe::compute_line | ( | const pos2 & | u0, |
const pos2 & | u1 | ||
) |
Compute a line_discrete between any positions (u0,u1)
References cpe::line_discrete::add(), compute_line_vertical(), reverse(), cpe::pos2::x(), and cpe::pos2::y().
Referenced by cpe::triangle_scanline::triangle_scanline().
line_discrete cpe::compute_line_diagonal | ( | int | x0, |
int | y0, | ||
int | x1, | ||
int | y1 | ||
) |
Compute diagonal line.
line_discrete cpe::compute_line_horizontal | ( | int | x_min, |
int | x_max, | ||
int | y | ||
) |
Compute a horizontal line at constant y between (x_min,x_max).
line_discrete cpe::compute_line_vertical | ( | int | x, |
int | y_min, | ||
int | y_max | ||
) |
Compute a horizontal line at constant x between (y_min,y_max).
References cpe::line_discrete::add().
Referenced by compute_line().
void cpe::draw_line | ( | image & | im, |
const pos2 & | u0, | ||
const pos2 & | u1, | ||
const color & | c | ||
) |
draw line on image with uniform color
References cpe::image::check_position().
void cpe::draw_triangle | ( | image & | im, |
const pos2 & | u0, | ||
const pos2 & | u1, | ||
const pos2 & | u2, | ||
const color & | c | ||
) |
draw triangle with uniform color
References cpe::triangle_scanline::first_point, cpe::triangle_scanline::last_point, and cpe::triangle_scanline::size().
void cpe::export_ppm | ( | const std::string & | filename, |
const image & | pic | ||
) |
Export the picture into ppm format (ascii)
std::string | filename: file to store the picture |
image | pic: image to store |
References cpe::color::b(), cpe::color::clamp(), cpe::color::g(), MACRO_EXCEPTION_PARAMETER, cpe::image::Nx(), cpe::image::Ny(), and cpe::color::r().
Referenced by cpe::z_buffer::export_file(), cpe::image::export_file(), and cpe::image_zbuffer::export_z_buffer().
void cpe::export_ppm | ( | const std::string & | filename, |
const z_buffer & | buffer | ||
) |
Export the z-buffer as a gray picture into ppm format (ascii)
std::string | filename: file to store the picture |
z_buffer | buffer: depth-map to store |
References cpe::color::b(), cpe::color::clamp(), cpe::color::g(), cpe::z_buffer::get_max(), cpe::z_buffer::get_min(), cpe::color::r(), cpe::z_buffer::size_x(), and cpe::z_buffer::size_y().
mesh cpe::operator* | ( | const float & | s, |
const mesh & | m | ||
) |
mesh cpe::operator* | ( | const mesh & | m, |
const float & | s | ||
) |
matrix2 cpe::operator* | ( | const double & | s, |
const matrix2 & | m | ||
) |
multiply by a scalar operator
matrix3 cpe::operator* | ( | const double & | s, |
const matrix3 & | m | ||
) |
multiply by a scalar operator
color cpe::operator* | ( | const color & | c0, |
float | alpha | ||
) |
color cpe::operator* | ( | float | alpha, |
const color & | c0 | ||
) |
vec2 cpe::operator* | ( | const double & | s, |
const vec2 & | p | ||
) |
multiply by a scalar operator
References cpe::vec2::x(), and cpe::vec2::y().
vec3 cpe::operator* | ( | const double & | s, |
const vec3 & | p | ||
) |
multiply by a scalar operator
References cpe::vec3::x(), cpe::vec3::y(), and cpe::vec3::z().
vec4 cpe::operator* | ( | const double & | s, |
const vec4 & | p | ||
) |
multiply by a scalar operator
References cpe::vec4::w(), cpe::vec4::x(), cpe::vec4::y(), and cpe::vec4::z().
matrix4 cpe::operator* | ( | const double & | s, |
const matrix4 & | m | ||
) |
multiply by a scalar operator
References cpe::matrix4::pointer().
quaternion cpe::operator* | ( | const double & | s, |
const quaternion & | q | ||
) |
multiplication with scalar
color & cpe::operator*= | ( | color & | c0, |
float | alpha | ||
) |
References cpe::color::b(), cpe::color::g(), and cpe::color::r().
pos2 cpe::operator+ | ( | const pos2 & | u1, |
const pos2 & | u2 | ||
) |
sum between two positions
mesh cpe::operator+ | ( | const vec3 & | x, |
const mesh & | m | ||
) |
mesh cpe::operator+ | ( | const mesh & | m, |
const vec3 & | x | ||
) |
matrix2 cpe::operator+ | ( | const double & | s, |
const matrix2 & | m | ||
) |
matrix3 cpe::operator+ | ( | const double & | s, |
const matrix3 & | m | ||
) |
color cpe::operator+ | ( | const color & | c0, |
const color & | c1 | ||
) |
vec2 cpe::operator+ | ( | const double & | s, |
const vec2 & | p | ||
) |
vec3 cpe::operator+ | ( | const double & | s, |
const vec3 & | p | ||
) |
References cpe::vec3::x(), cpe::vec3::y(), and cpe::vec3::z().
matrix4 cpe::operator+ | ( | const double & | s, |
const matrix4 & | m | ||
) |
vec4 cpe::operator+ | ( | const double & | s, |
const vec4 & | p | ||
) |
References cpe::vec4::w(), cpe::vec4::x(), cpe::vec4::y(), and cpe::vec4::z().
pos2 & cpe::operator+= | ( | pos2 & | u1, |
const pos2 & | u2 | ||
) |
internal sum between two positions
References cpe::pos2::x(), and cpe::pos2::y().
color & cpe::operator+= | ( | color & | c0, |
const color & | c1 | ||
) |
References cpe::color::b(), cpe::color::g(), and cpe::color::r().
pos2 cpe::operator- | ( | const pos2 & | u1, |
const pos2 & | u2 | ||
) |
diff between two positions
mesh cpe::operator- | ( | const mesh & | m, |
const vec3 & | x | ||
) |
color cpe::operator- | ( | const color & | c0, |
const color & | c1 | ||
) |
matrix2 cpe::operator- | ( | const double & | s, |
const matrix2 & | m | ||
) |
matrix3 cpe::operator- | ( | const double & | s, |
const matrix3 & | m | ||
) |
vec2 cpe::operator- | ( | const double & | s, |
const vec2 & | p | ||
) |
vec3 cpe::operator- | ( | const double & | s, |
const vec3 & | p | ||
) |
References cpe::vec3::x(), cpe::vec3::y(), and cpe::vec3::z().
matrix4 cpe::operator- | ( | const double & | s, |
const matrix4 & | m | ||
) |
vec4 cpe::operator- | ( | const double & | s, |
const vec4 & | p | ||
) |
References cpe::vec4::w(), cpe::vec4::x(), cpe::vec4::y(), and cpe::vec4::z().
pos2 & cpe::operator-= | ( | pos2 & | u1, |
const pos2 & | u2 | ||
) |
internal diff between two positions
References cpe::pos2::x(), and cpe::pos2::y().
color & cpe::operator-= | ( | color & | c0, |
const color & | c1 | ||
) |
References cpe::color::b(), cpe::color::g(), and cpe::color::r().
color cpe::operator/ | ( | const color & | c0, |
float | alpha | ||
) |
References MACRO_EXCEPTION_PARAMETER.
color & cpe::operator/= | ( | color & | c0, |
float | alpha | ||
) |
References cpe::color::b(), cpe::color::g(), MACRO_EXCEPTION_PARAMETER, and cpe::color::r().
std::ostream & cpe::operator<< | ( | std::ostream & | stream, |
const pos2 & | u | ||
) |
standard output
References cpe::pos2::x(), and cpe::pos2::y().
std::ostream & cpe::operator<< | ( | std::ostream & | stream, |
const color & | c | ||
) |
standard output
References cpe::color::b(), cpe::color::g(), and cpe::color::r().
std::ostream & cpe::operator<< | ( | std::ostream & | stream, |
const vec2 & | p | ||
) |
output the vector in ostream as (x,y,z)
References cpe::vec2::to_string().
std::ostream & cpe::operator<< | ( | std::ostream & | stream, |
const matrix2 & | _m | ||
) |
output the vector in ostream
References cpe::matrix2::pointer().
std::ostream & cpe::operator<< | ( | std::ostream & | stream, |
const matrix3 & | _m | ||
) |
output the vector in ostream
References cpe::matrix3::pointer().
std::ostream & cpe::operator<< | ( | std::ostream & | stream, |
const vec3 & | p | ||
) |
output the vector in ostream as (x,y,z)
References cpe::vec3::to_string().
std::ostream & cpe::operator<< | ( | std::ostream & | stream, |
const vec4 & | p | ||
) |
output the vector in ostream as (x,y,z)
References cpe::vec4::to_string().
std::ostream & cpe::operator<< | ( | std::ostream & | stream, |
const matrix4 & | _m | ||
) |
output the vector in ostream
References cpe::matrix4::pointer().
image cpe::read_ppm | ( | const std::string & | filename | ) |
read a ppm picture format
std::string | filename: path of the file to read |
References MACRO_EXCEPTION_PARAMETER.
Referenced by cpe::image::image().
pos2 cpe::real_coordinate_to_image_coordinate | ( | const vec3 & | p, |
int | Nx, | ||
int | Ny | ||
) |
Convert real coordinate to image coordinate.
References cpe::vec3::x(), and cpe::vec3::y().
line_discrete cpe::reverse | ( | const line_discrete & | line | ) |
Return a new line_discrete in the reverse order (last entry <-> first entry)
References cpe::line_discrete::add(), cpe::line_discrete::coordinate, and cpe::line_discrete::size().
Referenced by compute_line().
line_discrete cpe::swap_xy | ( | const line_discrete & | line | ) |
Return a new line_discrete with swaped values between x & y.
References cpe::line_discrete::add(), cpe::line_discrete::coordinate, cpe::line_discrete::size(), cpe::pos2::x(), and cpe::pos2::y().
line_discrete cpe::symetry_x | ( | const line_discrete & | line | ) |
Return a new line_discrete which is symetric with respect to x-coordinate.
References cpe::line_discrete::coordinate, cpe::line_discrete::size(), cpe::pos2::x(), and cpe::pos2::y().
line_discrete cpe::symetry_y | ( | const line_discrete & | line | ) |
Return a new line_discrete which is symetric with respect to y-coordinate.
References cpe::line_discrete::coordinate, cpe::line_discrete::size(), cpe::pos2::x(), and cpe::pos2::y().