TTHH_NeedTooltip(
constwxPoint & pt);
104 voidSetActiveTooltipNode(
int id);
109 voidPointToNode(
int id, wxRect tip_rect,
floatsec);
148 return(v.first == m_Idx);
163 voidOnLeftDown(wxMouseEvent& event);
164 voidOnRightDown(wxMouseEvent& event);
165 voidOnLeftDblClick(wxMouseEvent& event);
166 voidOnLeftUp(wxMouseEvent& event);
167 voidOnMotion(wxMouseEvent& event);
168 voidOnTimer(wxTimerEvent& event);
169 voidOnTimerLeftUp(wxTimerEvent& event);
192 I3DTexture* GetTexture(
float& xcoord_limit,
float& ycoord_limit);
195 virtual voidBufferedRender(
CGlPane& pane,
197 boolinit_collision_info=
true,
198 boolselect_edge=
false);
199 voidInitCollisionInfo();
202 boolLabelsVisible();
204 virtual floatDefaultNodeSize();
215 virtual voidRedraw(
void);
216 virtual voidRemoveCurrentDataSource();
244 voidComputeViewingLimits(
CGlPane& pane,
245 boolforce_square =
false,
246 boolinit_collision_info =
true);
255 const double GetDimX(
void) {
returnm_DimX;}
256 const double GetDimY(
void) {
returnm_DimY;}
258 virtual doubleComputeDistFromPixels(
CGlPane& pane,
261 doubleComputeScale(
doubledefault_scale,
int&
precision)
const;
265 voidSetHighlightEdges(
boolenable);
276 floatheight_factor = 1.0f,
277 floatwh_ratio = -1.0f);
279 intGetMaxLeavesVisible();
414 virtual boolx_WideLines();
423, m_ProjectionCood(0.0f) {}
447 voidUpdateExtent(
floatnode_coord,
451 void Clear() { m_Extents.clear(); }
454 voidDumpExtent(
const string& dim);
474 voidConsolidateExtents(vector<ProjectionElement>& xexts,
475vector<ProjectionElement>& yexts);
479 void Clear() { m_MaxX.Clear(); m_MaxY.Clear(); m_MinX.Clear(); m_MinY.Clear(); }
503 voidx_RenderLineVbo(
TTreeIdxchild_node_idx,
514 voidx_RenderLineVbo(
TTreeIdxchild_node_idx,
525 voidx_RenderSplineVbo(
TTreeIdxchild_node_idx,
536 voidx_RenderCircularVbo(
TTreeIdxchild_node_idx,
551 voidx_RenderPseudoSplineVbo(
TTreeIdxchild_node_idx,
566 size_tcircleSegments,
575vector<float>& color_coords,
581 const string& layout_type);
594std::vector<ProjectionElement>& xexts,
595std::vector<ProjectionElement>& yexts,
599 intmax_iterations=500);
602 virtual voidx_SetElementVisibility();
603 voidx_RenderSelection(
CGlPane& pane);
606 voidx_RenderTooltipHints(
CGlPane& pane);
607 voidx_RenderNodeHighlight(
CGlPane& pane,
615 voidx_GenerateTexture(
void);
617 intx_OnMouseMove(
void);
618 intx_OnKeyDown(
void);
619 intx_OnKeyUp(
void);
621 voidx_OnSelectCursor(
void);
624 boolx_SelectByRect(
booltoggle);
630 voidx_ComputeEdgeHighlight();
651, m_PixelHeight(0.0f)
652, m_TotalHeight(0.0f)
662 if(node.IsLeafEx()) {
663 floatnode_size = 2.0f*(float)m_Clad->GetNodeLayoutSize(&node);
664m_PixelHeight += node_size;
665 if(m_FontHeight > node_size)
666m_TotalHeight += m_FontHeight;
668m_TotalHeight += node_size;
672 if(!node.Expanded())
CGlVboNode A rendering node that holds a vertex buffer object.
CMouseZoomHandler provides support for mouse-driven zoom and pan operations.
const CGlTextureFont & GetFont(void) const
Tree subclass also has functions and data needed for rendering and selection.
vector< TSelStateValue > TSelState
class CRgbaColor provides a simple abstraction for managing colors.
virtual void SetPane(CGlPane *)
virtual wxEvtHandler * GetEvtHandler()=0
virtual float GetNodeLayoutSize(const CPhyloTreeNode *scheme) const
This is the height of the node for layout purposes.
virtual TVPUnit DistanceBetweenNodes(void) const =0
virtual float GetNodeLabelDist(const CPhyloTreeNode *n) const
virtual CPhyloTreeScheme & GetScheme(void)=0
virtual float GetDefaultNodeSize(const CPhyloTreeNode *n) const
virtual float GetNodeSize(const CPhyloTreeNode *n) const
This is a set of positions (for nodes) and associated x or y pixel offset values.
vector< ProjectionElement > m_Extents
Sorted (in decreasing order) set of coordinates and pixel offsets.
This class extracts for each of the 4 directions (+x,-x,+y,-y) the maximum coordinates to which any e...
CExtentDimension m_MinX
the 'leftmost' nodes, except that signs are flipped in order to allow uniform processing in all dimen...
CExtentDimension m_MaxY
Same as for m_MaxX values, but in y dimension.
CExtentDimension m_MinY
the 'bottommost' nodes, with signs flipped.
CExtentDimension m_MaxX
the 'rightmost' nodes and labels (includes the node with the largest x value, and any nodes to the le...
ETreeTraverseCode operator()(TTreeType &tree, TTreeType::TTreeIdx node_idx, int delta)
ComputePixelHeight(IPhyloTreeLOD *c)
CPhyloTree::TTreeIdx TTreeIdx
virtual void x_SetGlRenderOptions(CPhyloTreeDataSource &ds)
Set OpenGL rendering options that depend on layout chosen.
bool m_RenderScale
If true render a scale legend at the bottom of the screen.
void SetRenderingOption(TRenderingOption opt, bool bVal)
float m_TreePixels
Sum of size (height) of all leaf nodes in pixels, without considering labels (accomodates nodes that ...
void SetZoomHandler(CMouseZoomHandler *mz)
virtual bool SupportsDistanceRendering() const
void SetDistanceBarLowerLeft(bool b)
float m_ClosestEdgeDistSq
bool GetForceSquare(void) const
bool m_DistanceBarLowerLeft
CGlTextureFont * m_pLabelFont
float m_LabelViewPct
When sizing the tree to window, this is the maximum % of screen area (width) that will be allocated t...
CPhyloTree::TNodeType TNodeType
bool GetDistRendering(void) const
CVect2< float > m_RightClick
bool GetSplinesRendering(void) const
@ eSelRect
selecting a single glyph by point
CRef< CPhyloTreeScheme > m_SL
std::vector< CVect2< float > > m_SelectedEdge
Graphical representation of currently selected edge, if any, and data members needed for the selectio...
CPhyloTree::TSelState m_NodeSingleSelection
When user only wants to display a single, current selection from the selection set (including traced ...
void x_DrawBoundingAreasVbo(CPhyloTreeNode *node)
virtual void NeedsLayout(ELayoutStatus s)
void SetLabelViewPct(float pct)
void SetRenderScale(bool s)
TTreeIdx m_ActiveTooltipNode
CPhyloTreeLabel m_LabelExt
virtual float GetLabelViewPct() const
CVect2< float > m_ClosestEdgeDir
float m_HighlightFunctionK
Parms for logistics function to highlight edges when zoomed out to the point that many edges overlap ...
virtual string GetDescription(void)=0
float m_BufferdRenderTime
For performance analysis (time to update VBOs after topology change)
ELabelAlign
label alignment
virtual void x_Render(CGlPane &pane, CPhyloTreeDataSource &ds)
CIRef< I3DFrameBuffer > m_MinimapBuffer
virtual bool SupportsRotatedLabels() const
virtual void x_RenderVbo(CPhyloTreeDataSource &)
const double GetDimX(void)
bool GetHighlightEdges() const
float GetTreeHeight() const
Get sum of pixel size of all leaf nodes.
const double GetDimY(void)
bool m_HighlightLongerEdges
If true, highlight longer edges when zoomed out.
CGlCurve< CCurveBezier > m_Curve
void SetRegenerateTexture(bool flag)
wxTimer m_MouseSingleTimer
If user is double clicking, want to avoid mouse single-click actions.
CGlPane * m_pPane
event handling
float m_HighlightIntensity
virtual void x_Layout(CPhyloTreeDataSource &ds)
void SetModelDimensions(double width, double height)
CPhyloTree::TSelState & GetSingleSelection()
virtual ELayoutStatus ValidLayout() const
float m_LabelPixels
Height of tree in pixels when labels are displayed.
CIRef< I3DTexture > m_Texture
virtual TModelUnit x_GetVerticalSeparationFactor() const
layout-spefic constant for label vertical sepatation needed for visibility
void SetSplinesRendering(bool flag)
void SetFont(CGlTextureFont *font)
bool GetRotatedLabels(void) const
bool GetRenderScale() const
ELayoutStatus m_ValidLayout
TModelRect m_ZoomableExtent
float m_HighlightFunctionMidpoint
void SetDistRendering(bool flag)
CProjectionExtents m_ProjectionExtents
void x_InitCollisionInfo()
CPhyloTreeDataSource * m_DS
bool m_MoveDuringSelection
CPhyloTreeScheme & GetScheme(void)
void SetRotatedLabels(bool flag)
wxMouseEvent m_LastMouseEvent
event info from last mouse click - used for single click processing
std::vector< NodePointer > m_NodePointers
IPhyloTreeRenderHost * m_pHost
void SetForceSquare(bool flag)
virtual bool IsDistanceBarLowerLeft() const
bool GetRegenerateTexture(void) const
virtual void StartRendering(bool b)
Allow caller to indicate layout has changed from one type to another (e.g.
CMouseZoomHandler * m_pMouseZoomHandler
static const TDS_WORD limits[]
unsigned int GetFontSize() const
TObjectType & GetObject(void)
Get object.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
ETreeTraverseCode
Tree traverse code returned by the traverse predicate function.
@ eTreeTraverse
Keep traversal.
@ eTreeTraverseStepOver
Do not traverse current node (pick the next one)
#define NCBI_GUIWIDGETS_PHYLO_TREE_EXPORT
double value_type
The numeric datatype used by the parser.
The NCBI C++/STL use hints.
Defines: CTimeFormat - storage class for time format.
Int4 delta(size_t dimension_, const Int4 *score_)
Predicate to find location of a node in above selection set.
CPhyloTree::TTreeIdx m_Idx
bool operator()(const CPhyloTree::TSelState::value_type &v)
FindSelState(CPhyloTree::TTreeIdx node_idx)
Structure holds a 'pointer' from an active tooltip to its corresponding node.
wxRect m_TipRect
Rectangle defining tooltip in screen coords.
CPhyloTreeNode::TTreeIdx m_NodeIdx
Pointer to the node with id m_NodeID.
TModelPoint m_TipCenter
Center of tooltip widget, in screen coords with (0,0) in lower left.
CPhyloTree::TID m_NodeID
ID of the node to point to.
CStopWatch m_Timer
Timer to track duration of arrow display.
A coord (in one of +x,-x,+y,-y) and pixel offset in the same direction.
float m_ProjectionCood
Given a particular visible area and viewport size, position to which this node projects inside the vi...
float m_NodeCoord
Node x or y position depending on whether this extent is vert. or horiz.
float m_PixelOffset
Pixel offset (direction +x,-x,+y,-y) relative to the x or y position above.
ProjectionElement(float p, float o)
size_t TTreeIdx
Bi-directionaly linked N way tree allocated in a contiguous memory block.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4