Image Component Library (ICL)
Public Types | Public Member Functions | Public Attributes | List of all members
icl::geom::QuadPrimitive Struct Reference

quad primitive More...

#include <Primitive.h>

Inheritance diagram for icl::geom::QuadPrimitive:
icl::math::FixedColVector< int, 8 > icl::geom::Primitive icl::math::FixedMatrix< int, 1, DIM > icl::utils::FixedArray< int, COLS *ROWS > icl::math::FixedMatrixBase icl::geom::SharedTexturePrimitive icl::geom::TexturePrimitive icl::geom::TextPrimitive

Public Types

typedef math::FixedColVector< int, 8 > super
 super type More...
 
- Public Types inherited from icl::math::FixedColVector< int, 8 >
typedef FixedMatrix< int, 1, DIMsuper
 
- Public Types inherited from icl::math::FixedMatrix< int, 1, DIM >
typedef int * iterator
 iterator type More...
 
typedef const int * const_iterator
 const iterator type More...
 
typedef int * row_iterator
 row_iterator More...
 
typedef const int * const_row_iterator
 const row_iterator More...
 
typedef const col_iterator const_col_iterator
 
- Public Types inherited from icl::geom::Primitive
enum  Type {
  vertex = 1<<0, line = 1<<1, triangle = 1<<2, quad = 1<<3,
  polygon = 1<<4, texture = 1<<5, text = 1<<6, nothing = 1<<7,
  custom = 1<<20, PRIMITIVE_TYPE_COUNT = 8, all = (1<<PRIMITIVE_TYPE_COUNT)-1, faces = triangle | quad | polygon | texture | text
}
 primitive type for dynamic handling of different primitives More...
 

Public Member Functions

 QuadPrimitive (int a, int b, int c, int d, const GeomColor &color, int na=-1, int nb=-1, int nc=-1, int nd=-1, bool trySurfaceOptimization=false, int tesselationResolution=1)
 constructor More...
 
virtual ICLGeom_API void render (const Primitive::RenderContext &ctx)
 render method More...
 
int i (int idx) const
 direct access to the i-th vertex/normal index More...
 
virtual Primitivecopy () const
 deep copy implementation (trivial) More...
 
ICLGeom_API Vec computeNormal (const std::vector< Vec > &vertices) const
 computes the normal for this quad More...
 
- Public Member Functions inherited from icl::math::FixedColVector< int, 8 >
 FixedColVector ()
 
 FixedColVector (const int &init)
 
 FixedColVector (const int *srcData)
 
 FixedColVector (const FixedMatrix< int, 1, DIM > &other)
 
 FixedColVector (const int &v0, const int &v1, const int &v2=0, const int &v3=0, const int &v4=0, const int &v5=0, const int &v6=0, const int &v7=0, const int &v8=0, const int &v9=0, const int &v10=0, const int &v11=0)
 
 FixedColVector (const FixedMatrixPart< int, DIM, Iterator > &r)
 
 FixedColVector (const FixedMatrixPart< otherT, DIM, Iterator > &r)
 
- Public Member Functions inherited from icl::math::FixedMatrix< int, 1, DIM >
DynMatrix< int > dyn ()
 creates a shallow copied DynMatrix instance wrapping this' data More...
 
const DynMatrix< int > dyn () const
 creates a shallow copied DynMatrix instance wrapping this' data (const) More...
 
 FixedMatrix ()
 Default constructor. More...
 
 FixedMatrix (const int &initValue)
 Create Matrix and initialize elements with given value. More...
 
 FixedMatrix (const int *srcdata)
 Create matrix with given data pointer (const version) More...
 
 FixedMatrix (const int &v0, const int &v1, const int &v2=0, const int &v3=0, const int &v4=0, const int &v5=0, const int &v6=0, const int &v7=0, const int &v8=0, const int &v9=0, const int &v10=0, const int &v11=0, const int &v12=0, const int &v13=0, const int &v14=0, const int &v15=0)
 Create matrix with given initializer elements (16 values max) More...
 
 FixedMatrix (OtherIterator begin, OtherIterator end)
 Range based constructor for STL compatiblitiy. More...
 
 FixedMatrix (const FixedMatrix &other)
 
 FixedMatrix (const FixedMatrix< otherT, COLS, ROWS > &other)
 
 FixedMatrix (const FixedMatrixPart< int, DIM, Iterator > &r)
 Create matrix of a sub-part of another matrix (identical types) More...
 
 FixedMatrix (const FixedMatrixPart< otherT, DIM, Iterator > &r)
 Create matrix of a sub-part of another matrix (compatible types) More...
 
FixedMatrixoperator= (const FixedMatrix &other)
 Assignment operator (with compatible data type) (deep copy) More...
 
FixedMatrixoperator= (const FixedMatrix< otherT, COLS, ROWS > &other)
 Assignment operator (with compatible data type) (deep copy) More...
 
FixedMatrixoperator= (const int &t)
 Assign all elements with given value. More...
 
FixedMatrixoperator= (const FixedMatrixPart< int, DIM, Iterator > &r)
 Assign matrix elements with sup-part of another matrix (identical types) More...
 
FixedMatrixoperator= (const FixedMatrixPart< otherT, DIM, Iterator > &r)
 Assign matrix elements with sup-part of another matrix (compatible types) More...
 
FixedMatrix operator/ (const FixedMatrix &m) const
 Matrix devision. More...
 
FixedMatrix operator/ (int f) const
 Divide all elements by a scalar. More...
 
FixedMatrixoperator/= (const FixedMatrix &m)
 Matrix devision (inplace) More...
 
FixedMatrixoperator/= (int f)
 Divide all elements by a scalar. More...
 
FixedMatrix operator * (int f) const
 Multiply all elements by a scalar. More...
 
FixedMatrix< int, MCOLS, ROWS > operator * (const FixedMatrix< int, MCOLS, COLS > &m) const
 Matrix multiplication (essential) More...
 
FixedMatrixoperator *= (int f)
 moved outside the class Multiply all elements by a scalar (inplace) More...
 
FixedMatrix operator+ (const int &t) const
 Add a scalar to each element. More...
 
FixedMatrix operator+ (const FixedMatrix &m) const
 Element-wise matrix addition. More...
 
FixedMatrixoperator+= (const int &t)
 Add a scalar to each element (inplace) More...
 
FixedMatrixoperator+= (const FixedMatrix &m)
 Element-wise matrix addition (inplace) More...
 
FixedMatrix operator- (const int &t) const
 Substract a scalar from each element. More...
 
FixedMatrix operator- (const FixedMatrix &m) const
 Element-wise matrix subtraction. More...
 
FixedMatrix operator- () const
 Prefix - operator. More...
 
FixedMatrixoperator-= (const int &t)
 Substract a scalar from each element (inplace) More...
 
FixedMatrixoperator-= (const FixedMatrix &m)
 Element-wise matrix subtraction (inplace) More...
 
int & operator() (unsigned int col, unsigned int row)
 Element access operator. More...
 
const int & operator() (unsigned int col, unsigned int row) const
 Element access operator (const) More...
 
int & at (unsigned int col, unsigned int row)
 Element access index save (with exception if index is invalid) More...
 
const int & at (unsigned int col, unsigned int row) const
 Element access index save (with exception if index is invalid) (const) More...
 
int & operator[] (unsigned int idx)
 linear data view element access More...
 
const int & operator[] (unsigned int idx) const
 linear data view element access (const) More...
 
int * data ()
 return internal data pointer More...
 
const int * data () const
 return internal data pointer (const) More...
 
iterator begin ()
 returns an iterator to first element iterating over each element (row-major order) More...
 
const_iterator begin () const
 returns an iterator to first element iterating over each element (row-major order) (const) More...
 
iterator end ()
 returns an iterator after the last element More...
 
const_iterator end () const
 returns an iterator after the last element (const) More...
 
col_iterator col_begin (unsigned int col)
 returns an iterator iterating over a certain column More...
 
const_col_iterator col_begin (unsigned int col) const
 returns an iterator iterating over a certain column (const) More...
 
col_iterator col_end (unsigned int col)
 row end iterator More...
 
const_col_iterator col_end (unsigned int col) const
 row end iterator const More...
 
row_iterator row_begin (unsigned int row)
 returns an iterator iterating over a certain row More...
 
const_row_iterator row_begin (unsigned int row) const
 returns an iterator iterating over a certain row (const) More...
 
row_iterator row_end (unsigned int row)
 row end iterator More...
 
const_row_iterator row_end (unsigned int row) const
 row end iterator (const) More...
 
void mult (const FixedMatrix< int, MCOLS, COLS > &m, FixedMatrix< int, MCOLS, ROWS > &dst) const
 inplace matrix multiplication (dst = (*this)*m) More...
 
FixedMatrix inv () const
 invert the matrix (only implemented with IPP_OPTIMIZATION and only for icl32f and icl64f) More...
 
int det () const
 calculate matrix determinant (only implemented with IPP_OPTIMIZATION and only for icl32f and icl64f) More...
 
FixedMatrix< int, ROWS, COLS > transp () const
 returns matrix's transposed More...
 
int element_wise_inner_product (const FixedMatrix< int, OTHER_COLS, DIM/OTHER_COLS > &other) const
 inner product of data pointers (not matrix-mulitiplication) More...
 
FixedMatrix< int, OTHER_COLS, COLS > dot (const FixedMatrix< int, OTHER_COLS, ROWS > &M) const
 returns the inner product of two matrices (i.e. dot-product) More...
 
double cond (const double p=2) const
 computes the condition of a fixed matrix More...
 
int trace () const
 computes the sum of all diagonal elements More...
 
FixedMatrixPart< int, COLS, row_iteratorrow (unsigned int idx)
 returns a matrix row-reference iterator pair More...
 
FixedMatrixPart< int, COLS, const_row_iteratorrow (unsigned int idx) const
 returns a matrix row-reference iterator pair (const) More...
 
FixedMatrixPart< int, ROWS, col_iterator > col (unsigned int idx)
 returns a matrix col-reference iterator pair More...
 
FixedMatrixPart< int, ROWS, const_col_iteratorcol (unsigned int idx) const
 returns a matrix col-reference iterator pair (const) More...
 
FixedMatrixPart< int, WIDTH *HEIGHT, MatrixSubRectIterator< int > > part ()
 extracts a rectangular matrix sub region More...
 
const FixedMatrixPart< int, WIDTH *HEIGHT, MatrixSubRectIterator< int > > part () const
 extracts a rectangular matrix sub region (const) More...
 
FixedMatrix< int, NEW_WIDTH, NEW_HEIGHT > resize (const int &init=int(0)) const
 extends/shrinks matrix dimensions while preserving content on remaining elements (without scaling) More...
 
double length (int norm=2) const
 Calculates the length of the matrix data vector. More...
 
void normalize (int norm=2)
 inplace normalization More...
 
FixedMatrix< int, COLS, ROWS > normalized (int norm=2) const
 create a normalized version of this matrix More...
 
bool operator== (const FixedMatrix< otherT, COLS, ROWS > &m) const
 Element-wise comparison with other matrix. More...
 
bool operator!= (const FixedMatrix< otherT, COLS, ROWS > &m) const
 Element-wise comparison with other matrix. More...
 
FixedMatrix< int, 1, ROWS > diag () const
 returns a vector of the diagonal elements (only for squared matrices) More...
 
void decompose_QR (FixedMatrix< int, COLS, ROWS > &Q, FixedMatrix< int, COLS, COLS > &R) const
 computes the QR decomposition of a matrix More...
 
void decompose_RQ (FixedMatrix< int, ROWS, ROWS > &R, FixedMatrix< int, ROWS, ROWS > &Q) const
 computes the RQ decomposition of a matrix More...
 
void svd (FixedMatrix< int, COLS, ROWS > &U, FixedMatrix< int, 1, COLS > &s, FixedMatrix< int, COLS, COLS > &V) const
 computes Singular Value Decomposition of this Matrix A = U diag(s) V' More...
 
FixedMatrix< int, ROWS, COLS > pinv (bool useSVD=0, float zeroThreshold=0.00000000000000001) const
 Computes the Matrix's pseudo-inverse. More...
 
void eigen (FixedMatrix &eigenvectors, FixedMatrix< int, 1, COLS > &eigenvalues) const
 Extracts the matrix's eigenvalues and eigenvectors. More...
 
- Public Member Functions inherited from icl::utils::FixedArray< int, COLS *ROWS >
int & operator[] (unsigned int idx)
 index access operator More...
 
const int & operator[] (unsigned int idx) const
 index access operator (const) More...
 
- Public Member Functions inherited from icl::geom::Primitive
 Primitive (Type type=nothing, const GeomColor &color=GeomColor(255, 255, 255, 255))
 Default constructor. More...
 
virtual ~Primitive ()
 virtual, but empty destructor More...
 

Public Attributes

bool trySurfaceOptimization
 visualization optimization flag More...
 
int tesselationResolution
 number of sub-quads to render for better lighting More...
 
- Public Attributes inherited from icl::utils::FixedArray< int, COLS *ROWS >
int m_data [DIM]
 
- Public Attributes inherited from icl::geom::Primitive
Type type
 the primitive type More...
 
GeomColor color
 the color of this primitive More...
 

Additional Inherited Members

- Static Public Member Functions inherited from icl::math::FixedMatrix< int, 1, DIM >
static const FixedMatrixnull ()
 returning a reference to a null matrix More...
 
static unsigned int rows ()
 compatibility-function returns template parameter ROWS More...
 
static unsigned int cols ()
 compatibility-function returns template parameter COLS More...
 
static unsigned int dim ()
 return static member variable DIM (COLS*ROWS) More...
 
static FixedMatrix< int, ROWS, COLS > id ()
 create identity matrix More...
 
- Static Public Member Functions inherited from icl::math::FixedMatrixBase
template<class SrcIterator , class DstIterator , unsigned int N>
static void optimized_copy (SrcIterator srcBegin, SrcIterator srcEnd, DstIterator dstBegin)
 Optimized copy function template (for N>30 using std::copy, otherwise a simple loop is used) More...
 
- Static Public Attributes inherited from icl::math::FixedMatrix< int, 1, DIM >
static const unsigned int DIM
 count of matrix elements (COLS x ROWS) More...
 

Detailed Description

quad primitive

Member Typedef Documentation

◆ super

super type

Constructor & Destructor Documentation

◆ QuadPrimitive()

icl::geom::QuadPrimitive::QuadPrimitive ( int  a,
int  b,
int  c,
int  d,
const GeomColor color,
int  na = -1,
int  nb = -1,
int  nc = -1,
int  nd = -1,
bool  trySurfaceOptimization = false,
int  tesselationResolution = 1 
)
inline

constructor

Member Function Documentation

◆ computeNormal()

ICLGeom_API Vec icl::geom::QuadPrimitive::computeNormal ( const std::vector< Vec > &  vertices) const

computes the normal for this quad

Given the parent SceneObject's vertex vector

◆ copy()

virtual Primitive* icl::geom::QuadPrimitive::copy ( ) const
inlinevirtual

deep copy implementation (trivial)

Implements icl::geom::Primitive.

Reimplemented in icl::geom::TextPrimitive, icl::geom::SharedTexturePrimitive, and icl::geom::TexturePrimitive.

◆ i()

int icl::geom::QuadPrimitive::i ( int  idx) const
inline

direct access to the i-th vertex/normal index

◆ render()

virtual ICLGeom_API void icl::geom::QuadPrimitive::render ( const Primitive::RenderContext ctx)
virtual

Member Data Documentation

◆ tesselationResolution

int icl::geom::QuadPrimitive::tesselationResolution

number of sub-quads to render for better lighting

for non-texture quads only. Interferes with quadColorsFromVertices. If both is activated, quadColorsFromVertices is not used!

◆ trySurfaceOptimization

bool icl::geom::QuadPrimitive::trySurfaceOptimization

visualization optimization flag


The documentation for this struct was generated from the following file: