Eidolon
Classes | Typedefs | Enumerations | Functions | Variables
RenderTypes Namespace Reference

Classes

struct  AddOp
 
class  BBSetFigure
 This subtype of Figure represents a set of billboards, squares with textures in space which are oriented relative to the camera. More...
 
class  CallbackIndexBuffer
 See CallbackVertexBuffer, the same concept applies here with a buffer accepting functions defined in Cython to adapt Python code. More...
 
class  CallbackVertexBuffer
 
class  Camera
 
class  color
 Represents a Red-Green-Blue-Alpha color with float channels. Note the lack of virtual members implies no vtable pointer. More...
 
class  Config
 
class  ControlCurve
 
class  DataSet
 
struct  DivOp
 
class  Figure
 
class  GlyphFigure
 
class  GPUProgram
 Represents a GPU program (vertex/fragment/geometry shader) More...
 
class  Image
 Image objects represented loaded image files. These are used to access image data in code rather than load it into the renderer. More...
 
class  IndexBuffer
 An IndexBuffer is used by Figure objects to read in the topologies for the figures to render, and can also be subtyped in Python. More...
 
class  IndexException
 
class  Light
 
class  mat4
 
class  Material
 
class  Matrix
 
class  MatrixIndexBuffer
 Implementation of a IndexBuffer which uses matrices for storage, like MatrixVertexBuffer. More...
 
class  MatrixVertexBuffer
 
class  MemException
 
class  MetaType
 This base type provides facilities for maintaining name-value metadata pairs. More...
 
struct  MulOp
 
class  Mutex
 Simple mutex type allowing locking and attempted locking with timeout. More...
 
struct  ParseLine
 Partial templates for converting a line of text into a list of primitives/vec3. More...
 
struct  ParseLine< vec3 >
 vec3 specific case to handle turning 3 parsed values into 1 object More...
 
class  PositionQueue
 
class  quadruple
 
class  Ray
 Represents a ray emanating from a point and moving in a direction. It provides methods for doing intersection tests. More...
 
class  RenderAdapter
 
class  RenderException
 
class  RenderScene
 
class  RibbonFigure
 
class  rotator
 
class  Spectrum
 
struct  StrConvert
 Partial templates for converting strings to primitives/vec3. More...
 
struct  StrConvert< indexval >
 
struct  StrConvert< real >
 
struct  SubOp
 
struct  SwapEndian
 
struct  SwapEndian< color >
 
struct  SwapEndian< indexval >
 
struct  SwapEndian< real >
 
struct  SwapEndian< vec3 >
 
class  TextFigure
 
class  Texture
 Represents a texture loaded into memory and available to the graphis hardware. More...
 
class  TextureVolumeFigure
 
class  TimingObject
 This type is used with the TIMING and TIMINGBLOCK macros to time routine calls and code blocks, printing a time delta value to stdout. More...
 
class  transform
 
class  triple
 
class  ValueException
 
class  vec3
 The all-important 3-space vector type. Note the lack of virtual members implies no vtable pointer. More...
 
class  Vec3Curve
 
class  VertexBuffer
 

Typedefs

typedef int i32
 
typedef long long i64
 
typedef unsigned char u8
 
typedef unsigned int u32
 
typedef unsigned long long u64
 
typedef u32 sval
 
typedef double real
 
typedef u32 rgba
 
typedef u32 indexval
 
typedef std::pair< indexval, indexvalindexpair
 
typedef std::pair< real, realrealpair
 
typedef triple< real, real, realrealtriple
 
typedef std::pair< indexval, realtripleindextriple
 
typedef triple< sval, sval, realintersect
 
typedef Matrix< realRealMatrix
 
typedef Matrix< vec3Vec3Matrix
 
typedef Matrix< indexvalIndexMatrix
 
typedef Matrix< colorColorMatrix
 

Enumerations

enum  FigureType {
  FT_LINELIST = 0, FT_POINTLIST = 1, FT_TRILIST = 2, FT_TRISTRIP = 3,
  FT_BB_POINT = 4, FT_BB_FIXED_PAR = 5, FT_BB_FIXED_PERP = 6, FT_GLYPH = 7,
  FT_RIBBON = 8, FT_TEXVOLUME = 9, FT_TEXT = 10
}
 Defines the figure types which the Figure class and subclasses are capable of representing. More...
 
enum  BlendMode {
  BM_ALPHA, BM_COLOR, BM_ADD, BM_MOD,
  BM_REPLACE
}
 
enum  TextureFormat {
  TF_RGB24, TF_RGBA32, TF_ARGB32, TF_LUM8,
  TF_LUM16, TF_ALPHA8, TF_ALPHALUM8, TF_UNKNOWN
}
 
enum  ProgramType { PT_VERTEX =0, PT_FRAGMENT =1, PT_GEOMETRY =2 }
 
enum  HAlignType { H_LEFT, H_RIGHT, H_CENTER }
 
enum  VAlignType { V_TOP, V_BOTTOM, V_CENTER }
 

Functions

void initSharedDir (const std::string &path)
 
std::string getSharedDir ()
 
void addShared (const std::string &name)
 
void unlinkShared (const std::string &name)
 
void readBinaryFileToBuff (const char *filename, size_t offset, void *dest, size_t len) throw (MemException)
 Using mmap, copy the contents from file `filename' into `dest' starting `offset' bytes from the beginning. More...
 
void storeBufftoBinaryFile (const char *filename, void *src, size_t len, int *header, size_t headerlen) throw (MemException)
 Using mmap, copy the contents of `header' and then `src' into file `filename'. More...
 
void convertUByteStreamToRealMatrix (const char *stream, RealMatrix *mat)
 
void convertUShortStreamToRealMatrix (const char *stream, RealMatrix *mat)
 
void convertByteStreamToRealMatrix (const char *stream, RealMatrix *mat)
 
void convertShortStreamToRealMatrix (const char *stream, RealMatrix *mat)
 
void convertUIntStreamToRealMatrix (const char *stream, RealMatrix *mat)
 
void convertIntStreamToRealMatrix (const char *stream, RealMatrix *mat)
 
void convertFloatStreamToRealMatrix (const char *stream, RealMatrix *mat)
 
void convertRealStreamToRealMatrix (const char *stream, RealMatrix *mat)
 
std::pair< vec3, vec3calculateBoundBox (const Vec3Matrix *mat)
 
void basis_Tet1NL (real xi0, real xi1, real xi2, real *coeffs)
 Linear Nodal Lagrange tetrahedron basis function, fills in `coeffs' for the given xi value, `coeffs' must be 4 long. More...
 
void basis_Hex1NL (real xi0, real xi1, real xi2, real *coeffs)
 Linear Nodal Lagrange hexahedron basis function, fills in `coeffs' for the given xi value, `coeffs' must be 8 long. More...
 
real basis_n_NURBS (sval ctrlpt, sval degree, real xi, const RealMatrix *knots)
 
RealMatrixgetDefaultKnotMat (sval length, sval degree)
 
real scaleXiMat (real xi, sval degree, RealMatrix *knots)
 
void basis_NURBS_default (real u, real v, real w, sval ul, sval vl, sval wl, sval udegree, sval vdegree, sval wdegree, real *coeffs)
 
void catmullRomSpline (real t, real *coeffs)
 Produces the 4 coefficients for a Catmull-Rom spline in [value 1, value 2, derivative 1, derivative 2] orderings in `coeffs'. More...
 
real mat4Det (real a, real b, real c, real d, real e, real f, real g, real h, real i, real j, real k, real l, real m, real n, real o, real p)
 
bool pointInTet (vec3 pt, vec3 n1, vec3 n2, vec3 n3, vec3 n4)
 Returns true if `pt' is in the tet (n1,n2,n3,n4). More...
 
bool pointInHex (vec3 pt, vec3 n1, vec3 n2, vec3 n3, vec3 n4, vec3 n5, vec3 n6, vec3 n7, vec3 n8)
 Returns true if `pt' is in the hex defined by (n1-n8) More...
 
vec3 pointSearchLinTet (vec3 pt, vec3 n1, vec3 n2, vec3 n3, vec3 n4)
 
vec3 pointSearchLinHex (vec3 pt, vec3 n1, vec3 n2, vec3 n3, vec3 n4, vec3 n5, vec3 n6, vec3 n7, vec3 n8)
 
realtriple calculateTriPlaneSlice (const vec3 &planept, const vec3 &planenorm, const vec3 &a, const vec3 &b, const vec3 &c)
 
real calculateLinePlaneSlice (const vec3 &planept, const vec3 &planenorm, const vec3 &a, const vec3 &b)
 
real calculateTetEdgeIntersect (real val, real a, real b)
 
void calculateTetValueIntersects (real val, real a, real b, real c, real d, real *results)
 
sval calculateHexValueIntersects (real val, const real *vals, intersect *results)
 
void interpolateImageStack (const std::vector< RealMatrix *> &stack, const transform &stacktransinv, RealMatrix *out, const transform &outtrans)
 
real getImageStackValue (const std::vector< RealMatrix *> &stack, const vec3 &pos)
 
void calculateImageHistogram (const RealMatrix *img, RealMatrix *hist, i32 minv)
 
vec3calculateTriNorms (vec3 *nodes, sval numnodes, indexval *inds, sval numinds)
 
template<typename T >
_min (const T &a, const T &b)
 
template<typename T >
_max (const T &a, const T &b)
 
template<typename T >
clamp (const T &val, const T &minval, const T &maxval)
 
template<typename T >
lerpXi (const T &val, const T &minv, const T &maxv)
 
template<typename V , typename T >
lerp (const V &val, const T &v1, const T &v2)
 
template<typename T >
int compT (const T &t1, const T &t2)
 
template<typename T >
int compV (const void *t1, const void *t2)
 
template<typename T >
int sortTupleFirstCB (const void *v1, const void *v2)
 
template<typename T >
int sortTupleSecondCB (const void *v1, const void *v2)
 
template<typename T >
int sortTupleThirdCB (const void *v1, const void *v2)
 
template<typename T >
int sortTupleFourthCB (const void *v1, const void *v2)
 
bool equalsEpsilon (real v1, real v2)
 Returns true if `v1' and `v2' are within 'dEPSILON' of one another. More...
 
bool isNan (real v)
 Returns true if `v' is NaN. More...
 
real frand ()
 
real fround (real r)
 
std::string getPIDStr ()
 
std::string getPPIDStr ()
 
bool isParentProc ()
 
template<typename T >
swapEndianN (T t)
 
template<typename T >
swapEndian32 (T t)
 
template<typename T >
swapEndian64 (T t)
 
template<typename T >
void bswap (T &a, T &b)
 
void checkNull (const std::string valuename, const void *val, const char *file=NULL, int line=-1) throw (ValueException)
 
RenderAdaptergetRenderAdapter (Config *config) throw (RenderException)
 
template<typename T , typename V >
void setMatrixMinMax (Matrix< T > *mat, const V &minv, const V &maxv)
 
template<typename T >
void readTextFileMatrix (const std::string &filename, sval numHeaders, Matrix< T > *mat)
 Reads the text file into the given matrix, ignoring the header of integers and using the dimensions of `mat' to determine line width. More...
 
template<typename T >
void convertStreamToRealMatrix (const T *stream, RealMatrix *mat)
 Fill a given RealMatrix with data from the given byte stream which contains values of various types. More...
 
float calculateTetVolume (vec3 a, vec3 b, vec3 c, vec3 d)
 Returns the volume of the linear tetrahedron defined by (a,b,c,d), the volume will be negative for an inverted tet. More...
 
template<typename T >
void cubicInterpMatrices (real t, const Matrix< T > *v1, const Matrix< T > *v2, const Matrix< T > *m1, const Matrix< T > *m2, const Matrix< T > *result)
 
template<typename T >
quadruple< int, int, int, int > calculateBoundSquare (const Matrix< T > *const mat, const T &threshold)
 Returns the bounding box (minx,miny,maxx,maxy) in matrix coordinates containing all values in `mat' greater than `threshold'. More...
 
template<typename T >
sval countValuesInRange (const Matrix< T > *mat, const T &minv, const T &maxv)
 
template<typename T >
std::vector< vec3findBoundaryPoints (const Matrix< T > *mat, const T &threshold)
 
template<typename T >
sumMatrix (const Matrix< T > *mat)
 
template<typename T >
std::pair< T, T > minmaxMatrix (const Matrix< T > *mat) throw (ValueException)
 
template<typename T >
bilerpMatrix (const Matrix< T > *mat, real x, real y) throw (ValueException)
 
template<typename T >
trilerpMatrices (const Matrix< T > *mat1, const Matrix< T > *mat2, vec3 v1, vec3 v2) throw (ValueException)
 
vec3 getPlaneXi (const vec3 &pos, const vec3 &planepos, const rotator &orientinv, const vec3 &dimvec)
 

Variables

std::string shmdir =""
 
std::map< std::pair< sval, sval >, RealMatrix * > defaultKnots
 
vec3 divtets [5][4]
 
static const char * platformID =PLATFORM_ID
 
static const char * parentPIDVar ="PARENTPID"
 
static const char * RenderParamGroup ="RenderParam"
 
static const real realInf =std::numeric_limits<real>::infinity()
 

Typedef Documentation

◆ ColorMatrix

◆ i32

typedef int i32

◆ i64

typedef long long i64

◆ IndexMatrix

◆ indexpair

typedef std::pair<indexval,indexval> indexpair

◆ indextriple

typedef std::pair<indexval,realtriple> indextriple

◆ indexval

typedef u32 indexval

◆ intersect

◆ real

typedef double real

◆ RealMatrix

◆ realpair

typedef std::pair<real,real> realpair

◆ realtriple

◆ rgba

typedef u32 rgba

◆ sval

typedef u32 sval

◆ u32

typedef unsigned int u32

◆ u64

typedef unsigned long long u64

◆ u8

typedef unsigned char u8

◆ Vec3Matrix

Enumeration Type Documentation

◆ BlendMode

enum BlendMode

Possible blending modes as defined in materials, these define what operation is applied to the pixels being rendered into the scene when a figure is rendered.

Enumerator
BM_ALPHA 
BM_COLOR 
BM_ADD 
BM_MOD 
BM_REPLACE 

◆ FigureType

enum FigureType

Defines the figure types which the Figure class and subclasses are capable of representing.

Enumerator
FT_LINELIST 
FT_POINTLIST 
FT_TRILIST 
FT_TRISTRIP 
FT_BB_POINT 
FT_BB_FIXED_PAR 
FT_BB_FIXED_PERP 
FT_GLYPH 
FT_RIBBON 
FT_TEXVOLUME 
FT_TEXT 

◆ HAlignType

enum HAlignType
Enumerator
H_LEFT 
H_RIGHT 
H_CENTER 

◆ ProgramType

Enumerator
PT_VERTEX 
PT_FRAGMENT 
PT_GEOMETRY 

◆ TextureFormat

Possible texture formats defining the how many channels pixels have and how wide. For the full color component formats (RGBA, RGB, ARGB) all the channels from an input color are used when filling a texture of these types. For the luminance and/or alpha formats, the red component is used for luminance and the alpha component for alpha.

Enumerator
TF_RGB24 
TF_RGBA32 
TF_ARGB32 
TF_LUM8 
TF_LUM16 
TF_ALPHA8 
TF_ALPHALUM8 
TF_UNKNOWN 

◆ VAlignType

enum VAlignType
Enumerator
V_TOP 
V_BOTTOM 
V_CENTER 

Function Documentation

◆ _max()

T RenderTypes::_max ( const T &  a,
const T &  b 
)
Here is the caller graph for this function:

◆ _min()

T RenderTypes::_min ( const T &  a,
const T &  b 
)
Here is the caller graph for this function:

◆ addShared()

void addShared ( const std::string &  name)
Here is the caller graph for this function:

◆ basis_Hex1NL()

void basis_Hex1NL ( real  xi0,
real  xi1,
real  xi2,
real coeffs 
)

Linear Nodal Lagrange hexahedron basis function, fills in `coeffs' for the given xi value, `coeffs' must be 8 long.

Here is the caller graph for this function:

◆ basis_n_NURBS()

real basis_n_NURBS ( sval  ctrlpt,
sval  degree,
real  xi,
const RealMatrix knots 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ basis_NURBS_default()

void basis_NURBS_default ( real  u,
real  v,
real  w,
sval  ul,
sval  vl,
sval  wl,
sval  udegree,
sval  vdegree,
sval  wdegree,
real coeffs 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ basis_Tet1NL()

void basis_Tet1NL ( real  xi0,
real  xi1,
real  xi2,
real coeffs 
)

Linear Nodal Lagrange tetrahedron basis function, fills in `coeffs' for the given xi value, `coeffs' must be 4 long.

Here is the caller graph for this function:

◆ bilerpMatrix()

T RenderTypes::bilerpMatrix ( const Matrix< T > *  mat,
real  x,
real  y 
)
throw (ValueException
)
Here is the call graph for this function:

◆ bswap()

void RenderTypes::bswap ( T &  a,
T &  b 
)
Here is the caller graph for this function:

◆ calculateBoundBox()

std::pair< vec3, vec3 > calculateBoundBox ( const Vec3Matrix mat)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ calculateBoundSquare()

quadruple<int,int,int,int> RenderTypes::calculateBoundSquare ( const Matrix< T > *const  mat,
const T &  threshold 
)

Returns the bounding box (minx,miny,maxx,maxy) in matrix coordinates containing all values in `mat' greater than `threshold'.

Here is the call graph for this function:

◆ calculateHexValueIntersects()

sval calculateHexValueIntersects ( real  val,
const real vals,
intersect results 
)
Here is the caller graph for this function:

◆ calculateImageHistogram()

void calculateImageHistogram ( const RealMatrix img,
RealMatrix hist,
i32  minv 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ calculateLinePlaneSlice()

real calculateLinePlaneSlice ( const vec3 planept,
const vec3 planenorm,
const vec3 a,
const vec3 b 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ calculateTetEdgeIntersect()

real RenderTypes::calculateTetEdgeIntersect ( real  val,
real  a,
real  b 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ calculateTetValueIntersects()

void calculateTetValueIntersects ( real  val,
real  a,
real  b,
real  c,
real  d,
real results 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ calculateTetVolume()

float RenderTypes::calculateTetVolume ( vec3  a,
vec3  b,
vec3  c,
vec3  d 
)
inline

Returns the volume of the linear tetrahedron defined by (a,b,c,d), the volume will be negative for an inverted tet.

Here is the call graph for this function:

◆ calculateTriNorms()

vec3 * calculateTriNorms ( vec3 nodes,
sval  numnodes,
indexval inds,
sval  numinds 
)

Calculate the normals for triangles defined by the `nodes' array and indices `inds'. This requires that `nodes' be `numnodes' in length and `inds' be of `numinds'*3 in length where each triangle is indexed by triples of indices in `nodes'. Returns a fresh array of length `numnodes' with a normal for each node.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ calculateTriPlaneSlice()

realtriple calculateTriPlaneSlice ( const vec3 planept,
const vec3 planenorm,
const vec3 a,
const vec3 b,
const vec3 c 
)

Calculates where the edges of the triangle (a,b,c) pass through the plane defined by `planept' and `planenorm'. The three values refer to the edges a-b, a-c, and b-c respectively. If a value is positive then the first node (a or b) is above the plane, otherwise below. The value is the proportionate distance from the first node to the second where the intersection takes place, so if the first value is 0.25 then a is above the plane and the intersection is at point a+(b-a)*0.25.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ catmullRomSpline()

void catmullRomSpline ( real  t,
real coeffs 
)

Produces the 4 coefficients for a Catmull-Rom spline in [value 1, value 2, derivative 1, derivative 2] orderings in `coeffs'.

Here is the caller graph for this function:

◆ checkNull()

void RenderTypes::checkNull ( const std::string  valuename,
const void *  val,
const char *  file = NULL,
int  line = -1 
)
throw (ValueException
)
inline

◆ clamp()

T RenderTypes::clamp ( const T &  val,
const T &  minval,
const T &  maxval 
)
Here is the caller graph for this function:

◆ compT()

int RenderTypes::compT ( const T &  t1,
const T &  t2 
)
Here is the caller graph for this function:

◆ compV()

int RenderTypes::compV ( const void *  t1,
const void *  t2 
)

◆ convertByteStreamToRealMatrix()

void convertByteStreamToRealMatrix ( const char *  stream,
RealMatrix mat 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ convertFloatStreamToRealMatrix()

void convertFloatStreamToRealMatrix ( const char *  stream,
RealMatrix mat 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ convertIntStreamToRealMatrix()

void convertIntStreamToRealMatrix ( const char *  stream,
RealMatrix mat 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ convertRealStreamToRealMatrix()

void convertRealStreamToRealMatrix ( const char *  stream,
RealMatrix mat 
)
Here is the caller graph for this function:

◆ convertShortStreamToRealMatrix()

void convertShortStreamToRealMatrix ( const char *  stream,
RealMatrix mat 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ convertStreamToRealMatrix()

void RenderTypes::convertStreamToRealMatrix ( const T *  stream,
RealMatrix mat 
)

Fill a given RealMatrix with data from the given byte stream which contains values of various types.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ convertUByteStreamToRealMatrix()

void convertUByteStreamToRealMatrix ( const char *  stream,
RealMatrix mat 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ convertUIntStreamToRealMatrix()

void convertUIntStreamToRealMatrix ( const char *  stream,
RealMatrix mat 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ convertUShortStreamToRealMatrix()

void convertUShortStreamToRealMatrix ( const char *  stream,
RealMatrix mat 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ countValuesInRange()

sval RenderTypes::countValuesInRange ( const Matrix< T > *  mat,
const T &  minv,
const T &  maxv 
)
Here is the call graph for this function:

◆ cubicInterpMatrices()

void RenderTypes::cubicInterpMatrices ( real  t,
const Matrix< T > *  v1,
const Matrix< T > *  v2,
const Matrix< T > *  m1,
const Matrix< T > *  m2,
const Matrix< T > *  result 
)
Here is the call graph for this function:

◆ equalsEpsilon()

bool RenderTypes::equalsEpsilon ( real  v1,
real  v2 
)
inline

Returns true if `v1' and `v2' are within 'dEPSILON' of one another.

Here is the caller graph for this function:

◆ findBoundaryPoints()

std::vector<vec3> RenderTypes::findBoundaryPoints ( const Matrix< T > *  mat,
const T &  threshold 
)
Here is the call graph for this function:

◆ frand()

real RenderTypes::frand ( )
inline

◆ fround()

real RenderTypes::fround ( real  r)
inline
Here is the caller graph for this function:

◆ getDefaultKnotMat()

RealMatrix* RenderTypes::getDefaultKnotMat ( sval  length,
sval  degree 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getImageStackValue()

real getImageStackValue ( const std::vector< RealMatrix * > &  stack,
const vec3 pos 
)

Sample the value of the image stack at the image coordinate `pt', which must be in the unit cube otherwise 0 is returned.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getPIDStr()

std::string RenderTypes::getPIDStr ( )
inline
Here is the caller graph for this function:

◆ getPlaneXi()

vec3 RenderTypes::getPlaneXi ( const vec3 pos,
const vec3 planepos,
const rotator orientinv,
const vec3 dimvec 
)
inline

Computes the xi coordinate of `pos' on the plane defined by `planepos' as the minimum corner, `orientinv' as the inverse of is orientation, and `dimvec' as its (X,Y) scale factor (ie. quad dimensions). The result contains the 2D xi coordinate

Here is the call graph for this function:

◆ getPPIDStr()

std::string RenderTypes::getPPIDStr ( )
inline

◆ getRenderAdapter()

RenderAdapter* RenderTypes::getRenderAdapter ( Config config)
throw (RenderException
)

Returns an instance of the RenderAdapter specific to the rendering engine being used. This is not implemented in Rendertypes.[h,cpp] but in the engine itself. The `config' object is for passing in parameters to the adapter.

Here is the caller graph for this function:

◆ getSharedDir()

std::string getSharedDir ( )

◆ initSharedDir()

void initSharedDir ( const std::string &  path)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ interpolateImageStack()

void interpolateImageStack ( const std::vector< RealMatrix * > &  stack,
const transform stacktransinv,
RealMatrix out,
const transform outtrans 
)

Interpolate the data from the image volume defined by `stack' into the image `out'. The volume `stack' must be defined in a bottom-up ordering. The transform `stacktransinv' represents the inverse transform for the image stack, and `outtrans' is the transform for the image `out'.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ isNan()

bool RenderTypes::isNan ( real  v)
inline

Returns true if `v' is NaN.

◆ isParentProc()

bool RenderTypes::isParentProc ( )
inline
Here is the call graph for this function:

◆ lerp()

T RenderTypes::lerp ( const V &  val,
const T &  v1,
const T &  v2 
)
Here is the caller graph for this function:

◆ lerpXi()

T RenderTypes::lerpXi ( const T &  val,
const T &  minv,
const T &  maxv 
)
Here is the caller graph for this function:

◆ mat4Det()

real mat4Det ( real  a,
real  b,
real  c,
real  d,
real  e,
real  f,
real  g,
real  h,
real  i,
real  j,
real  k,
real  l,
real  m,
real  n,
real  o,
real  p 
)

This computes the determinant of a 4x4 matrix in the following way:

|a b c d|

DET |e f g h| |i j k l| |m n o p| = l*o*b*e - k*p*b*e - l*n*c*e + j*p*c*e + k*n*d*e - j*o*d*e - a*l*o*f + a*k*p*f + l*m*c*f - k*m*d*f + a*l*n*g - a*j*p*g - l*m*b*g + j*m*d*g - a*k*n*h + a*j*o*h + k*m*b*h - j*m*c*h - p*c*f*i + o*d*f*i + p*b*g*i - n*d*g*i - o*b*h*i + n*c*h*i

Here is the caller graph for this function:

◆ minmaxMatrix()

std::pair<T,T> RenderTypes::minmaxMatrix ( const Matrix< T > *  mat)
throw (ValueException
)
Here is the call graph for this function:

◆ pointInHex()

bool pointInHex ( vec3  pt,
vec3  n1,
vec3  n2,
vec3  n3,
vec3  n4,
vec3  n5,
vec3  n6,
vec3  n7,
vec3  n8 
)

Returns true if `pt' is in the hex defined by (n1-n8)

Here is the call graph for this function:
Here is the caller graph for this function:

◆ pointInTet()

bool pointInTet ( vec3  pt,
vec3  n1,
vec3  n2,
vec3  n3,
vec3  n4 
)

Returns true if `pt' is in the tet (n1,n2,n3,n4).

Returns true if `pt' is in the tet defined by (n1,n2,n3,n4).

Here is the call graph for this function:
Here is the caller graph for this function:

◆ pointSearchLinHex()

vec3 pointSearchLinHex ( vec3  pt,
vec3  n1,
vec3  n2,
vec3  n3,
vec3  n4,
vec3  n5,
vec3  n6,
vec3  n7,
vec3  n8 
)

This determines the xi value for the point `pt' within the hexahedron defined by (n1-n8). The algorithm embeds 5 tets within the hex and performs point search on these. This gives an exacting solution for hexes defined with coplanar faces; non-coplanar hexes have curvature which is not handled well by the tet division.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ pointSearchLinTet()

vec3 pointSearchLinTet ( vec3  pt,
vec3  n1,
vec3  n2,
vec3  n3,
vec3  n4 
)

This determines the xi value for point `pt' within the tetrahedron defined by (n1,n2,n3,n4). This relies on considering the tet to define its own coordinate space with axes n2-n1, n3-n1, and n4-n1, and where pt-n1 is a point in this space stated as the sum of multiples of these axes. In this conception the xi coordinate is the set of multipliers, thus:

pt = A * xi = | n-n1 | = | n2-n1 n3-n1 n4-n1 | * | xi | = | x-x1 | | x2-x1 x3-x1 x4-x1 | | xi1 | | y-y1 | = | y2-y1 y3-y1 y4-y1 | * | xi2 | | z-z1 | | z2-z1 z3-z1 z4-z1 | | xi3 |

Thus xi = X * A^-1

| x2-x1 x3-x1 x4-x1 |-1 | (z4-z1)(y3-y1)-(z3-z1)(y4-y1) (z3-z1)(x4-x1)-(z4-z1)(x3-x1) (y4-y1)(x3-x1)-(y3-y1)(x4-x1) | | y2-y1 y3-y1 y4-y1 | = 1/DET * | (z2-z1)(y4-y1)-(z4-z1)(y2-y1) (z4-z1)(x2-x1)-(z2-z1)(x4-x1) (y2-y1)(x4-x1)-(y4-y1)(x2-x1) | | z2-z1 z3-z1 z4-z1 | | (z3-z1)(y2-y1)-(z2-z1)(y3-y1) (z2-z1)(x3-x1)-(z3-z1)(x2-x1) (y3-y1)(x2-x1)-(y2-y1)(x3-x1) |

with DET = (x2-x1)((z4-z1)(y3-y1)-(z3-z1)(y4-y1))-(y2-y1)((z4-z1)(x3-x1)-(z3-z1)(x4-x1))+(z2-z1)((y4-y1)(x3-x1)-(y3-y1)(x4-x1))

Here is the call graph for this function:
Here is the caller graph for this function:

◆ readBinaryFileToBuff()

void readBinaryFileToBuff ( const char *  filename,
size_t  offset,
void *  dest,
size_t  len 
)
throw (MemException
)

Using mmap, copy the contents from file `filename' into `dest' starting `offset' bytes from the beginning.

Here is the caller graph for this function:

◆ readTextFileMatrix()

void RenderTypes::readTextFileMatrix ( const std::string &  filename,
sval  numHeaders,
Matrix< T > *  mat 
)

Reads the text file into the given matrix, ignoring the header of integers and using the dimensions of `mat' to determine line width.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ scaleXiMat()

real RenderTypes::scaleXiMat ( real  xi,
sval  degree,
RealMatrix knots 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ setMatrixMinMax()

void RenderTypes::setMatrixMinMax ( Matrix< T > *  mat,
const V &  minv,
const V &  maxv 
)
Here is the call graph for this function:

◆ sortTupleFirstCB()

int RenderTypes::sortTupleFirstCB ( const void *  v1,
const void *  v2 
)
Here is the call graph for this function:

◆ sortTupleFourthCB()

int RenderTypes::sortTupleFourthCB ( const void *  v1,
const void *  v2 
)
Here is the call graph for this function:

◆ sortTupleSecondCB()

int RenderTypes::sortTupleSecondCB ( const void *  v1,
const void *  v2 
)
Here is the call graph for this function:

◆ sortTupleThirdCB()

int RenderTypes::sortTupleThirdCB ( const void *  v1,
const void *  v2 
)
Here is the call graph for this function:

◆ storeBufftoBinaryFile()

void storeBufftoBinaryFile ( const char *  filename,
void *  src,
size_t  srcsize,
int *  header,
size_t  headerlen 
)
throw (MemException
)

Using mmap, copy the contents of `header' and then `src' into file `filename'.

Here is the caller graph for this function:

◆ sumMatrix()

T RenderTypes::sumMatrix ( const Matrix< T > *  mat)
Here is the call graph for this function:

◆ swapEndian32()

T RenderTypes::swapEndian32 ( t)
Here is the caller graph for this function:

◆ swapEndian64()

T RenderTypes::swapEndian64 ( t)
Here is the caller graph for this function:

◆ swapEndianN()

T RenderTypes::swapEndianN ( t)
Here is the caller graph for this function:

◆ trilerpMatrices()

T RenderTypes::trilerpMatrices ( const Matrix< T > *  mat1,
const Matrix< T > *  mat2,
vec3  v1,
vec3  v2 
)
throw (ValueException
)

Trilinearly interpolate between `mat1' and `mat2', where `v1' is a xi point on `mat1' and `v2' is a xi point on `mat2'.

The x and y components of the two points are interpreted as xi values on their respective planes. A value is derived from each through bilinear interpolation. The z components are interpreted as heights from the planes, these are used to linearly interpolate between the two interpolated points.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ unlinkShared()

void unlinkShared ( const std::string &  name)
Here is the caller graph for this function:

Variable Documentation

◆ defaultKnots

std::map<std::pair<sval,sval>,RealMatrix*> defaultKnots

◆ divtets

vec3 divtets[5][4]
Initial value:
={
{vec3(0.0, 0.0, 0.0),vec3(1.0, 0.0, 1.0),vec3(1.0, 1.0, 0.0),vec3(0.0, 1.0, 1.0)},
{vec3(0.0, 0.0, 0.0),vec3(1.0, 1.0, 0.0),vec3(0.0, 1.0, 0.0),vec3(0.0, 1.0, 1.0)},
{vec3(0.0, 0.0, 0.0),vec3(1.0, 0.0, 1.0),vec3(0.0, 1.0, 1.0),vec3(0.0, 0.0, 1.0)},
{vec3(1.0, 0.0, 1.0),vec3(1.0, 1.0, 0.0),vec3(0.0, 1.0, 1.0),vec3(1.0, 1.0, 1.0)},
{vec3(0.0, 0.0, 0.0),vec3(1.0, 0.0, 0.0),vec3(1.0, 1.0, 0.0),vec3(1.0, 0.0, 1.0)}
}

◆ parentPIDVar

const char* parentPIDVar ="PARENTPID"
static

◆ platformID

const char* platformID =PLATFORM_ID
static

◆ realInf

const real realInf =std::numeric_limits<real>::infinity()
static

◆ RenderParamGroup

const char* RenderParamGroup ="RenderParam"
static

◆ shmdir

std::string shmdir =""