DGtal
1.5.beta
|
Class for PDF, PNG, PS, EPS, SVG export drawings with Cairo with 3D->2D projection. More...
#include <DGtal/io/boards/Board3DTo2D.h>
Public Types | |
enum | CairoType { CairoPDF , CairoPNG , CairoPS , CairoEPS , CairoSVG } |
Public Types inherited from DGtal::Display3D< Z3i::Space, Z3i::KSpace > | |
enum | StreamKey |
typedef Display3D< Z3i::Space, Z3i::KSpace > | Self |
typedef Space::RealPoint | RealPoint |
RealPoint type. More... | |
typedef Space::RealVector | RealVector |
RealVector type. More... | |
typedef CanonicEmbedder< Z3i::Space > | Embedder |
typedef CanonicCellEmbedder< Z3i::KSpace > | CellEmbedder |
typedef CanonicSCellEmbedder< Z3i::KSpace > | SCellEmbedder |
typedef int(* | SelectCallbackFct) (void *viewer, DGtal::int32_t name, void *data) |
Select callback function type. More... | |
typedef std::map< DGtal::int32_t, std::vector< QuadD3D > > | QuadsMap |
The type that maps identifier name -> vector of QuadD3D. More... | |
typedef std::map< DGtal::int32_t, std::vector< CubeD3D > > | CubesMap |
The type that maps identifier name -> vector of CubeD3D. More... | |
typedef std::map< std::string, std::string > | ModeMapping |
typedef std::map< std::string, CountedPtr< DrawableWithDisplay3D > > | StyleMapping |
Public Member Functions | |
Board3DTo2D () | |
Board3DTo2D (KSpace KSEmb) | |
~Board3DTo2D () | |
std::string | className () const |
void | setCameraPosition (double x, double y, double z) |
void | setCameraDirection (double x, double y, double z) |
void | setCameraUpVector (double x, double y, double z) |
void | setNearFar (double _near, double _far) |
void | saveCairo (const char *filename, CairoType type, int bWidth, int bHeight) |
Board3DTo2D & | operator<< (const DGtal::Color &aColor) |
template<typename TDrawableWithDisplay3D > | |
Board3DTo2D & | operator<< (const TDrawableWithDisplay3D &object) |
void | selfDisplay (std::ostream &out) const |
bool | isValid () const |
Public Member Functions inherited from DGtal::Display3D< Z3i::Space, Z3i::KSpace > | |
BOOST_CONCEPT_ASSERT ((concepts::CSpace< Z3i::Space >)) | |
virtual | ~Display3D () |
Display3D (const Z3i::KSpace &KSEmb) | |
Display3D () | |
Display3D (const Display3D &)=delete | |
Copy constructor. Deleted. More... | |
Display3D (Display3D &&)=delete | |
Move constructor. Deleted. More... | |
Display3D & | operator= (const Display3D &)=delete |
Assignment operator. Deleted. More... | |
Display3D & | operator= (Display3D &&)=delete |
Move operator. Deleted. More... | |
const Embedder & | embedder () const |
const CellEmbedder & | cellEmbedder () const |
const SCellEmbedder & | sCellEmbedder () const |
const Z3i::KSpace & | space () const |
virtual void | setFillColor (DGtal::Color aColor) |
virtual void | setFillTransparency (unsigned char alpha) |
virtual void | setLineColor (DGtal::Color aColor) |
virtual DGtal::Color | getFillColor () |
virtual DGtal::Color | getLineColor () |
virtual void | setKSpace (const Z3i::KSpace &aKSpace) |
void | setName3d (DGtal::int32_t name=-1) |
DGtal::int32_t | name3d () const |
void | setSelectCallback3D (SelectCallbackFct fct, void *data, DGtal::int32_t min_name, DGtal::int32_t max_name) |
SelectCallbackFct | getSelectCallback3D (DGtal::int32_t aName, void *&data) const |
void | addClippingPlane (double a, double b, double c, double d, bool drawPlane) |
std::string | getMode (const std::string &objectName) const |
void | createNewLineList (std::string s="") |
void | createNewBallList (std::string s="") |
DGtal::int32_t | createNewCubeList () |
bool | deleteCubeList (const DGtal::int32_t name) |
DGtal::int32_t | createNewQuadList () |
bool | deleteQuadList (const DGtal::int32_t name) |
void | createNewTriangleList (std::string s="") |
void | createNewPolygonList (std::string s="") |
void | addQuad (const RealPoint &p1, const RealPoint &p2, const RealPoint &p3, const RealPoint &p4) |
void | addQuadWithNormal (const RealPoint &p1, const RealPoint &p2, const RealPoint &p3, const RealPoint &p4, const RealPoint &n, const bool enableReorientation, const bool enableDoubleFace=false) |
void | addQuadFromSurfelCenter (const RealPoint &baseQuadCenter, bool xSurfel, bool ySurfel, bool zSurfel) |
void | addQuadFromSurfelCenterWithNormal (const RealPoint &baseQuadCenter, bool xSurfel, bool ySurfel, bool zSurfel, const RealVector &aNormal, const bool enableReorientation, const bool sign, const bool enableDoubleFace=false) |
void | addTriangle (const RealPoint &p1, const RealPoint &p2, const RealPoint &p3) |
void | addPolygon (const std::vector< RealPoint > &vertices) |
void | addLine (const RealPoint &p1, const RealPoint &p2, const double width=0.03) |
void | addCube (const RealPoint ¢er, double width=1.0) |
void | addBall (const RealPoint ¢er, const double radius=0.5, const unsigned int resolution=30) |
void | addPrism (const RealPoint &baseQuadCenter, bool xSurfel, bool ySurfel, bool zSurfel, double sizeShiftFactor, double sizeFactor=1.0, bool isSigned=false, bool aSign=true) |
void | addBasicSurfel (const RealPoint &baseQuadCenter, bool xSurfel, bool ySurfel, bool zSurfel) |
void | addCone (const RealPoint &p1, const RealPoint &p2, double width=0.08) |
void | addCylinder (const RealPoint &p1, const RealPoint &p2, const double width=0.02) |
void | updateBoundingBox (const RealPoint &point) |
void | exportToMesh (Mesh< RealPoint > &aMesh) const |
Display3D & | operator<< (const TDrawableWithDisplay3D &object) |
void | selfDisplay (std::ostream &out) const |
bool | isValid () const |
void | clear () |
RealPoint | embed (const typename Space::Point &dp) const |
RealPoint | embedKS (const typename KSpace::SCell &cell) const |
RealPoint | embedKS (const DGtal::TransformedPrism &aTrans) const |
RealPoint | embedK (const typename KSpace::Cell &cell) const |
Data Fields | |
DGtal::Color | myDefaultColor |
default color More... | |
Data Fields inherited from DGtal::Display3D< Z3i::Space, Z3i::KSpace > | |
ModeMapping | myModes |
StyleMapping | myStyles |
bool | myBoundingPtEmptyTag |
True if the bounding box is empty (no objects added) More... | |
double | myBoundingPtUp [3] |
upper point of the bounding box More... | |
double | myBoundingPtLow [3] |
lower point of the bouding box More... | |
Protected Member Functions | |
virtual void | init () |
Private Member Functions | |
BOOST_CONCEPT_ASSERT ((concepts::CSpace< Space >)) | |
void | precompute_projection_matrix () |
void | project (double x3d, double y3d, double z3d, double &x2d, double &y2d) |
Static Private Member Functions | |
static void | TransposeMt (double tmat[16], double mat[16]) |
static void | MulMt (double v[4], double mat[16], double b[4]) |
static void | LookAtMt (double mat[16], double eyex, double eyey, double eyez, double dirx, double diry, double dirz, double upx, double upy, double upz) |
Private Attributes | |
int | Viewport [4] |
2D viewport More... | |
double | matrix [16] |
projection matrix More... | |
double | camera_position [3] |
camera position More... | |
double | camera_direction [3] |
camera direction More... | |
double | camera_upVector [3] |
camera up-vector More... | |
double | ZNear |
znear distance More... | |
double | ZFar |
zfar distance More... | |
Additional Inherited Members | |
Static Protected Member Functions inherited from DGtal::Display3D< Z3i::Space, Z3i::KSpace > | |
static void | cross (double dst[3], double srcA[3], double srcB[3]) |
static void | normalize (double vec[3]) |
Protected Attributes inherited from DGtal::Display3D< Z3i::Space, Z3i::KSpace > | |
Z3i::KSpace | myKSpace |
The Khalimsky space. More... | |
Embedder * | myEmbedder |
an embeder from a dgtal space point to a real space point More... | |
CellEmbedder * | myCellEmbedder |
an embeder from a unsigned khalimsky space point to a real space point More... | |
SCellEmbedder * | mySCellEmbedder |
an embeder from a signed khalimsky space point to a real space point More... | |
DGtal::Color | myCurrentFillColor |
DGtal::Color | myCurrentLineColor |
double | myCurrentfShiftVisuPrisms |
std::vector< std::vector< LineD3D > > | myLineSetList |
std::vector< std::vector< BallD3D > > | myBallSetList |
std::vector< ClippingPlaneD3D > | myClippingPlaneList |
std::vector< QuadD3D > | myPrismList |
QuadsMap | myQuadsMap |
std::vector< std::vector< TriangleD3D > > | myTriangleSetList |
Represents all the triangles drawn in the Display3D. More... | |
std::vector< std::vector< PolygonD3D > > | myPolygonSetList |
Represents all the polygon drawn in the Display3D. More... | |
CubesMap | myCubesMap |
std::vector< std::string > | myCubeSetNameList |
std::vector< std::string > | myLineSetNameList |
std::vector< std::string > | myBallSetNameList |
std::vector< std::string > | myClippingPlaneNameList |
std::vector< std::string > | myPrismNameList |
std::vector< std::string > | myQuadSetNameList |
std::vector< std::string > | myTriangleSetNameList |
std::vector< std::string > | myPolygonSetNameList |
DGtal::int32_t | myName3d |
std::set< SelectCallbackFctStore > | mySelectCallBackFcts |
bool | myBoundingPtChangedTag |
Class for PDF, PNG, PS, EPS, SVG export drawings with Cairo with 3D->2D projection.
Description of class 'Board3DTo2D'
Definition at line 70 of file Board3DTo2D.h.
enum DGtal::Board3DTo2D::CairoType |
Cairo type for save files.
Enumerator | |
---|---|
CairoPDF | |
CairoPNG | |
CairoPS | |
CairoEPS | |
CairoSVG |
Definition at line 82 of file Board3DTo2D.h.
DGtal::Board3DTo2D< Space, KSpace >::Board3DTo2D | ( | ) |
Constructor.
|
inline |
Constructor with a khalimsky space
KSEmb | the Khalimsky space |
Definition at line 93 of file Board3DTo2D.h.
References DGtal::Board3DTo2D< Space, KSpace >::init().
|
inline |
Definition at line 100 of file Board3DTo2D.h.
|
private |
|
inline |
Definition at line 106 of file Board3DTo2D.h.
|
protectedvirtual |
init function (should be in Constructor).
Referenced by DGtal::Board3DTo2D< Space, KSpace >::Board3DTo2D().
bool DGtal::Board3DTo2D< Space, KSpace >::isValid | ( | ) | const |
Checks the validity/consistency of the object.
|
staticprivate |
Compute 4x4 LookAt matrix.
mat | destination matrix. |
eyex | x position of eye. |
eyey | y position of eye. |
eyez | z position of eye. |
dirx | x direction of eye. |
diry | y direction of eye. |
dirz | z director of eye. |
upx | x coordinate of up-vector. |
upy | y coordinate of up-vector. |
upz | z coordinate of up-vector. |
|
staticprivate |
Multiply a 3d vector by a 4x4 matrix.
v | destination vector. |
mat | source matrix. |
b | source vector. |
Board3DTo2D& DGtal::Board3DTo2D< Space, KSpace >::operator<< | ( | const DGtal::Color & | aColor | ) |
Set the default color for future drawing.
aColor | a DGtal::Color (allow to set a trasnparency value). |
Board3DTo2D& DGtal::Board3DTo2D< Space, KSpace >::operator<< | ( | const TDrawableWithDisplay3D & | object | ) |
Draws the drawable [object] in this board. It should satisfy the concept CDrawableWithDisplay3D, which requires for instance a method setStyle( Board3DTo2D & ).
object | any drawable object. |
|
private |
Precompute 4x4 projection matrix for 3D->2D projection.
|
private |
Project a 3d point (3D->2D).
x3d | x position of the 3d point. |
y3d | y position of the 3d point. |
z3d | z position of the 3d point. |
x2d | x destination projection position of the 2d point. |
y2d | y destination projection position of the 2d point. |
void DGtal::Board3DTo2D< Space, KSpace >::saveCairo | ( | const char * | filename, |
CairoType | type, | ||
int | bWidth, | ||
int | bHeight | ||
) |
Save a Cairo image.
filename | filename of the image to save. |
type | type of the image to save (CairoPDF, CairoPNG, CairoPS, CairoEPS, CairoSVG). |
bWidth | width of the image to save. |
bHeight | height of the image to save. |
Referenced by main().
void DGtal::Board3DTo2D< Space, KSpace >::selfDisplay | ( | std::ostream & | out | ) | const |
Writes/Displays the object on an output stream.
out | the output stream where the object is written. |
|
inline |
Set camera direction.
x | x direction. |
y | y direction. |
z | z direction. |
Definition at line 126 of file Board3DTo2D.h.
References DGtal::Board3DTo2D< Space, KSpace >::camera_direction.
|
inline |
Set camera position.
x | x position. |
y | y position. |
z | z position. |
Definition at line 117 of file Board3DTo2D.h.
References DGtal::Board3DTo2D< Space, KSpace >::camera_position.
|
inline |
Set camera up-vector.
x | x coordinate of up-vector. |
y | y coordinate of up-vector. |
z | z coordinate of up-vector. |
Definition at line 135 of file Board3DTo2D.h.
References DGtal::Board3DTo2D< Space, KSpace >::camera_upVector.
|
inline |
Set near and far distance, too near or too far end up not visible.
_near | near distance. |
_far | far distance. |
Definition at line 143 of file Board3DTo2D.h.
References DGtal::Board3DTo2D< Space, KSpace >::ZFar, and DGtal::Board3DTo2D< Space, KSpace >::ZNear.
|
staticprivate |
Transpose a 4x4 matrix.
tmat | destination matrix. |
mat | source matrix. |
|
private |
camera direction
Definition at line 266 of file Board3DTo2D.h.
Referenced by DGtal::Board3DTo2D< Space, KSpace >::setCameraDirection().
|
private |
camera position
Definition at line 265 of file Board3DTo2D.h.
Referenced by DGtal::Board3DTo2D< Space, KSpace >::setCameraPosition().
|
private |
camera up-vector
Definition at line 267 of file Board3DTo2D.h.
Referenced by DGtal::Board3DTo2D< Space, KSpace >::setCameraUpVector().
|
private |
projection matrix
Definition at line 263 of file Board3DTo2D.h.
DGtal::Color DGtal::Board3DTo2D< Space, KSpace >::myDefaultColor |
default color
The associated map type for storing possible modes used for displaying for digital objects.
Definition at line 169 of file Board3DTo2D.h.
|
private |
2D viewport
Definition at line 262 of file Board3DTo2D.h.
|
private |
zfar distance
Definition at line 270 of file Board3DTo2D.h.
Referenced by DGtal::Board3DTo2D< Space, KSpace >::setNearFar().
|
private |
znear distance
Definition at line 269 of file Board3DTo2D.h.
Referenced by DGtal::Board3DTo2D< Space, KSpace >::setNearFar().