cgv
Loading...
Searching...
No Matches
cgv Namespace Reference

the cgv namespace More...

Namespaces

namespace  base
 the base namespace holds the base hierarchy, support for plugin registration and signals
 
namespace  data
 namespace for data management components
 
namespace  g2d
 forward declaration to give generic renderer access to protected members
 
namespace  gui
 namespace that holds the abstract gui interface
 
namespace  reflect
 in this namespace reflection of types is implemented
 
namespace  render
 namespace for api independent GPU programming
 
namespace  type
 namespace for compile time type information
 
namespace  utils
 namespace that holds tools that dont fit any other namespace
 

Typedefs

Predefined Types
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
 
Prdefined Types
typedef cgv::math::quaternion< float > quat
 declare type of quaternion
 
typedef cgv::math::quaternion< double > dquat
 declare type of double quaternion
 

Detailed Description

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.

Typedef Documentation

◆ box2

declare type of 2d single precision floating point axis-aligned boxes

Definition at line 180 of file axis_aligned_box.h.

◆ box3

declare type of 3d single precision floating point axis-aligned boxes

Definition at line 182 of file axis_aligned_box.h.

◆ box4

declare type of 4d single precision floating point axis-aligned boxes

Definition at line 184 of file axis_aligned_box.h.

◆ bvec2

typedef cgv::math::fvec<bool, 2> cgv::bvec2

declare type of 2d boolean vectors

Definition at line 660 of file fvec.h.

◆ bvec3

typedef cgv::math::fvec<bool, 3> cgv::bvec3

declare type of 3d boolean vectors

Definition at line 662 of file fvec.h.

◆ bvec4

typedef cgv::math::fvec<bool, 4> cgv::bvec4

declare type of 4d boolean vectors

Definition at line 664 of file fvec.h.

◆ dbox2

declare type of 2d double precision floating point axis-aligned boxes

Definition at line 187 of file axis_aligned_box.h.

◆ dbox3

declare type of 3d double precision floating point axis-aligned boxes

Definition at line 189 of file axis_aligned_box.h.

◆ dbox4

declare type of 4d double precision floating point axis-aligned boxes

Definition at line 191 of file axis_aligned_box.h.

◆ dmat2

typedef cgv::math::fmat<double, 2, 2> cgv::dmat2

declare type of 2x2 matrices

Definition at line 365 of file fmat.h.

◆ dmat3

typedef cgv::math::fmat<double, 3, 3> cgv::dmat3

declare type of 3x3 matrices

Definition at line 367 of file fmat.h.

◆ dmat3x4

typedef cgv::math::fmat<double, 3, 4> cgv::dmat3x4

declare type of 3x4 matrices which are often used to store a pose

Definition at line 371 of file fmat.h.

◆ dmat4

typedef cgv::math::fmat<double, 4, 4> cgv::dmat4

declare type of 4x4 matrices

Definition at line 369 of file fmat.h.

◆ dmatn

typedef cgv::math::mat<double> cgv::dmatn

declare type of matrices of varying dimensions

Definition at line 1383 of file mat.h.

◆ dquat

declare type of double quaternion

Definition at line 372 of file quaternion.h.

◆ dvec2

typedef cgv::math::fvec<double, 2> cgv::dvec2

declare type of 2d double precision floating point vectors

Definition at line 674 of file fvec.h.

◆ dvec3

typedef cgv::math::fvec<double, 3> cgv::dvec3

declare type of 3d double precision floating point vectors

Definition at line 676 of file fvec.h.

◆ dvec4

typedef cgv::math::fvec<double, 4> cgv::dvec4

declare type of 4d double precision floating point vectors (used for homogeneous coordinates)

Definition at line 678 of file fvec.h.

◆ dvecn

typedef cgv::math::vec<double> cgv::dvecn

declare type of double precision floating point vector with varying dimension

Definition at line 1189 of file vec.h.

◆ ibox2

declare type of 2d 32 bit integer axis-aligned boxes

Definition at line 207 of file axis_aligned_box.h.

◆ ibox3

declare type of 3d 32 bit integer axis-aligned boxes

Definition at line 209 of file axis_aligned_box.h.

◆ ibox4

declare type of 4d 32 bit integer axis-aligned boxes

Definition at line 211 of file axis_aligned_box.h.

◆ ivec2

typedef cgv::math::fvec<int32_t, 2> cgv::ivec2

declare type of 2d 32 bit integer vectors

Definition at line 694 of file fvec.h.

◆ ivec3

typedef cgv::math::fvec<int32_t, 3> cgv::ivec3

declare type of 3d 32 bit integer vectors

Definition at line 696 of file fvec.h.

◆ ivec4

typedef cgv::math::fvec<int32_t, 4> cgv::ivec4

declare type of 4d 32 bit integer vectors

Definition at line 698 of file fvec.h.

◆ lbox2

declare type of 2d 64 bit integer axis-aligned boxes

Definition at line 220 of file axis_aligned_box.h.

◆ lbox3

declare type of 3d 64 bit integer axis-aligned boxes

Definition at line 222 of file axis_aligned_box.h.

◆ lbox4

declare type of 4d 64 bit integer axis-aligned boxes

Definition at line 224 of file axis_aligned_box.h.

◆ lvec2

typedef cgv::math::fvec<int64_t, 2> cgv::lvec2

declare type of 2d 64 bit integer vectors

Definition at line 707 of file fvec.h.

◆ lvec3

typedef cgv::math::fvec<int64_t, 3> cgv::lvec3

declare type of 3d 64 bit integer vectors

Definition at line 709 of file fvec.h.

◆ lvec4

typedef cgv::math::fvec<int64_t, 4> cgv::lvec4

declare type of 4d 64 bit integer vectors

Definition at line 711 of file fvec.h.

◆ mat2

typedef cgv::math::fmat<float, 2, 2> cgv::mat2

declare type of 2x2 matrices

Definition at line 354 of file fmat.h.

◆ mat23

typedef cgv::math::fmat<float, 2, 3> cgv::mat23

declare type of 2x3 matrices used to store camera matrix

Definition at line 356 of file fmat.h.

◆ mat3

typedef cgv::math::fmat<float, 3, 3> cgv::mat3

declare type of 3x3 matrices

Definition at line 358 of file fmat.h.

◆ mat3x4

typedef cgv::math::fmat<float, 3, 4> cgv::mat3x4

declare type of 3x4 matrices which are often used to store a pose

Definition at line 362 of file fmat.h.

◆ mat4

typedef cgv::math::fmat<float, 4, 4> cgv::mat4

declare type of 4x4 matrices

Definition at line 360 of file fmat.h.

◆ matn

typedef cgv::math::mat<float> cgv::matn

declare type of matrices of varying dimensions

Definition at line 1381 of file mat.h.

◆ quat

declare type of quaternion

Definition at line 370 of file quaternion.h.

◆ rgb

typedef cgv::media::color<float, cgv::media::RGB> cgv::rgb

declare rgb color type with 32 bit components

Definition at line 853 of file color.h.

◆ rgb8

declare rgb color type with 8 bit components

Definition at line 857 of file color.h.

◆ rgba

typedef cgv::media::color<float, cgv::media::RGB, cgv::media::OPACITY> cgv::rgba

declare rgba color type with 32 bit components

Definition at line 855 of file color.h.

◆ rgba8

typedef cgv::media::color<cgv::type::uint8_type, cgv::media::RGB, cgv::media::OPACITY> cgv::rgba8

declare rgba color type with 8 bit components

Definition at line 859 of file color.h.

◆ sbox2

declare type of 2d 16 bit integer axis-aligned boxes

Definition at line 194 of file axis_aligned_box.h.

◆ sbox3

declare type of 3d 16 bit integer axis-aligned boxes

Definition at line 196 of file axis_aligned_box.h.

◆ sbox4

declare type of 4d 16 bit integer axis-aligned boxes

Definition at line 198 of file axis_aligned_box.h.

◆ svec2

typedef cgv::math::fvec<int16_t, 2> cgv::svec2

declare type of 2d 16 bit integer vectors

Definition at line 681 of file fvec.h.

◆ svec3

typedef cgv::math::fvec<int16_t, 3> cgv::svec3

declare type of 3d 16 bit integer vectors

Definition at line 683 of file fvec.h.

◆ svec4

typedef cgv::math::fvec<int16_t, 4> cgv::svec4

declare type of 4d 16 bit integer vectors

Definition at line 685 of file fvec.h.

◆ ubox2

declare type of 2d 32 bit unsigned integer axis-aligned boxes

Definition at line 213 of file axis_aligned_box.h.

◆ ubox3

declare type of 3d 32 bit unsigned integer axis-aligned boxes

Definition at line 215 of file axis_aligned_box.h.

◆ ubox4

declare type of 4d 32 bit unsigned integer axis-aligned boxes

Definition at line 217 of file axis_aligned_box.h.

◆ ulbox2

declare type of 2d 64 bit unsigned integer axis-aligned boxes

Definition at line 226 of file axis_aligned_box.h.

◆ ulbox3

declare type of 3d 64 bit unsigned integer axis-aligned boxes

Definition at line 228 of file axis_aligned_box.h.

◆ ulbox4

declare type of 4d 64 bit unsigned integer axis-aligned boxes

Definition at line 230 of file axis_aligned_box.h.

◆ ulvec2

typedef cgv::math::fvec<uint64_t, 2> cgv::ulvec2

declare type of 2d 64 bit unsigned integer vectors

Definition at line 713 of file fvec.h.

◆ ulvec3

typedef cgv::math::fvec<uint64_t, 3> cgv::ulvec3

declare type of 3d 64 bit unsigned integer vectors

Definition at line 715 of file fvec.h.

◆ ulvec4

typedef cgv::math::fvec<uint64_t, 4> cgv::ulvec4

declare type of 4d 64 bit unsigned integer vectors

Definition at line 717 of file fvec.h.

◆ usbox2

declare type of 2d 16 bit unsigned integer axis-aligned boxes

Definition at line 200 of file axis_aligned_box.h.

◆ usbox3

declare type of 3d 16 bit unsigned integer axis-aligned boxes

Definition at line 202 of file axis_aligned_box.h.

◆ usbox4

declare type of 4d 16 bit unsigned integer axis-aligned boxes

Definition at line 204 of file axis_aligned_box.h.

◆ usvec2

typedef cgv::math::fvec<uint16_t, 2> cgv::usvec2

declare type of 2d 16 bit unsigned integer vectors

Definition at line 687 of file fvec.h.

◆ usvec3

typedef cgv::math::fvec<uint16_t, 3> cgv::usvec3

declare type of 3d 16 bit unsigned integer vectors

Definition at line 689 of file fvec.h.

◆ usvec4

typedef cgv::math::fvec<uint16_t, 4> cgv::usvec4

declare type of 4d 16 bit unsigned integer vectors

Definition at line 691 of file fvec.h.

◆ uvec2

typedef cgv::math::fvec<uint32_t, 2> cgv::uvec2

declare type of 2d 32 bit unsigned integer vectors

Definition at line 700 of file fvec.h.

◆ uvec3

typedef cgv::math::fvec<uint32_t, 3> cgv::uvec3

declare type of 3d 32 bit unsigned integer vectors

Definition at line 702 of file fvec.h.

◆ uvec4

typedef cgv::math::fvec<uint32_t, 4> cgv::uvec4

declare type of 4d 32 bit unsigned integer vectors

Definition at line 704 of file fvec.h.

◆ vec2

typedef cgv::math::fvec<float, 2> cgv::vec2

declare type of 2d single precision floating point vectors

Definition at line 667 of file fvec.h.

◆ vec3

typedef cgv::math::fvec<float, 3> cgv::vec3

declare type of 3d single precision floating point vectors

Definition at line 669 of file fvec.h.

◆ vec4

typedef cgv::math::fvec<float, 4> cgv::vec4

declare type of 4d single precision floating point vectors (used for homogeneous coordinates)

Definition at line 671 of file fvec.h.

◆ vecn

typedef cgv::math::vec<float> cgv::vecn

declare type of single precision floating point vector with varying dimension

Definition at line 1187 of file vec.h.