|
|
typedef cgv::math::fmat< float, 2, 2 > | mat2 |
| declare type of 2x2 matrices
|
|
typedef cgv::math::fmat< float, 2, 3 > | mat23 |
| declare type of 2x3 matrices used to store camera matrix
|
|
typedef cgv::math::fmat< float, 3, 3 > | mat3 |
| declare type of 3x3 matrices
|
|
typedef cgv::math::fmat< float, 4, 4 > | mat4 |
| declare type of 4x4 matrices
|
|
typedef cgv::math::fmat< float, 3, 4 > | mat3x4 |
| declare type of 3x4 matrices which are often used to store a pose
|
|
typedef cgv::math::fmat< double, 2, 2 > | dmat2 |
| declare type of 2x2 matrices
|
|
typedef cgv::math::fmat< double, 3, 3 > | dmat3 |
| declare type of 3x3 matrices
|
|
typedef cgv::math::fmat< double, 4, 4 > | dmat4 |
| declare type of 4x4 matrices
|
|
typedef cgv::math::fmat< double, 3, 4 > | dmat3x4 |
| declare type of 3x4 matrices which are often used to store a pose
|
|
typedef cgv::math::fvec< bool, 2 > | bvec2 |
| declare type of 2d boolean vectors
|
|
typedef cgv::math::fvec< bool, 3 > | bvec3 |
| declare type of 3d boolean vectors
|
|
typedef cgv::math::fvec< bool, 4 > | bvec4 |
| declare type of 4d boolean vectors
|
|
typedef cgv::math::fvec< float, 2 > | vec2 |
| declare type of 2d single precision floating point vectors
|
|
typedef cgv::math::fvec< float, 3 > | vec3 |
| declare type of 3d single precision floating point vectors
|
|
typedef cgv::math::fvec< float, 4 > | vec4 |
| declare type of 4d single precision floating point vectors (used for homogeneous coordinates)
|
|
typedef cgv::math::fvec< double, 2 > | dvec2 |
| declare type of 2d double precision floating point vectors
|
|
typedef cgv::math::fvec< double, 3 > | dvec3 |
| declare type of 3d double precision floating point vectors
|
|
typedef cgv::math::fvec< double, 4 > | dvec4 |
| declare type of 4d double precision floating point vectors (used for homogeneous coordinates)
|
|
typedef cgv::math::fvec< int16_t, 2 > | svec2 |
| declare type of 2d 16 bit integer vectors
|
|
typedef cgv::math::fvec< int16_t, 3 > | svec3 |
| declare type of 3d 16 bit integer vectors
|
|
typedef cgv::math::fvec< int16_t, 4 > | svec4 |
| declare type of 4d 16 bit integer vectors
|
|
typedef cgv::math::fvec< uint16_t, 2 > | usvec2 |
| declare type of 2d 16 bit unsigned integer vectors
|
|
typedef cgv::math::fvec< uint16_t, 3 > | usvec3 |
| declare type of 3d 16 bit unsigned integer vectors
|
|
typedef cgv::math::fvec< uint16_t, 4 > | usvec4 |
| declare type of 4d 16 bit unsigned integer vectors
|
|
typedef cgv::math::fvec< int32_t, 2 > | ivec2 |
| declare type of 2d 32 bit integer vectors
|
|
typedef cgv::math::fvec< int32_t, 3 > | ivec3 |
| declare type of 3d 32 bit integer vectors
|
|
typedef cgv::math::fvec< int32_t, 4 > | ivec4 |
| declare type of 4d 32 bit integer vectors
|
|
typedef cgv::math::fvec< uint32_t, 2 > | uvec2 |
| declare type of 2d 32 bit unsigned integer vectors
|
|
typedef cgv::math::fvec< uint32_t, 3 > | uvec3 |
| declare type of 3d 32 bit unsigned integer vectors
|
|
typedef cgv::math::fvec< uint32_t, 4 > | uvec4 |
| declare type of 4d 32 bit unsigned integer vectors
|
|
typedef cgv::math::fvec< int64_t, 2 > | lvec2 |
| declare type of 2d 64 bit integer vectors
|
|
typedef cgv::math::fvec< int64_t, 3 > | lvec3 |
| declare type of 3d 64 bit integer vectors
|
|
typedef cgv::math::fvec< int64_t, 4 > | lvec4 |
| declare type of 4d 64 bit integer vectors
|
|
typedef cgv::math::fvec< uint64_t, 2 > | ulvec2 |
| declare type of 2d 64 bit unsigned integer vectors
|
|
typedef cgv::math::fvec< uint64_t, 3 > | ulvec3 |
| declare type of 3d 64 bit unsigned integer vectors
|
|
typedef cgv::math::fvec< uint64_t, 4 > | ulvec4 |
| declare type of 4d 64 bit unsigned integer vectors
|
|
typedef cgv::math::mat< float > | matn |
| declare type of matrices of varying dimensions
|
|
typedef cgv::math::mat< double > | dmatn |
| declare type of matrices of varying dimensions
|
|
typedef cgv::math::vec< float > | vecn |
| declare type of single precision floating point vector with varying dimension
|
|
typedef cgv::math::vec< double > | dvecn |
| declare type of double precision floating point vector with varying dimension
|
|
typedef cgv::media::axis_aligned_box< float, 2 > | box2 |
| declare type of 2d single precision floating point axis-aligned boxes
|
|
typedef cgv::media::axis_aligned_box< float, 3 > | box3 |
| declare type of 3d single precision floating point axis-aligned boxes
|
|
typedef cgv::media::axis_aligned_box< float, 4 > | box4 |
| declare type of 4d single precision floating point axis-aligned boxes
|
|
typedef cgv::media::axis_aligned_box< double, 2 > | dbox2 |
| declare type of 2d double precision floating point axis-aligned boxes
|
|
typedef cgv::media::axis_aligned_box< double, 3 > | dbox3 |
| declare type of 3d double precision floating point axis-aligned boxes
|
|
typedef cgv::media::axis_aligned_box< double, 4 > | dbox4 |
| declare type of 4d double precision floating point axis-aligned boxes
|
|
typedef cgv::media::axis_aligned_box< int16_t, 2 > | sbox2 |
| declare type of 2d 16 bit integer axis-aligned boxes
|
|
typedef cgv::media::axis_aligned_box< int16_t, 3 > | sbox3 |
| declare type of 3d 16 bit integer axis-aligned boxes
|
|
typedef cgv::media::axis_aligned_box< int16_t, 4 > | sbox4 |
| declare type of 4d 16 bit integer axis-aligned boxes
|
|
typedef cgv::media::axis_aligned_box< uint16_t, 2 > | usbox2 |
| declare type of 2d 16 bit unsigned integer axis-aligned boxes
|
|
typedef cgv::media::axis_aligned_box< uint16_t, 3 > | usbox3 |
| declare type of 3d 16 bit unsigned integer axis-aligned boxes
|
|
typedef cgv::media::axis_aligned_box< uint16_t, 4 > | usbox4 |
| declare type of 4d 16 bit unsigned integer axis-aligned boxes
|
|
typedef cgv::media::axis_aligned_box< int32_t, 2 > | ibox2 |
| declare type of 2d 32 bit integer axis-aligned boxes
|
|
typedef cgv::media::axis_aligned_box< int32_t, 3 > | ibox3 |
| declare type of 3d 32 bit integer axis-aligned boxes
|
|
typedef cgv::media::axis_aligned_box< int32_t, 4 > | ibox4 |
| declare type of 4d 32 bit integer axis-aligned boxes
|
|
typedef cgv::media::axis_aligned_box< uint32_t, 2 > | ubox2 |
| declare type of 2d 32 bit unsigned integer axis-aligned boxes
|
|
typedef cgv::media::axis_aligned_box< uint32_t, 3 > | ubox3 |
| declare type of 3d 32 bit unsigned integer axis-aligned boxes
|
|
typedef cgv::media::axis_aligned_box< uint32_t, 4 > | ubox4 |
| declare type of 4d 32 bit unsigned integer axis-aligned boxes
|
|
typedef cgv::media::axis_aligned_box< int64_t, 2 > | lbox2 |
| declare type of 2d 64 bit integer axis-aligned boxes
|
|
typedef cgv::media::axis_aligned_box< int64_t, 3 > | lbox3 |
| declare type of 3d 64 bit integer axis-aligned boxes
|
|
typedef cgv::media::axis_aligned_box< int64_t, 4 > | lbox4 |
| declare type of 4d 64 bit integer axis-aligned boxes
|
|
typedef cgv::media::axis_aligned_box< uint64_t, 2 > | ulbox2 |
| declare type of 2d 64 bit unsigned integer axis-aligned boxes
|
|
typedef cgv::media::axis_aligned_box< uint64_t, 3 > | ulbox3 |
| declare type of 3d 64 bit unsigned integer axis-aligned boxes
|
|
typedef cgv::media::axis_aligned_box< uint64_t, 4 > | ulbox4 |
| declare type of 4d 64 bit unsigned integer axis-aligned boxes
|
|
typedef cgv::media::color< float, cgv::media::RGB > | rgb |
| declare rgb color type with 32 bit components
|
|
typedef cgv::media::color< float, cgv::media::RGB, cgv::media::OPACITY > | rgba |
| declare rgba color type with 32 bit components
|
|
typedef cgv::media::color< cgv::type::uint8_type, cgv::media::RGB > | rgb8 |
| declare rgb color type with 8 bit components
|
|
typedef cgv::media::color< cgv::type::uint8_type, cgv::media::RGB, cgv::media::OPACITY > | rgba8 |
| declare rgba color type with 8 bit components
|
|
|
typedef cgv::math::quaternion< float > | quat |
| declare type of quaternion
|
|
typedef cgv::math::quaternion< double > | dquat |
| declare type of double quaternion
|
|
the cgv namespace
Outline of the algorithm: Input parameters:
This header provides implementation for common ray-primitive intersection routines.
This header provides implementations for Bresenham's line algorithm.
- width and height of the whole table
- elements with minimum, optimum and default width and height and resize properties
- c: Number of columns
- r: Number of rows
Method "update":
- Method "initialize_space_tables":
- Create an array with c elements for all columns (one structure per column)
- For every column do:
- Get the maximum width of elements
- Set hints for the column:
- If one of the elements is expandable then the column is expandable
- If one of the elements is shrinkable then the column is shrinkable
- Do the same for all rows
As long as the relayouting process is not finished:
- Method "distribute_space":
- Sum the space needed for all columns
- If the space is smaller than the available space:
- Expand elements that can be expanded or filled
- If the space is bigger than the available space:
- Shrink elements that can be shrunk
- Do the same for all rows
- For all elements (children) in the table at position (i,j):
- Get width at columns[i] and height at rows[j]
- Method "calculate_child_size":
- If the child can expand in X then set its width to columns[i]
- If the child cannot expand in X then set its width to its optimal width
- ... same for Y
- Try to apply the width and height for the child
- Get the width and height of the child
- If it could not set the width or height update the childs minimum width and height
- If the overall width or height exceeds the available table dimensions:
- Expand the table
- Queue another relayout iteration with the new extents
For all elements (children) in the table:
- Method "calculate_child_pos":
- If the child's X-alignment is middle then use the remaining cell space/2 as X offset
- If the child's X-alignment is right then use the remaining cell space as X offset
- ... same for Y
- Set size and position
- If the overall table size differs from the requested size:
- Method "repair_default_values":
- Set the new minimum and default width for the table
file use this header to include opengl, glu and glew in the right order. If you need wglew.h, include <cgv_gl/gl/wgl.h> instead.