|
|
typedef cgv::math::fmat< float, 2, 2 > | mat2 |
| declare type of 2x2 matrices
|
|
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 implementation for integer arithmetic.
This header provides common signed and unsigned distance implementations between points and primitives or primitives and primitives.
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.