DGtal  0.6.devel
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Public Member Functions | Static Public Member Functions
DGtal::Display3DFactory Struct Reference

#include <Display3DFactory.h>

Public Member Functions

template<typename TV>
void draw (Display3D &display, const DGtal::SphericalAccumulator< TV > &aAccumulator, const typename DGtal::SphericalAccumulator< TV >::RealVector &shift, const double radius)

Static Public Member Functions

template<typename TVector >
static void draw (Display3D &display, const DGtal::SphericalAccumulator< TVector > &accumulator, const typename DGtal::SphericalAccumulator< TVector >::RealVector &shift=typename DGtal::SphericalAccumulator< TVector >::RealVector(0, 0, 0), const double radius=1.0)
template<typename TPoint >
static void drawAsFaces (Display3D &display, const DGtal::MeshFromPoints< TPoint > &)
template<typename TPoint >
static void draw (Display3D &display, const DGtal::MeshFromPoints< TPoint > &)
template<typename TIterator , typename TInteger , int connectivity>
static
DGtal::DrawableWithDisplay3D
defaultStyle (std::string, const DGtal::ArithmeticalDSS3d< TIterator, TInteger, connectivity > &)
template<typename TIterator , typename TInteger , int connectivity>
static void drawAsPoints (Display3D &display, const DGtal::ArithmeticalDSS3d< TIterator, TInteger, connectivity > &)
template<typename TIterator , typename TInteger , int connectivity>
static void drawAsBoundingBox (Display3D &display, const DGtal::ArithmeticalDSS3d< TIterator, TInteger, connectivity > &)
template<typename TIterator , typename TInteger , int connectivity>
static void draw (Display3D &display, const DGtal::ArithmeticalDSS3d< TIterator, TInteger, connectivity > &)
template<typename Domain >
static
DGtal::DrawableWithDisplay3D
defaultStyle (std::string, const DGtal::DigitalSetBySTLSet< Domain > &)
template<typename Domain >
static void drawAsPavingTransparent (Display3D &display, const DGtal::DigitalSetBySTLSet< Domain > &)
template<typename Domain >
static void drawAsPaving (Display3D &display, const DGtal::DigitalSetBySTLSet< Domain > &)
template<typename Domain >
static void drawAsGrid (Display3D &display, const DGtal::DigitalSetBySTLSet< Domain > &)
template<typename Domain >
static void draw (Display3D &display, const DGtal::DigitalSetBySTLSet< Domain > &)
template<typename Domain >
static
DGtal::DrawableWithDisplay3D
defaultStyle (std::string, const DGtal::DigitalSetBySTLVector< Domain > &)
template<typename Domain >
static void drawAsPavingTransparent (Display3D &display, const DGtal::DigitalSetBySTLVector< Domain > &)
template<typename Domain >
static void drawAsPaving (Display3D &display, const DGtal::DigitalSetBySTLVector< Domain > &)
template<typename Domain >
static void drawAsGrid (Display3D &display, const DGtal::DigitalSetBySTLVector< Domain > &)
template<typename Domain >
static void draw (Display3D &display, const DGtal::DigitalSetBySTLVector< Domain > &)
template<typename TSpace >
static
DGtal::DrawableWithDisplay3D
defaultStyle (std::string, const DGtal::HyperRectDomain< TSpace > &)
template<typename TSpace >
static void drawAsBoundingBox (Display3D &display, const DGtal::HyperRectDomain< TSpace > &)
template<typename TSpace >
static void drawAsGrid (Display3D &display, const DGtal::HyperRectDomain< TSpace > &)
template<typename TSpace >
static void drawAsPavingPoints (Display3D &display, const DGtal::HyperRectDomain< TSpace > &)
template<typename TSpace >
static void drawAsPaving (Display3D &display, const DGtal::HyperRectDomain< TSpace > &)
template<typename TSpace >
static void draw (Display3D &display, const DGtal::HyperRectDomain< TSpace > &)
template<Dimension dim, typename TInteger >
static
DGtal::DrawableWithDisplay3D
defaultStyle (std::string, const DGtal::KhalimskyCell< dim, TInteger > &)
template<Dimension dim, typename TInteger >
static void draw (Display3D &display, const DGtal::KhalimskyCell< dim, TInteger > &)
template<typename TDigitalTopology , typename TDigitalSet >
static
DGtal::DrawableWithDisplay3D
defaultStyle (std::string, const DGtal::Object< TDigitalTopology, TDigitalSet > &)
template<typename TDigitalTopology , typename TDigitalSet >
static void drawWithAdjacencies (Display3D &display, const DGtal::Object< TDigitalTopology, TDigitalSet > &)
template<typename TDigitalTopology , typename TDigitalSet >
static void draw (Display3D &display, const DGtal::Object< TDigitalTopology, TDigitalSet > &)
template<Dimension dim, typename TComponent >
static
DGtal::DrawableWithDisplay3D
defaultStyle (std::string, const DGtal::PointVector< dim, TComponent > &)
template<Dimension dim, typename TComponent >
static void drawAsGrid (Display3D &display, const DGtal::PointVector< dim, TComponent > &)
template<Dimension dim, typename TComponent >
static void drawAsPaving (Display3D &display, const DGtal::PointVector< dim, TComponent > &)
template<Dimension dim, typename TComponent >
static void drawAsPavingWired (Display3D &display, const DGtal::PointVector< dim, TComponent > &)
template<Dimension dim, typename TComponent >
static void draw (Display3D &display, const DGtal::PointVector< dim, TComponent > &)
template<Dimension dim, typename TComponent >
static void draw (Display3D &display, const DGtal::PointVector< dim, TComponent > &, const DGtal::PointVector< dim, TComponent > &)
template<Dimension dim, typename TInteger >
static
DGtal::DrawableWithDisplay3D
defaultStyle (std::string, const DGtal::SignedKhalimskyCell< dim, TInteger > &)
template<Dimension dim, typename TInteger >
static void draw (Display3D &display, const DGtal::SignedKhalimskyCell< dim, TInteger > &)
template<typename TKSpace >
static void draw (Display3D &display, const DGtal::GridCurve< TKSpace > &)
template<typename TIterator , typename TSCell >
static void draw (DGtal::Display3D &display, const DGtal::ConstRangeAdapter< TIterator, DGtal::DefaultFunctor, TSCell > &)
template<typename TIterator , typename TKSpace >
static void draw (Display3D &display, const DGtal::ConstRangeAdapter< TIterator, SCellToPoint< TKSpace >, typename TKSpace::Point > &)
template<typename TIterator , typename TKSpace >
static void draw (Display3D &display, const DGtal::ConstRangeAdapter< TIterator, SCellToMidPoint< TKSpace >, typename TKSpace::Space::RealPoint > &)
template<typename TIterator , typename TKSpace >
static void draw (Display3D &display, const DGtal::ConstRangeAdapter< TIterator, SCellToArrow< TKSpace >, std::pair< typename TKSpace::Point, typename TKSpace::Vector > > &)
template<typename TIterator , typename TKSpace >
static void draw (Display3D &display, const DGtal::ConstRangeAdapter< TIterator, SCellToInnerPoint< TKSpace >, typename TKSpace::Point > &)
template<typename TIterator , typename TKSpace >
static void draw (Display3D &display, const DGtal::ConstRangeAdapter< TIterator, SCellToOuterPoint< TKSpace >, typename TKSpace::Point > &)
template<typename TIterator , typename TKSpace >
static void draw (Display3D &display, const DGtal::ConstRangeAdapter< TIterator, SCellToIncidentPoints< TKSpace >, std::pair< typename TKSpace::Point, typename TKSpace::Point > > &)
static void draw (Display3D &display, const DGtal::SetMode3D &)
static void draw (Display3D &display, const DGtal::CustomStyle3D &)
static void draw (Display3D &display, const DGtal::CustomColors3D &)
static void draw (Display3D &display, const DGtal::ClippingPlane &)
static void draw (Display3D &display, const DGtal::CameraPosition &)
static void draw (Display3D &display, const DGtal::CameraDirection &)
static void draw (Display3D &display, const DGtal::CameraUpVector &)
static void draw (Display3D &display, const DGtal::CameraZNearFar &)
static void draw (Display3D &display, const DGtal::TransformedKSSurfel &aTransformedKSSurfel)

Detailed Description

Factory for GPL Display3D:

Description of struct 'Display3DFactory'

Definition at line 74 of file Display3DFactory.h.


Member Function Documentation

template<typename TIterator , typename TInteger , int connectivity>
static DGtal::DrawableWithDisplay3D* DGtal::Display3DFactory::defaultStyle ( std::string  ,
const DGtal::ArithmeticalDSS3d< TIterator, TInteger, connectivity > &   
)
static

Default drawing style object.

Returns:
the dyn. alloc. default style for this object.
template<typename Domain >
static DGtal::DrawableWithDisplay3D* DGtal::Display3DFactory::defaultStyle ( std::string  ,
const DGtal::DigitalSetBySTLSet< Domain > &   
)
static

Default drawing style object.

Returns:
the dyn. alloc. default style for this object.
template<typename Domain >
static DGtal::DrawableWithDisplay3D* DGtal::Display3DFactory::defaultStyle ( std::string  ,
const DGtal::DigitalSetBySTLVector< Domain > &   
)
static

Default drawing style object.

Returns:
the dyn. alloc. default style for this object.
template<typename TSpace >
static DGtal::DrawableWithDisplay3D* DGtal::Display3DFactory::defaultStyle ( std::string  ,
const DGtal::HyperRectDomain< TSpace > &   
)
static

Default drawing style object.

Returns:
the dyn. alloc. default style for this object.
template<Dimension dim, typename TInteger >
static DGtal::DrawableWithDisplay3D* DGtal::Display3DFactory::defaultStyle ( std::string  ,
const DGtal::KhalimskyCell< dim, TInteger > &   
)
static

Default drawing style object.

Returns:
the dyn. alloc. default style for this object.
template<typename TDigitalTopology , typename TDigitalSet >
static DGtal::DrawableWithDisplay3D* DGtal::Display3DFactory::defaultStyle ( std::string  ,
const DGtal::Object< TDigitalTopology, TDigitalSet > &   
)
static
template<Dimension dim, typename TComponent >
static DGtal::DrawableWithDisplay3D* DGtal::Display3DFactory::defaultStyle ( std::string  ,
const DGtal::PointVector< dim, TComponent > &   
)
static

Default drawing style object.

Returns:
the dyn. alloc. default style for this object.
template<Dimension dim, typename TInteger >
static DGtal::DrawableWithDisplay3D* DGtal::Display3DFactory::defaultStyle ( std::string  ,
const DGtal::SignedKhalimskyCell< dim, TInteger > &   
)
static

Default drawing style object.

Returns:
the dyn. alloc. default style for this object.
template<typename TV>
void DGtal::Display3DFactory::draw ( Display3D display,
const DGtal::SphericalAccumulator< TV > &  aAccumulator,
const typename DGtal::SphericalAccumulator< TV >::RealVector &  shift,
const double  radius 
)
inline

Definition at line 41 of file Display3DFactory.ih.

References DGtal::Display3D::addQuad(), DGtal::SphericalAccumulator< TVector >::begin(), DGtal::SphericalAccumulator< TVector >::binCoordinates(), DGtal::SphericalAccumulator< TVector >::count(), DGtal::SphericalAccumulator< TVector >::end(), DGtal::Trace::error(), DGtal::SphericalAccumulator< TVector >::getBinGeometry(), DGtal::SphericalAccumulator< TVector >::isValidBin(), and DGtal::trace.

{
Size i,j;
DGtal::int32_t m = 1, M=0;
for(typename DGtal::SphericalAccumulator<TV>::ConstIterator it = aAccumulator.begin(),
itend= aAccumulator.end(); it != itend; ++it)
{
aAccumulator.binCoordinates(it, i,j);
if (aAccumulator.isValidBin(i,j))
{
if (aAccumulator.count(i,j) > M) M=aAccumulator.count(i,j);
if (aAccumulator.count(i,j) < m) m=aAccumulator.count(i,j);
}
}
trace.error()<<" min= "<<m <<" Max="<<M<<std::endl;
HueShadeColorMap<typename DGtal::SphericalAccumulator<TV>::Quantity> cmap(m,M+1);
for(typename DGtal::SphericalAccumulator<TV>::ConstIterator it = aAccumulator.begin(),
itend= aAccumulator.end(); it != itend; ++it)
{
aAccumulator.binCoordinates(it, i,j);
if (aAccumulator.isValidBin(i,j))
{
aAccumulator.binCoordinates(it, i,j);
aAccumulator.getBinGeometry(i,j,a,b,c,d);
a+= shift;
b+= shift;
c+= shift;
d+= shift;
a = a*radius;
b = b*radius;
c = c*radius;
d = d*radius;
display.addQuad(a[0], a[1], a[2],
b[0], b[1], b[2],
c[0], c[1], c[2],
d[0], d[1], d[2],
cmap(aAccumulator.count(i,j)));
}
}
}
template<typename TVector >
static void DGtal::Display3DFactory::draw ( Display3D display,
const DGtal::SphericalAccumulator< TVector > &  accumulator,
const typename DGtal::SphericalAccumulator< TVector >::RealVector &  shift = typename DGtal::SphericalAccumulator< TVector >::RealVector(0, 0, 0),
const double  radius = 1.0 
)
static

Display an spherical accumulator in 3D. Bin values are mapped using a default HueShadeColorMap.

Parameters:
displaycurrent display
accumulatorthe accumulator to display
shifttranslate vector for display purposes (default: zero vector)
radiusscale factor for the unit sphere radius (default:1)
Template Parameters:
Vectora vector model

Referenced by DGtal::Board3DTo2D::operator<<(), DGtal::Viewer3D::operator<<(), and DGtal::Display3D::operator<<().

template<typename TPoint >
void DGtal::Display3DFactory::draw ( Display3D display,
const DGtal::MeshFromPoints< TPoint > &  aMesh 
)
inlinestatic

Definition at line 94 of file Display3DFactory.ih.

References DGtal::MeshFromPoints< TPoint >::className(), and DGtal::Display3D::getMode().

{
std::string mode = display.getMode( aMesh.className() );
if ( mode == "Faces" || mode=="")
drawAsFaces( display, aMesh );
}
template<typename TIterator , typename TInteger , int connectivity>
void DGtal::Display3DFactory::draw ( Display3D display,
const DGtal::ArithmeticalDSS3d< TIterator, TInteger, connectivity > &  a 
)
inlinestatic

Definition at line 321 of file Display3DFactory.ih.

References DGtal::ArithmeticalDSS3d< TIterator, TInteger, connectivity >::className(), and DGtal::Display3D::getMode().

{
std::string mode = display.getMode( a.className() );
if ( mode == "BoundingBox" )
drawAsBoundingBox( display, a );
else if ( mode == "Points" )
drawAsPoints( display, a );
else if ( ( mode == "" ) )
{
drawAsPoints( display, a );
}
}
template<typename Domain >
void DGtal::Display3DFactory::draw ( Display3D display,
const DGtal::DigitalSetBySTLSet< Domain > &  s 
)
inlinestatic

Definition at line 407 of file Display3DFactory.ih.

References DGtal::DigitalSetBySTLSet< TDomain >::className(), and DGtal::Display3D::getMode().

{
ASSERT(Domain::Space::dimension == 3);
std::string mode = display.getMode( s.className() );
ASSERT( (mode=="Paving" || mode=="PavingTransp" || mode=="Grid" || mode=="Both" || mode=="") );
if ( mode == "Paving" || ( mode == "" ) )
drawAsPaving( display, s );
else if ( mode == "PavingTransp" )
drawAsPavingTransparent( display, s );
else if ( mode == "Grid" )
drawAsGrid( display, s );
else if ( ( mode == "Both" ) )
{
drawAsPaving( display, s );
drawAsGrid( display, s );
}
}
template<typename Domain >
void DGtal::Display3DFactory::draw ( Display3D display,
const DGtal::DigitalSetBySTLVector< Domain > &  v 
)
inlinestatic

Definition at line 498 of file Display3DFactory.ih.

References DGtal::DigitalSetBySTLVector< TDomain >::className(), and DGtal::Display3D::getMode().

{
ASSERT(Domain::Space::dimension == 3);
std::string mode = display.getMode( v.className() );
ASSERT( (mode=="Paving" || mode=="PavingTransp" || mode=="Grid" || mode=="Both" || mode=="") );
if ( mode == "Paving" || ( mode == "" ) )
drawAsPaving( display, v );
else if ( mode == "PavingTransp" )
drawAsPavingTransparent( display, v );
else if ( mode == "Grid" )
drawAsGrid( display, v );
else if ( ( mode == "Both" ) )
{
drawAsPaving( display, v);
drawAsGrid( display, v );
}
}
template<typename TSpace >
void DGtal::Display3DFactory::draw ( Display3D display,
const DGtal::HyperRectDomain< TSpace > &  h 
)
inlinestatic

Definition at line 745 of file Display3DFactory.ih.

References DGtal::HyperRectDomain< TSpace >::className(), DGtal::Display3D::createNewLineList(), DGtal::Display3D::createNewPointList(), DGtal::Display3D::createNewVoxelList(), and DGtal::Display3D::getMode().

{
std::string mode = display.getMode( h.className() );
ASSERT((mode=="" || mode=="Grid" || mode=="Paving"|| mode=="PavingPoints"|| mode=="PavingGrids" ||
mode=="BoundingBox")||
("DGtal::Display3DFactory::draw( Display3D & display, const DGtal::HyperRectDomain<TSpace> & h ): Unknown mode "+mode)=="");
if ( mode == "BoundingBox" ){
display.createNewLineList();
drawAsBoundingBox( display, h );
}else if( ( mode == "" ) || (mode == "Grid")){
display.createNewLineList();
drawAsGrid( display, h );
}
else if ( mode == "Paving" ){
display.createNewVoxelList(false);
drawAsPaving( display, h );
} else if ( mode == "PavingPoints" ){
display.createNewPointList();
drawAsPavingPoints( display, h );
}else if ( mode == "PavingGrids" ){
display.createNewLineList();
display.createNewVoxelList(false);
drawAsGrid( display, h );
drawAsPaving( display, h );
}
}
template<Dimension dim, typename TInteger >
void DGtal::Display3DFactory::draw ( Display3D display,
const DGtal::KhalimskyCell< dim, TInteger > &  k 
)
inlinestatic

Definition at line 781 of file Display3DFactory.ih.

References DGtal::Display3D::addKSLinel(), DGtal::Display3D::addKSPointel(), DGtal::Display3D::addKSSurfel(), DGtal::Display3D::addKSVoxel(), DGtal::NumberTraits< T >::castToInt64_t(), DGtal::KhalimskyCell< dim, TInteger >::className(), DGtal::Display3D::getFillColor(), DGtal::Display3D::getMode(), DGtal::KhalimskyCell< dim, TInteger >::myCoordinates, and DGtal::Display3D::setFillColor().

{
ASSERT(dim == 3);
DGtal::Color fillColorSave = display.getFillColor();
std::string mode = display.getMode( k.className() );
ASSERT((mode=="" || mode=="Highlighted" || mode=="Transparent"|| mode=="Basic"|| mode=="Illustration"||mode=="IllustrationCustomColor")||
("DGtal::Display3DFactory::draw( Display3D & display, const DGtal::KhalimskyCell<dim, TInteger> & k ): Unknown mode "+mode)=="");
// used to display surfels located at a same position.
double factorVolSurfel=1.0;
bool basicMode=false;
if(mode=="Highlighted"){
factorVolSurfel = 1.1;
display.setFillColor(DGtal::Color(255, 50, 50, 255));
}else if(mode=="Transparent"){
display.setFillColor(DGtal::Color(180, 180, 250, 25));
}else if(mode=="Basic"){
basicMode=true;
}
double x = (double) (NumberTraits<TInteger>::castToInt64_t( k.myCoordinates[0] ) >> 1 );
double y = (double)( NumberTraits<TInteger>::castToInt64_t( k.myCoordinates[1] ) >> 1) ;
double z =(double) (NumberTraits<TInteger>::castToInt64_t( k.myCoordinates[2] ) >> 1 );
unsigned int spaceDim= (xodd ? 1:0) + (yodd ? 1:0) + (zodd ? 1:0);
switch (spaceDim) {
case 0:
if(mode!=""&& mode!="IllustrationCustomColor"){
display.setFillColor(DGtal::Color(200, 20, 20, 255));
}
display.addKSPointel(x-0.5, y-0.5, z-0.5, 0.05, false, false);
break;
case 1:
if(mode!=""&& mode!="IllustrationCustomColor"){
display.setFillColor(DGtal::Color(20, 20, 200, 255));
}
display.addKSLinel(x-0.5, y-0.5, z-0.5, x+ (xodd? 0.5:-0.5 ),y+ (yodd? 0.5:-0.5 ), z+ (zodd? 0.5:-0.5 ));
break;
case 2:
if(mode!="" && mode!="IllustrationCustomColor"){
display.setFillColor(DGtal::Color(20, 20, 200, 255));
}
display.addKSSurfel(x, y, z,! xodd, !yodd, !zodd, factorVolSurfel, 0.0,1.0, false, false, basicMode);
break;
case 3:
if(mode!="" && mode!="IllustrationCustomColor"){
display.setFillColor(DGtal::Color(255, 180, 250, 255));
}
if(mode=="Illustration"|| mode=="IllustrationCustomColor"){
display.addKSVoxel((int)x, (int) y, (int) z, 0.7);
}else{
display.addKSVoxel((int)x, (int) y, (int) z);
}
break;
}
display.setFillColor(fillColorSave);
}
template<typename TDigitalTopology, typename TDigitalSet >
void DGtal::Display3DFactory::draw ( Display3D display,
const DGtal::Object< TDigitalTopology, TDigitalSet > &  o 
)
inlinestatic

Definition at line 959 of file Display3DFactory.ih.

References DGtal::Object< TDigitalTopology, TDigitalSet >::className(), DGtal::Display3D::getMode(), and DGtal::Object< TDigitalTopology, TDigitalSet >::pointSet().

{
std::string mode = display.getMode( o.className() );
if ( mode == "Basic" || mode == "" )
draw( display, o.pointSet() );
else if ( mode == "PavingTransp" ){
}
else if ( mode == "DrawAdjacencies" )
{
draw( display, o.pointSet() );
drawWithAdjacencies( display, o );
}
else
ASSERT(false && (("DGtal::Display3DFactory::draw( Display3D & display, const DGtal::Object<TDigitalTopology, TDigitalSet> & o ): Unknown mode " + mode) == ""));
}
template<Dimension dim, typename TComponent >
void DGtal::Display3DFactory::draw ( Display3D display,
const DGtal::PointVector< dim, TComponent > &  p 
)
inlinestatic

Definition at line 1019 of file Display3DFactory.ih.

References DGtal::PointVector< dim, TEuclideanRing >::className(), and DGtal::Display3D::getMode().

{
ASSERT(dim == 3);
std::string mode = display.getMode( p.className() );
ASSERT( (mode=="Paving" || mode=="Grid" || mode=="Both" || mode=="PavingWired"|| mode=="") );
if ( mode == "Paving" || ( mode == "" ) )
drawAsPaving( display, p );
else if ( mode == "Grid" )
drawAsGrid( display, p );
else if ( ( mode == "Both" ) )
{
drawAsPaving( display, p );
drawAsGrid( display, p );
}
else if( mode=="PavingWired"){
drawAsPavingWired( display, p );
}
}
template<Dimension dim, typename TComponent >
void DGtal::Display3DFactory::draw ( Display3D display,
const DGtal::PointVector< dim, TComponent > &  p,
const DGtal::PointVector< dim, TComponent > &  aPoint 
)
inlinestatic

Definition at line 1043 of file Display3DFactory.ih.

References DGtal::Display3D::addLine(), and DGtal::PointVector< dim, TEuclideanRing >::myArray.

{
ASSERT(dim == 3);
display.addLine(NumberTraits<TComponent>::castToDouble(aPoint[0]),
NumberTraits<TComponent>::castToDouble(aPoint[1]),
NumberTraits<TComponent>::castToDouble(aPoint[2]),
NumberTraits<TComponent>::castToDouble(aPoint[0] + p.myArray[0]),
NumberTraits<TComponent>::castToDouble(aPoint[1] + p.myArray[1]),
NumberTraits<TComponent>::castToDouble(aPoint[2] + p.myArray[2]));
}
template<Dimension dim, typename TInteger >
void DGtal::Display3DFactory::draw ( Display3D display,
const DGtal::SignedKhalimskyCell< dim, TInteger > &  sk 
)
inlinestatic

Definition at line 850 of file Display3DFactory.ih.

References DGtal::Display3D::addKSLinel(), DGtal::Display3D::addKSPointel(), DGtal::Display3D::addKSSurfel(), DGtal::Display3D::addKSVoxel(), DGtal::SignedKhalimskyCell< dim, TInteger >::className(), DGtal::Display3D::getFillColor(), DGtal::Display3D::getMode(), DGtal::SignedKhalimskyCell< dim, TInteger >::myCoordinates, DGtal::SignedKhalimskyCell< dim, TInteger >::myPositive, and DGtal::Display3D::setFillColor().

{
ASSERT(dim == 3);
DGtal::Color fillColorSave = display.getFillColor();
std::string mode = display.getMode( sk.className() );
ASSERT((mode=="" || mode=="Highlighted" || mode=="Transparent" || mode=="Basic" || mode=="Illustration" || mode=="IllustrationCustomColor")||
("DGtal::Display3DFactory::draw( Display3D & display, const DGtal::SignedKhalimskyCell<dim, TInteger> & sk ): Unknown mode "+mode)=="");
// used to display surfels located at a same position.
double factorVolSurfel=1.0;
bool basicMode=false;
if(mode=="Highlighted"){
factorVolSurfel = 1.2;
display.setFillColor(DGtal::Color(255, 50, 50, 255));
}else if(mode=="Transparent"){
display.setFillColor(DGtal::Color(180, 180, 250, 25));
}else if(mode=="Basic"){
basicMode=true;
}
float x = (float)
float y = (float)
float z = (float)
bool xodd = ( sk.myCoordinates[ 0 ] & 1 );
bool yodd = ( sk.myCoordinates[ 1 ] & 1 );
bool zodd = ( sk.myCoordinates[ 2 ] & 1 );
unsigned int spaceDim= (xodd ? 1:0) + (yodd ? 1:0) + (zodd ? 1:0);
// pointel
switch (spaceDim) {
case 0:
if(mode!="" && mode!="IllustrationCustomColor"){
if( sk.myPositive)
display.setFillColor(DGtal::Color(20, 20, 250, 255));
else
display.setFillColor(DGtal::Color(20, 20, 150, 255));
}
display.addKSPointel(x-0.5, y-0.5, z-0.5, 0.05, true, sk.myPositive);
break;
case 1:
if(mode!="" && mode!="IllustrationCustomColor"){
display.setFillColor(DGtal::Color(20, 200, 200, 255));
}
display.addKSLinel(x-0.5, y-0.5, z-0.5, x+ (xodd? 0.5:-0.5 ),y+ (yodd? 0.5:-0.5 ), z+ (zodd? 0.5:-0.5 ),
0.02, true, sk.myPositive);
break;
case 2:
display.addKSSurfel(x, y, z,! xodd, !yodd, !zodd, factorVolSurfel, 0.0,1.0, true, sk.myPositive,basicMode );
break;
case 3:
if(mode!="" && mode!="IllustrationCustomColor"){
if( sk.myPositive){
display.setFillColor(DGtal::Color(20, 20, 200, 255));
}else{
display.setFillColor(DGtal::Color(20, 200, 20, 255));
}
}
if(mode=="Illustration"|| mode=="IllustrationCustomColor"){
display.addKSVoxel((int)x, (int) y, (int) z, 0.7);
}else{
display.addKSVoxel((int)x, (int) y, (int) z);
}
break;
}
display.setFillColor(fillColorSave);
}
template<typename TKSpace>
void DGtal::Display3DFactory::draw ( Display3D display,
const DGtal::GridCurve< TKSpace > &  gc 
)
inlinestatic

Definition at line 1063 of file Display3DFactory.ih.

References DGtal::FreemanChain< TInteger >::begin(), DGtal::FreemanChain< TInteger >::end(), and DGtal::GridCurve< TKSpace >::getSCellsRange().

{
Range r = gc.getSCellsRange();
for ( typename Range::ConstIterator it = r.begin(), itEnd = r.end();
it != itEnd; ++it )
{
draw( display, *it );
}
}
template<typename TIterator, typename TSCell >
void DGtal::Display3DFactory::draw ( DGtal::Display3D display,
const DGtal::ConstRangeAdapter< TIterator, DGtal::DefaultFunctor, TSCell > &  object 
)
inlinestatic

Definition at line 1079 of file Display3DFactory.ih.

{
typedef typename Range::ConstIterator ConstIterator;
ConstIterator it ( object.begin() );
ConstIterator itEnd ( object.end() );
for( ; it != itEnd; ++it)
{
draw( display, *it);
}
}
template<typename TIterator, typename TKSpace >
void DGtal::Display3DFactory::draw ( Display3D display,
const DGtal::ConstRangeAdapter< TIterator, SCellToPoint< TKSpace >, typename TKSpace::Point > &  object 
)
inlinestatic

Definition at line 1097 of file Display3DFactory.ih.

{
typedef ConstRangeAdapter<TIterator, SCellToPoint<TKSpace>, typename TKSpace::Point> Range;
typedef typename Range::ConstIterator ConstIterator;
ConstIterator it ( object.begin() );
ConstIterator itEnd ( object.end() );
for( ; it != itEnd; ++it)
{
display << SetMode3D(it->className(),"Paving");
display << *it;
}
}
template<typename TIterator, typename TKSpace >
void DGtal::Display3DFactory::draw ( Display3D display,
const DGtal::ConstRangeAdapter< TIterator, SCellToMidPoint< TKSpace >, typename TKSpace::Space::RealPoint > &  object 
)
inlinestatic

Definition at line 1116 of file Display3DFactory.ih.

{
typedef typename TKSpace::Space::RealPoint RPoint;
typedef ConstRangeAdapter<TIterator, SCellToMidPoint<TKSpace>, RPoint > Range;
typedef typename Range::ConstIterator ConstIterator;
ConstIterator it ( object.begin() );
ConstIterator itEnd ( object.end() );
for( ; it != itEnd; ++it)
{
display << SetMode3D(it->className(),"Grid");
display << *it;
}
}
template<typename TIterator, typename TKSpace >
void DGtal::Display3DFactory::draw ( Display3D display,
const DGtal::ConstRangeAdapter< TIterator, SCellToArrow< TKSpace >, std::pair< typename TKSpace::Point, typename TKSpace::Vector > > &  object 
)
inlinestatic

Definition at line 1137 of file Display3DFactory.ih.

{
typedef typename TKSpace::Point Point;
typedef typename TKSpace::Vector Vector;
typedef std::pair<Point, Vector> Arrow;
typedef ConstRangeAdapter<TIterator, SCellToArrow<TKSpace>, Arrow > Range;
typedef typename Range::ConstIterator ConstIterator;
ConstIterator it ( object.begin() );
ConstIterator itEnd ( object.end() );
for( ; it != itEnd; ++it)
{ //display the associated cell
draw( display, *(it.base()) );
}
}
template<typename TIterator, typename TKSpace >
void DGtal::Display3DFactory::draw ( Display3D display,
const DGtal::ConstRangeAdapter< TIterator, SCellToInnerPoint< TKSpace >, typename TKSpace::Point > &  object 
)
inlinestatic

Definition at line 1159 of file Display3DFactory.ih.

{
typedef ConstRangeAdapter<TIterator, SCellToInnerPoint<TKSpace>, typename TKSpace::Point> Range;
typedef typename Range::ConstIterator ConstIterator;
ConstIterator it ( object.begin() );
ConstIterator itEnd ( object.end() );
for( ; it != itEnd; ++it)
{
display << SetMode3D(it->className(),"Paving");
display << CustomColors3D(Color(0, 0, 255,0),Color(0, 0, 200, 100));
display << *it;
}
}
template<typename TIterator, typename TKSpace >
void DGtal::Display3DFactory::draw ( Display3D display,
const DGtal::ConstRangeAdapter< TIterator, SCellToOuterPoint< TKSpace >, typename TKSpace::Point > &  object 
)
inlinestatic

Definition at line 1179 of file Display3DFactory.ih.

{
typedef ConstRangeAdapter<TIterator, SCellToOuterPoint<TKSpace>, typename TKSpace::Point> Range;
typedef typename Range::ConstIterator ConstIterator;
ConstIterator it ( object.begin() );
ConstIterator itEnd ( object.end() );
for( ; it != itEnd; ++it)
{
display << SetMode3D(it->className(),"Paving");
display << CustomColors3D(Color(0, 255, 0 ,0),Color(0, 200, 0, 100));
display << *it;
}
}
template<typename TIterator, typename TKSpace >
void DGtal::Display3DFactory::draw ( Display3D display,
const DGtal::ConstRangeAdapter< TIterator, SCellToIncidentPoints< TKSpace >, std::pair< typename TKSpace::Point, typename TKSpace::Point > > &  object 
)
inlinestatic

Definition at line 1199 of file Display3DFactory.ih.

{
typedef std::pair<typename TKSpace::Point, typename TKSpace::Point > Pair;
typedef ConstRangeAdapter<TIterator, SCellToIncidentPoints<TKSpace>, Pair> Range;
typedef typename Range::ConstIterator ConstIterator;
ConstIterator it ( object.begin() );
ConstIterator itEnd ( object.end() );
for( ; it != itEnd; ++it)
{
Pair pair( *it );
display << SetMode3D(pair.first.className(),"Paving");
display << CustomColors3D(Color(0, 0, 255,0),Color(0, 0, 200, 100));
display << pair.first;
display << CustomColors3D(Color(0, 255, 0 ,0),Color(0, 200, 0, 100));
display << pair.second;
}
}
void DGtal::Display3DFactory::draw ( Display3D display,
const DGtal::SetMode3D sm3d 
)
inlinestatic

Definition at line 1225 of file Display3DFactory.ih.

References DGtal::SetMode3D::myClassname, DGtal::SetMode3D::myMode, and DGtal::Display3D::myModes.

{
display.myModes[ sm3d.myClassname ] = sm3d.myMode;
}
void DGtal::Display3DFactory::draw ( Display3D display,
const DGtal::CustomStyle3D cs3d 
)
inlinestatic

Definition at line 1232 of file Display3DFactory.ih.

References DGtal::CustomStyle3D::myClassname, DGtal::CustomStyle3D::myStyle, and DGtal::Display3D::myStyles.

{
display.myStyles[ cs3d.myClassname ] = cs3d.myStyle;
}
void DGtal::Display3DFactory::draw ( Display3D display,
const DGtal::CustomColors3D cc3d 
)
inlinestatic
void DGtal::Display3DFactory::draw ( Display3D display,
const DGtal::ClippingPlane cl 
)
inlinestatic
void DGtal::Display3DFactory::draw ( Display3D display,
const DGtal::CameraPosition cp 
)
inlinestatic
void DGtal::Display3DFactory::draw ( Display3D display,
const DGtal::CameraDirection cd 
)
inlinestatic
void DGtal::Display3DFactory::draw ( Display3D display,
const DGtal::CameraUpVector cuv 
)
inlinestatic

Definition at line 1267 of file Display3DFactory.ih.

References DGtal::Display3D::setCameraUpVector(), DGtal::CameraUpVector::upx, DGtal::CameraUpVector::upy, and DGtal::CameraUpVector::upz.

{
display.setCameraUpVector(cuv.upx, cuv.upy, cuv.upz);
}
void DGtal::Display3DFactory::draw ( Display3D display,
const DGtal::CameraZNearFar cz 
)
inlinestatic

Definition at line 1274 of file Display3DFactory.ih.

References DGtal::Display3D::setNearFar(), DGtal::CameraZNearFar::ZFar, and DGtal::CameraZNearFar::ZNear.

{
display.setNearFar(cz.ZNear, cz.ZFar);
}
void DGtal::Display3DFactory::draw ( Display3D display,
const DGtal::TransformedKSSurfel aTransformedKSSurfel 
)
inlinestatic

Definition at line 1281 of file Display3DFactory.ih.

References DGtal::Display3D::addKSSurfel(), DGtal::NumberTraits< T >::castToDouble(), DGtal::SignedKhalimskyCell< dim, TInteger >::className(), DGtal::Display3D::getFillColor(), DGtal::Display3D::getMode(), DGtal::SignedKhalimskyCell< dim, TInteger >::myCoordinates, DGtal::SignedKhalimskyCell< dim, TInteger >::myPositive, DGtal::TransformedKSSurfel::myShift, DGtal::TransformedKSSurfel::mySizeFactor, DGtal::TransformedKSSurfel::mySurfel, and DGtal::Display3D::setFillColor().

{
DGtal::Color fillColorSave = display.getFillColor();
std::string mode = display.getMode( aTransformedKSSurfel.mySurfel.className() );
ASSERT((mode=="" || mode=="Highlighted" || mode=="Transparent" || mode=="Basic" || mode=="Illustration")||
("DGtal::Display3DFactory::draw( Display3D & display, const DGtal::ShiftedKSSurfel & aTransformedKSSurfel ): Unknown mode "+mode)=="");
// used to display surfels located at a same position.
double factorVolSurfel=1.0;
bool basicMode=false;
if(mode=="Highlighted"){
factorVolSurfel = 1.2;
display.setFillColor(DGtal::Color(255, 50, 50, 255));
}else if(mode=="Transparent"){
display.setFillColor(DGtal::Color(180, 180, 250, 25));
}else if(mode=="Basic"){
basicMode=true;
}
float x = NumberTraits<DGtal::int32_t>::castToDouble( aTransformedKSSurfel.mySurfel.myCoordinates[0] >> 1) ;
float y = NumberTraits<DGtal::int32_t>::castToDouble( aTransformedKSSurfel.mySurfel.myCoordinates[1] >> 1 );
float z = NumberTraits<DGtal::int32_t>::castToDouble( aTransformedKSSurfel.mySurfel.myCoordinates[2] >> 1 );
bool xodd = ( aTransformedKSSurfel.mySurfel.myCoordinates[ 0 ] & 1 );
bool yodd = ( aTransformedKSSurfel.mySurfel.myCoordinates[ 1 ] & 1 );
bool zodd = ( aTransformedKSSurfel.mySurfel.myCoordinates[ 2 ] & 1 );
unsigned int spaceDim= (xodd ? 1:0) + (yodd ? 1:0) + (zodd ? 1:0);
ASSERT(spaceDim==2);
display.addKSSurfel(x, y, z,! xodd, !yodd, !zodd, factorVolSurfel, aTransformedKSSurfel.myShift, aTransformedKSSurfel.mySizeFactor,
true, aTransformedKSSurfel.mySurfel.myPositive, basicMode );
display.setFillColor(fillColorSave);
}
template<typename TIterator , typename TInteger , int connectivity>
void DGtal::Display3DFactory::drawAsBoundingBox ( Display3D display,
const DGtal::ArithmeticalDSS3d< TIterator, TInteger, connectivity > &  a 
)
inlinestatic

Definition at line 195 of file Display3DFactory.ih.

References DGtal::Display3D::addLine(), DGtal::Display3D::addQuad(), DGtal::ArithmeticalDSS3d< TIterator, TInteger, connectivity >::begin(), DGtal::ArithmeticalDSS3d< TIterator, TInteger, connectivity >::end(), and DGtal::ArithmeticalDSS3d< TIterator, TInteger, connectivity >::getParameters().

{
typedef TIterator ConstIterator;
typedef DGtal::PointVector<3,double> PointD3d;
typedef DGtal::PointVector<3,double> VectorD3d;
typedef TInteger Integer;
//get DSS parameters
Vector3d v; //direction vector
PointD3d mu; //intercept
PointD3d omega; //thickness
a.getParameters(v,mu,omega);
//casting coordinates of v in double
VectorD3d u = VectorD3d(NumberTraits<Integer>::castToDouble(v[0]),
//L2 norm of u
double n = u[0]*u[0] + u[1]*u[1] + u[2]*u[2];
//first and last points
Point3d first = *a.begin();
Point3d last = *(--a.end());
PointD3d f = PointD3d(NumberTraits<Integer>::castToDouble(first[0]),
PointD3d l = PointD3d(NumberTraits<Integer>::castToDouble(last[0]),
if (n != 0) {
//last coefficient of the normal plane to the DSS direction
//passing trough f and l
double df = -u[0]*f[0] -u[1]*f[1] -u[2]*f[2];
double dl = -u[0]*l[0] -u[1]*l[1] -u[2]*l[2];
//omega masks
PointD3d omega1, omega2;
if (omega[0] == 0) {
omega1 = PointD3d(0,omega[1],0);
omega2 = PointD3d(0,0,omega[2]);
} else {
if (omega[1] == 0) {
omega1 = PointD3d(omega[0],0,0);
omega2 = PointD3d(0,0,omega[2]);
} else {//omega[2] == 0
omega1 = PointD3d(omega[0],0,0);
omega2 = PointD3d(0,omega[1],0);
}
}
double m1 = u[0]*mu[0] + u[1]*mu[1] + u[2]*mu[2];
double m2 = u[0]*(mu[0]+omega1[0]) + u[1]*(mu[1]+omega1[1]) + u[2]*(mu[2]+omega1[2]);
double m3 = u[0]*(mu[0]+omega2[0]) + u[1]*(mu[1]+omega2[1]) + u[2]*(mu[2]+omega2[2]);
double m4 = u[0]*(mu[0]+omega[0]) + u[1]*(mu[1]+omega[1]) + u[2]*(mu[2]+omega[2]);
//4 lines
PointD3d pf = PointD3d( mu[0] - ( (m1+df)*u[0] )/n,
mu[1] - ( (m1+df)*u[1] )/n,
mu[2] - ( (m1+df)*u[2] )/n );
PointD3d pl = PointD3d( mu[0] - ( (m1+dl)*u[0] )/n,
mu[1] - ( (m1+dl)*u[1] )/n,
mu[2] - ( (m1+dl)*u[2] )/n );
display.addLine(pf[0], pf[1], pf[2], pl[0], pl[1], pl[2],
Color(250,0,0));
PointD3d pf2 = PointD3d((mu[0]+omega1[0]) - ( (m2+df)*u[0] )/n,
(mu[1]+omega1[1]) - ( (m2+df)*u[1] )/n,
(mu[2]+omega1[2]) - ( (m2+df)*u[2] )/n );
PointD3d pl2 = PointD3d((mu[0]+omega1[0]) - ( (m2+dl)*u[0] )/n,
(mu[1]+omega1[1]) - ( (m2+dl)*u[1] )/n,
(mu[2]+omega1[2]) - ( (m2+dl)*u[2] )/n );
display.addLine(pf2[0], pf2[1], pf2[2], pl2[0], pl2[1], pl2[2],
Color(250,0,0));
PointD3d pf3 = PointD3d((mu[0]+omega2[0]) - ( (m3+df)*u[0] )/n,
(mu[1]+omega2[1]) - ( (m3+df)*u[1] )/n,
(mu[2]+omega2[2]) - ( (m3+df)*u[2] )/n );
PointD3d pl3 = PointD3d((mu[0]+omega2[0]) - ( (m3+dl)*u[0] )/n,
(mu[1]+omega2[1]) - ( (m3+dl)*u[1] )/n,
(mu[2]+omega2[2]) - ( (m3+dl)*u[2] )/n );
display.addLine(pf3[0], pf3[1], pf3[2], pl3[0], pl3[1], pl3[2],
Color(250,0,0));
PointD3d pf4 = PointD3d((mu[0]+omega[0]) - ( (m4+df)*u[0] )/n,
(mu[1]+omega[1]) - ( (m4+df)*u[1] )/n,
(mu[2]+omega[2]) - ( (m4+df)*u[2] )/n );
PointD3d pl4 = PointD3d((mu[0]+omega[0]) - ( (m4+dl)*u[0] )/n,
(mu[1]+omega[1]) - ( (m4+dl)*u[1] )/n,
(mu[2]+omega[2]) - ( (m4+dl)*u[2] )/n );
display.addLine(pf4[0], pf4[1], pf4[2], pl4[0], pl4[1], pl4[2],
Color(250,0,0));
//two end facets
display.addQuad(pf[0],pf[1],pf[2],
pf2[0],pf2[1],pf2[2],
pf4[0],pf4[1],pf4[2],
pf3[0],pf3[1],pf3[2],
Color(250,0,0));
display.addQuad(pl[0],pl[1],pl[2],
pl2[0],pl2[1],pl2[2],
pl4[0],pl4[1],pl4[2],
pl3[0],pl3[1],pl3[2],
Color(250,0,0));
}
}
template<typename TSpace >
void DGtal::Display3DFactory::drawAsBoundingBox ( Display3D display,
const DGtal::HyperRectDomain< TSpace > &  h 
)
inlinestatic

Definition at line 524 of file Display3DFactory.ih.

References DGtal::Display3D::addQuad(), DGtal::HyperRectDomain< TSpace >::myLowerBound, and DGtal::HyperRectDomain< TSpace >::myUpperBound.

{
ASSERT(TSpace::dimension == 3 || "drawAsBoundingBox-NOT-YET-IMPLEMENTED-in-ND");
typename TSpace::RealPoint upperBound ( h.myUpperBound);
typename TSpace::RealPoint lowerBound ( h.myLowerBound);
DGtal::Color colDef(250,250,250,10);
double shiftSize=0.01;
if (TSpace::dimension == 3)
{
//Z upper face
display.addQuad(upperBound[0]+(0.5+shiftSize),
upperBound[1]+(0.5+shiftSize),
upperBound[2]+(0.5+shiftSize),
lowerBound[0]-(0.5+shiftSize),
upperBound[1]+(0.5+shiftSize),
upperBound[2]+(0.5+shiftSize),
lowerBound[0]-(0.5+shiftSize),
lowerBound[1]-(0.5+shiftSize),
upperBound[2]+(0.5+shiftSize),
upperBound[0]+(0.5+shiftSize),
lowerBound[1]-(0.5+shiftSize),
upperBound[2]+(0.5+shiftSize),
colDef);
//Z lower face
display.addQuad(upperBound[0]+(0.5+shiftSize),
upperBound[1]+(0.5+shiftSize),
lowerBound[2]-(0.5+shiftSize),
upperBound[0]+(0.5+shiftSize),
lowerBound[1]-(0.5+shiftSize),
lowerBound[2]-(0.5+shiftSize),
lowerBound[0]-(0.5+shiftSize),
lowerBound[1]-(0.5+shiftSize),
lowerBound[2]-(0.5+shiftSize),
lowerBound[0]-(0.5+shiftSize),
upperBound[1]+(0.5+shiftSize),
lowerBound[2]-(0.5+shiftSize),
colDef);
//Y upper face
display.addQuad(upperBound[0]+(0.5+shiftSize),
upperBound[1]+(0.5+shiftSize),
upperBound[2]+(0.5+shiftSize),
upperBound[0]+(0.5+shiftSize),
upperBound[1]+(0.5+shiftSize),
lowerBound[2]-(0.5+shiftSize),
lowerBound[0]-(0.5+shiftSize),
upperBound[1]+(0.5+shiftSize),
lowerBound[2]-(0.5+shiftSize),
lowerBound[0]-(0.5+shiftSize),
upperBound[1]+(0.5+shiftSize),
upperBound[2]+(0.5+shiftSize),
colDef);
//Y lower face
display.addQuad(upperBound[0]+(0.5+shiftSize),
lowerBound[1]-(0.5+shiftSize),
upperBound[2]+(0.5+shiftSize),
lowerBound[0]-(0.5+shiftSize),
lowerBound[1]-(0.5+shiftSize),
upperBound[2]+(0.5+shiftSize),
lowerBound[0]-(0.5+shiftSize),
lowerBound[1]-(0.5+shiftSize),
lowerBound[2]-(0.5+shiftSize),
upperBound[0]+(0.5+shiftSize),
lowerBound[1]-(0.5+shiftSize),
lowerBound[2]-(0.5+shiftSize),
colDef);
// X upper face
display.addQuad(upperBound[0]+(0.5+shiftSize),
upperBound[1]+(0.5+shiftSize),
upperBound[2]+(0.5+shiftSize),
upperBound[0]+(0.5+shiftSize),
lowerBound[1]-(0.5+shiftSize),
upperBound[2]+(0.5+shiftSize),
upperBound[0]+(0.5+shiftSize),
lowerBound[1]-(0.5+shiftSize),
lowerBound[2]-(0.5+shiftSize),
upperBound[0]+(0.5+shiftSize),
upperBound[1]+(0.5+shiftSize),
lowerBound[2]-(0.5+shiftSize),
colDef);
// X lower face
display.addQuad(lowerBound[0]-(0.5+shiftSize),
upperBound[1]+(0.5+shiftSize),
upperBound[2]+(0.5+shiftSize),
lowerBound[0]-(0.5+shiftSize),
upperBound[1]+(0.5+shiftSize),
lowerBound[2]-(0.5+shiftSize),
lowerBound[0]-(0.5+shiftSize),
lowerBound[1]-(0.5+shiftSize),
lowerBound[2]-(0.5+shiftSize),
lowerBound[0]-(0.5+shiftSize),
lowerBound[1]-(0.5+shiftSize),
upperBound[2]+(0.5+shiftSize),
colDef);
}
}
template<typename TPoint >
void DGtal::Display3DFactory::drawAsFaces ( Display3D display,
const DGtal::MeshFromPoints< TPoint > &  aMesh 
)
inlinestatic

Definition at line 104 of file Display3DFactory.ih.

References DGtal::Display3D::addPolygon(), DGtal::Display3D::addQuad(), DGtal::Display3D::addTriangle(), DGtal::MeshFromPoints< TPoint >::getFace(), DGtal::MeshFromPoints< TPoint >::getFaceColor(), DGtal::MeshFromPoints< TPoint >::getVertex(), DGtal::MeshFromPoints< TPoint >::nbFaces(), DGtal::trace, DGtal::Trace::warning(), DGtal::Display3D::pointD3D::x, DGtal::Display3D::pointD3D::y, and DGtal::Display3D::pointD3D::z.

{
for(unsigned int i=0; i< aMesh.nbFaces(); i++){
typename MeshFromPoints<TPoint>::MeshFace aFace = aMesh.getFace(i);
unsigned int aNum = aFace.size();
if(aNum==4){
TPoint p1 = aMesh.getVertex(aFace.at(0));
TPoint p2 = aMesh.getVertex(aFace.at(1));
TPoint p3 = aMesh.getVertex(aFace.at(2));
TPoint p4 = aMesh.getVertex(aFace.at(3));
display.addQuad(p1[0], p1[1], p1[2],
p2[0], p2[1], p2[2],
p3[0], p3[1], p3[2],
p4[0], p4[1], p4[2], aMesh.getFaceColor(i));
}else if(aNum==3){
TPoint p1 = aMesh.getVertex(aFace.at(0));
TPoint p2 = aMesh.getVertex(aFace.at(1));
TPoint p3 = aMesh.getVertex(aFace.at(2));
display.addTriangle(p1[0], p1[1], p1[2],
p2[0], p2[1], p2[2],
p3[0], p3[1], p3[2], aMesh.getFaceColor(i));
}else if(aNum>4){
vector<Display3D::pointD3D> vectPoly;
for(unsigned int j=0; j< aFace.size(); j++){
Display3D::pointD3D pt;
pt.x= aMesh.getVertex(aFace.at(j))[0];
pt.y=aMesh.getVertex(aFace.at(j))[1];
pt.z=aMesh.getVertex(aFace.at(j))[2];
vectPoly.push_back(pt);
}
display.addPolygon(vectPoly, aMesh.getFaceColor(i));
}else{
trace.warning()<< "Face not valid, only "<< aNum << "vertex... "<< endl;
}
}
}
template<typename Domain >
void DGtal::Display3DFactory::drawAsGrid ( Display3D display,
const DGtal::DigitalSetBySTLSet< Domain > &  s 
)
inlinestatic

Definition at line 385 of file Display3DFactory.ih.

References DGtal::Display3D::addPoint(), DGtal::DigitalSetBySTLSet< TDomain >::begin(), DGtal::DigitalSetBySTLSet< TDomain >::end(), and DGtal::Display3D::getFillColor().

{
typedef typename Domain::Point Point;
typedef typename Domain::Point::Component Component;
typedef typename std::set<Point>::const_iterator ConstIterator;
ASSERT(Domain::Space::dimension == 3);
for ( ConstIterator it = s.begin();
it != s.end();
++it )
{
display.addPoint(NumberTraits<Component>::castToDouble((*it)[0]),
NumberTraits<Component>::castToDouble((*it)[1]),
NumberTraits<Component>::castToDouble((*it)[2]),
display.getFillColor());
}
}
template<typename Domain >
void DGtal::Display3DFactory::drawAsGrid ( Display3D display,
const DGtal::DigitalSetBySTLVector< Domain > &  v 
)
inlinestatic

Definition at line 477 of file Display3DFactory.ih.

References DGtal::Display3D::addPoint(), DGtal::DigitalSetBySTLVector< TDomain >::begin(), DGtal::DigitalSetBySTLVector< TDomain >::end(), and DGtal::Display3D::getFillColor().

{
typedef typename Domain::Point Point;
typedef typename std::vector<Point>::const_iterator ConstIterator;
typedef typename Domain::Point::Component Component;
ASSERT(Domain::Space::dimension == 3);
for ( ConstIterator it = v.begin();
it != v.end();
++it )
{
display.addPoint(NumberTraits<Component>::castToInt64_t((*it)[0]),
NumberTraits<Component>::castToInt64_t((*it)[1]),
NumberTraits<Component>::castToInt64_t( (*it)[2]), display.getFillColor());
}
}
template<typename TSpace >
void DGtal::Display3DFactory::drawAsGrid ( Display3D display,
const DGtal::HyperRectDomain< TSpace > &  h 
)
inlinestatic

Definition at line 628 of file Display3DFactory.ih.

References DGtal::Display3D::addLine(), DGtal::Display3D::getLineColor(), DGtal::HyperRectDomain< TSpace >::myLowerBound, and DGtal::HyperRectDomain< TSpace >::myUpperBound.

{
typedef typename TSpace::Integer Integer;
// typename TSpace::RealPoint upperBound ( h.myUpperBound);
// typename TSpace::RealPoint lowerBound ( h.myLowerBound);
ASSERT(TSpace::dimension == 3 || "drawAsGrid-NOT-YET-IMPLEMENTED-in-ND");
if (TSpace::dimension == 3)
{
// Face XY
{
display.addLine((double)x, NumberTraits<Integer>::castToDouble(h.myLowerBound[1])-0.5, (double)z,
(double)x, NumberTraits<Integer>::castToDouble(h.myUpperBound[1])+0.5, (double)z, display.getLineColor() );
}
y <= NumberTraits<Integer>::castToInt64_t(h.myUpperBound[1]); y++){
display.addLine(NumberTraits<Integer>::castToDouble(h.myLowerBound[0])-0.5, (double)y, (double)z,
NumberTraits<Integer>::castToDouble(h.myUpperBound[0])+0.5, (double)y, (double)z, display.getLineColor());
}
}
// Faces XZ
y <= NumberTraits<Integer>::castToInt64_t(h.myUpperBound[1]); y++){
x <= NumberTraits<Integer>::castToInt64_t(h.myUpperBound[0]); x++){
display.addLine((double)x, (double)y, NumberTraits<Integer>::castToDouble(h.myLowerBound[2])-0.5,
(double)x, (double)y, NumberTraits<Integer>::castToDouble(h.myLowerBound[2])+0.5, display.getLineColor());
}
z <= NumberTraits<Integer>::castToInt64_t(h.myUpperBound[2]); z++){
display.addLine(NumberTraits<Integer>::castToDouble(h.myLowerBound[0])-0.5, (double)y, (double)z,
NumberTraits<Integer>::castToDouble(h.myUpperBound[0])+0.5, (double)y, (double)z, display.getLineColor());
}
}
// Faces YZ
x <= NumberTraits<Integer>::castToInt64_t(h.myUpperBound[0]); x++){
y <= NumberTraits<Integer>::castToInt64_t(h.myUpperBound[1]); y++){
display.addLine((double)x, (double)y, NumberTraits<Integer>::castToDouble(h.myLowerBound[2])-0.5,
(double)x, (double)y, NumberTraits<Integer>::castToDouble(h.myUpperBound[2])+0.5, display.getLineColor());
}
z <= NumberTraits<Integer>::castToInt64_t(h.myUpperBound[2]); z++){
display.addLine((double)x, NumberTraits<Integer>::castToDouble(h.myLowerBound[1])-0.5, (double)z,
(double)x, NumberTraits<Integer>::castToDouble(h.myUpperBound[1])+0.5, (double)z, display.getLineColor());
}
}
}
}
template<Dimension dim, typename TComponent >
void DGtal::Display3DFactory::drawAsGrid ( Display3D display,
const DGtal::PointVector< dim, TComponent > &  p 
)
inlinestatic

Definition at line 983 of file Display3DFactory.ih.

References DGtal::Display3D::addPoint(), DGtal::Display3D::getLineColor(), and DGtal::PointVector< dim, TEuclideanRing >::myArray.

{
ASSERT(dim == 3);
display.addPoint(NumberTraits<TComponent>::castToDouble(p.myArray[0]),
NumberTraits<TComponent>::castToDouble(p.myArray[1]),
NumberTraits<TComponent>::castToDouble(p.myArray[2]), display.getLineColor());
}
template<typename Domain >
void DGtal::Display3DFactory::drawAsPaving ( Display3D display,
const DGtal::DigitalSetBySTLSet< Domain > &  s 
)
inlinestatic

Definition at line 363 of file Display3DFactory.ih.

References DGtal::Display3D::addVoxel(), DGtal::DigitalSetBySTLSet< TDomain >::begin(), DGtal::Display3D::createNewVoxelList(), DGtal::DigitalSetBySTLSet< TDomain >::end(), and DGtal::Display3D::getFillColor().

{
typedef typename Domain::Point Point;
typedef typename Domain::Point::Component Component;
typedef typename std::set<Point>::const_iterator ConstIterator;
ASSERT(Domain::Space::dimension == 3);
display.createNewVoxelList(true);
for ( ConstIterator it = s.begin();
it != s.end();
++it )
{
display.addVoxel(NumberTraits<Component>::castToInt64_t((*it)[0]),
NumberTraits<Component>::castToInt64_t((*it)[1]),
NumberTraits<Component>::castToInt64_t((*it)[2]), display.getFillColor());
}
}
template<typename Domain >
void DGtal::Display3DFactory::drawAsPaving ( Display3D display,
const DGtal::DigitalSetBySTLVector< Domain > &  v 
)
inlinestatic

Definition at line 455 of file Display3DFactory.ih.

References DGtal::Display3D::addVoxel(), DGtal::DigitalSetBySTLVector< TDomain >::begin(), DGtal::Display3D::createNewVoxelList(), DGtal::DigitalSetBySTLVector< TDomain >::end(), and DGtal::Display3D::getFillColor().

{
typedef typename Domain::Point Point;
typedef typename Domain::Point::Component Component;
typedef typename std::vector<Point>::const_iterator ConstIterator;
ASSERT(Domain::Space::dimension == 3);
display.createNewVoxelList(true);
for ( ConstIterator it = v.begin();
it != v.end();
++it )
{
display.addVoxel(NumberTraits<Component>::castToInt64_t((*it)[0]),
NumberTraits<Component>::castToInt64_t((*it)[1]),
NumberTraits<Component>::castToInt64_t((*it)[2]), display.getFillColor());
}
}
template<typename TSpace >
void DGtal::Display3DFactory::drawAsPaving ( Display3D display,
const DGtal::HyperRectDomain< TSpace > &  h 
)
inlinestatic

Definition at line 718 of file Display3DFactory.ih.

References DGtal::Display3D::addVoxel(), DGtal::HyperRectDomain< TSpace >::myLowerBound, and DGtal::HyperRectDomain< TSpace >::myUpperBound.

{
typedef typename TSpace::Integer Integer;
ASSERT(TSpace::dimension == 3 || "drawAsPaving-NOT-YET-IMPLEMENTED-in-ND");
if (TSpace::dimension == 3)
{
// Face XY
display.addVoxel(x, y , z, DGtal::Color(255, 255 ,255, 15),0.51);
}
}
}
}
}
template<Dimension dim, typename TComponent >
void DGtal::Display3DFactory::drawAsPaving ( Display3D display,
const DGtal::PointVector< dim, TComponent > &  p 
)
inlinestatic

Definition at line 995 of file Display3DFactory.ih.

References DGtal::Display3D::addVoxel(), DGtal::Display3D::getFillColor(), and DGtal::PointVector< dim, TEuclideanRing >::myArray.

{
ASSERT(dim == 3);
display.addVoxel(NumberTraits<TComponent>::castToInt64_t(p.myArray[0]),
NumberTraits<TComponent>::castToInt64_t(p.myArray[1]),
NumberTraits<TComponent>::castToInt64_t(p.myArray[2]), display.getFillColor());
}
template<typename TSpace >
void DGtal::Display3DFactory::drawAsPavingPoints ( Display3D display,
const DGtal::HyperRectDomain< TSpace > &  h 
)
inlinestatic

Definition at line 691 of file Display3DFactory.ih.

References DGtal::Display3D::addPoint(), DGtal::HyperRectDomain< TSpace >::myLowerBound, and DGtal::HyperRectDomain< TSpace >::myUpperBound.

{
typedef typename TSpace::Integer Integer;
ASSERT(TSpace::dimension == 3 || "drawAsPavingPoints-NOT-YET-IMPLEMENTED-in-ND");
if (TSpace::dimension == 3)
{
// Face XY
display.addPoint((double)x, (double)y , (double)z, DGtal::Color(255, 0 ,0));
}
}
}
}
}
template<typename Domain >
void DGtal::Display3DFactory::drawAsPavingTransparent ( Display3D display,
const DGtal::DigitalSetBySTLSet< Domain > &  s 
)
inlinestatic

Definition at line 340 of file Display3DFactory.ih.

References DGtal::Display3D::addVoxel(), DGtal::DigitalSetBySTLSet< TDomain >::begin(), DGtal::Display3D::createNewVoxelList(), DGtal::DigitalSetBySTLSet< TDomain >::end(), and DGtal::Display3D::getFillColor().

{
typedef typename Domain::Point Point;
typedef typename Domain::Point::Component Component;
typedef typename std::set<Point>::const_iterator ConstIterator;
ASSERT(Domain::Space::dimension == 3);
display.createNewVoxelList(false);
for ( ConstIterator it = s.begin();
it != s.end();
++it )
{
display.addVoxel(NumberTraits<Component>::castToInt64_t((*it)[0]),
NumberTraits<Component>::castToInt64_t((*it)[1]),
NumberTraits<Component>::castToInt64_t((*it)[2]),
display.getFillColor());
}
}
template<typename Domain >
void DGtal::Display3DFactory::drawAsPavingTransparent ( Display3D display,
const DGtal::DigitalSetBySTLVector< Domain > &  v 
)
inlinestatic

Definition at line 433 of file Display3DFactory.ih.

References DGtal::Display3D::addVoxel(), DGtal::DigitalSetBySTLVector< TDomain >::begin(), DGtal::Display3D::createNewVoxelList(), DGtal::DigitalSetBySTLVector< TDomain >::end(), and DGtal::Display3D::getFillColor().

{
typedef typename Domain::Point Point;
typedef typename Domain::Point::Component Component;
typedef typename std::vector<Point>::const_iterator ConstIterator;
ASSERT(Domain::Space::dimension == 3);
display.createNewVoxelList(false);
for ( ConstIterator it = v.begin();
it != v.end();
++it )
{
display.addVoxel(NumberTraits<Component>::castToInt64_t((*it)[0]),
NumberTraits<Component>::castToInt64_t((*it)[1]),
NumberTraits<Component>::castToInt64_t((*it)[2]), display.getFillColor());
}
}
template<Dimension dim, typename TComponent >
void DGtal::Display3DFactory::drawAsPavingWired ( Display3D display,
const DGtal::PointVector< dim, TComponent > &  p 
)
inlinestatic

Definition at line 1007 of file Display3DFactory.ih.

References DGtal::Display3D::addVoxel(), DGtal::Display3D::getFillColor(), and DGtal::PointVector< dim, TEuclideanRing >::myArray.

{
ASSERT(dim == 3);
display.addVoxel(NumberTraits<TComponent>::castToInt64_t(p.myArray[0]),
NumberTraits<TComponent>::castToInt64_t(p.myArray[1]),
NumberTraits<TComponent>::castToInt64_t(p.myArray[2]), display.getFillColor(), 0.5, true);
}
template<typename TIterator , typename TInteger , int connectivity>
void DGtal::Display3DFactory::drawAsPoints ( Display3D display,
const DGtal::ArithmeticalDSS3d< TIterator, TInteger, connectivity > &  a 
)
inlinestatic

Definition at line 155 of file Display3DFactory.ih.

References DGtal::Display3D::addLine(), DGtal::ArithmeticalDSS3d< TIterator, TInteger, connectivity >::begin(), DGtal::NumberTraits< T >::castToDouble(), DGtal::ArithmeticalDSS3d< TIterator, TInteger, connectivity >::end(), and DGtal::Display3D::getMode().

{
typedef TIterator ConstIterator;
// Draw points
display << CustomColors3D(Color(250,250,250,100),Color(250,250,250,100));
for (ConstIterator i = a.begin(); i != a.end(); ++i)
{
display << *i;
}
// Draw a linking polygonal line if the voxels are drawn as points.
if(display.getMode("PointVector")=="Grid")
{
ConstIterator k = a.begin();
Point3d prevp = *k;
double xprevp = NumberTraits<TInteger>::castToDouble(prevp[0]);
double yprevp = NumberTraits<TInteger>::castToDouble(prevp[1]);
double zprevp = NumberTraits<TInteger>::castToDouble(prevp[2]);
++k;
for ( ; k != a.end(); ++k) {
Point3d p = *k;
display.addLine(xprevp,yprevp,zprevp,
xp,yp,zp,
Color(0,250,0));
xprevp = xp;
yprevp = yp;
zprevp = zp;
}
}
}
template<typename TDigitalTopology , typename TDigitalSet >
void DGtal::Display3DFactory::drawWithAdjacencies ( Display3D display,
const DGtal::Object< TDigitalTopology, TDigitalSet > &  o 
)
inlinestatic

Definition at line 929 of file Display3DFactory.ih.

References DGtal::HIGH_ITER_DS, DGtal::Object< TDigitalTopology, TDigitalSet >::pointSet(), DGtal::Object< TDigitalTopology, TDigitalSet >::properNeighborhood(), and DGtal::SMALL_DS.

{
typedef typename TDigitalSet::Point Point;
typedef typename TDigitalSet::Domain Domain;
typedef
typename DigitalSetSelector < Domain,
SMALL_DS + HIGH_ITER_DS >::Type SmallSet;
typedef Object<TDigitalTopology, SmallSet> SmallObject;
Point p;
for (typename TDigitalSet::ConstIterator it = o.pointSet().begin();
it != o.pointSet().end();
++it)
{
//Brute-force scan of the neighborhood.
SmallObject neig = o.properNeighborhood(*it);
for (typename SmallObject::DigitalSet::ConstIterator it2 = neig.pointSet().begin();
it2 != neig.pointSet().end();
++it2)
{
p = (*it2) - (*it);
draw(display, p, (*it));
}
}
}

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