COPASI API  4.40.278
CLLayoutRenderer Class Reference

#include <CLLayoutRenderer.h>

Public Member Functions

void addToSelection (CLGraphicalObject *pObject)
 
void analyse_render_information (double lx, double ly, double rx, double ry)
 
void change_style (const CLGlobalRenderInformation *pRenderInformation, bool defaultStyle=false)
 
void change_style (const CLLocalRenderInformation *pRenderInformation)
 
void clearSelection ()
 
 CLLayoutRenderer (CLayout *pLayout, const CLGlobalRenderInformation *pRenderInformation, const CDataVector< CLGlobalRenderInformation > *pGlobalRenderInformationList, const CModel *pModel, const std::string &baseDir)
 
 CLLayoutRenderer (CLayout *pLayout, const CLLocalRenderInformation *pRenderInformation, const CDataVector< CLGlobalRenderInformation > *pGlobalRenderInformationList, const CModel *pModel, const std::string &baseDir)
 
std::pair< double, double > convert_to_model_space (double x, double y) const
 
void draw_layout ()
 
double getAspect () const
 
const GLfloat * getFogColor () const
 
GLfloat getFogDensity () const
 
const GLfloat * getHighlightColor () const
 
std::set< const CLGraphicalObject * > & getHighlightedObjects ()
 
const std::set< const CLGraphicalObject * > & getHighlightedObjects () const
 
bool getHighlightFlag () const
 
std::multiset< CLGraphicalObject *, compareGraphicalObjectsBySizegetObjectsAt (double x, double y)
 
std::multiset< CLGraphicalObject *, compareGraphicalObjectsBySizegetObjectsAtViewportPosition (unsigned int x, unsigned int y)
 
std::vector< CLGraphicalObject * > getObjectsInBoundingBox (double lx, double ly, double rx, double ry, bool partial=true)
 
std::set< CLGraphicalObject * > & getSelection ()
 
const std::set< CLGraphicalObject * > & getSelection () const
 
CLBoundingBoxgetSelectionBox ()
 
const CLBoundingBoxgetSelectionBox () const
 
double getZoomFactor () const
 
bool isSelected (const CLGraphicalObject *) const
 
bool isSetDeduceSpeciesReferenceRoles () const
 
void move_curve_object (CLCurve *pCurve, double dx, double dy, bool leaveStartPoint=false, bool leaveEndpoint=false)
 
void move_graphical_object (CLGraphicalObject *pObject, double dx, double dy)
 
void move_reaction_glyph (CLReactionGlyph *pRG, double dx, double dy, bool moveSelectedAssociation=false)
 
void move_selection (double dx, double dy, bool moveAssociated=true)
 
void move_species_glyph (CLMetabGlyph *pSG, double dx, double dy, bool moveSelectedAssociations=false)
 
void move_species_reference_glyph (CLMetabReferenceGlyph *pSRG, double dx, double dy)
 
void move_text_glyph (CLTextGlyph *pTG, double dx, double dy)
 
void removeFromSelection (CLGraphicalObject *pObject)
 
void resize (GLsizei w, GLsizei h)
 
void set_font_renderer (CLFontRendererBase *pFontRenderer)
 
void setAspect (double aspect)
 
void setDeduceSpeciesReferenceRoles (bool deduce)
 
void setFogColor (const GLfloat c[4])
 
void setFogDensity (GLfloat dens)
 
void setHighlightColor (const GLfloat c[4])
 
void setHighlightedObjects (const std::set< const CLGraphicalObject * > &highlightedObjects)
 
void setHighlightFlag (bool flag)
 
void setImageTexturizer (CLImageTexturizer *pTexturizer)
 
void setSelectionBox (const CLBoundingBox *pBox)
 
void setX (double x)
 
void setY (double y)
 
void setZoomFactor (double zoomFactor)
 
void toggleHighlightFlag ()
 
 ~CLLayoutRenderer ()
 

Static Public Member Functions

static double distance (const CLPoint &p1, const CLPoint &p2)
 
static CLBoundingBoxgetCurveBoundingBox (const CLCurve *pCurve)
 
static bool is_curve_segment_visible (const CLLineSegment &segment, double lx, double ly, double rx, double ry, bool partial)
 
static bool is_curve_visible (const CLCurve &curve, double lx, double ly, double rx, double ry, bool partial)
 
static CLCurverevert_curve (const CLCurve *pCurve)
 

Protected Member Functions

void clear_cached_data ()
 
void create_gradient_texture (unsigned int size, GLubyte *pData, const CLGradientBase *pGradient, double z_value=0.0)
 
void create_linear_gradient_texture (unsigned int size, GLubyte *pData, const CLLinearGradient *pGradient, double z_value)
 
void create_radial_gradient_texture (unsigned int size, GLubyte *pData, const CLRadialGradient *pGradient, double z_value)
 
void draw_cap (double x1, double y1, double z1, double x2, double y2, double z2, double x3, double y3, double z3, double stroke_width)
 
void draw_curve (const CLCurve *pCurve, bool drawBasepoints=false)
 
void draw_curve (const CLRenderCurve *pCurve, const CLBoundingBox *pBB)
 
void draw_datapoints (GLdouble *pData, size_t numPoints, const CLBoundingBox *pBB, bool doTesselation=false, float xOffset=0.0, float yOffset=0.0, float zOffset=0.0)
 
void draw_ellipse (const CLEllipse *pEllipse, const CLBoundingBox *pBB)
 
void draw_group (const CLGroup *pGroup, const CLBoundingBox *pBB)
 
void draw_image (const CLImage *pImage, const CLBoundingBox *pBB)
 
void draw_line (size_t numPoints, GLdouble *pData)
 
void draw_line_segment (double x1, double y1, double z1, double x2, double y2, double z2, double line_width, bool texture=false, double s1=0.0, double s2=0.0)
 
void draw_object (const CLStyle *pStyle, const CLBoundingBox *pBB)
 
void draw_polygon (const CLPolygon *pPolygon, const CLBoundingBox *pBB)
 
void draw_rectangle (const CLRectangle *pRectangle, const CLBoundingBox *pBB)
 
void draw_selection_box () const
 
void draw_text (const CLStyle *pStyle, const CLBoundingBox *pBB, const CLTextTextureSpec *pTexture)
 
void draw_text (const CLText *pText, const CLBoundingBox *pBB)
 
void draw_text (const CLTextTextureSpec *pTexture, double x, double y, double z, const CLBoundingBox *pBB)
 
void initialize_gl_extension_functions ()
 
void map_arrow_head (const CLPoint &p, const CLPoint &v, const std::string &headId)
 
void map_gradient_color (double rel_distance, const CLGradientBase *pGradient, GLubyte *pData)
 
void resolve_color (const std::string &color, GLubyte array[4])
 
void restore_current_attributes ()
 
void save_current_attributes ()
 
void segment_data (double length, double ratio, size_t numPoints, GLdouble *pData, std::vector< simple_point > &v)
 
void update_associations ()
 
void update_colors (const CLGradientBase *pGradient)
 
void update_drawables (double lx, double ly, double rx, double ry)
 
void update_style_information ()
 
void update_textures_and_colors ()
 
void update_textures_and_colors (const CLGroup *pGroup, double maxDimension, double height, const std::string &parentFill="", CLFontSpec parentFontSpec=CLFontSpec())
 

Static Protected Member Functions

static void calculate_cubicbezier (double sx, double sy, double sz, double p1x, double p1y, double p1z, double p2x, double p2y, double p2z, double ex, double ey, double ez, unsigned int numPoints, GLdouble *pData)
 
static CLPointcalculate_intersection (double p1x, double p1y, double p1z, double sx, double sy, double sz, double p2x, double p2y, double p2z, double tx, double ty, double tz)
 
static std::pair< double, double > calculate_intersection_point_2d (double p1x, double p1y, double sx, double sy, double p2x, double p2y, double tx, double ty)
 
static void COMBINE_CALLBACK (GLdouble coords[3], GLdouble **, GLfloat *, GLdouble **dataOut)
 
static void COMBINE_CALLBACK_GRADIENT (GLdouble coords[3], GLdouble *vertex_data[4], GLfloat weight[4], GLdouble **dataOut)
 
static const CLPoint convert_to_absolute (const CLRenderPoint *pRenderPoint, const CLBoundingBox *pBB)
 
static void createGLMatrix (const double *const matrix, GLdouble *glMatrix)
 
static CLLineStippleTexturecreateLineStippleTexture (const std::vector< unsigned int > &dasharray)
 
static double distancePointLineSegment (double x, double y, double lx1, double ly1, double lx2, double ly2)
 
static void drawSelectionBox (double x, double y, double width, double height, bool drawHandles=false)
 
static void extract_1d_attributes (const CLGraphicalPrimitive1D *pObject, CLGroupAttributes *attributes)
 
static void extract_2d_attributes (const CLGraphicalPrimitive2D *pObject, CLGroupAttributes *attributes)
 
template<typename T >
static void extract_arrowhead_information (const T *pObject, CLGroupAttributes *attributes)
 
static void extract_group_attributes (const CLGroup *pGroup, CLGroupAttributes *attributes)
 
static void extract_group_attributes (const CLStyle *pStyle, CLGroupAttributes *attributes)
 
template<typename T >
static void extract_text_attributes (const T *pObject, CLGroupAttributes *attributes)
 
static void extract_transformation_attributes (const CLTransformation *pObject, CLGroupAttributes *attributes)
 
static CLFontSpec getFontSpec (const CLGroup *pGroup, double boxHeight, const CLFontSpec &parentFontSpec=CLFontSpec())
 
static CLFontSpec getFontSpec (const CLText *pText, double boxHeight, const CLFontSpec &parentFontSpec=CLFontSpec())
 
static bool isSegmentHit (const CLLineSegment *pLS, double x, double y, double toleranceRadius)
 
static const std::string resolve_text (const CLTextGlyph *pTextGlyph)
 
static bool segments_intersect_2d (double p1x1, double p1y1, double p1x2, double p1y2, double p2x1, double p2y1, double p2x2, double p2y2)
 
static void TESS_ERROR (GLenum error)
 
static void VERTEX_CALLBACK_GRADIENT (GLvoid *vertex)
 

Protected Attributes

double mAspect
 
std::string mBaseDir
 
std::map< std::string, CLRGBAColormColorMap
 
CLGroupAttributes mCurrentAttributes
 
bool mDeduceSpeciesReferenceRoles
 
std::vector< const CLGraphicalObject * > mDrawables
 
GLfloat mFogColor [4]
 
GLfloat mFogDensity
 
std::map< CLFontSpec, std::map< std::string, CLTextTextureSpec * > > mFontTextureMap
 
bool mGLFunctionsInitialized
 
std::map< std::string, std::pair< const CLGradientBase *, CLTextureSpec * > > mGradientMap
 
std::map< CLGraphicalObject *, std::set< CLTextGlyph * > > mGraphicalObjectToTextGlyphMap
 
double mH
 
bool mHighlight
 
GLfloat mHighlightColor [4]
 
std::set< const CLGraphicalObject * > mHighlightedObjects
 
std::map< std::string, const CLTextureSpec * > mImageMap
 
std::map< std::string, const CLLineEnding * > mLineEndingMap
 
std::map< const std::vector< unsigned int >, const CLLineStippleTexture * > mLinestippleMap
 
CLFontRendererBasempFontRenderer
 
void(* mpGlFogCoordfEXT )(GLfloat)
 
const CDataVector< CLGlobalRenderInformation > * mpGlobalRenderInfoList
 
CLImageTexturizermpImageTexturizer
 
CLayoutmpLayout
 
const CModelmpModel
 
CLRenderResolvermpResolver
 
CLBoundingBoxmpSelectionBox
 
std::map< CLReactionGlyph *, std::set< std::pair< CLMetabReferenceGlyph *, bool > > > mReactionToSpeciesReferenceMap
 
std::set< CLGraphicalObject * > mSelection
 
std::map< const CLMetabReferenceGlyph *, std::string > mSpeciesReferencesWithDeducedRole
 
std::map< CLMetabReferenceGlyph *, std::pair< CLReactionGlyph *, bool > > mSpeciesReferenceToReactionMap
 
std::map< CLMetabReferenceGlyph *, std::pair< CLMetabGlyph *, bool > > mSpeciesReferenceToSpeciesMap
 
std::map< CLMetabGlyph *, std::set< std::pair< CLMetabReferenceGlyph *, bool > > > mSpeciesToSpeciesReferenceMap
 
std::stack< CLGroupAttributesmStateList
 
std::map< const CLGraphicalObject *, const CLStyle * > mStyleMap
 
std::map< const CLTextGlyph *, const CLTextTextureSpec * > mTextGlyphMap
 
std::map< CLTextGlyph *, CLGraphicalObject * > mTextGlyphToGraphicalObjectMap
 
std::map< const CLText *, const CLTextTextureSpec * > mTextMap
 
std::set< GLuint > mTextureNames
 
double mW
 
double mX
 
double mY
 
double mZoomFactor
 

Static Protected Attributes

static const double ALMOST_ZERO = 1e-12
 
static const unsigned int GRADIENT_TEXTURE_SIZE_LIMIT = 512
 
static const unsigned int NUM_BEZIER_POINTS = 20
 
static const unsigned int NUM_CIRCLE_SEGMENTS = 60
 
static const unsigned int NUM_CORNER_SEGMENTS = 10
 
static const double SELECTION_FRAME_WIDTH = 3.0
 

Constructor & Destructor Documentation

◆ CLLayoutRenderer() [1/2]

CLLayoutRenderer::CLLayoutRenderer ( CLayout pLayout,
const CLGlobalRenderInformation pRenderInformation,
const CDataVector< CLGlobalRenderInformation > *  pGlobalRenderInformationList,
const CModel pModel,
const std::string &  baseDir 
)

constructor for global render information

References change_style(), mFogColor, and mHighlightColor.

◆ CLLayoutRenderer() [2/2]

CLLayoutRenderer::CLLayoutRenderer ( CLayout pLayout,
const CLLocalRenderInformation pRenderInformation,
const CDataVector< CLGlobalRenderInformation > *  pGlobalRenderInformationList,
const CModel pModel,
const std::string &  baseDir 
)

constructor for local render information

References change_style(), initialize_gl_extension_functions(), mFogColor, and mHighlightColor.

◆ ~CLLayoutRenderer()

CLLayoutRenderer::~CLLayoutRenderer ( )

Member Function Documentation

◆ addToSelection()

void CLLayoutRenderer::addToSelection ( CLGraphicalObject pObject)

This method adds a graphical object to the set of selected objects.

References draw_layout(), and mSelection.

◆ analyse_render_information()

void CLLayoutRenderer::analyse_render_information ( double  lx,
double  ly,
double  rx,
double  ry 
)

Analyses the render information and creates some of the textures. First it determines which object are drawn based on the viewport coordinates that are passed in. Next it resolves the styles for all the objects that are to be drawn and it determines the size of the textures. Last it creates all textures.

References ALMOST_ZERO, update_drawables(), update_style_information(), and update_textures_and_colors().

Referenced by change_style(), resize(), and setDeduceSpeciesReferenceRoles().

◆ calculate_cubicbezier()

void CLLayoutRenderer::calculate_cubicbezier ( double  sx,
double  sy,
double  sz,
double  p1x,
double  p1y,
double  p1z,
double  p2x,
double  p2y,
double  p2z,
double  ex,
double  ey,
double  ez,
unsigned int  numPoints,
GLdouble *  pData 
)
staticprotected

Calculates the points for a cubic bezier curve. The algorithm calculates numPoints and stores them in pData. pData has to be an array with enough space for numPoints*3 GLfloat items.

Referenced by draw_curve(), draw_polygon(), is_curve_segment_visible(), and isSegmentHit().

◆ calculate_intersection()

CLPoint * CLLayoutRenderer::calculate_intersection ( double  p1x,
double  p1y,
double  p1z,
double  sx,
double  sy,
double  sz,
double  p2x,
double  p2y,
double  p2z,
double  tx,
double  ty,
double  tz 
)
staticprotected

calculates the intersection point of two lines. The caller has to delete the returned point object.

References ALMOST_ZERO, CLPoint::getX(), CLPoint::getY(), and CLPoint::getZ().

Referenced by draw_cap().

◆ calculate_intersection_point_2d()

std::pair< double, double > CLLayoutRenderer::calculate_intersection_point_2d ( double  p1x,
double  p1y,
double  sx,
double  sy,
double  p2x,
double  p2y,
double  tx,
double  ty 
)
staticprotected

Calculates the intersection point between two lines in 2D. The intersection point is returned. If the lines are parallel, a point with two NaN values is returned. All numbers <= ALMOST_ZERO are considered to be 0.

References ALMOST_ZERO.

Referenced by segments_intersect_2d().

◆ change_style() [1/2]

void CLLayoutRenderer::change_style ( const CLGlobalRenderInformation pRenderInformation,
bool  defaultStyle = false 
)

◆ change_style() [2/2]

void CLLayoutRenderer::change_style ( const CLLocalRenderInformation pRenderInformation)

◆ clear_cached_data()

void CLLayoutRenderer::clear_cached_data ( )
protected

Removes all entries from all cache maps and frees the memory for the textures.

References mColorMap, mDrawables, mFontTextureMap, mGradientMap, mImageMap, mLineEndingMap, mLinestippleMap, mStyleMap, mTextGlyphMap, and mTextMap.

Referenced by change_style(), setDeduceSpeciesReferenceRoles(), and ~CLLayoutRenderer().

◆ clearSelection()

void CLLayoutRenderer::clearSelection ( )

This method clears the selection.

References mSelection.

◆ COMBINE_CALLBACK()

void CLLayoutRenderer::COMBINE_CALLBACK ( GLdouble  coords[3],
GLdouble **  ,
GLfloat *  ,
GLdouble **  dataOut 
)
staticprotected

This static method is used as a callback for the GLU tesselator. It is needed for polygons that intersect which itself and the tesselator has to create a new vertex at the intersection.

Referenced by draw_datapoints().

◆ COMBINE_CALLBACK_GRADIENT()

void CLLayoutRenderer::COMBINE_CALLBACK_GRADIENT ( GLdouble  coords[3],
GLdouble *  vertex_data[4],
GLfloat  weight[4],
GLdouble **  dataOut 
)
staticprotected

This static method is used as a callback for the GLU tesselator. It is needed for polygons that intersect which itself and the tesselator has to create a new vertex at the intersection.

Referenced by draw_datapoints().

◆ convert_to_absolute()

const CLPoint CLLayoutRenderer::convert_to_absolute ( const CLRenderPoint pRenderPoint,
const CLBoundingBox pBB 
)
staticprotected

Converts a given RenderPoint which can have relative values into a layout Point with only absolute values.

Converts a given CLRenderPoint which can have relative values into a layout CLPoint with only absolute values. Even the absolute values of the point which are relative to the bounding box are translated into absolute coordinates.

References CLRelAbsVector::getAbsoluteValue(), CLDimensions::getDepth(), CLBoundingBox::getDimensions(), CLDimensions::getHeight(), CLBoundingBox::getPosition(), CLRelAbsVector::getRelativeValue(), CLDimensions::getWidth(), CLPoint::getX(), CLPoint::getY(), CLPoint::getZ(), CLRenderPoint::x(), CLRenderPoint::y(), and CLRenderPoint::z().

Referenced by draw_curve(), draw_image(), draw_polygon(), and draw_rectangle().

◆ convert_to_model_space()

std::pair< double, double > CLLayoutRenderer::convert_to_model_space ( double  x,
double  y 
) const

converts the given coordinates from viewport space into model space.

References mX, mY, and mZoomFactor.

Referenced by getObjectsAtViewportPosition().

◆ create_gradient_texture()

void CLLayoutRenderer::create_gradient_texture ( unsigned int  size,
GLubyte *  pData,
const CLGradientBase pGradient,
double  z_value = 0.0 
)
protected

This method calculates a texture for a given gradient definition and a given size. The data object has to be a vector that can store RGBA values for a rectangle of the given size. The memory has to be allocated before calling the method. The scale specifies by how much the original box has been scaled.

References create_linear_gradient_texture(), and create_radial_gradient_texture().

Referenced by update_textures_and_colors().

◆ create_linear_gradient_texture()

void CLLayoutRenderer::create_linear_gradient_texture ( unsigned int  size,
GLubyte *  pData,
const CLLinearGradient pGradient,
double  z_value 
)
protected

This method calculates a texture for a given linear gradient definition and a given size. The data object has to be a vector that can store RGBA values for a rectangle of the given size. The memory has to be allocated before calling the method. The scale specifies by how much the original box has been scaled.

References ALMOST_ZERO, CLGradientStops::color(), CLRelAbsVector::getAbsoluteValue(), CLRelAbsVector::getRelativeValue(), CLLinearGradient::getXPoint1(), CLLinearGradient::getXPoint2(), CLLinearGradient::getYPoint1(), CLLinearGradient::getYPoint2(), CLLinearGradient::getZPoint1(), CLLinearGradient::getZPoint2(), CLRGBAColor::mA, CLRGBAColor::mB, mColorMap, CLRGBAColor::mG, CLRGBAColor::mR, mZoomFactor, and CLGradientStops::update_color().

Referenced by create_gradient_texture().

◆ create_radial_gradient_texture()

void CLLayoutRenderer::create_radial_gradient_texture ( unsigned int  size,
GLubyte *  pData,
const CLRadialGradient pGradient,
double  z_value 
)
protected

This method calculates a texture for a given radial gradient definition and a given size. The data object has to be a vector that can store RGBA values for a rectangle of the given size. The memory has to be allocated before calling the method. The scale specifies by how much the original box has been scaled.

References ALMOST_ZERO, CLGradientStops::color(), CLRelAbsVector::getAbsoluteValue(), CLRadialGradient::getCenterX(), CLRadialGradient::getCenterY(), CLRadialGradient::getFocalPointX(), CLRadialGradient::getFocalPointY(), CLRadialGradient::getRadius(), CLRelAbsVector::getRelativeValue(), CLRGBAColor::mA, CLRGBAColor::mB, mColorMap, CLRGBAColor::mG, CLRGBAColor::mR, mZoomFactor, and CLGradientStops::update_color().

Referenced by create_gradient_texture().

◆ createGLMatrix()

void CLLayoutRenderer::createGLMatrix ( const double *const  matrix,
GLdouble *  glMatrix 
)
staticprotected

◆ createLineStippleTexture()

CLLineStippleTexture * CLLayoutRenderer::createLineStippleTexture ( const std::vector< unsigned int > &  dasharray)
staticprotected

Creates a 1D texture for the line stippling. The caller is responsible for deleting the returned object. If the dasharray does not contain a valid stipple pattern NULL is returned.

Referenced by update_textures_and_colors().

◆ distance()

double CLLayoutRenderer::distance ( const CLPoint p1,
const CLPoint p2 
)
static

calculates the distance between two layout points.

References CLPoint::getX(), and CLPoint::getY().

Referenced by distancePointLineSegment(), isSegmentHit(), and update_associations().

◆ distancePointLineSegment()

double CLLayoutRenderer::distancePointLineSegment ( double  x,
double  y,
double  lx1,
double  ly1,
double  lx2,
double  ly2 
)
staticprotected

Calculates the distance between a point and a line segment. It tries to calculate the intersection point of the line and another line perpendicular to the first line through the given point. If this intersection point is on the line segment, the result is the same as the distance between the two lines, otherwise the distance is the distance of the given point to the closest endpoint of the segment.

References distance().

Referenced by isSegmentHit().

◆ draw_cap()

void CLLayoutRenderer::draw_cap ( double  x1,
double  y1,
double  z1,
double  x2,
double  y2,
double  z2,
double  x3,
double  y3,
double  z3,
double  stroke_width 
)
protected

Routine to draw the caps between two line segments. The method takes the three points that make the two line segments and the width of the line.

References ALMOST_ZERO, calculate_intersection(), CLPoint::getX(), CLPoint::getY(), and CLPoint::getZ().

Referenced by draw_datapoints(), and draw_line().

◆ draw_curve() [1/2]

◆ draw_curve() [2/2]

◆ draw_datapoints()

◆ draw_ellipse()

◆ draw_group()

◆ draw_image()

◆ draw_layout()

◆ draw_line()

void CLLayoutRenderer::draw_line ( size_t  numPoints,
GLdouble *  pData 
)
protected

◆ draw_line_segment()

void CLLayoutRenderer::draw_line_segment ( double  x1,
double  y1,
double  z1,
double  x2,
double  y2,
double  z2,
double  line_width,
bool  texture = false,
double  s1 = 0.0,
double  s2 = 0.0 
)
protected

Method that draws a line with the given start and end points. All the other parameter like color, linewidth etc. have to be set before.

References ALMOST_ZERO.

Referenced by draw_line().

◆ draw_object()

void CLLayoutRenderer::draw_object ( const CLStyle pStyle,
const CLBoundingBox pBB 
)
protected

Method to draw an arbitrary object specified by it's bounding box and the style with which it should be drawn.

References draw_group(), and CLStyle::getGroup().

Referenced by draw_layout().

◆ draw_polygon()

◆ draw_rectangle()

◆ draw_selection_box()

void CLLayoutRenderer::draw_selection_box ( ) const
protected

◆ draw_text() [1/3]

void CLLayoutRenderer::draw_text ( const CLStyle pStyle,
const CLBoundingBox pBB,
const CLTextTextureSpec pTexture 
)
protected

◆ draw_text() [2/3]

◆ draw_text() [3/3]

◆ drawSelectionBox()

void CLLayoutRenderer::drawSelectionBox ( double  x,
double  y,
double  width,
double  height,
bool  drawHandles = false 
)
staticprotected

Draw the selection frame around an graphical objects bounding object box. If drawHandles is true, resize handles are drawn as well, else only the box is drawn. If the curve is given, the basepoints of the curve are also drawn as small circles.

References SELECTION_FRAME_WIDTH.

Referenced by draw_layout().

◆ extract_1d_attributes()

◆ extract_2d_attributes()

void CLLayoutRenderer::extract_2d_attributes ( const CLGraphicalPrimitive2D pObject,
CLGroupAttributes attributes 
)
staticprotected

◆ extract_arrowhead_information()

template<typename T >
static void CLLayoutRenderer::extract_arrowhead_information ( const T *  pObject,
CLGroupAttributes attributes 
)
inlinestaticprotected

Extracts the attributes from the given object with arrow head information. This template function can be used for group and curve elements.

References CLGroupAttributes::mEndHead, and CLGroupAttributes::mStartHead.

Referenced by draw_curve(), and extract_group_attributes().

◆ extract_group_attributes() [1/2]

void CLLayoutRenderer::extract_group_attributes ( const CLGroup pGroup,
CLGroupAttributes attributes 
)
staticprotected

Extracts the group attributes from the given group.

References extract_2d_attributes(), extract_arrowhead_information(), and extract_text_attributes().

◆ extract_group_attributes() [2/2]

void CLLayoutRenderer::extract_group_attributes ( const CLStyle pStyle,
CLGroupAttributes attributes 
)
staticprotected

Extracts the group attributes from the outermost group of a style.

References CLStyle::getGroup().

Referenced by draw_group(), and draw_layout().

◆ extract_text_attributes()

template<typename T >
static void CLLayoutRenderer::extract_text_attributes ( const T *  pObject,
CLGroupAttributes attributes 
)
inlinestaticprotected

Extracts the attributes from the given object with text attribute information. This template function can be used for group and text elements.

References CLGroupAttributes::mFontFamily, CLGroupAttributes::mFontSize, CLGroupAttributes::mFontStyle, CLGroupAttributes::mFontWeight, CLGroupAttributes::mTextAnchor, and CLGroupAttributes::mVTextAnchor.

Referenced by draw_text(), and extract_group_attributes().

◆ extract_transformation_attributes()

void CLLayoutRenderer::extract_transformation_attributes ( const CLTransformation pObject,
CLGroupAttributes attributes 
)
staticprotected

Extracts the attributes from the given transformation object.

References CLTransformation::getMatrix(), CLTransformation::isSetMatrix(), and CLGroupAttributes::mpTransform.

Referenced by draw_image(), and extract_1d_attributes().

◆ getAspect()

double CLLayoutRenderer::getAspect ( ) const

Returns the current aspect.

References mAspect.

◆ getCurveBoundingBox()

CLBoundingBox * CLLayoutRenderer::getCurveBoundingBox ( const CLCurve pCurve)
static

Calculates the bounding box of the curve by looking at all the basepoints. The returned boundingbox object has to be deleted by the caller.

References CLLineSegment::getBase1(), CLLineSegment::getBase2(), CLLineSegment::getEnd(), CLCurve::getNumCurveSegments(), CLCurve::getSegmentAt(), CLLineSegment::getStart(), CLPoint::getX(), CLPoint::getY(), CLLineSegment::isBezier(), and max.

Referenced by draw_layout().

◆ getFogColor()

const GLfloat * CLLayoutRenderer::getFogColor ( ) const

Returns a const pointer to the fog color. The array has a size of 4 elements.

References mFogColor.

◆ getFogDensity()

GLfloat CLLayoutRenderer::getFogDensity ( ) const

Returns the current fog density.

References mFogDensity.

◆ getFontSpec() [1/2]

CLFontSpec CLLayoutRenderer::getFontSpec ( const CLGroup pGroup,
double  boxHeight,
const CLFontSpec parentFontSpec = CLFontSpec() 
)
staticprotected

This method creates a FontSpec object from the font attributes in the given group. The height that is passed to the method is the height for the bounding box and it used to calculate the font size if it has a relative component.

References CLRelAbsVector::getAbsoluteValue(), CLGroup::getFontFamily(), CLGroup::getFontSize(), CLGroup::getFontStyle(), CLGroup::getFontWeight(), CLRelAbsVector::getRelativeValue(), CLGroup::isSetFontFamily(), CLGroup::isSetFontSize(), CLGroup::isSetFontStyle(), CLGroup::isSetFontWeight(), CLFontSpec::mFamily, CLFontSpec::mSize, CLFontSpec::mStyle, and CLFontSpec::mWeight.

Referenced by update_textures_and_colors().

◆ getFontSpec() [2/2]

CLFontSpec CLLayoutRenderer::getFontSpec ( const CLText pText,
double  boxHeight,
const CLFontSpec parentFontSpec = CLFontSpec() 
)
staticprotected

This method creates a FontSpec object from the font attributes in the given text element. The height that is passed to the method is the height for the bounding box and it used to calculate the font size if it has a relative component.

References CLRelAbsVector::getAbsoluteValue(), CLText::getFontFamily(), CLText::getFontSize(), CLText::getFontStyle(), CLText::getFontWeight(), CLRelAbsVector::getRelativeValue(), CLText::isSetFontFamily(), CLText::isSetFontSize(), CLText::isSetFontStyle(), CLText::isSetFontWeight(), CLFontSpec::mFamily, CLFontSpec::mSize, CLFontSpec::mStyle, and CLFontSpec::mWeight.

◆ getHighlightColor()

const GLfloat * CLLayoutRenderer::getHighlightColor ( ) const

Returns a const pointer to the highlight color. The array has a size of 4 elements.

References mHighlightColor.

◆ getHighlightedObjects() [1/2]

std::set< const CLGraphicalObject * > & CLLayoutRenderer::getHighlightedObjects ( )

Returns a reference to the set of highlighted model objects.

References mHighlightedObjects.

◆ getHighlightedObjects() [2/2]

const std::set< const CLGraphicalObject * > & CLLayoutRenderer::getHighlightedObjects ( ) const

Returns a const reference to the set of highlighted model objects.

References mHighlightedObjects.

◆ getHighlightFlag()

bool CLLayoutRenderer::getHighlightFlag ( ) const

Returns the highlight flag.

References mHighlight.

◆ getObjectsAt()

◆ getObjectsAtViewportPosition()

std::multiset< CLGraphicalObject *, compareGraphicalObjectsBySize > CLLayoutRenderer::getObjectsAtViewportPosition ( unsigned int  x,
unsigned int  y 
)

This method returns all objects at the given 2D screen coordinates. The depth value is ignored.

References convert_to_model_space(), and getObjectsAt().

◆ getObjectsInBoundingBox()

std::vector< CLGraphicalObject * > CLLayoutRenderer::getObjectsInBoundingBox ( double  lx,
double  ly,
double  rx,
double  ry,
bool  partial = true 
)

Returns all objects that are within a given bounding box. The bounding box is determined by lx and ly which are the lower x and lower y values of the box and rx, ry which are the higher x and y values of the box. If partial is true, objects that are only parially included in the box are returned. If it is set to false, an object has to be completely within the bounding box to be returned.

Returns all objects that are within a given bounding box.

References CLGraphicalObject::getBoundingBox(), CLGlyphWithCurve::getCurve(), CLBoundingBox::getDimensions(), CLDimensions::getHeight(), CLayout::getListOfCompartmentGlyphs(), CLayout::getListOfGeneralGlyphs(), CLayout::getListOfMetaboliteGlyphs(), CLReactionGlyph::getListOfMetabReferenceGlyphs(), CLayout::getListOfReactionGlyphs(), CLGeneralGlyph::getListOfReferenceGlyphs(), CLGeneralGlyph::getListOfSubglyphs(), CLayout::getListOfTextGlyphs(), CLCurve::getNumCurveSegments(), CLBoundingBox::getPosition(), CLDimensions::getWidth(), CLPoint::getX(), CLPoint::getY(), is_curve_visible(), mpLayout, and CDataVector< CType >::size().

Referenced by update_drawables().

◆ getSelection() [1/2]

std::set< CLGraphicalObject * > & CLLayoutRenderer::getSelection ( )

This method returns a reference to the set of selected objects.

References mSelection.

◆ getSelection() [2/2]

const std::set< CLGraphicalObject * > & CLLayoutRenderer::getSelection ( ) const

This method returns a const reference to the set of selected objects.

References mSelection.

◆ getSelectionBox() [1/2]

CLBoundingBox * CLLayoutRenderer::getSelectionBox ( )

returns a point to the current selection box.

References mpSelectionBox.

◆ getSelectionBox() [2/2]

const CLBoundingBox * CLLayoutRenderer::getSelectionBox ( ) const

returns a const point to the current selection box.

References mpSelectionBox.

◆ getZoomFactor()

double CLLayoutRenderer::getZoomFactor ( ) const

Returns the current zoom factor.

References mZoomFactor.

◆ initialize_gl_extension_functions()

void CLLayoutRenderer::initialize_gl_extension_functions ( )
protected

The glFogCoordf function is part of OpenGL 1.4 and may not be available on all implementations, so we need to query for this dynamically.

On non apple systems, we need to get the pointers to extension functions.

References mGLFunctionsInitialized, and mpGlFogCoordfEXT.

Referenced by CLLayoutRenderer(), and draw_layout().

◆ is_curve_segment_visible()

bool CLLayoutRenderer::is_curve_segment_visible ( const CLLineSegment segment,
double  lx,
double  ly,
double  rx,
double  ry,
bool  partial 
)
static

◆ is_curve_visible()

bool CLLayoutRenderer::is_curve_visible ( const CLCurve curve,
double  lx,
double  ly,
double  rx,
double  ry,
bool  partial 
)
static

Checks if the given curve would be visible in the box determined by lx,ly,rx,ry. If the curve in any way intersects the box, true is returned.

References CLCurve::getNumCurveSegments(), CLCurve::getSegmentAt(), and is_curve_segment_visible().

Referenced by getObjectsInBoundingBox().

◆ isSegmentHit()

bool CLLayoutRenderer::isSegmentHit ( const CLLineSegment pLS,
double  x,
double  y,
double  toleranceRadius 
)
staticprotected

◆ isSelected()

bool CLLayoutRenderer::isSelected ( const CLGraphicalObject pObject) const

This method returns true if the given object is part of the selection and false otherwise.

References mSelection.

◆ isSetDeduceSpeciesReferenceRoles()

bool CLLayoutRenderer::isSetDeduceSpeciesReferenceRoles ( ) const

Returns true or false depending on whether the render extension deduces specie reference roles from associated model objects if there are any.

References mDeduceSpeciesReferenceRoles.

◆ map_arrow_head()

◆ map_gradient_color()

void CLLayoutRenderer::map_gradient_color ( double  rel_distance,
const CLGradientBase pGradient,
GLubyte *  pData 
)
protected

Maps the relative distance to a color and set the color as an rgb value in pData. pData has to be the pointer where 4 GLfloat values are going to be stored.

References CLGradientBase::getGradientStop(), CLGradientBase::getNumGradientStops(), CLGradientStop::getOffset(), CLRelAbsVector::getRelativeValue(), CLGradientBase::getSpreadMethod(), CLGradientStop::getStopColor(), mColorMap, CLGradientBase::PAD, CLGradientBase::REFLECT, and CLGradientBase::REPEAT.

◆ move_curve_object()

void CLLayoutRenderer::move_curve_object ( CLCurve pCurve,
double  dx,
double  dy,
bool  leaveStartPoint = false,
bool  leaveEndpoint = false 
)

◆ move_graphical_object()

void CLLayoutRenderer::move_graphical_object ( CLGraphicalObject pObject,
double  dx,
double  dy 
)

◆ move_reaction_glyph()

void CLLayoutRenderer::move_reaction_glyph ( CLReactionGlyph pRG,
double  dx,
double  dy,
bool  moveSelectedAssociations = false 
)

Moves the given reaction glyph by the given vector. The startpoints of all associated species reference glyphs are moved as well if they are represented by curves otherwise the comple species reference glyph is moved. Also all associated text glyphs are moved. The moveSelectedAssociations determines whether associated objects that are selected are moved with this object or not. The reason for this is that selected object might be part of the moving process and the objects would in this case be changed twice.

Moves the given reaction glyph by the given vector. The startpoints of all associated species reference glyphs are moved as well if they are represented by curves otherwise the comple species reference glyph is moved. Also all associated text glyphs are moved.

References CLGlyphWithCurve::getCurve(), CLLineSegment::getEnd(), CLCurve::getNumCurveSegments(), CLLineSegment::getStart(), CLPoint::getX(), CLPoint::getY(), mGraphicalObjectToTextGlyphMap, move_curve_object(), move_graphical_object(), mReactionToSpeciesReferenceMap, mSelection, CLPoint::setX(), and CLPoint::setY().

Referenced by move_selection().

◆ move_selection()

void CLLayoutRenderer::move_selection ( double  dx,
double  dy,
bool  moveAssociated = true 
)

Moves the current selection. If the moveAssociations falg is set to true, associated objects that are not selected are moved as well. In the case of associated species reference glyphs this means that the start and/or endpoint is moved.

References CLGlyphWithCurve::getCurve(), CLCurve::getNumCurveSegments(), move_curve_object(), move_graphical_object(), move_reaction_glyph(), move_species_glyph(), move_species_reference_glyph(), move_text_glyph(), and mSelection.

◆ move_species_glyph()

void CLLayoutRenderer::move_species_glyph ( CLMetabGlyph pSG,
double  dx,
double  dy,
bool  moveSelectedAssociations = false 
)

Moves the given Species glyph by the given vector. The endpoints of all associated species reference glyphs are moved as well if they are represented by curves. Also all associated text glyphs are moved. The moveSelectedAssociations determines whether associated objects that are selected are moved with this object or not. The reason for this is that selected object might be part of the moving process and the objects would in this case be changed twice.

Moves the given Species glyph by the given vector. The endpoints of all associated species reference glyphs are moved as well if they are represented by curves. Also all associated text glyphs are moved.

References CLLineSegment::getEnd(), CLLineSegment::getStart(), CLPoint::getX(), CLPoint::getY(), mGraphicalObjectToTextGlyphMap, move_graphical_object(), mSelection, mSpeciesToSpeciesReferenceMap, CLPoint::setX(), and CLPoint::setY().

Referenced by move_selection().

◆ move_species_reference_glyph()

void CLLayoutRenderer::move_species_reference_glyph ( CLMetabReferenceGlyph pSRG,
double  dx,
double  dy 
)

Moves the species reference glyph. If the glpyh is represented by a curve, the curves start and endpoint are left as they are.

References CLGlyphWithCurve::getCurve(), CLCurve::getNumCurveSegments(), move_curve_object(), and move_graphical_object().

Referenced by move_selection().

◆ move_text_glyph()

void CLLayoutRenderer::move_text_glyph ( CLTextGlyph pTG,
double  dx,
double  dy 
)

Moves the given text glyph by the given vector. For now, we do not move any associated object becuase it is difficult to create a behaviour that makes sense. E.g. if the associated object is a species glyph, all species reference glyphs might have to be moved. So for now, it is easier to only move the text and if the user wants to move the text with the associated object, he/she needs to move the object instead.

References move_graphical_object().

Referenced by move_selection().

◆ removeFromSelection()

void CLLayoutRenderer::removeFromSelection ( CLGraphicalObject pObject)

This method removes the given object from the selection if it is selected.

References draw_layout(), and mSelection.

◆ resize()

void CLLayoutRenderer::resize ( GLsizei  w,
GLsizei  h 
)

Resize method that is called whenever the GL window is resized.

References analyse_render_information(), mAspect, mH, mW, mX, mY, and mZoomFactor.

◆ resolve_color()

void CLLayoutRenderer::resolve_color ( const std::string &  color,
GLubyte  array[4] 
)
protected

◆ resolve_text()

const std::string CLLayoutRenderer::resolve_text ( const CLTextGlyph pTextGlyph)
staticprotected

Method to resolve the text that belongs to a text glyph.

References CLTextGlyph::getText(), and CLTextGlyph::isTextSet().

Referenced by update_textures_and_colors().

◆ restore_current_attributes()

void CLLayoutRenderer::restore_current_attributes ( )
protected

Restores the current attributes from the stack. Any transformation object that might have been created after the last call to save_current_attributes will be deleted.

References mCurrentAttributes, and mStateList.

Referenced by draw_curve(), draw_ellipse(), draw_group(), draw_image(), draw_layout(), draw_polygon(), draw_rectangle(), draw_text(), and map_arrow_head().

◆ revert_curve()

CLCurve * CLLayoutRenderer::revert_curve ( const CLCurve pCurve)
static

reverts the direction of the given curve. The result is returned as a new curve object and the caller has to make sure that the memory for the new curve is freed.

References CLCurve::addCurveSegment(), CLLineSegment::getBase1(), CLLineSegment::getBase2(), CLLineSegment::getEnd(), CLCurve::getNumCurveSegments(), CLCurve::getSegmentAt(), CLLineSegment::getStart(), CLLineSegment::isBezier(), CLLineSegment::setBase1(), CLLineSegment::setBase2(), and CLLineSegment::setIsBezier().

◆ save_current_attributes()

void CLLayoutRenderer::save_current_attributes ( )
protected

◆ segment_data()

void CLLayoutRenderer::segment_data ( double  length,
double  ratio,
size_t  numPoints,
GLdouble *  pData,
std::vector< simple_point > &  v 
)
protected

This method takes a number of datapoints for a curve and segments the curve into pieces that have a datapoint at every multiple of length. This is needed if we need to apply line stippling for OpenGL < 2.0 where texture sizes have to be a power of 2.

References ALMOST_ZERO, simple_point::mS, simple_point::mX, simple_point::mY, and simple_point::mZ.

Referenced by draw_line().

◆ segments_intersect_2d()

bool CLLayoutRenderer::segments_intersect_2d ( double  p1x1,
double  p1y1,
double  p1x2,
double  p1y2,
double  p2x1,
double  p2y1,
double  p2x2,
double  p2y2 
)
staticprotected

Calculates wether 2d segments intersect within the length of the segments. Calls calculate_intersection_point_2d.

References ALMOST_ZERO, and calculate_intersection_point_2d().

Referenced by is_curve_segment_visible().

◆ set_font_renderer()

void CLLayoutRenderer::set_font_renderer ( CLFontRendererBase pFontRenderer)

Sets a function that is able to generate a texture spec from some given font settings and a piece of text.

References mpFontRenderer.

◆ setAspect()

void CLLayoutRenderer::setAspect ( double  aspect)

Sets the aspect.

References mAspect.

◆ setDeduceSpeciesReferenceRoles()

◆ setFogColor()

void CLLayoutRenderer::setFogColor ( const GLfloat  c[4])

Sets the fog color.

References mFogColor.

◆ setFogDensity()

void CLLayoutRenderer::setFogDensity ( GLfloat  dens)

Sets the fog density.

References mFogDensity.

◆ setHighlightColor()

void CLLayoutRenderer::setHighlightColor ( const GLfloat  c[4])

Sets the highlight color.

References mHighlightColor.

◆ setHighlightedObjects()

void CLLayoutRenderer::setHighlightedObjects ( const std::set< const CLGraphicalObject * > &  highlightedObjects)

Sets the list of model objects that are to be highlighted in the diagram.

References mHighlightedObjects.

◆ setHighlightFlag()

void CLLayoutRenderer::setHighlightFlag ( bool  flag)

Toggles the flag that determines if highlighted objects are actually highlighted or if the rest is fogged out.

References mHighlight.

◆ setImageTexturizer()

void CLLayoutRenderer::setImageTexturizer ( CLImageTexturizer pTexturizer)

Sets the class that can create textures from a given image file.

References mpImageTexturizer.

◆ setSelectionBox()

void CLLayoutRenderer::setSelectionBox ( const CLBoundingBox pBox)

Sets the current selection box. Setting the Box to NULL means that no selection box is drawn.

References mpSelectionBox.

◆ setX()

void CLLayoutRenderer::setX ( double  x)

This method sets the left edge of the viewport.

References mX.

◆ setY()

void CLLayoutRenderer::setY ( double  y)

This method sets the upper edge of the viewport.

References mY.

◆ setZoomFactor()

void CLLayoutRenderer::setZoomFactor ( double  zoomFactor)

Sets the zoom factor.

References mZoomFactor.

◆ TESS_ERROR()

void CLLayoutRenderer::TESS_ERROR ( GLenum  error)
staticprotected

This method is used as a callback for the GLU tesselator to report errors during the tesselation process.

References CCopasiMessage::EXCEPTION.

Referenced by draw_datapoints().

◆ toggleHighlightFlag()

void CLLayoutRenderer::toggleHighlightFlag ( )

Toggles the flag that determines if highlighted objects are actually highlighted or if the rest is fogged out.

References mHighlight.

◆ update_associations()

◆ update_colors()

void CLLayoutRenderer::update_colors ( const CLGradientBase pGradient)
protected

This methods extracts all colors from the given gradient and adds them to the color map.

References CLGradientBase::getGradientStop(), CLGradientBase::getNumGradientStops(), CLGradientStop::getStopColor(), mColorMap, and resolve_color().

Referenced by update_textures_and_colors().

◆ update_drawables()

void CLLayoutRenderer::update_drawables ( double  lx,
double  ly,
double  rx,
double  ry 
)
protected

This method goes through all layout objects and checks them if they are within the current viewport. If they are, they are added to the list of objects that are drawn. An object is within the viewport if it's bounding box or parts of it are within the viewport. For curves, each start, end and base point is checked and if any of those is within the viewport, the curve is added to the list. The viewport is specified by its lower left (lx,ly) and upper right point (rx,ry).

References getObjectsInBoundingBox(), mDrawables, and update_associations().

Referenced by analyse_render_information().

◆ update_style_information()

void CLLayoutRenderer::update_style_information ( )
protected

This method goes throught the list of all drawables and tries to resolve the style for each object.

References mDrawables, mpResolver, mStyleMap, and CLRenderResolver::resolveStyle().

Referenced by analyse_render_information().

◆ update_textures_and_colors() [1/2]

◆ update_textures_and_colors() [2/2]

void CLLayoutRenderer::update_textures_and_colors ( const CLGroup pGroup,
double  maxDimension,
double  height,
const std::string &  parentFill = "",
CLFontSpec  parentFontSpec = CLFontSpec() 
)
protected

◆ VERTEX_CALLBACK_GRADIENT()

void CLLayoutRenderer::VERTEX_CALLBACK_GRADIENT ( GLvoid *  vertex)
staticprotected

This method is used as a callback for the GLU tesselator. It is called for every vertex that is processed by the tesselator. We need it to calculate the gradient colors at each vertex.

Referenced by draw_datapoints().

Member Data Documentation

◆ ALMOST_ZERO

◆ GRADIENT_TEXTURE_SIZE_LIMIT

const unsigned int CLLayoutRenderer::GRADIENT_TEXTURE_SIZE_LIMIT = 512
staticprotected

◆ mAspect

double CLLayoutRenderer::mAspect
protected

Referenced by getAspect(), resize(), and setAspect().

◆ mBaseDir

std::string CLLayoutRenderer::mBaseDir
protected

Referenced by draw_image().

◆ mColorMap

◆ mCurrentAttributes

◆ mDeduceSpeciesReferenceRoles

bool CLLayoutRenderer::mDeduceSpeciesReferenceRoles
protected

◆ mDrawables

std::vector<const CLGraphicalObject*> CLLayoutRenderer::mDrawables
protected

◆ mFogColor

GLfloat CLLayoutRenderer::mFogColor[4]
protected

◆ mFogDensity

GLfloat CLLayoutRenderer::mFogDensity
protected

◆ mFontTextureMap

std::map<CLFontSpec, std::map<std::string, CLTextTextureSpec*> > CLLayoutRenderer::mFontTextureMap
protected

◆ mGLFunctionsInitialized

bool CLLayoutRenderer::mGLFunctionsInitialized
protected

◆ mGradientMap

std::map<std::string, std::pair<const CLGradientBase*, CLTextureSpec*> > CLLayoutRenderer::mGradientMap
protected

◆ mGraphicalObjectToTextGlyphMap

std::map<CLGraphicalObject*, std::set<CLTextGlyph*> > CLLayoutRenderer::mGraphicalObjectToTextGlyphMap
protected

◆ mH

double CLLayoutRenderer::mH
protected

◆ mHighlight

bool CLLayoutRenderer::mHighlight
protected

◆ mHighlightColor

GLfloat CLLayoutRenderer::mHighlightColor[4]
protected

◆ mHighlightedObjects

std::set<const CLGraphicalObject*> CLLayoutRenderer::mHighlightedObjects
protected

◆ mImageMap

std::map<std::string, const CLTextureSpec*> CLLayoutRenderer::mImageMap
protected

Referenced by clear_cached_data(), and draw_image().

◆ mLineEndingMap

std::map<std::string, const CLLineEnding*> CLLayoutRenderer::mLineEndingMap
protected

◆ mLinestippleMap

std::map<const std::vector<unsigned int>, const CLLineStippleTexture*> CLLayoutRenderer::mLinestippleMap
protected

◆ mpFontRenderer

◆ mpGlFogCoordfEXT

void( * CLLayoutRenderer::mpGlFogCoordfEXT) (GLfloat)
protected

◆ mpGlobalRenderInfoList

const CDataVector<CLGlobalRenderInformation>* CLLayoutRenderer::mpGlobalRenderInfoList
protected

Referenced by change_style().

◆ mpImageTexturizer

CLImageTexturizer* CLLayoutRenderer::mpImageTexturizer
protected

Referenced by draw_image(), and setImageTexturizer().

◆ mpLayout

◆ mpModel

const CModel* CLLayoutRenderer::mpModel
protected

◆ mpResolver

◆ mpSelectionBox

CLBoundingBox* CLLayoutRenderer::mpSelectionBox
protected

◆ mReactionToSpeciesReferenceMap

std::map<CLReactionGlyph*, std::set<std::pair<CLMetabReferenceGlyph*, bool> > > CLLayoutRenderer::mReactionToSpeciesReferenceMap
protected

◆ mSelection

◆ mSpeciesReferencesWithDeducedRole

std::map<const CLMetabReferenceGlyph*, std::string> CLLayoutRenderer::mSpeciesReferencesWithDeducedRole
protected

◆ mSpeciesReferenceToReactionMap

std::map<CLMetabReferenceGlyph*, std::pair<CLReactionGlyph*, bool> > CLLayoutRenderer::mSpeciesReferenceToReactionMap
protected

Referenced by update_associations().

◆ mSpeciesReferenceToSpeciesMap

std::map<CLMetabReferenceGlyph*, std::pair<CLMetabGlyph*, bool> > CLLayoutRenderer::mSpeciesReferenceToSpeciesMap
protected

Referenced by update_associations().

◆ mSpeciesToSpeciesReferenceMap

std::map<CLMetabGlyph*, std::set<std::pair<CLMetabReferenceGlyph*, bool> > > CLLayoutRenderer::mSpeciesToSpeciesReferenceMap
protected

◆ mStateList

std::stack<CLGroupAttributes> CLLayoutRenderer::mStateList
protected

◆ mStyleMap

std::map<const CLGraphicalObject*, const CLStyle*> CLLayoutRenderer::mStyleMap
protected

◆ mTextGlyphMap

std::map<const CLTextGlyph*, const CLTextTextureSpec*> CLLayoutRenderer::mTextGlyphMap
protected

◆ mTextGlyphToGraphicalObjectMap

std::map<CLTextGlyph*, CLGraphicalObject*> CLLayoutRenderer::mTextGlyphToGraphicalObjectMap
protected

Referenced by update_associations().

◆ mTextMap

std::map<const CLText*, const CLTextTextureSpec*> CLLayoutRenderer::mTextMap
protected

◆ mTextureNames

std::set<GLuint> CLLayoutRenderer::mTextureNames
protected

◆ mW

double CLLayoutRenderer::mW
protected

◆ mX

◆ mY

◆ mZoomFactor

◆ NUM_BEZIER_POINTS

const unsigned int CLLayoutRenderer::NUM_BEZIER_POINTS = 20
staticprotected

◆ NUM_CIRCLE_SEGMENTS

const unsigned int CLLayoutRenderer::NUM_CIRCLE_SEGMENTS = 60
staticprotected

Referenced by draw_curve(), and draw_ellipse().

◆ NUM_CORNER_SEGMENTS

const unsigned int CLLayoutRenderer::NUM_CORNER_SEGMENTS = 10
staticprotected

Referenced by draw_rectangle().

◆ SELECTION_FRAME_WIDTH

const double CLLayoutRenderer::SELECTION_FRAME_WIDTH = 3.0
staticprotected

Referenced by drawSelectionBox().


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