Class to define a domain. More...
#include <MeshViz/graph/PbDomain.h>
Public Types | |
enum | TransformType { TRANSFORM_01, SCALE_X_FIXED, SCALE_Y_FIXED, SCALE_Z_FIXED, SCALE_MAX_XYZ_FIXED } |
enum | BoundingBoxType { AS_IS, MIN_BOUNDING_CUBE, MAX_BOUNDED_CUBE } |
Public Member Functions | |
PbDomain () | |
PbDomain (const PbDomain &domain) | |
PbDomain (SbBox2f &box, BoundingBoxType type=AS_IS) | |
PbDomain (SbBox3f &box, BoundingBoxType type=AS_IS) | |
PbDomain (float xmin, float ymin, float xmax, float ymax, BoundingBoxType type=AS_IS) | |
PbDomain (float xmin, float ymin, float zmin, float xmax, float ymax, float zmax, BoundingBoxType type=AS_IS) | |
void | setDomain (float xmin, float ymin, float xmax, float ymax, BoundingBoxType type=AS_IS) |
void | setDomain (float xmin, float ymin, float zmin, float xmax, float ymax, float zmax, BoundingBoxType type=AS_IS) |
void | setDomain (SbBox2f &box, BoundingBoxType type=AS_IS) |
void | setDomain (SbBox3f &box, BoundingBoxType type=AS_IS) |
void | getDomain (float &xmin, float &ymin, float &xmax, float &ymax) const |
void | getDomain (float &xmin, float &ymin, float &zmin, float &xmax, float &ymax, float &zmax) const |
void | getDomain (SbBox2f &box) const |
void | getDomain (SbBox3f &box) const |
void | setTransformType (TransformType type) |
TransformType | getTransformType () const |
SoMatrixTransform * | getMatrixTransform () const |
SoTransform * | getTransform () const |
SbMatrix | getMatrix () const |
int | operator== (const PbDomain &dom) |
int | operator!= (const PbDomain &dom) |
PbDomain & | operator= (const PbDomain &domain) |
This class is used to define a 2D/3D domain. It is the reference of all Graph Master & 3D Data Master nodekits classes and some fields of these classes are expressed in a domain.
The domain usually defines the data coordinate limits of graphics to be generated. Graph Master & 3D Data Master do not calculate these limits, so this class provides them. In conceptual terms, a 2D domain (3D domain) is the smallest rectangle (parallelepiped) capable of containing the data for the image to be generated. The sides of this rectangle (parallelepiped) are parallel to the axis.Furthermore all Graph Master & 3D Data Master nodekits classes may be transformed according to the domain which they refer to.
There are five possible transformations (we note dx = xmax - xmin, dy = ymax - ymin and dz = zmax - zmin, xmin, ymin,..., zmax are the limits of the domain):
Except the first transformation type, the others compute a scaling only if the domain is heterogeneous.
All methods concerning 2D domain, set the value zmin to 0 and the value zmax to 1. By default xmin = ymin = zmin = 0, xmax = ymax = zmax = 1 and the type of transformation is SCALE_X_FIXED.
Data given by the user to define the coordinates of the domain (xmin, ymin, zmin, xmax,...) can be interpreted if the user wants to. The interpretation of these data depends on the value of the last attribute (of type BoundingBoxType) of each method for setting domain coordinates. Values for this attribute can be :
PbDomain::PbDomain | ( | ) |
Default constructor.
PbDomain::PbDomain | ( | const PbDomain & | domain | ) |
Copy constructor.
PbDomain::PbDomain | ( | SbBox2f & | box, | |
BoundingBoxType | type = AS_IS | |||
) |
Constructor of a 2D domain.
PbDomain::PbDomain | ( | SbBox3f & | box, | |
BoundingBoxType | type = AS_IS | |||
) |
Constructor of a 3D domain.
PbDomain::PbDomain | ( | float | xmin, | |
float | ymin, | |||
float | xmax, | |||
float | ymax, | |||
BoundingBoxType | type = AS_IS | |||
) |
Constructor of a 2D domain.
PbDomain::PbDomain | ( | float | xmin, | |
float | ymin, | |||
float | zmin, | |||
float | xmax, | |||
float | ymax, | |||
float | zmax, | |||
BoundingBoxType | type = AS_IS | |||
) |
Constructor of a 3D domain.
void PbDomain::getDomain | ( | SbBox3f & | box | ) | const |
Gets the 3D domain.
void PbDomain::getDomain | ( | SbBox2f & | box | ) | const |
Gets the 2D domain.
void PbDomain::getDomain | ( | float & | xmin, | |
float & | ymin, | |||
float & | zmin, | |||
float & | xmax, | |||
float & | ymax, | |||
float & | zmax | |||
) | const |
Gets the 3D domain.
void PbDomain::getDomain | ( | float & | xmin, | |
float & | ymin, | |||
float & | xmax, | |||
float & | ymax | |||
) | const |
Gets the 2D domain.
SoMatrixTransform* PbDomain::getMatrixTransform | ( | ) | const |
Get the domain transform matrix in an SoMatrixTransform object.
SoTransform* PbDomain::getTransform | ( | ) | const |
Get the domain transform matrix in an SoTransform object.
TransformType PbDomain::getTransformType | ( | ) | const [inline] |
Gets the type of transformation.
int PbDomain::operator!= | ( | const PbDomain & | dom | ) | [inline] |
Inequality comparison operator.
Assignment operator.
Reimplemented from PbBase.
int PbDomain::operator== | ( | const PbDomain & | dom | ) |
Equality comparison operator.
void PbDomain::setDomain | ( | SbBox3f & | box, | |
BoundingBoxType | type = AS_IS | |||
) |
Sets a 3D domain.
void PbDomain::setDomain | ( | SbBox2f & | box, | |
BoundingBoxType | type = AS_IS | |||
) |
Sets a 2D domain.
void PbDomain::setDomain | ( | float | xmin, | |
float | ymin, | |||
float | zmin, | |||
float | xmax, | |||
float | ymax, | |||
float | zmax, | |||
BoundingBoxType | type = AS_IS | |||
) |
Sets a 3D domain.
void PbDomain::setDomain | ( | float | xmin, | |
float | ymin, | |||
float | xmax, | |||
float | ymax, | |||
BoundingBoxType | type = AS_IS | |||
) |
Sets a 2D domain.
void PbDomain::setTransformType | ( | TransformType | type | ) |
Sets the type of transformation.
(SCALE_X_FIXED by default)