bpp-phyl3
3.0.0
|
Partial implementation of the TreeDrawing interface. More...
#include <Bpp/Phyl/Graphics/AbstractTreeDrawing.h>
Public Member Functions | |
AbstractTreeDrawing () | |
AbstractTreeDrawing (const AbstractTreeDrawing &atd) | |
AbstractTreeDrawing & | operator= (const AbstractTreeDrawing &atd) |
virtual | ~AbstractTreeDrawing () |
bool | hasTree () const |
const TreeTemplate< INode > * | getTree () const |
void | setTree (const Tree *tree) |
Point2D< double > | getNodePosition (int nodeId) const |
Get the position of a node. More... | |
int | getNodeAt (const Point2D< double > &position) const |
Get the node corresponding to a position on the device. More... | |
bool | belongsTo (const Point2D< double > &p1, const Point2D< double > &p2) const |
Utilitary function, telling if a point belongs to a specified area. More... | |
virtual void | drawAtNode (GraphicDevice &gDevice, const INode &node, const std::string &text, double xOffset=0, double yOffset=0, short hpos=GraphicDevice::TEXT_HORIZONTAL_LEFT, short vpos=GraphicDevice::TEXT_VERTICAL_CENTER, double angle=0) const |
Draw some text at a particular node position. More... | |
virtual void | drawAtBranch (GraphicDevice &gDevice, const INode &node, const std::string &text, double xOffset=0, double yOffset=0, short hpos=GraphicDevice::TEXT_HORIZONTAL_LEFT, short vpos=GraphicDevice::TEXT_VERTICAL_CENTER, double angle=0) const |
Draw some text at a particular branch position. More... | |
void | setDisplaySettings (const TreeDrawingSettings *tds) |
Global drawing settings. More... | |
const TreeDrawingSettings & | getDisplaySettings () const |
double | getXUnit () const |
double | getYUnit () const |
void | setXUnit (double xu) |
Set the 'horizontal' expansion unit. More... | |
void | setYUnit (double yu) |
Set the 'vertical' expansion unit. More... | |
void | collapseNode (int nodeId, bool yn) |
Properties to draw. More... | |
bool | isNodeCollapsed (int nodeId) const |
void | addTreeDrawingListener (TreeDrawingListener *listener) |
Add a drawing listener to this instance. More... | |
void | removeTreeDrawingListener (TreeDrawingListener *listener) |
Remove a drawing listener from this instance. More... | |
virtual void | treeHasChanged ()=0 |
Method to implement to deal with redrawing when the underlying tree has been modified. More... | |
TreeDrawing * | clone () const =0 |
virtual std::string | getName () const =0 |
virtual double | getWidth () const =0 |
virtual double | getHeight () const =0 |
virtual void | plot (GraphicDevice &gDevice) const =0 |
Plot the tree onto the specified device. More... | |
Static Public Attributes | |
static const TreeDrawingSettings | DEFAULT_SETTINGS |
Protected Member Functions | |
TreeTemplate< INode > * | getTree_ () |
const TreeTemplate< INode > * | getTree_ () const |
void | fireBeforeTreeEvent_ (const DrawTreeEvent &event) const |
void | fireAfterTreeEvent_ (const DrawTreeEvent &event) const |
void | fireBeforeNodeEvent_ (const DrawINodeEvent &event) const |
void | fireAfterNodeEvent_ (const DrawINodeEvent &event) const |
void | fireBeforeBranchEvent_ (const DrawIBranchEvent &event) const |
void | fireAfterBranchEvent_ (const DrawIBranchEvent &event) const |
Private Attributes | |
std::unique_ptr< TreeTemplate< INode > > | tree_ |
double | xUnit_ |
double | yUnit_ |
const TreeDrawingSettings * | settings_ |
std::vector< TreeDrawingListener * > | listeners_ |
Partial implementation of the TreeDrawing interface.
This basic implementation uses a dedicated NodeInfo structure in combination with the NodeTemplate class. This structures stores the current coordinates of all nodes, so that it is easy to annotate the tree drawing.:if expand("%") == ""|browse confirm w|else|confirm w|endif
Definition at line 115 of file AbstractTreeDrawing.h.
|
inline |
Definition at line 126 of file AbstractTreeDrawing.h.
|
inline |
Definition at line 128 of file AbstractTreeDrawing.h.
References listeners_.
|
inlinevirtual |
Definition at line 163 of file AbstractTreeDrawing.h.
References listeners_.
|
inlinevirtual |
Add a drawing listener to this instance.
listener | a pointer toward an object implementing the TreeDrawingListener interface. This object will then be owned by the class and copied and deleted if/when needed, unless it is autonomous. |
Implements bpp::TreeDrawing.
Definition at line 262 of file AbstractTreeDrawing.h.
References listeners_.
bool AbstractTreeDrawing::belongsTo | ( | const Point2D< double > & | p1, |
const Point2D< double > & | p2 | ||
) | const |
Utilitary function, telling if a point belongs to a specified area.
This method is used internally to get a node coordinates.
p1 | Point to look for. |
p2 | Second point defining the center of the area. |
Definition at line 47 of file AbstractTreeDrawing.cpp.
References bpp::Point2D< class >::getX(), and bpp::Point2D< class >::getY().
|
pure virtualinherited |
Implements bpp::Clonable.
Implemented in bpp::PhylogramPlot, and bpp::CladogramPlot.
|
inlinevirtual |
Properties to draw.
Collapsing nodes
Implements bpp::TreeDrawing.
Definition at line 250 of file AbstractTreeDrawing.h.
References tree_.
|
virtual |
Draw some text at a particular branch position.
gDevice | The GraphicDevice object on which to draw. |
node | The node of interest. |
text | The text to draw. |
xOffset | Horizontal offset. |
yOffset | Vertical offset. |
hpos | The way the text should be aligned horizontally (see GraphicDevice). |
vpos | The way the text should be aligned vertically (see GraphicDevice). |
angle | The rotation value of the text. |
Definition at line 58 of file AbstractTreeDrawing.cpp.
References bpp::GraphicDevice::drawText(), bpp::NodeTemplate< NodeInfos >::getFather(), bpp::NodeTemplate< NodeInfos >::getInfos(), and bpp::Node::hasFather().
|
virtual |
Draw some text at a particular node position.
gDevice | The GraphicDevice object on which to draw. |
node | The node of interest. |
text | The text to draw. |
xOffset | Horizontal offset. |
yOffset | Vertical offset. |
hpos | The way the text should be aligned horizontally (see GraphicDevice). |
vpos | The way the text should be aligned vertically (see GraphicDevice). |
angle | The rotation value of the text. |
Definition at line 53 of file AbstractTreeDrawing.cpp.
References bpp::GraphicDevice::drawText(), and bpp::NodeTemplate< NodeInfos >::getInfos().
|
inlineprotected |
Definition at line 333 of file AbstractTreeDrawing.h.
References listeners_.
Referenced by bpp::CladogramPlot::recursivePlot_(), and bpp::PhylogramPlot::recursivePlot_().
|
inlineprotected |
Definition at line 315 of file AbstractTreeDrawing.h.
References listeners_.
Referenced by bpp::CladogramPlot::recursivePlot_(), and bpp::PhylogramPlot::recursivePlot_().
|
inlineprotected |
Definition at line 297 of file AbstractTreeDrawing.h.
References listeners_.
Referenced by bpp::CladogramPlot::drawDendrogram_(), and bpp::PhylogramPlot::drawDendrogram_().
|
inlineprotected |
Definition at line 324 of file AbstractTreeDrawing.h.
References listeners_.
Referenced by bpp::CladogramPlot::recursivePlot_(), and bpp::PhylogramPlot::recursivePlot_().
|
inlineprotected |
Definition at line 306 of file AbstractTreeDrawing.h.
References listeners_.
Referenced by bpp::CladogramPlot::recursivePlot_(), and bpp::PhylogramPlot::recursivePlot_().
|
inlineprotected |
Definition at line 288 of file AbstractTreeDrawing.h.
References listeners_.
Referenced by bpp::CladogramPlot::drawDendrogram_(), and bpp::PhylogramPlot::drawDendrogram_().
|
inlinevirtual |
Implements bpp::TreeDrawing.
Definition at line 240 of file AbstractTreeDrawing.h.
References settings_.
|
pure virtualinherited |
Implemented in bpp::PhylogramPlot, and bpp::CladogramPlot.
|
pure virtualinherited |
Implemented in bpp::PhylogramPlot, and bpp::CladogramPlot.
|
virtual |
Get the node corresponding to a position on the device.
position | A position in the coordinates system of the last GraphicDevice used. |
NodeNotFoundException | If the node does not correspond to a node in the tree. |
Implements bpp::TreeDrawing.
Definition at line 33 of file AbstractTreeDrawing.cpp.
|
virtual |
Get the position of a node.
nodeId | The identifier of the node. |
NodeNotFoundException | If the node does not correspond to a node in the tree. |
Implements bpp::TreeDrawing.
Definition at line 20 of file AbstractTreeDrawing.cpp.
References bpp::TextTools::toString().
|
inlinevirtual |
Implements bpp::TreeDrawing.
Definition at line 175 of file AbstractTreeDrawing.h.
References tree_.
|
inlineprotected |
Definition at line 285 of file AbstractTreeDrawing.h.
References tree_.
Referenced by bpp::CladogramPlot::drawDendrogram_(), bpp::PhylogramPlot::drawDendrogram_(), bpp::CladogramPlot::setTree(), bpp::PhylogramPlot::setTree(), bpp::CladogramPlot::treeHasChanged(), and bpp::PhylogramPlot::treeHasChanged().
|
inlineprotected |
Definition at line 286 of file AbstractTreeDrawing.h.
References tree_.
|
pure virtualinherited |
Implemented in bpp::PhylogramPlot, and bpp::CladogramPlot.
|
inlinevirtual |
Implements bpp::TreeDrawing.
Definition at line 242 of file AbstractTreeDrawing.h.
References xUnit_.
Referenced by bpp::CladogramPlot::drawDendrogram_(), bpp::PhylogramPlot::drawDendrogram_(), bpp::CladogramPlot::recursivePlot_(), and bpp::PhylogramPlot::recursivePlot_().
|
inlinevirtual |
Implements bpp::TreeDrawing.
Definition at line 244 of file AbstractTreeDrawing.h.
References yUnit_.
Referenced by bpp::CladogramPlot::recursivePlot_(), and bpp::PhylogramPlot::recursivePlot_().
|
inlinevirtual |
Implements bpp::TreeDrawing.
Definition at line 173 of file AbstractTreeDrawing.h.
References tree_.
Referenced by bpp::CladogramPlot::drawDendrogram_(), bpp::PhylogramPlot::drawDendrogram_(), bpp::CladogramPlot::setTree(), bpp::CladogramPlot::treeHasChanged(), and bpp::PhylogramPlot::treeHasChanged().
|
inlinevirtual |
Implements bpp::TreeDrawing.
Definition at line 256 of file AbstractTreeDrawing.h.
References tree_.
|
inline |
Definition at line 144 of file AbstractTreeDrawing.h.
References listeners_, settings_, tree_, xUnit_, and yUnit_.
|
pure virtualinherited |
Plot the tree onto the specified device.
gDevice | An object implementing the GraphicDevice interface. |
Implemented in bpp::AbstractDendrogramPlot.
|
inlinevirtual |
Remove a drawing listener from this instance.
listener | a pointer toward an object implementing the TreeDrawingListener interface. If the listener is autonomous, it will be deleted. |
Implements bpp::TreeDrawing.
Definition at line 269 of file AbstractTreeDrawing.h.
References bpp::TreeDrawingListener::isAutonomous(), and listeners_.
|
inlinevirtual |
Global drawing settings.
Implements bpp::TreeDrawing.
Definition at line 234 of file AbstractTreeDrawing.h.
References settings_.
|
inlinevirtual |
tree | A pointer toward the tree to associate with this drawing. |
Implements bpp::TreeDrawing.
Reimplemented in bpp::PhylogramPlot, and bpp::CladogramPlot.
Definition at line 177 of file AbstractTreeDrawing.h.
References tree_, and treeHasChanged().
Referenced by bpp::CladogramPlot::setTree(), and bpp::PhylogramPlot::setTree().
|
inlinevirtual |
Set the 'horizontal' expansion unit.
The effect of this expansion factor depends on the implementation of the interface.
xu | The horizontal unit length. |
Implements bpp::TreeDrawing.
Definition at line 246 of file AbstractTreeDrawing.h.
References xUnit_.
|
inlinevirtual |
Set the 'vertical' expansion unit.
The effect of this expansion factor depends on the implementation of the interface.
yu | The vertical unit length. |
Implements bpp::TreeDrawing.
Definition at line 248 of file AbstractTreeDrawing.h.
References yUnit_.
|
pure virtual |
Method to implement to deal with redrawing when the underlying tree has been modified.
Implemented in bpp::PhylogramPlot, and bpp::CladogramPlot.
Referenced by setTree().
|
static |
Definition at line 343 of file AbstractTreeDrawing.h.
|
private |
Definition at line 123 of file AbstractTreeDrawing.h.
Referenced by AbstractTreeDrawing(), addTreeDrawingListener(), fireAfterBranchEvent_(), fireAfterNodeEvent_(), fireAfterTreeEvent_(), fireBeforeBranchEvent_(), fireBeforeNodeEvent_(), fireBeforeTreeEvent_(), operator=(), removeTreeDrawingListener(), and ~AbstractTreeDrawing().
|
private |
Definition at line 122 of file AbstractTreeDrawing.h.
Referenced by getDisplaySettings(), operator=(), and setDisplaySettings().
|
private |
Definition at line 119 of file AbstractTreeDrawing.h.
Referenced by collapseNode(), getTree(), getTree_(), hasTree(), isNodeCollapsed(), operator=(), and setTree().
|
private |
Definition at line 120 of file AbstractTreeDrawing.h.
Referenced by getXUnit(), operator=(), and setXUnit().
|
private |
Definition at line 121 of file AbstractTreeDrawing.h.
Referenced by getYUnit(), operator=(), and setYUnit().