15 #ifndef CQGLNETWORKPAINTER_H_
16 #define CQGLNETWORKPAINTER_H_
18 #include <QtOpenGL/qgl.h>
21 #include "OpenGL/glu.h"
26 #include <QtGui/QColor>
27 #include <QtGui/QDialog>
28 #include <QtGui/QFont>
29 #include <QtGui/QImage>
58 class QContextMenuEvent;
160 bool export_bitmap(
double x,
double y,
double width,
double height,
unsigned int imageWidth,
unsigned int imageHeight,
const QString& filename,
const std::vector<size_t> frames);
238 std::map<std::string, std::string>
keyMap;
268 void zoom(
double zoomFactor);
278 int getTextWidth(
const std::string& text,
const std::string& fontName,
unsigned int fontSize);
bool mIsInitialized
flag that indicates whether OpenGL was initialized
void drawNode(CCompartmentGraphNode &n)
void triggerAnimationStep()
CLPoint getPointOnRectangle(CLBoundingBox r, CLPoint p)
static const GLfloat MIRROR_X[16]
C_FLOAT64 mCurrentPositionY
int getLabelWindowWidth(int width)
static const float SPECIES_SHADOW_DEPTH
float mSpeciesShadowYOffset
static const GLfloat MIRROR_Y[16]
std::vector< CDataEntity > mDataSets
std::multimap< std::string, CArrow > nodeArrowMap
GLfloat mInanimatedSpeciesColor[4]
std::map< std::string, RGTextureSpec * > labelTextureMap
std::vector< CGraphCurve > curvesWithArrow
void setCurrentPosition(C_FLOAT64 x, C_FLOAT64 y)
GLfloat mCompartmentColor[4]
unsigned int mNumCirclePoints
std::vector< CGraphCurve > viewerCurves
CVisParameters::SCALING_MODE mScaleMode
std::vector< std::pair< float, float > > mCirclePoints
void setCurrentPositionY(C_FLOAT64 y)
std::set< std::string > setOfConstantMetabolites
CSimSummaryInfo * pSummaryInfo
void setNodeSizeWithoutChangingCurves(std::string key, C_FLOAT64 val)
CQLayoutMainWindow * pParentLayoutWindow
CDataEntity * getDataSetAt(size_t stepNumber)
static const C_INT32 MIN_HEIGHT
void rescaleNode(std::string key, C_FLOAT64 newMin, C_FLOAT64 newMax, CVisParameters::SCALING_MODE scaleMode)
std::multimap< std::string, CGraphCurve > nodeCurveMap
void updateGraphWithNodeSizes()
size_t getCurrentStep() const
static const float COMPARTMENT_FRAME_DEPTH
void setConstantNodeSize(std::string key, C_FLOAT64 val)
void printNodeInfoForKey(std::string key)
static const float COMPARTMENT_SHADOW_DEPTH
void mapLabelsToCircles()
void createGraph(CLayout *lP)
void initializeDisplayLists()
void setGraphSize(const CLPoint &min, const CLPoint &max)
bool checkCurve(CGraphCurve *curve, CGraphCurve curveR, CLBoundingBox box)
void rescaleDataSets(CVisParameters::SCALING_MODE scaleMode)
int getTextWidth(const std::string &text, const std::string &fontName, unsigned int fontSize)
std::map< std::string, std::string > labelNodeMap
std::map< std::string, CCompartmentGraphNode > compartmentNodeMap
void setCurrentPositionX(C_FLOAT64 x)
std::map< std::string, std::string > keyMap
static const C_FLOAT64 DEFAULT_NODE_SIZE
size_t getNumberOfSteps() const
static double calculateAngle(const CLPoint &endPoint, const CLPoint &startPoint)
static const float SPECIES_FRAME_DEPTH
GLfloat mConstantSpeciesColor[4]
void printAvailableFonts()
RGTextureSpec * getTextureForText(const std::string &text, const std::string &fontName, unsigned int fontSize)
Header file of class CArrow.
void setScaleMode(CVisParameters::SCALING_MODE scaleMode)
shapeOfLabels mLabelShape
static const float SPECIES_DEPTH
GLfloat mAnimatedSpeciesColor[4]
std::string getNameForNodeKey(std::string key)
GLclampf mBackgroundColor[4]
void updateEdge(CLLineSegment line)
size_t getNumberOfNodeEntries()
RGTextureSpec * RG_createTextureForText(const std::string &text, const std::string &fontName, unsigned int fontSize)
CLPoint getPointOnCircle(CLBoundingBox r, CLPoint p)
C_FLOAT64 getCurrentPositionY() const
float mSpeciesShadowXOffset
float mCompartmentShadowYOffset
void endOfAnimationReached()
void setFontSizeForLabels(unsigned int fs)
void RG_drawStringAt(std::string s, C_INT32 x, C_INT32 y, C_INT32 w, C_INT32 h)
void addMetaboliteForAnimation(std::string key)
void setNodeSize(std::string key, C_FLOAT64 val)
static const float SPECIESREFERENCE_DEPTH
void createTextureForAllLabels()
void adaptCurveForRectangles(std::multimap< std::string, CGraphCurve >::iterator it, CLBoundingBox box)
bool export_bitmap(double x, double y, double width, double height, unsigned int imageWidth, unsigned int imageHeight, const QString &filename, const std::vector< size_t > frames)
void rescaleDataSetsWithNewMinMax(C_FLOAT64 oldMin, C_FLOAT64 oldMax, C_FLOAT64 newMin, C_FLOAT64 newMax, CVisParameters::SCALING_MODE scaleMode)
const CLPoint & getGraphMax()
C_FLOAT64 mCurrentPositionX
void zoomGraph(C_FLOAT64 zoomFactor)
void removeMetaboliteForAnimation(std::string key)
std::vector< std::string > viewerNodes
std::vector< std::string > viewerCompartmentNodes
void drawEdge(CGraphCurve &c)
float mCompartmentShadowXOffset
CQGLNetworkPainter(const QGLFormat &format, QWidget *parent=0)
std::string getNodeNameEntry(int i)
GLfloat mSpeciesReferenceColor[4]
C_FLOAT64 getCurrentPositionX() const
static const float COMPARTMENT_DEPTH
QAction * setFontSizeAction
C_FLOAT64 getZoomFactor() const
void zoom(double zoomFactor)
void resizeGL(int w, int h)
void contextMenuEvent(QContextMenuEvent *event)
void mapLabelsToRectangles()
void initializeGraphPainter(QWidget *viewportWidget)
void setZoomFactor(C_FLOAT64)
static std::vector< std::pair< float, float > > calculateCirclePoints(unsigned int n)
void setItemAnimated(std::string key, bool animatedP)
void drawArrow(CArrow a, CLMetabReferenceGlyph::Role role)
bool preserveMinLabelHeightP
void drawStringAt(std::string s, C_FLOAT64 x, C_FLOAT64 y, C_FLOAT64 w, C_FLOAT64 h, QColor bgCol)
std::vector< CLabel > viewerLabels
const CLPoint & getGraphMin()
std::set< std::string > setOfDisabledMetabolites
void setConstantNodeSizeForAllSteps(std::string key, C_FLOAT64 midValue)
std::map< std::string, CGraphNode > nodeMap
CLPoint getPointNearCircle(CLBoundingBox r, CLPoint p, C_INT16 d)
void adaptCurveForCircle(std::multimap< std::string, CGraphCurve >::iterator it, CLBoundingBox box)