NCBI C++ ToolKit
Classes | Public Types | Public Member Functions | Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | List of all members
IPhyloTreeRender Class Referenceabstract

Search Toolkit Book for IPhyloTreeRender

#include <gui/widgets/phylo_tree/phylo_tree_render.hpp>

+ Inheritance diagram for IPhyloTreeRender:
+ Collaboration diagram for IPhyloTreeRender:

Classes

class  CExtentDimension
 This is a set of positions (for nodes) and associated x or y pixel offset values. More...
 
class  ComputePixelHeight
 
class  CProjectionExtents
 This class extracts for each of the 4 directions (+x,-x,+y,-y) the maximum coordinates to which any element in the graph projects. More...
 
struct  FindSelState
 Predicate to find location of a node in above selection set. More...
 
struct  NodePointer
 Structure holds a 'pointer' from an active tooltip to its corresponding node. More...
 
struct  ProjectionElement
 A coord (in one of +x,-x,+y,-y) and pixel offset in the same direction. More...
 

Public Types

enum  TRenderingOption {
  eDistancesRendering , eAdaptiveMargins , eSimplification , eSplinesRendering ,
  eRotatedLabels , eGenerateTextures , eAutofitLabels
}
 
enum  ELayoutStatus { eValidLayout , eNeedLayout , eNeedLayoutAndSize }
 
typedef CPhyloTree TTreeType
 
typedef CPhyloTree::TTreeIdx TTreeIdx
 
typedef CPhyloTree::TNodeType TNodeType
 
- Public Types inherited from CObject
enum  EAllocFillMode { eAllocFillNone = 1 , eAllocFillZero , eAllocFillPattern }
 Control filling of newly allocated memory. More...
 
typedef CObjectCounterLocker TLockerType
 Default locker type for CRef. More...
 
typedef atomic< Uint8TCounter
 Counter type is CAtomiCounter. More...
 
typedef Uint8 TCount
 Alias for value type of counter. More...
 

Public Member Functions

 IPhyloTreeRender ()
 
 IPhyloTreeRender (double width, double height)
 
virtual ~IPhyloTreeRender ()
 
void SetActiveTooltipNode (int id)
 id is the tip id of the tip that the users mouse is currently on, or -1 More...
 
void PointToNode (int id, wxRect tip_rect, float sec)
 point to a particular node from a tooltip to help user spot it rectangle should be the tooltip screen rectangle in screen (not model) coordinates where the lower-left corner of the panel is (0,0) More...
 
void SetHost (IPhyloTreeRenderHost *pHost)
 
void SetFont (CGlTextureFont *font)
 
void SetZoomHandler (CMouseZoomHandler *mz)
 
void SetDistRendering (bool flag)
 
bool GetDistRendering (void) const
 
virtual bool SupportsDistanceRendering () const
 
bool GetSplinesRendering (void) const
 
void SetSplinesRendering (bool flag)
 
bool GetRotatedLabels (void) const
 
void SetRotatedLabels (bool flag)
 
virtual bool SupportsRotatedLabels () const
 
bool GetForceSquare (void) const
 
void SetForceSquare (bool flag)
 
bool GetRegenerateTexture (void) const
 
void SetRegenerateTexture (bool flag)
 
void SetLabelViewPct (float pct)
 
virtual float GetLabelViewPct () const
 
bool GetRenderScale () const
 
void SetRenderScale (bool s)
 
float GetTreeHeight () const
 Get sum of pixel size of all leaf nodes. More...
 
CPhyloTree::TSelStateGetSingleSelection ()
 
virtual void StartRendering (bool b)
 Allow caller to indicate layout has changed from one type to another (e.g. More...
 
virtual ELayoutStatus ValidLayout () const
 
virtual void NeedsLayout (ELayoutStatus s)
 
void OnLeftDown (wxMouseEvent &event)
 event handlers More...
 
void OnRightDown (wxMouseEvent &event)
 
void OnLeftDblClick (wxMouseEvent &event)
 
void OnLeftUp (wxMouseEvent &event)
 
void OnMotion (wxMouseEvent &event)
 
void OnTimer (wxTimerEvent &event)
 
void OnTimerLeftUp (wxTimerEvent &event)
 
IGenericHandlerHostGetGenericHost ()
 
virtual TVPUnit DistanceBetweenNodes (void) const
 
float GetNodeSize (const CPhyloTreeNode *node) const
 
float SetNodeColoration (CPhyloTreeNode *node, TTreeIdx node_idx)
 nodes, edges and labels can be colored for default, trace, shared, select or cluster More...
 
short GetNodeColorIdx (CPhyloTreeNode *node)
 
short GetLabelColorIdx (CPhyloTreeNode *node)
 
bool GetEdgeColor (CPhyloTreeNode *child_node, CPhyloTreeNode *parent_node, CRgbaColor &c, CRgbaColor &parent_color)
 Returns true if color is from selection (sel, shared, trace) More...
 
CPhyloTreeNodeGetHoverNode (CVect2< float > pt)
 
CPhyloTree::TTreeIdx GetHoverNodeIdx (CVect2< float > pt)
 
I3DTextureGetTexture (float &xcoord_limit, float &ycoord_limit)
 
virtual string GetDescription (void)=0
 
virtual void BufferedRender (CGlPane &pane, CPhyloTreeDataSource &ds, bool init_collision_info=true, bool select_edge=false)
 
void InitCollisionInfo ()
 
bool LabelsVisible ()
 Return true if lables are visible according to rendering scheme and at current scale. More...
 
virtual float DefaultNodeSize ()
 Return default node size according to scheme or 0 if not visible at current scale. More...
 
void InitLabel (CPhyloTree *tree, CPhyloTree::TNodeType &node)
 Initialize (for current layout) label text and extent (label rectangle) More...
 
virtual bool Render (CGlPane &pane, CPhyloTreeDataSource &ds)
 Returns false if rendering does not occur (e.g. More...
 
virtual void RenderForHardcopy (CGlPane &pane, CPhyloTreeDataSource &ds)
 
virtual void RenderPdf (CGlPane &pane, CPhyloTreeDataSource &ds, CRef< CPdf > pdf)
 
virtual void Layout (CPhyloTreeDataSource &ds, CGlPane &p)
 
virtual void Redraw (void)
 
virtual void RemoveCurrentDataSource ()
 
virtual void UpdateDataSource (CPhyloTreeDataSource &ds, CGlPane &p)
 
void SetScheme (CPhyloTreeScheme &sl)
 
CPhyloTreeSchemeGetScheme (void)
 
void SetModelDimensions (double width, double height)
 
void CalculateExtents (CPhyloTree *tree, CPhyloTree::TNodeType &node)
 
void InitExtents ()
 Set extents to default values so CalculateExtents can be called. More...
 
void ComputeViewingLimits (CGlPane &pane, bool force_square=false, bool init_collision_info=true)
 Compute the optimal viewing pane size so that the tree occupies the entire viewing area, and labels do not go offscreen. More...
 
void SetRenderingOption (TRenderingOption opt, bool bVal)
 
virtual bool IsDistanceBarLowerLeft () const
 
void SetDistanceBarLowerLeft (bool b)
 
const double GetDimX (void)
 
const double GetDimY (void)
 
virtual double ComputeDistFromPixels (CGlPane &pane, const CVect2< TModelUnit > &pixpos1, const CVect2< TModelUnit > &pixpos2) const
 
double ComputeScale (double default_scale, int &precision) const
 
void SetHighlightEdges (bool enable)
 
bool GetHighlightEdges () const
 
TVPRect GetMinDimensions (CGlPane &pane, const CPhyloTreeDataSource &ds, const CPhyloTreeScheme &sc, int &label_height, TModelRect &node_rect, TModelRect &text_rect, float width_factor, float height_factor=1.0f, float wh_ratio=-1.0f)
 
int GetMaxLeavesVisible ()
 
virtual float GetDefaultNodeSize (const CPhyloTreeNode *node) const
 
virtual float GetNodeLayoutSize (const CPhyloTreeNode *node) const
 This is the height of the node for layout purposes. More...
 
virtual float GetNodeLabelDist (const CPhyloTreeNode *node) const
 
bool x_GetEdgeDist (const CVect2< float > &from, const CVect2< float > &to)
 
void x_RenderLineVbo (TTreeIdx child_node_idx, CPhyloTreeNode *child_node, CPhyloTreeNode *parent_node, vector< CVect2< float > > &line_coords, vector< CVect4< unsigned char > > &line_colors, double x1, double y1, double x2, double y2)
 
void x_RenderLineVbo (TTreeIdx child_node_idx, CPhyloTreeNode *child_node, CPhyloTreeNode *parent_node, vector< CVect2< float > > &line_coords, vector< CVect4< unsigned char > > &line_colors, vector< CVect2< float > > &sel_line_coords, vector< CVect4< unsigned char > > &sel_line_colors, double x1, double y1, double x2, double y2)
 
void x_RenderSplineVbo (TTreeIdx child_node_idx, CPhyloTreeNode *child_node, CPhyloTreeNode *parent_node, vector< CVect2< float > > &edge_node_coords, vector< CVect4< unsigned char > > &edge_node_colors, vector< CVect2< float > > &sel_edge_node_coords, vector< CVect4< unsigned char > > &sel_edge_node_colors, const CVect3< float > &pt1, const CVect3< float > &pt2, const CVect3< float > &pt3, const CVect3< float > &pt4)
 
void x_RenderCircularVbo (TTreeIdx child_node_idx, CPhyloTreeNode *child_node, CPhyloTreeNode *parent_node, vector< CVect2< float > > *trace_line_coords, vector< CVect4< unsigned char > > *trace_line_colors, vector< CVect2< float > > *trace_point_coords, vector< CVect4< unsigned char > > *trace_point_colors, vector< CVect2< float > > &edge_node_coords, vector< CVect4< unsigned char > > &edge_node_colors, vector< CVect2< float > > &sel_edge_node_coords, vector< CVect4< unsigned char > > &sel_edge_node_colors, float radius, const CVect2< float > &center, const CVect2< float > &offset, float resolution)
 
void x_RenderPseudoSplineVbo (TTreeIdx child_node_idx, CPhyloTreeNode *child_node, CPhyloTreeNode *parent_node, vector< CVect2< float > > &edge_node_coords, vector< CVect4< unsigned char > > &edge_node_colors, vector< CVect2< float > > &sel_edge_node_coords, vector< CVect4< unsigned char > > &sel_edge_node_colors, const CVect2< float > &pt1, const CVect2< float > &mid_point, const CVect2< float > &pt2)
 
void x_AddCollapsedGeomNode (CPhyloTreeNode *node, const CVect2< float > delta, CRgbaColor color, float alpha, size_t circleSegments, bool skip_pdf)
 
bool x_AddCollapsedTextureNode (CPhyloTreeNode *node, const CVect2< float > delta, CRgbaColor color, float alpha)
 
void x_RenderNodeVbo (CPhyloTreeNode *node, TTreeIdx node_idx, vector< float > &color_coords, const CVect2< float > delta=CVect2< float >(0.0f, 0.0f))
 
virtual void x_ComputeNodeBoundary (CPhyloTree *tree, CPhyloTree::TNodeType &node, CBoundaryPoints &boundary_pts, const string &layout_type)
 
virtual void x_RenderVbo (CPhyloTreeDataSource &)
 
virtual void x_SetGlRenderOptions (CPhyloTreeDataSource &ds)
 Set OpenGL rendering options that depend on layout chosen. More...
 
Forwarded messages from to support IStickyTooltipHandlerHost
string TTHH_NeedTooltip (const wxPoint &pt)
 
CTooltipInfo TTHH_GetTooltip (const wxRect &rect)
 
IGlEventHandler implementaion
virtual void SetPane (CGlPane *pane)
 
virtual wxEvtHandler * GetEvtHandler ()
 
- Public Member Functions inherited from CObjectEx
 CObjectEx (void)
 
virtual ~CObjectEx (void)
 
- Public Member Functions inherited from CObject
 CObject (void)
 Constructor. More...
 
 CObject (const CObject &src)
 Copy constructor. More...
 
virtual ~CObject (void)
 Destructor. More...
 
CObjectoperator= (const CObject &src) THROWS_NONE
 Assignment operator. More...
 
bool CanBeDeleted (void) const THROWS_NONE
 Check if object can be deleted. More...
 
bool IsAllocatedInPool (void) const THROWS_NONE
 Check if object is allocated in memory pool (not system heap) More...
 
bool Referenced (void) const THROWS_NONE
 Check if object is referenced. More...
 
bool ReferencedOnlyOnce (void) const THROWS_NONE
 Check if object is referenced only once. More...
 
void AddReference (void) const
 Add reference to object. More...
 
void RemoveReference (void) const
 Remove reference to object. More...
 
void ReleaseReference (void) const
 Remove reference without deleting object. More...
 
virtual void DoNotDeleteThisObject (void)
 Mark this object as not allocated in heap – do not delete this object. More...
 
virtual void DoDeleteThisObject (void)
 Mark this object as allocated in heap – object can be deleted. More...
 
void * operator new (size_t size)
 Define new operator for memory allocation. More...
 
void * operator new[] (size_t size)
 Define new[] operator for 'array' memory allocation. More...
 
void operator delete (void *ptr)
 Define delete operator for memory deallocation. More...
 
void operator delete[] (void *ptr)
 Define delete[] operator for memory deallocation. More...
 
void * operator new (size_t size, void *place)
 Define new operator. More...
 
void operator delete (void *ptr, void *place)
 Define delete operator. More...
 
void * operator new (size_t size, CObjectMemoryPool *place)
 Define new operator using memory pool. More...
 
void operator delete (void *ptr, CObjectMemoryPool *place)
 Define delete operator. More...
 
virtual void DebugDump (CDebugDumpContext ddc, unsigned int depth) const
 Define method for dumping debug information. More...
 
- Public Member Functions inherited from CDebugDumpable
 CDebugDumpable (void)
 
virtual ~CDebugDumpable (void)
 
void DebugDumpText (ostream &out, const string &bundle, unsigned int depth) const
 
void DebugDumpFormat (CDebugDumpFormatter &ddf, const string &bundle, unsigned int depth) const
 
void DumpToConsole (void) const
 
- Public Member Functions inherited from CWeakObject
 CWeakObject (void)
 
virtual ~CWeakObject (void)
 
CPtrToObjectProxyGetPtrProxy (void) const
 Get pointer to proxy object containing pointer to this object. More...
 
- Public Member Functions inherited from IGlEventHandler
virtual ~IGlEventHandler ()
 
- Public Member Functions inherited from IPhyloTreeLOD
 IPhyloTreeLOD ()
 
virtual ~IPhyloTreeLOD ()
 

Public Attributes

CProjectionExtents m_ProjectionExtents
 
TModelRect m_ZoomableExtent
 

Protected Types

enum  EState { eIdle , eSelPoint , eSelRect , eDragNode }
 event handling state More...
 
enum  ELabelAlign { eLeft , eRight }
 label alignment More...
 

Protected Member Functions

virtual TModelUnit x_GetVerticalSeparationFactor () const
 layout-spefic constant for label vertical sepatation needed for visibility More...
 
virtual bool x_WideLines ()
 Returns true if lines are separated enough to use the wider form of lines (more separation is required for circular views, since interior lines overlap more easily) More...
 
CVect2< float > x_FindBestSize (CGlPane &pane, std::vector< ProjectionElement > &xexts, std::vector< ProjectionElement > &yexts, TModelRect &limits, TModelRect &node_extents, TModelRect &text_extents, int max_iterations=500)
 Returns viewport projection size in x/y from last iteration and puts optimal viewing (to see whole tree) area in limits. More...
 
void x_InitCollisionInfo ()
 
virtual void x_SetElementVisibility ()
 
void x_RenderSelection (CGlPane &pane)
 
void x_RenderScaleMarker (CGlPane &pane, IRender &gl)
 
void x_RenderTreeLabel (CGlPane &pane, IRender &gl)
 
void x_RenderTooltipHints (CGlPane &pane)
 
void x_RenderNodeHighlight (CGlPane &pane, CPhyloTree::TTreeIdx node_idx, const CRgbaColor &c)
 
void x_DrawBoundingAreas (CPhyloTreeNode *node)
 
void x_DrawBoundingAreasVbo (CPhyloTreeNode *node)
 
void x_GenerateTexture (void)
 
int x_OnMouseMove (void)
 
int x_OnKeyDown (void)
 
int x_OnKeyUp (void)
 
void x_OnSelectCursor (void)
 
bool x_SelectByRect (bool toggle)
 Returns true if selection status changed (or may have changed..) More...
 
virtual void x_Layout (CPhyloTreeDataSource &ds)
 
virtual void x_Render (CGlPane &pane, CPhyloTreeDataSource &ds)
 
void x_ComputeEdgeHighlight ()
 compute coefficients for edge highlighting (if enabled) More...
 
- Protected Member Functions inherited from CObject
virtual void DeleteThis (void)
 Virtual method "deleting" this object. More...
 
- Protected Member Functions inherited from CWeakObject
void CleanWeakRefs (void) const
 Method cleaning all CWeakRefs referencing at this moment to the object After calling to this method all existing CWeakRefs referencing to the object will return NULL, so it effectively will be equal to deleting the object. More...
 

Protected Attributes

CPhyloTreeDataSourcem_DS
 
CRef< CPhyloTreeSchemem_SL
 
double m_DimX
 
double m_DimY
 
double m_xStep
 
double m_yStep
 
double m_NormDistance
 
bool m_DistanceBarLowerLeft
 
CGlTextureFontm_pLabelFont
 
IPhyloTreeRenderHostm_pHost
 
CMouseZoomHandlerm_pMouseZoomHandler
 
CIRef< I3DTexturem_Texture
 
CGlCurve< CCurveBezierm_Curve
 
CPhyloTreeLabel m_Label
 
CPhyloTreeLabel m_LabelExt
 
TModelRect m_RasterRect
 
std::vector< CVect2< float > > m_SelectedEdge
 Graphical representation of currently selected edge, if any, and data members needed for the selection process. More...
 
CVect2< float > m_RightClick
 
bool m_SelEdge
 
float m_ClosestEdgeDistSq
 
CVect2< float > m_ClosestEdgeDir
 
CGlPanem_pPane
 event handling More...
 
EState m_State
 
wxPoint m_StartPoint
 
wxPoint m_LastPos
 
wxPoint m_DragPoint
 
TTreeIdx m_ActiveTooltipNode
 
bool m_DistMode
 
bool m_MoveDuringSelection
 
bool m_UseSplines
 
bool m_RotatedLabels
 
bool m_ForceSquare
 
bool m_RegenerateTexture
 
wxTimer m_EffectsTimer
 
bool m_SwitchedLayout
 
wxTimer m_MouseSingleTimer
 If user is double clicking, want to avoid mouse single-click actions. More...
 
wxMouseEvent m_LastMouseEvent
 event info from last mouse click - used for single click processing More...
 
float m_LabelViewPct
 When sizing the tree to window, this is the maximum % of screen area (width) that will be allocated to labels on either side of the screen (some views, e.g. More...
 
bool m_RenderScale
 If true render a scale legend at the bottom of the screen. More...
 
float m_TreePixels
 Sum of size (height) of all leaf nodes in pixels, without considering labels (accomodates nodes that are not equally sized) More...
 
float m_LabelPixels
 Height of tree in pixels when labels are displayed. More...
 
ELayoutStatus m_ValidLayout
 
wxStockCursor m_CursorId
 
CPhyloTree::TSelState m_NodeSingleSelection
 When user only wants to display a single, current selection from the selection set (including traced and commmon nodes) those nodes and selection states are stored in this vector. More...
 
std::vector< NodePointerm_NodePointers
 
CIRef< I3DFrameBufferm_MinimapBuffer
 
float m_BufferdRenderTime
 For performance analysis (time to update VBOs after topology change) More...
 
float m_VboSyncTime
 
float m_LayoutTime
 
bool m_HighlightLongerEdges
 If true, highlight longer edges when zoomed out. More...
 
float m_HighlightFunctionK
 Parms for logistics function to highlight edges when zoomed out to the point that many edges overlap (en.wikipedia.org/wiki/Logistic_function) More...
 
float m_HighlightFunctionMidpoint
 
float m_HighlightIntensity
 

Additional Inherited Members

- Static Public Member Functions inherited from CObject
static NCBI_XNCBI_EXPORT void ThrowNullPointerException (void)
 Define method to throw null pointer exception. More...
 
static NCBI_XNCBI_EXPORT void ThrowNullPointerException (const type_info &type)
 
static EAllocFillMode GetAllocFillMode (void)
 
static void SetAllocFillMode (EAllocFillMode mode)
 
static void SetAllocFillMode (const string &value)
 Set mode from configuration parameter value. More...
 
- Static Public Member Functions inherited from CDebugDumpable
static void EnableDebugDump (bool on)
 
- Static Public Attributes inherited from CObject
static const TCount eCounterBitsCanBeDeleted = 1 << 0
 Define possible object states. More...
 
static const TCount eCounterBitsInPlainHeap = 1 << 1
 Heap signature was found. More...
 
static const TCount eCounterBitsPlaceMask
 Mask for 'in heap' state flags. More...
 
static const int eCounterStep = 1 << 2
 Skip over the "in heap" bits. More...
 
static const TCount eCounterValid = TCount(1) << (sizeof(TCount) * 8 - 2)
 Minimal value for valid objects (reference counter is zero) Must be a single bit value. More...
 
static const TCount eCounterStateMask
 Valid object, and object in heap. More...
 

Detailed Description

Definition at line 65 of file phylo_tree_render.hpp.

Member Typedef Documentation

◆ TNodeType

Definition at line 91 of file phylo_tree_render.hpp.

◆ TTreeIdx

Definition at line 90 of file phylo_tree_render.hpp.

◆ TTreeType

Definition at line 89 of file phylo_tree_render.hpp.

Member Enumeration Documentation

◆ ELabelAlign

label alignment

Enumerator
eLeft 
eRight 

Definition at line 333 of file phylo_tree_render.hpp.

◆ ELayoutStatus

Enumerator
eValidLayout 
eNeedLayout 
eNeedLayoutAndSize 

Definition at line 83 of file phylo_tree_render.hpp.

◆ EState

enum IPhyloTreeRender::EState
protected

event handling state

Enumerator
eIdle 
eSelPoint 
eSelRect 

selecting a single glyph by point

eDragNode 

selecting multiple glyphs by rectangle

Definition at line 325 of file phylo_tree_render.hpp.

◆ TRenderingOption

Enumerator
eDistancesRendering 
eAdaptiveMargins 
eSimplification 
eSplinesRendering 
eRotatedLabels 
eGenerateTextures 
eAutofitLabels 

Definition at line 73 of file phylo_tree_render.hpp.

Constructor & Destructor Documentation

◆ IPhyloTreeRender() [1/2]

IPhyloTreeRender::IPhyloTreeRender ( )

◆ IPhyloTreeRender() [2/2]

IPhyloTreeRender::IPhyloTreeRender ( double  width,
double  height 
)

◆ ~IPhyloTreeRender()

IPhyloTreeRender::~IPhyloTreeRender ( )
virtual

Member Function Documentation

◆ BufferedRender()

void IPhyloTreeRender::BufferedRender ( CGlPane pane,
CPhyloTreeDataSource ds,
bool  init_collision_info = true,
bool  select_edge = false 
)
virtual

◆ CalculateExtents()

void IPhyloTreeRender::CalculateExtents ( CPhyloTree tree,
CPhyloTree::TNodeType node 
)

◆ ComputeDistFromPixels()

double IPhyloTreeRender::ComputeDistFromPixels ( CGlPane pane,
const CVect2< TModelUnit > &  pixpos1,
const CVect2< TModelUnit > &  pixpos2 
) const
virtual

◆ ComputeScale()

double IPhyloTreeRender::ComputeScale ( double  default_scale,
int precision 
) const

Definition at line 344 of file phylo_tree_render.cpp.

References max(), and precision.

Referenced by x_RenderScaleMarker().

◆ ComputeViewingLimits()

void IPhyloTreeRender::ComputeViewingLimits ( CGlPane pane,
bool  force_square = false,
bool  init_collision_info = true 
)

◆ DefaultNodeSize()

float IPhyloTreeRender::DefaultNodeSize ( )
virtual

Return default node size according to scheme or 0 if not visible at current scale.

Definition at line 2632 of file phylo_tree_render.cpp.

References DistanceBetweenNodes(), CPhyloTreeScheme::eNodeSize, m_SL, and CPhyloTreeScheme::SetSize().

Referenced by CPhyloTreeWidget::OnZoomToSelection(), and x_SetElementVisibility().

◆ DistanceBetweenNodes()

TVPUnit IPhyloTreeRender::DistanceBetweenNodes ( void  ) const
virtual

◆ GetDefaultNodeSize()

float IPhyloTreeRender::GetDefaultNodeSize ( const CPhyloTreeNode node) const
virtual

◆ GetDescription()

virtual string IPhyloTreeRender::GetDescription ( void  )
pure virtual

◆ GetDimX()

const double IPhyloTreeRender::GetDimX ( void  )
inline

◆ GetDimY()

const double IPhyloTreeRender::GetDimY ( void  )
inline

◆ GetDistRendering()

bool IPhyloTreeRender::GetDistRendering ( void  ) const
inline

◆ GetEdgeColor()

bool IPhyloTreeRender::GetEdgeColor ( CPhyloTreeNode child_node,
CPhyloTreeNode parent_node,
CRgbaColor c,
CRgbaColor parent_color 
)

◆ GetEvtHandler()

wxEvtHandler * IPhyloTreeRender::GetEvtHandler ( )
virtual

Implements IGlEventHandler.

Definition at line 3411 of file phylo_tree_render.cpp.

◆ GetForceSquare()

bool IPhyloTreeRender::GetForceSquare ( void  ) const
inline

Definition at line 128 of file phylo_tree_render.hpp.

References m_ForceSquare.

◆ GetGenericHost()

IGenericHandlerHost * IPhyloTreeRender::GetGenericHost ( )

Definition at line 1057 of file phylo_tree_render.cpp.

References m_pHost.

Referenced by OnLeftDown(), OnTimerLeftUp(), and x_OnSelectCursor().

◆ GetHighlightEdges()

bool IPhyloTreeRender::GetHighlightEdges ( ) const
inline

Definition at line 266 of file phylo_tree_render.hpp.

References m_HighlightLongerEdges.

Referenced by CPhyloTreeWidget::OnHighlightEdges().

◆ GetHoverNode()

CPhyloTreeNode * IPhyloTreeRender::GetHoverNode ( CVect2< float >  pt)

◆ GetHoverNodeIdx()

CPhyloTree::TTreeIdx IPhyloTreeRender::GetHoverNodeIdx ( CVect2< float >  pt)

◆ GetLabelColorIdx()

short IPhyloTreeRender::GetLabelColorIdx ( CPhyloTreeNode node)

Definition at line 3210 of file phylo_tree_render.cpp.

References CPhyloTreeScheme::eLabel, CPhyloTreeScheme::GetColorIdx(), and m_SL.

Referenced by x_RenderNodeVbo().

◆ GetLabelViewPct()

virtual float IPhyloTreeRender::GetLabelViewPct ( ) const
inlinevirtual

Reimplemented in CPhyloRadial, and CPhyloCircularCladogram.

Definition at line 135 of file phylo_tree_render.hpp.

References m_LabelViewPct.

Referenced by x_FindBestSize().

◆ GetMaxLeavesVisible()

int IPhyloTreeRender::GetMaxLeavesVisible ( )

◆ GetMinDimensions()

TVPRect IPhyloTreeRender::GetMinDimensions ( CGlPane pane,
const CPhyloTreeDataSource ds,
const CPhyloTreeScheme sc,
int label_height,
TModelRect node_rect,
TModelRect text_rect,
float  width_factor,
float  height_factor = 1.0f,
float  wh_ratio = -1.0f 
)

◆ GetNodeColorIdx()

short IPhyloTreeRender::GetNodeColorIdx ( CPhyloTreeNode node)

◆ GetNodeLabelDist()

float IPhyloTreeRender::GetNodeLabelDist ( const CPhyloTreeNode node) const
virtual

◆ GetNodeLayoutSize()

float IPhyloTreeRender::GetNodeLayoutSize ( const CPhyloTreeNode scheme) const
virtual

This is the height of the node for layout purposes.

Reimplemented from IPhyloTreeLOD.

Definition at line 3421 of file phylo_tree_render.cpp.

References CPhyloNodeData::GetNodeLayoutSize(), CTreeModelNode< TData >::GetValue(), and m_SL.

Referenced by CCalcCircularTree::operator()(), CCalcRectangularTree::operator()(), and CCalcSlantedTree::operator()().

◆ GetNodeSize()

float IPhyloTreeRender::GetNodeSize ( const CPhyloTreeNode node) const
virtual

◆ GetRegenerateTexture()

bool IPhyloTreeRender::GetRegenerateTexture ( void  ) const
inline

Definition at line 131 of file phylo_tree_render.hpp.

References m_RegenerateTexture.

◆ GetRenderScale()

bool IPhyloTreeRender::GetRenderScale ( ) const
inline

Definition at line 137 of file phylo_tree_render.hpp.

References m_RenderScale.

Referenced by CPhyloImageGrabber::x_CaptureImage().

◆ GetRotatedLabels()

bool IPhyloTreeRender::GetRotatedLabels ( void  ) const
inline

◆ GetScheme()

CPhyloTreeScheme& IPhyloTreeRender::GetScheme ( void  )
inlinevirtual

◆ GetSingleSelection()

CPhyloTree::TSelState& IPhyloTreeRender::GetSingleSelection ( )
inline

Definition at line 143 of file phylo_tree_render.hpp.

References m_NodeSingleSelection.

◆ GetSplinesRendering()

bool IPhyloTreeRender::GetSplinesRendering ( void  ) const
inline

Definition at line 121 of file phylo_tree_render.hpp.

References m_UseSplines.

Referenced by CPhyloTreeWidget::OnUpdateUseSplines().

◆ GetTexture()

I3DTexture * IPhyloTreeRender::GetTexture ( float &  xcoord_limit,
float &  ycoord_limit 
)

◆ GetTreeHeight()

float IPhyloTreeRender::GetTreeHeight ( ) const
inline

Get sum of pixel size of all leaf nodes.

Definition at line 141 of file phylo_tree_render.hpp.

References m_TreePixels.

Referenced by CCalcSlantedTree::CCalcSlantedTree(), and CCalcCircularTree::operator()().

◆ InitCollisionInfo()

void IPhyloTreeRender::InitCollisionInfo ( )

◆ InitExtents()

void IPhyloTreeRender::InitExtents ( )

◆ InitLabel()

void IPhyloTreeRender::InitLabel ( CPhyloTree tree,
CPhyloTree::TNodeType node 
)

◆ IsDistanceBarLowerLeft()

virtual bool IPhyloTreeRender::IsDistanceBarLowerLeft ( ) const
inlinevirtual

Definition at line 251 of file phylo_tree_render.hpp.

References m_DistanceBarLowerLeft.

Referenced by x_RenderScaleMarker().

◆ LabelsVisible()

bool IPhyloTreeRender::LabelsVisible ( )

Return true if lables are visible according to rendering scheme and at current scale.

Definition at line 2621 of file phylo_tree_render.cpp.

References CPhyloTreeScheme::eLabelsForLeavesOnly, CPhyloTreeScheme::eLabelsVisible, CPhyloTreeScheme::GetLabelVisibility(), CPhyloTreeLabel::IsVisible(), m_Label, and m_SL.

Referenced by x_SetElementVisibility().

◆ Layout()

void IPhyloTreeRender::Layout ( CPhyloTreeDataSource ds,
CGlPane p 
)
virtual

◆ NeedsLayout()

virtual void IPhyloTreeRender::NeedsLayout ( ELayoutStatus  s)
inlinevirtual

Definition at line 160 of file phylo_tree_render.hpp.

References m_ValidLayout.

◆ OnLeftDblClick()

void IPhyloTreeRender::OnLeftDblClick ( wxMouseEvent &  event)

◆ OnLeftDown()

void IPhyloTreeRender::OnLeftDown ( wxMouseEvent &  event)

◆ OnLeftUp()

void IPhyloTreeRender::OnLeftUp ( wxMouseEvent &  event)

Definition at line 945 of file phylo_tree_render.cpp.

References eIdle, m_DS, m_LastMouseEvent, m_MouseSingleTimer, m_State, and NULL.

◆ OnMotion()

void IPhyloTreeRender::OnMotion ( wxMouseEvent &  event)

◆ OnRightDown()

void IPhyloTreeRender::OnRightDown ( wxMouseEvent &  event)

◆ OnTimer()

void IPhyloTreeRender::OnTimer ( wxTimerEvent &  event)

◆ OnTimerLeftUp()

void IPhyloTreeRender::OnTimerLeftUp ( wxTimerEvent &  event)

◆ PointToNode()

void IPhyloTreeRender::PointToNode ( int  id,
wxRect  tip_rect,
float  sec 
)

◆ Redraw()

void IPhyloTreeRender::Redraw ( void  )
virtual

◆ RemoveCurrentDataSource()

void IPhyloTreeRender::RemoveCurrentDataSource ( )
virtual

◆ Render()

bool IPhyloTreeRender::Render ( CGlPane pane,
CPhyloTreeDataSource ds 
)
virtual

◆ RenderForHardcopy()

void IPhyloTreeRender::RenderForHardcopy ( CGlPane pane,
CPhyloTreeDataSource ds 
)
virtual

◆ RenderPdf()

void IPhyloTreeRender::RenderPdf ( CGlPane pane,
CPhyloTreeDataSource ds,
CRef< CPdf pdf 
)
virtual

◆ SetActiveTooltipNode()

void IPhyloTreeRender::SetActiveTooltipNode ( int  id)

id is the tip id of the tip that the users mouse is currently on, or -1

Definition at line 3092 of file phylo_tree_render.cpp.

References CPhyloTree::FindNodeById(), CPhyloTreeDataSource::GetTree(), m_ActiveTooltipNode, and m_DS.

Referenced by CPhyloTreeWidget::OnTipActivated(), and CPhyloTreeWidget::OnTipDeactivated().

◆ SetDistanceBarLowerLeft()

void IPhyloTreeRender::SetDistanceBarLowerLeft ( bool  b)
inline

Definition at line 252 of file phylo_tree_render.hpp.

References b, and m_DistanceBarLowerLeft.

◆ SetDistRendering()

void IPhyloTreeRender::SetDistRendering ( bool  flag)
inline

Definition at line 117 of file phylo_tree_render.hpp.

References m_DistMode.

◆ SetFont()

void IPhyloTreeRender::SetFont ( CGlTextureFont font)
inline

Definition at line 113 of file phylo_tree_render.hpp.

References m_pLabelFont.

◆ SetForceSquare()

void IPhyloTreeRender::SetForceSquare ( bool  flag)
inline

Definition at line 129 of file phylo_tree_render.hpp.

References m_ForceSquare.

◆ SetHighlightEdges()

void IPhyloTreeRender::SetHighlightEdges ( bool  enable)

Definition at line 373 of file phylo_tree_render.cpp.

References m_DistMode, and m_HighlightLongerEdges.

Referenced by CPhyloTreeWidget::OnHighlightEdges().

◆ SetHost()

void IPhyloTreeRender::SetHost ( IPhyloTreeRenderHost pHost)

Definition at line 179 of file phylo_tree_render.cpp.

References m_pHost.

◆ SetLabelViewPct()

void IPhyloTreeRender::SetLabelViewPct ( float  pct)
inline

Definition at line 134 of file phylo_tree_render.hpp.

References m_LabelViewPct.

◆ SetModelDimensions()

void IPhyloTreeRender::SetModelDimensions ( double  width,
double  height 
)
inline

Definition at line 231 of file phylo_tree_render.hpp.

References m_DimX, and m_DimY.

◆ SetNodeColoration()

float IPhyloTreeRender::SetNodeColoration ( CPhyloTreeNode node,
TTreeIdx  node_idx 
)

◆ SetPane()

void IPhyloTreeRender::SetPane ( CGlPane pane)
virtual

Reimplemented from IGlEventHandler.

Definition at line 184 of file phylo_tree_render.cpp.

References m_pPane.

◆ SetRegenerateTexture()

void IPhyloTreeRender::SetRegenerateTexture ( bool  flag)
inline

Definition at line 132 of file phylo_tree_render.hpp.

References m_RegenerateTexture.

◆ SetRenderingOption()

void IPhyloTreeRender::SetRenderingOption ( TRenderingOption  opt,
bool  bVal 
)

◆ SetRenderScale()

void IPhyloTreeRender::SetRenderScale ( bool  s)
inline

Definition at line 138 of file phylo_tree_render.hpp.

References m_RenderScale.

Referenced by CPhyloImageGrabber::x_CaptureImage().

◆ SetRotatedLabels()

void IPhyloTreeRender::SetRotatedLabels ( bool  flag)
inline

Definition at line 125 of file phylo_tree_render.hpp.

References m_RotatedLabels.

Referenced by CPhyloCircularCladogram::CPhyloCircularCladogram().

◆ SetScheme()

void IPhyloTreeRender::SetScheme ( CPhyloTreeScheme sl)

◆ SetSplinesRendering()

void IPhyloTreeRender::SetSplinesRendering ( bool  flag)
inline

Definition at line 122 of file phylo_tree_render.hpp.

References m_UseSplines.

◆ SetZoomHandler()

void IPhyloTreeRender::SetZoomHandler ( CMouseZoomHandler mz)
inline

Definition at line 115 of file phylo_tree_render.hpp.

References m_pMouseZoomHandler.

◆ StartRendering()

virtual void IPhyloTreeRender::StartRendering ( bool  b)
inlinevirtual

Allow caller to indicate layout has changed from one type to another (e.g.

rect clad. to force)

Reimplemented in CPhyloForce.

Definition at line 156 of file phylo_tree_render.hpp.

References b, and m_SwitchedLayout.

Referenced by CPhyloForce::StartRendering().

◆ SupportsDistanceRendering()

virtual bool IPhyloTreeRender::SupportsDistanceRendering ( ) const
inlinevirtual

◆ SupportsRotatedLabels()

virtual bool IPhyloTreeRender::SupportsRotatedLabels ( ) const
inlinevirtual

◆ TTHH_GetTooltip()

CTooltipInfo IPhyloTreeRender::TTHH_GetTooltip ( const wxRect &  rect)

◆ TTHH_NeedTooltip()

string IPhyloTreeRender::TTHH_NeedTooltip ( const wxPoint &  pt)

◆ UpdateDataSource()

void IPhyloTreeRender::UpdateDataSource ( CPhyloTreeDataSource ds,
CGlPane p 
)
virtual

Definition at line 1848 of file phylo_tree_render.cpp.

References m_DS, and m_pPane.

◆ ValidLayout()

virtual ELayoutStatus IPhyloTreeRender::ValidLayout ( ) const
inlinevirtual

Definition at line 159 of file phylo_tree_render.hpp.

References m_ValidLayout.

◆ x_AddCollapsedGeomNode()

void IPhyloTreeRender::x_AddCollapsedGeomNode ( CPhyloTreeNode node,
const CVect2< float >  delta,
CRgbaColor  color,
float  alpha,
size_t  circleSegments,
bool  skip_pdf 
)

◆ x_AddCollapsedTextureNode()

bool IPhyloTreeRender::x_AddCollapsedTextureNode ( CPhyloTreeNode node,
const CVect2< float >  delta,
CRgbaColor  color,
float  alpha 
)

◆ x_ComputeEdgeHighlight()

void IPhyloTreeRender::x_ComputeEdgeHighlight ( )
protected

◆ x_ComputeNodeBoundary()

void IPhyloTreeRender::x_ComputeNodeBoundary ( CPhyloTree tree,
CPhyloTree::TNodeType node,
CBoundaryPoints boundary_pts,
const string layout_type 
)
virtual

◆ x_DrawBoundingAreas()

void IPhyloTreeRender::x_DrawBoundingAreas ( CPhyloTreeNode node)
protected

Definition at line 1820 of file phylo_tree_render.cpp.

◆ x_DrawBoundingAreasVbo()

void IPhyloTreeRender::x_DrawBoundingAreasVbo ( CPhyloTreeNode node)
protected

◆ x_FindBestSize()

CVect2< float > IPhyloTreeRender::x_FindBestSize ( CGlPane pane,
std::vector< ProjectionElement > &  xexts,
std::vector< ProjectionElement > &  yexts,
TModelRect limits,
TModelRect node_extents,
TModelRect text_extents,
int  max_iterations = 500 
)
protected

Returns viewport projection size in x/y from last iteration and puts optimal viewing (to see whole tree) area in limits.

Compute viewing area limits that will best get the entire tree to fit within the boundaries of the viewport currently defined in m_pPane.

The limits are returned in 'limits' The node_extents and text_extents return the pixel coordinates to which the node (resizable) and text (non-resizable) parts of the tree project. The text_extents are always the same size or larger than the node_extents. These two extents are useful when iterations is 1 which gives us a viewport size instead of the viewing area limits (limits) which takes multiple iterations.

Definition at line 1885 of file phylo_tree_render.cpp.

References abs, CGlRect< T >::Bottom(), delta(), CPhyloTreeScheme::eZoomX, CPhyloTreeScheme::eZoomXY, CPhyloTreeScheme::eZoomY, fabs, GetDescription(), GetLabelViewPct(), CPhyloTreeLabel::GetMinVerticalSeparation(), CGlPane::GetModelLimitsRect(), CGlPane::GetOutputUnitScaler(), CPhyloTreeDataSource::GetSize(), CGlPane::GetViewport(), CGlPane::GetVisibleRect(), CPhyloTreeScheme::GetZoomBehavior(), CGlRect< T >::Height(), i, CGlRect< T >::Left(), limits, m_DS, m_Label, m_pPane, m_SL, max(), min(), CGlRect< T >::Right(), CVect2< T >::Set(), CGlRect< T >::SetBottom(), CGlRect< T >::SetLeft(), CGlRect< T >::SetRight(), CGlRect< T >::SetTop(), td, CGlRect< T >::Top(), CGlRect< T >::Width(), and x_GetVerticalSeparationFactor().

Referenced by ComputeViewingLimits(), and GetMinDimensions().

◆ x_GenerateTexture()

void IPhyloTreeRender::x_GenerateTexture ( void  )
protected

◆ x_GetEdgeDist()

bool IPhyloTreeRender::x_GetEdgeDist ( const CVect2< float > &  from,
const CVect2< float > &  to 
)

◆ x_GetVerticalSeparationFactor()

virtual TModelUnit IPhyloTreeRender::x_GetVerticalSeparationFactor ( ) const
inlineprotectedvirtual

layout-spefic constant for label vertical sepatation needed for visibility

Reimplemented in CPhyloRadial, and CPhyloCircularCladogram.

Definition at line 411 of file phylo_tree_render.hpp.

Referenced by GetMaxLeavesVisible(), GetMinDimensions(), and x_FindBestSize().

◆ x_InitCollisionInfo()

void IPhyloTreeRender::x_InitCollisionInfo ( )
protected

◆ x_Layout()

virtual void IPhyloTreeRender::x_Layout ( CPhyloTreeDataSource ds)
inlineprotectedvirtual

◆ x_OnKeyDown()

int IPhyloTreeRender::x_OnKeyDown ( void  )
protected

Definition at line 1071 of file phylo_tree_render.cpp.

References eIdle, and m_State.

◆ x_OnKeyUp()

int IPhyloTreeRender::x_OnKeyUp ( void  )
protected

Definition at line 1076 of file phylo_tree_render.cpp.

References eIdle, and m_State.

◆ x_OnMouseMove()

int IPhyloTreeRender::x_OnMouseMove ( void  )
protected

Definition at line 1066 of file phylo_tree_render.cpp.

References eIdle, and m_State.

◆ x_OnSelectCursor()

void IPhyloTreeRender::x_OnSelectCursor ( void  )
protected

◆ x_Render()

virtual void IPhyloTreeRender::x_Render ( CGlPane pane,
CPhyloTreeDataSource ds 
)
inlineprotectedvirtual

Definition at line 627 of file phylo_tree_render.hpp.

◆ x_RenderCircularVbo()

void IPhyloTreeRender::x_RenderCircularVbo ( TTreeIdx  child_node_idx,
CPhyloTreeNode child_node,
CPhyloTreeNode parent_node,
vector< CVect2< float > > *  trace_line_coords,
vector< CVect4< unsigned char > > *  trace_line_colors,
vector< CVect2< float > > *  trace_point_coords,
vector< CVect4< unsigned char > > *  trace_point_colors,
vector< CVect2< float > > &  edge_node_coords,
vector< CVect4< unsigned char > > &  edge_node_colors,
vector< CVect2< float > > &  sel_edge_node_coords,
vector< CVect4< unsigned char > > &  sel_edge_node_colors,
float  radius,
const CVect2< float > &  center,
const CVect2< float > &  offset,
float  resolution 
)

◆ x_RenderLineVbo() [1/2]

void IPhyloTreeRender::x_RenderLineVbo ( TTreeIdx  child_node_idx,
CPhyloTreeNode child_node,
CPhyloTreeNode parent_node,
vector< CVect2< float > > &  line_coords,
vector< CVect4< unsigned char > > &  line_colors,
double  x1,
double  y1,
double  x2,
double  y2 
)

◆ x_RenderLineVbo() [2/2]

void IPhyloTreeRender::x_RenderLineVbo ( TTreeIdx  child_node_idx,
CPhyloTreeNode child_node,
CPhyloTreeNode parent_node,
vector< CVect2< float > > &  line_coords,
vector< CVect4< unsigned char > > &  line_colors,
vector< CVect2< float > > &  sel_line_coords,
vector< CVect4< unsigned char > > &  sel_line_colors,
double  x1,
double  y1,
double  x2,
double  y2 
)

◆ x_RenderNodeHighlight()

void IPhyloTreeRender::x_RenderNodeHighlight ( CGlPane pane,
CPhyloTree::TTreeIdx  node_idx,
const CRgbaColor c 
)
protected

◆ x_RenderNodeVbo()

void IPhyloTreeRender::x_RenderNodeVbo ( CPhyloTreeNode node,
TTreeIdx  node_idx,
vector< float > &  color_coords,
const CVect2< float >  delta = CVect2<float>(0.0f, 0.0f) 
)

Definition at line 1603 of file phylo_tree_render.cpp.

References CGlModel2D::AddTempGeomNode(), CGlState::BlendFunc(), CGlRenderNode::ClearPositions(), color, CTreeTriFanNode::CreateVbo(), delta(), CGlState::Disable(), eApiUndefined, CPhyloNodeData::eHideChildren, CPhyloTreeScheme::eHighlightSelection, eMetal, CGlState::Enable(), CPhyloNodeData::eNotSelected, eOpenGL11, eOpenGL20, eRenderDebug, eRenderPDF, eRenderSVG, CTreeGraphicsModel::GetBoundaryNode(), CRgbaGradColorTable::GetColor(), CTreeGraphicsModel::GetColorTable(), CRgbaGradColorTable::GetColorTexCoord(), GetDefaultNodeSize(), GetGl(), GetLabelColorIdx(), CPhyloTreeDataSource::GetModel(), GetNodeColorIdx(), CTreeGraphicsModel::GetNodeIndices(), CTreeBoundaryNode::GetNodes(), CPhyloTreeScheme::GetNodeSize(), CPhyloTreeScheme::GetNonSelectedAlpha(), CPhyloTreeScheme::GetSelectionVisibility(), CGlRenderNode::GetState(), CTreeGraphicsModel::GetTriFanNode(), CTreeModelNode< TData >::GetValue(), CGlVboNode::GetVertexCount(), i, CMatrix4< T >::Identity(), int, CPhyloTreeNode::IsLeafEx(), CRgbaColor::Lighten(), m_DS, m_SL, max(), min(), CGlState::ScaleInvarient(), CRgbaColor::SetAlpha(), CPhyloNodeData::SetAlreadyDrawn(), CGlVboNode::SetColorBuffer(), SetNodeColoration(), CPhyloNodeData::SetNodeDisplayColor(), CPhyloNodeData::SetNodeDisplaySize(), CPhyloNodeData::SetNodeOffset(), CGlRenderNode::SetPosition(), CPhyloNodeData::SetTextDisplayColor(), CGlVboNode::SetVertexBuffer2D(), CPhyloNodeData::SetVisible(), x_AddCollapsedGeomNode(), and x_AddCollapsedTextureNode().

Referenced by CDrawCircularTreeVbo::operator()(), CDrawRadialTreeVbo::operator()(), CDrawSplineTreeVbo::operator()(), CDrawPseudoSplineTreeVbo::operator()(), CDrawSlantedTreeVbo::operator()(), CPhyloCircularCladogram::x_RenderVbo(), CPhyloRadial::x_RenderVbo(), CPhyloSlantedCladogram::x_RenderVbo(), CPhyloRectCladogram::x_RenderVboPseudoSplines(), and CPhyloRectCladogram::x_RenderVboSplines().

◆ x_RenderPseudoSplineVbo()

void IPhyloTreeRender::x_RenderPseudoSplineVbo ( TTreeIdx  child_node_idx,
CPhyloTreeNode child_node,
CPhyloTreeNode parent_node,
vector< CVect2< float > > &  edge_node_coords,
vector< CVect4< unsigned char > > &  edge_node_colors,
vector< CVect2< float > > &  sel_edge_node_coords,
vector< CVect4< unsigned char > > &  sel_edge_node_colors,
const CVect2< float > &  pt1,
const CVect2< float > &  mid_point,
const CVect2< float > &  pt2 
)

◆ x_RenderScaleMarker()

void IPhyloTreeRender::x_RenderScaleMarker ( CGlPane pane,
IRender gl 
)
protected

◆ x_RenderSelection()

void IPhyloTreeRender::x_RenderSelection ( CGlPane pane)
protected

◆ x_RenderSplineVbo()

void IPhyloTreeRender::x_RenderSplineVbo ( TTreeIdx  child_node_idx,
CPhyloTreeNode child_node,
CPhyloTreeNode parent_node,
vector< CVect2< float > > &  edge_node_coords,
vector< CVect4< unsigned char > > &  edge_node_colors,
vector< CVect2< float > > &  sel_edge_node_coords,
vector< CVect4< unsigned char > > &  sel_edge_node_colors,
const CVect3< float > &  pt1,
const CVect3< float > &  pt2,
const CVect3< float > &  pt3,
const CVect3< float > &  pt4 
)

◆ x_RenderTooltipHints()

void IPhyloTreeRender::x_RenderTooltipHints ( CGlPane pane)
protected

◆ x_RenderTreeLabel()

void IPhyloTreeRender::x_RenderTreeLabel ( CGlPane pane,
IRender gl 
)
protected

◆ x_RenderVbo()

virtual void IPhyloTreeRender::x_RenderVbo ( CPhyloTreeDataSource )
inlinevirtual

◆ x_SelectByRect()

bool IPhyloTreeRender::x_SelectByRect ( bool  toggle)
protected

◆ x_SetElementVisibility()

void IPhyloTreeRender::x_SetElementVisibility ( )
protectedvirtual

◆ x_SetGlRenderOptions()

virtual void IPhyloTreeRender::x_SetGlRenderOptions ( CPhyloTreeDataSource ds)
inlinevirtual

Set OpenGL rendering options that depend on layout chosen.

Do not do this during layout because the CGI may create multiple rendering contexts but layout is not called for each context

Reimplemented in CPhyloSlantedCladogram, CPhyloRectCladogram, CPhyloRadial, and CPhyloCircularCladogram.

Definition at line 588 of file phylo_tree_render.hpp.

Referenced by BufferedRender().

◆ x_WideLines()

bool IPhyloTreeRender::x_WideLines ( )
protectedvirtual

Returns true if lines are separated enough to use the wider form of lines (more separation is required for circular views, since interior lines overlap more easily)

Reimplemented in CPhyloCircularCladogram.

Definition at line 2643 of file phylo_tree_render.cpp.

References DistanceBetweenNodes(), CPhyloTreeScheme::eLineWidth, m_SL, and CPhyloTreeScheme::SetSize().

Referenced by CPhyloRectCladogram::x_SetElementVisibility(), and x_SetElementVisibility().

Member Data Documentation

◆ m_ActiveTooltipNode

TTreeIdx IPhyloTreeRender::m_ActiveTooltipNode
protected

◆ m_BufferdRenderTime

float IPhyloTreeRender::m_BufferdRenderTime
protected

For performance analysis (time to update VBOs after topology change)

Definition at line 633 of file phylo_tree_render.hpp.

Referenced by BufferedRender(), and IPhyloTreeRender().

◆ m_ClosestEdgeDir

CVect2<float> IPhyloTreeRender::m_ClosestEdgeDir
protected

Definition at line 321 of file phylo_tree_render.hpp.

Referenced by BufferedRender(), and x_GetEdgeDist().

◆ m_ClosestEdgeDistSq

float IPhyloTreeRender::m_ClosestEdgeDistSq
protected

Definition at line 320 of file phylo_tree_render.hpp.

Referenced by BufferedRender(), and x_GetEdgeDist().

◆ m_CursorId

wxStockCursor IPhyloTreeRender::m_CursorId
protected

Definition at line 374 of file phylo_tree_render.hpp.

Referenced by x_OnSelectCursor().

◆ m_Curve

CGlCurve<CCurveBezier> IPhyloTreeRender::m_Curve
protected

Definition at line 308 of file phylo_tree_render.hpp.

Referenced by x_RenderSplineVbo().

◆ m_DimX

double IPhyloTreeRender::m_DimX
protected

◆ m_DimY

double IPhyloTreeRender::m_DimY
protected

◆ m_DistanceBarLowerLeft

bool IPhyloTreeRender::m_DistanceBarLowerLeft
protected

◆ m_DistMode

bool IPhyloTreeRender::m_DistMode
protected

◆ m_DragPoint

wxPoint IPhyloTreeRender::m_DragPoint
protected

◆ m_DS

CPhyloTreeDataSource* IPhyloTreeRender::m_DS
protected

Definition at line 288 of file phylo_tree_render.hpp.

Referenced by BufferedRender(), CPhyloCircularCladogram::ComputeDistFromPixels(), ComputeDistFromPixels(), ComputeViewingLimits(), GetEdgeColor(), GetHoverNode(), GetHoverNodeIdx(), GetMinDimensions(), InitCollisionInfo(), IPhyloTreeRender(), Layout(), OnLeftDblClick(), OnLeftDown(), OnLeftUp(), OnRightDown(), OnTimerLeftUp(), PointToNode(), Redraw(), CPhyloForce::Render(), Render(), RenderForHardcopy(), RenderPdf(), SetActiveTooltipNode(), SetScheme(), TTHH_GetTooltip(), TTHH_NeedTooltip(), UpdateDataSource(), x_AddCollapsedGeomNode(), x_AddCollapsedTextureNode(), CPhyloCircularCladogram::x_Calculate(), CPhyloRadial::x_Calculate(), CPhyloRectCladogram::x_Calculate(), CPhyloSlantedCladogram::x_Calculate(), CPhyloForce::x_CalculateBoundary(), x_ComputeEdgeHighlight(), CPhyloRectCladogram::x_DrawPseudoSplineTree(), CPhyloRectCladogram::x_DrawSplineTree(), CPhyloCircularCladogram::x_DrawTree(), x_FindBestSize(), CPhyloCircularCladogram::x_Layout(), CPhyloForce::x_Layout(), x_RenderCircularVbo(), x_RenderLineVbo(), x_RenderNodeHighlight(), x_RenderNodeVbo(), x_RenderPseudoSplineVbo(), x_RenderSelection(), x_RenderSplineVbo(), x_RenderTooltipHints(), x_RenderTreeLabel(), CPhyloCircularCladogram::x_RenderVbo(), CPhyloRadial::x_RenderVbo(), CPhyloRectCladogram::x_RenderVbo(), CPhyloSlantedCladogram::x_RenderVbo(), CPhyloRectCladogram::x_RenderVboPseudoSplines(), CPhyloRectCladogram::x_RenderVboSplines(), x_SelectByRect(), CPhyloRectCladogram::x_SetElementVisibility(), x_SetElementVisibility(), CPhyloCircularCladogram::x_SetGlRenderOptions(), CPhyloRadial::x_SetGlRenderOptions(), CPhyloRectCladogram::x_SetGlRenderOptions(), and CPhyloSlantedCladogram::x_SetGlRenderOptions().

◆ m_EffectsTimer

wxTimer IPhyloTreeRender::m_EffectsTimer
protected

Definition at line 351 of file phylo_tree_render.hpp.

Referenced by OnTimer(), and PointToNode().

◆ m_ForceSquare

bool IPhyloTreeRender::m_ForceSquare
protected

◆ m_HighlightFunctionK

float IPhyloTreeRender::m_HighlightFunctionK
protected

Parms for logistics function to highlight edges when zoomed out to the point that many edges overlap (en.wikipedia.org/wiki/Logistic_function)

Definition at line 642 of file phylo_tree_render.hpp.

Referenced by GetEdgeColor(), and IPhyloTreeRender().

◆ m_HighlightFunctionMidpoint

float IPhyloTreeRender::m_HighlightFunctionMidpoint
protected

Definition at line 643 of file phylo_tree_render.hpp.

Referenced by GetEdgeColor(), IPhyloTreeRender(), and x_ComputeEdgeHighlight().

◆ m_HighlightIntensity

float IPhyloTreeRender::m_HighlightIntensity
protected

Definition at line 644 of file phylo_tree_render.hpp.

Referenced by GetEdgeColor(), IPhyloTreeRender(), and x_ComputeEdgeHighlight().

◆ m_HighlightLongerEdges

bool IPhyloTreeRender::m_HighlightLongerEdges
protected

If true, highlight longer edges when zoomed out.

Definition at line 638 of file phylo_tree_render.hpp.

Referenced by GetEdgeColor(), GetHighlightEdges(), IPhyloTreeRender(), SetHighlightEdges(), and x_ComputeEdgeHighlight().

◆ m_Label

CPhyloTreeLabel IPhyloTreeRender::m_Label
protected

◆ m_LabelExt

CPhyloTreeLabel IPhyloTreeRender::m_LabelExt
protected

Definition at line 311 of file phylo_tree_render.hpp.

Referenced by SetScheme(), and TTHH_GetTooltip().

◆ m_LabelPixels

float IPhyloTreeRender::m_LabelPixels
protected

◆ m_LabelViewPct

float IPhyloTreeRender::m_LabelViewPct
protected

When sizing the tree to window, this is the maximum % of screen area (width) that will be allocated to labels on either side of the screen (some views, e.g.

radial, have labels on both sides).

Definition at line 361 of file phylo_tree_render.hpp.

Referenced by CPhyloCircularCladogram::GetLabelViewPct(), CPhyloRadial::GetLabelViewPct(), GetLabelViewPct(), GetMinDimensions(), IPhyloTreeRender(), and SetLabelViewPct().

◆ m_LastMouseEvent

wxMouseEvent IPhyloTreeRender::m_LastMouseEvent
protected

event info from last mouse click - used for single click processing

Definition at line 356 of file phylo_tree_render.hpp.

Referenced by OnLeftUp(), and OnTimerLeftUp().

◆ m_LastPos

wxPoint IPhyloTreeRender::m_LastPos
protected

Definition at line 342 of file phylo_tree_render.hpp.

Referenced by OnMotion().

◆ m_LayoutTime

float IPhyloTreeRender::m_LayoutTime
protected

Definition at line 635 of file phylo_tree_render.hpp.

Referenced by IPhyloTreeRender(), and Layout().

◆ m_MinimapBuffer

CIRef<I3DFrameBuffer> IPhyloTreeRender::m_MinimapBuffer
protected

Definition at line 408 of file phylo_tree_render.hpp.

Referenced by x_GenerateTexture().

◆ m_MouseSingleTimer

wxTimer IPhyloTreeRender::m_MouseSingleTimer
protected

If user is double clicking, want to avoid mouse single-click actions.

Definition at line 354 of file phylo_tree_render.hpp.

Referenced by OnLeftDblClick(), and OnLeftUp().

◆ m_MoveDuringSelection

bool IPhyloTreeRender::m_MoveDuringSelection
protected

Definition at line 346 of file phylo_tree_render.hpp.

Referenced by OnLeftDown(), OnMotion(), and OnTimerLeftUp().

◆ m_NodePointers

std::vector<NodePointer> IPhyloTreeRender::m_NodePointers
protected

Definition at line 406 of file phylo_tree_render.hpp.

Referenced by OnTimer(), PointToNode(), and x_RenderTooltipHints().

◆ m_NodeSingleSelection

CPhyloTree::TSelState IPhyloTreeRender::m_NodeSingleSelection
protected

When user only wants to display a single, current selection from the selection set (including traced and commmon nodes) those nodes and selection states are stored in this vector.

Definition at line 379 of file phylo_tree_render.hpp.

Referenced by BufferedRender(), GetSingleSelection(), and SetNodeColoration().

◆ m_NormDistance

double IPhyloTreeRender::m_NormDistance
protected

◆ m_pHost

IPhyloTreeRenderHost* IPhyloTreeRender::m_pHost
protected

◆ m_pLabelFont

CGlTextureFont* IPhyloTreeRender::m_pLabelFont
protected

Definition at line 300 of file phylo_tree_render.hpp.

Referenced by IPhyloTreeRender(), and SetFont().

◆ m_pMouseZoomHandler

CMouseZoomHandler* IPhyloTreeRender::m_pMouseZoomHandler
protected

Definition at line 303 of file phylo_tree_render.hpp.

Referenced by OnLeftDblClick(), OnLeftDown(), OnTimerLeftUp(), and SetZoomHandler().

◆ m_pPane

CGlPane* IPhyloTreeRender::m_pPane
protected

◆ m_ProjectionExtents

CProjectionExtents IPhyloTreeRender::m_ProjectionExtents

◆ m_RasterRect

TModelRect IPhyloTreeRender::m_RasterRect
protected

◆ m_RegenerateTexture

bool IPhyloTreeRender::m_RegenerateTexture
protected

◆ m_RenderScale

bool IPhyloTreeRender::m_RenderScale
protected

If true render a scale legend at the bottom of the screen.

Definition at line 364 of file phylo_tree_render.hpp.

Referenced by GetRenderScale(), IPhyloTreeRender(), SetRenderScale(), and x_RenderScaleMarker().

◆ m_RightClick

CVect2<float> IPhyloTreeRender::m_RightClick
protected

Definition at line 318 of file phylo_tree_render.hpp.

Referenced by OnRightDown(), and x_GetEdgeDist().

◆ m_RotatedLabels

bool IPhyloTreeRender::m_RotatedLabels
protected

◆ m_SelectedEdge

std::vector<CVect2<float> > IPhyloTreeRender::m_SelectedEdge
protected

Graphical representation of currently selected edge, if any, and data members needed for the selection process.

Definition at line 317 of file phylo_tree_render.hpp.

Referenced by BufferedRender(), x_RenderCircularVbo(), x_RenderLineVbo(), x_RenderPseudoSplineVbo(), x_RenderSelection(), and x_RenderSplineVbo().

◆ m_SelEdge

bool IPhyloTreeRender::m_SelEdge
protected

◆ m_SL

CRef<CPhyloTreeScheme> IPhyloTreeRender::m_SL
protected

◆ m_StartPoint

wxPoint IPhyloTreeRender::m_StartPoint
protected

◆ m_State

EState IPhyloTreeRender::m_State
protected

◆ m_SwitchedLayout

bool IPhyloTreeRender::m_SwitchedLayout
protected

Definition at line 352 of file phylo_tree_render.hpp.

Referenced by IPhyloTreeRender(), Layout(), and StartRendering().

◆ m_Texture

CIRef<I3DTexture> IPhyloTreeRender::m_Texture
protected

Definition at line 306 of file phylo_tree_render.hpp.

Referenced by GetTexture(), and x_GenerateTexture().

◆ m_TreePixels

float IPhyloTreeRender::m_TreePixels
protected

Sum of size (height) of all leaf nodes in pixels, without considering labels (accomodates nodes that are not equally sized)

Definition at line 368 of file phylo_tree_render.hpp.

Referenced by GetTreeHeight(), IPhyloTreeRender(), CPhyloRectCladogram::x_Calculate(), CPhyloCircularCladogram::x_Layout(), CPhyloRadial::x_Layout(), and CPhyloSlantedCladogram::x_Layout().

◆ m_UseSplines

bool IPhyloTreeRender::m_UseSplines
protected

◆ m_ValidLayout

ELayoutStatus IPhyloTreeRender::m_ValidLayout
protected

◆ m_VboSyncTime

float IPhyloTreeRender::m_VboSyncTime
protected

Definition at line 634 of file phylo_tree_render.hpp.

Referenced by BufferedRender(), and IPhyloTreeRender().

◆ m_xStep

double IPhyloTreeRender::m_xStep
protected

◆ m_yStep

double IPhyloTreeRender::m_yStep
protected

◆ m_ZoomableExtent

TModelRect IPhyloTreeRender::m_ZoomableExtent

The documentation for this class was generated from the following files:
Modified on Sun Jul 21 04:19:04 2024 by modify_doxy.py rev. 669887