Image Component Library (ICL)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Classes | Typedefs | Enumerations | Functions
icl::geom Namespace Reference

Classes

class  Camera
 Camera class. More...
class  ComplexCoordinateFrameSceneObject
 Special SceneObject implementation that define a visible coordinate frame. More...
class  CoordinateFrameSceneObject
 Special SceneObject implementation that define a visible coordinate frame. More...
class  CoplanarPointPoseEstimator
 Utility class that allows for 6D pose estimation from a set of at least 4 coplanar points. More...
struct  DataSegment
 The DataSegment class defines a strided data segment (or 1D or 2D ordred array of vectors) More...
struct  DataSegment< T, 1 >
 template specialization for data-segments, where each entry is just 1D More...
struct  DataSegmentBase
 Abstract data segment class. More...
class  DepthCameraPointCloudGrabber
 PointCloudGrabber implementation for 2D core::depth-image based creation of point clouds. More...
class  GridSceneObject
 SceneObject specialization for grid like objects. More...
struct  Hit
 utility structure that defines a hit between a ViewRay and SceneObjects More...
class  ICP
 Implementaiton of the Iterator Closest utils::Point (ICP) Algorithm. More...
class  OctreeObject
 The OctreeObjects provides a visualizable SceneObject interface for the Octree class. More...
class  OpenCVCamCalib
 Cameracalibration using OpenCV functions. More...
class  PCDFileGrabber
class  PCLPointCloudObject
 PointCloudObject implementation for the PCLPointCloud types. More...
struct  PlaneEquation
 Utility structure for calculation of view-ray / plane intersections. More...
struct  Plot3D
 Specialized 3D visualization component intended for 3D-box plots (needs ICLGeom-library to be linked) More...
class  PlotHandle3D
 Handle class for image components. More...
class  PlotWidget3D
class  PointCloudCreator
 Utility class that allows to create 3D (optionally colored) point clouds from given 2D core::depth images. More...
class  PointCloudCreatorCL
struct  PointCloudGrabber
 Generic interface for PointCloud sources. More...
class  PointCloudNormalEstimator
class  PointCloudObject
 Base implementation of the SceneObjectBase interface for compability with common icl::SceneObjects. More...
class  PointCloudObjectBase
 Base class for point cloud data types. More...
class  PoseEstimator
 Utility class for 6D PoseEstimation. More...
class  Posit
 Implementation of the posit algorithm for 6D pose detection from a single camera. More...
struct  Primitive
 Abastract base type for geoemtric primitives. More...
struct  LinePrimitive
 line primitive (the line references 2 vertices) More...
struct  TrianglePrimitive
 triangle primitive More...
struct  QuadPrimitive
 quad primitive More...
struct  PolygonPrimitive
 polygon primitive More...
struct  AlphaFuncProperty
 extra base class for primitives, that use a special alpha function (in particular textures) More...
struct  TexturePrimitive
 Texture Primitive. More...
class  TextureGridPrimitive
 Special texture Primitive for single textures spread over a regular grid of vertices. More...
class  TwoSidedTextureGridPrimitive
struct  SharedTexturePrimitive
 The shared texture primitive references a texture from the parent SceneObject. More...
struct  GenericTexturePrimitive
 Texture Primitive for rendering textures with arbitrary texture coordinates. More...
struct  TextPrimitive
 Text Texture. More...
class  RayCastOctreeObject
 Special Octree implemenation that supports to query points close to caste rays. More...
class  RGBDMapping
 Utility class for RGBDMapping. More...
class  Scene
 Scene Implementation that is used to handle a list of objects and cameras. More...
class  SceneLight
 Wrapper class for OpenGL lights. More...
class  SceneLightObject
 The scene light object looks like a light bulb and represents an OpenGL light. More...
struct  MouseMappingTableEntry
 mouse mapping table entry More...
struct  MouseSensitivities
 mouse sensitivities More...
class  SceneMouseHandler
 Class providing a mouse handler for class scene. More...
class  SceneObject
 The SceneObject class defines visible objects in scenes or scene graph nodes. More...
class  SceneObjectBase
 The SceneObjectBase class defines and abstract interface for visible entities in 3D scenes. More...
class  Segmentation3D
class  SoftPosit
struct  ViewRay
 This is a view-ray's line equation in parameter form. More...

Typedefs

typedef core::Color4D32f GeomColor
 color for geometry primitives
typedef math::FixedMatrix
< icl32f, 4, 4 > 
Mat4D32f
 Matrix Typedef of float matrices.
typedef math::FixedMatrix
< icl64f, 4, 4 > 
Mat4D64f
 Matrix Typedef of double matrices.
typedef math::FixedColVector
< icl32f, 4 > 
Vec4D32f
 Vector typedef of float vectors.
typedef math::FixedColVector
< icl64f, 4 > 
Vec4D64f
 Vector typedef of double vectors.
typedef Vec4D32f Vec
 Short typedef for 4D float vectors.
typedef Mat4D32f Mat
 Short typedef for 4D float matrices.
typedef math::FixedColVector
< icl32f, 3 > 
Vec3
 another shortcut for 3D vectors
typedef std::vector< VecVecArray
 typedef for vector of Vec instances
typedef void(* MouseActionCallback )(const qt::MouseEvent &, const utils::Point32f &, const utils::Point32f &, Camera &, void *)
 Mouse action function pointer.

Enumerations

enum  PrimitiveType {
  vertexPrimitive = 1<<0, linePrimitive = 1<<1, trianglePrimitive = 1<<2, quadPrimitive = 1<<3,
  polygonPrimitive = 1<<4, texturePrimitive = 1<<5, textPrimitive = 1<<6, noPrimitive = 1<<7,
  PRIMITIVE_TYPE_COUNT = 8
}
enum  MouseSensitivitiesModifier { LowMouseSensitivity = 0, NormalMouseSensitivity = 1, HighMouseSensitivity = 2, MAX_MOUSE_SENSITIVITY = HighMouseSensitivity }
 mouse sensitivities modifier More...

Functions

std::ostream & operator<< (std::ostream &os, const Camera &cam)
 ostream operator (writes camera in XML core::format)
std::istream & operator>> (std::istream &is, Camera &cam) throw (utils::ParseException)
 istream operator parses a camera from an XML-string
GeomColor geom_white (float alpha=255)
 inline utililty function to create a white color instance
GeomColor geom_red (float alpha=255)
 inline utililty function to create a red color instance
GeomColor geom_blue (float alpha=255)
 inline utililty function to create a blue color instance
GeomColor geom_green (float alpha=255)
 inline utililty function to create a green color instance
GeomColor geom_yellow (float alpha=255)
 inline utililty function to create a yellow color instance
GeomColor geom_magenta (float alpha=255)
 inline utililty function to create a magenta color instance
GeomColor geom_cyan (float alpha=255)
 inline utililty function to create a cyan color instance
GeomColor geom_black (float alpha=255)
 inline utililty function to create a cyan color instance
GeomColor geom_invisible ()
 inline utililty function to create an invisible color instance (alpha is 0.0f)
template<class T >
linear_interpolate (const T &a, const T &b, float x)
 linearly interpolates between a, b (x must be in range [0,1])
float dist_point_linesegment (const Vec &p, const Vec &lineStart, const Vec &lineEnd, Vec *nearestPoint=0)
 distance from point p to line segment (lineStart -> lineEnd)
float dist_point_triangle (const Vec &p, const Vec &a, const Vec &b, const Vec &c, Vec *nearestPoint=0)
 distance from point p to triangle (a - b - c)
Vec bilinear_interpolate (const Vec corners[4], float x, float y)
 bilinear vector interpolation
template<class T >
math::FixedColVector< T, 4 > normalize (const math::FixedMatrix< T, 1, 4 > &v)
 normalize a vector to length 1
template<class T >
math::FixedColVector< T, 4 > normalize3 (const math::FixedMatrix< T, 1, 4 > &v, const double &h=1)
 normalize a vector to length 1
float sprod3 (const Vec &a, const Vec &b)
 3D scalar (aka dot-) product for 4D homogeneous vectors (ignoring the homegeneous component)
float sqrnorm3 (const Vec &a)
 sqared norm for 4D homogeneous vectors (ignoring the homegeneous component)
float norm3 (const Vec &a)
 3D- euclidian norm for 4D homogeneous vectors (ignoring the homegeneous component)
template<class T >
math::FixedColVector< T, 4 > homogenize (const math::FixedMatrix< T, 1, 4 > &v)
 homogenize a vector be normalizing 4th component to 1
template<class T >
math::FixedColVector< T, 4 > project (math::FixedMatrix< T, 1, 4 > v, T z)
 perform perspective projection
template<class T >
math::FixedColVector< T, 4 > cross (const math::FixedMatrix< T, 1, 4 > &v1, const math::FixedMatrix< T, 1, 4 > &v2)
 homogeneous 3D cross-product
Vec rotate_vector (const Vec &axis, float angle, const Vec &vec)
 rotates a vector around a given axis
std::ostream & operator<< (std::ostream &s, const PlaneEquation &p)
 ostream operator
std::ostream & operator<< (std::ostream &s, const PointCloudObjectBase::FeatureType t)
 overloaded ostream operator for PointCloudObjectBase::FeatureType
std::ostream & operator<< (std::ostream &s, const ViewRay &vr)
 ostream operator

Detailed Description


Typedef Documentation

color for geometry primitives

Short typedef for 4D float matrices.

Matrix Typedef of float matrices.

Matrix Typedef of double matrices.

typedef void(* icl::geom::MouseActionCallback)(const qt::MouseEvent &, const utils::Point32f &, const utils::Point32f &, Camera &, void *)

Mouse action function pointer.

parameters: const qt::MouseEvent& pMouseEvent, const utils::Point32f& pCurrentMousePosition, const utils::Point32f& pDeltaMousePosition, Camera& pCamera, void* pData

Short typedef for 4D float vectors.

another shortcut for 3D vectors

Vector typedef of float vectors.

Vector typedef of double vectors.

typedef std::vector<Vec> icl::geom::VecArray

typedef for vector of Vec instances


Enumeration Type Documentation

mouse sensitivities modifier

Enumerator:
LowMouseSensitivity 
NormalMouseSensitivity 
HighMouseSensitivity 
MAX_MOUSE_SENSITIVITY 
Enumerator:
vertexPrimitive 
linePrimitive 
trianglePrimitive 
quadPrimitive 
polygonPrimitive 
texturePrimitive 
textPrimitive 
noPrimitive 
PRIMITIVE_TYPE_COUNT 

Function Documentation

Vec icl::geom::bilinear_interpolate ( const Vec  corners[4],
float  x,
float  y 
) [inline]

bilinear vector interpolation

corner order ul, ur, ll, lr 0 ----- 1 | | | --> x | 2 ------3 \/ y

template<class T >
math::FixedColVector<T,4> icl::geom::cross ( const math::FixedMatrix< T, 1, 4 > &  v1,
const math::FixedMatrix< T, 1, 4 > &  v2 
) [inline]

homogeneous 3D cross-product

float icl::geom::dist_point_linesegment ( const Vec &  p,
const Vec &  lineStart,
const Vec &  lineEnd,
Vec *  nearestPoint = 0 
)

distance from point p to line segment (lineStart -> lineEnd)

The implementation is based on the code of http://www.geometrictools.com which is povided under the terms of the "Boost Software License 1.0" (http://www.boost.org/LICENSE_1_0.txt)

float icl::geom::dist_point_triangle ( const Vec &  p,
const Vec &  a,
const Vec &  b,
const Vec &  c,
Vec *  nearestPoint = 0 
)

distance from point p to triangle (a - b - c)

The implementation is based on the code of http://www.geometrictools.com which is povided under the terms of the "Boost Software License 1.0" (http://www.boost.org/LICENSE_1_0.txt)

GeomColor icl::geom::geom_black ( float  alpha = 255) [inline]

inline utililty function to create a cyan color instance

GeomColor icl::geom::geom_blue ( float  alpha = 255) [inline]

inline utililty function to create a blue color instance

GeomColor icl::geom::geom_cyan ( float  alpha = 255) [inline]

inline utililty function to create a cyan color instance

GeomColor icl::geom::geom_green ( float  alpha = 255) [inline]

inline utililty function to create a green color instance

inline utililty function to create an invisible color instance (alpha is 0.0f)

GeomColor icl::geom::geom_magenta ( float  alpha = 255) [inline]

inline utililty function to create a magenta color instance

GeomColor icl::geom::geom_red ( float  alpha = 255) [inline]

inline utililty function to create a red color instance

GeomColor icl::geom::geom_white ( float  alpha = 255) [inline]

inline utililty function to create a white color instance

GeomColor icl::geom::geom_yellow ( float  alpha = 255) [inline]

inline utililty function to create a yellow color instance

template<class T >
math::FixedColVector<T,4> icl::geom::homogenize ( const math::FixedMatrix< T, 1, 4 > &  v) [inline]

homogenize a vector be normalizing 4th component to 1

template<class T >
T icl::geom::linear_interpolate ( const T &  a,
const T &  b,
float  x 
)

linearly interpolates between a, b (x must be in range [0,1])

if x is 0, a is returned and if x is 1, b is returned

float icl::geom::norm3 ( const Vec &  a) [inline]

3D- euclidian norm for 4D homogeneous vectors (ignoring the homegeneous component)

template<class T >
math::FixedColVector<T,4> icl::geom::normalize ( const math::FixedMatrix< T, 1, 4 > &  v) [inline]

normalize a vector to length 1

template<class T >
math::FixedColVector<T,4> icl::geom::normalize3 ( const math::FixedMatrix< T, 1, 4 > &  v,
const double &  h = 1 
) [inline]

normalize a vector to length 1

std::ostream& icl::geom::operator<< ( std::ostream &  s,
const PlaneEquation &  p 
)

ostream operator

std::ostream& icl::geom::operator<< ( std::ostream &  s,
const ViewRay &  vr 
)

ostream operator

std::ostream& icl::geom::operator<< ( std::ostream &  s,
const PointCloudObjectBase::FeatureType  t 
)

overloaded ostream operator for PointCloudObjectBase::FeatureType

std::ostream& icl::geom::operator<< ( std::ostream &  os,
const Camera &  cam 
)

ostream operator (writes camera in XML core::format)

std::istream& icl::geom::operator>> ( std::istream &  is,
Camera &  cam 
) throw (utils::ParseException)

istream operator parses a camera from an XML-string

template<class T >
math::FixedColVector<T,4> icl::geom::project ( math::FixedMatrix< T, 1, 4 >  v,
z 
) [inline]

perform perspective projection

Vec icl::geom::rotate_vector ( const Vec &  axis,
float  angle,
const Vec &  vec 
) [inline]

rotates a vector around a given axis

float icl::geom::sprod3 ( const Vec &  a,
const Vec &  b 
) [inline]

3D scalar (aka dot-) product for 4D homogeneous vectors (ignoring the homegeneous component)

float icl::geom::sqrnorm3 ( const Vec &  a) [inline]

sqared norm for 4D homogeneous vectors (ignoring the homegeneous component)

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines