|
DGtal
1.4.2
|
The class Board3D is a type of Display3D which export the figures in the format OBJ/MTL when calling the method saveOBJ. More...
#include <DGtal/io/boards/Board3D.h>
Public Member Functions | |
| Board3D () | |
| Board3D (const KSpace &KSEmb) | |
| ~Board3D () | |
| std::string | className () const |
| void | saveOBJ (const std::string &filename, const bool isNormalized=false) |
| Board3D & | operator<< (const DGtal::Color &aColor) |
| template<typename TDrawableWithDisplay3D > | |
| Board3D & | operator<< (const TDrawableWithDisplay3D &object) |
| void | selfDisplay (std::ostream &out) const |
| bool | isValid () const |
| unsigned int | getMaterialIndex (const DGtal::Color &aColor) |
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 | |
| void | init () |
Private Attributes | |
| std::map< DGtal::Color, unsigned int > | myMaterialMap |
| Material Map. More... | |
| unsigned int | myMaterialIndex |
| Last Material index. More... | |
| std::stringstream | myMTLBuffer |
| Material buffer. More... | |
Additional Inherited Members | |
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 |
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 |
The class Board3D is a type of Display3D which export the figures in the format OBJ/MTL when calling the method saveOBJ.
The format OBJ/MTL is a geometry definition file format, this format has been adopted by many 3D graphics application vendors (pbrt, blender, etc.). to learn more about OBJ see http://en.wikipedia.org/wiki/Wavefront_.obj_file
When exporting Board3D regroup objects by they list name. If two lists have the same name they will melt in the same mesh eventually. If a list doesn't have a name the program will try to give it an unique name so it will become a separate mesh. Each list have a material description which correspond to its first element color. If two lists have the same name and merge the final mesh will have two materials (one per list).
| Space | a model of digital space (default type=Z3i::Space) |
| KSpace | a model of Khalimsky space (default type=Z3i::KSpace) |
| DGtal::Board3D< Space, KSpace >::Board3D | ( | ) |
Constructor.
|
inline |
Constructor with a khalimsky space
| KSEmb | the Khalimsky space |
Definition at line 95 of file Board3D.h.
References DGtal::Board3D< Space, KSpace >::init().
|
inline |
|
inline |
| unsigned int DGtal::Board3D< Space, KSpace >::getMaterialIndex | ( | const DGtal::Color & | aColor | ) |
Check if the material associated woth the color exists. If it does, the method returns the material index. Otherwise, the new material is created.
| aColor | a color |
|
protected |
init function (should be in Constructor).
Referenced by DGtal::Board3D< Space, KSpace >::Board3D().
| bool DGtal::Board3D< Space, KSpace >::isValid | ( | ) | const |
Checks the validity/consistency of the object.
| Board3D& DGtal::Board3D< Space, KSpace >::operator<< | ( | const DGtal::Color & | aColor | ) |
Set the default color for future drawing.
| aColor | a DGtal::Color (allow to set a trasnparency value). |
| Board3D& DGtal::Board3D< 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( Board3D & ).
| object | any drawable object. |
| void DGtal::Board3D< Space, KSpace >::saveOBJ | ( | const std::string & | filename, |
| const bool | isNormalized = false |
||
| ) |
Save a OBJ image.
| filename | filename of the image to save. |
| isNormalized | if true, we use the bounding box to scale all objects such that they fit in [-1/2,1/2]^3 domain (default false), |
Referenced by main(), TEST_CASE(), testBallQuad(), testBoard3D(), testNormaliation(), testQuadNorm(), and testShapes().
| void DGtal::Board3D< Space, KSpace >::selfDisplay | ( | std::ostream & | out | ) | const |
Writes/Displays the object on an output stream.
| out | the output stream where the object is written. |
| DGtal::Color DGtal::Board3D< Space, KSpace >::myDefaultColor |
|
private |
|
private |
|
private |