OMNeT++ Simulation Library  6.0.3
cAbstractLineFigure Class Reference

#include <ccanvas.h>

Description

Common base class for line figures.

This class provides line color, style, width, opacity, and other properties. Lines may also be augmented with arrowheads at either or both ends.

Transformations such as scaling or skew do affect the width of the line as it is rendered on the canvas. Whether zooming (by the user) should also affect it can be controlled by setting a flag (see setZoomLineWidth()).

The rendering of zero-width lines is currently undefined. It is attempted to be rendered as a one pixel wide line, regardless of transforms and zoom level, but it is not possible on all platform.

Inheritance diagram for cAbstractLineFigure:
cFigure cOwnedObject cNamedObject cObject cArcFigure cLineFigure cPolylineFigure

Public Member Functions

Constructors, destructor, assignment.
 cAbstractLineFigure (const char *name=nullptr)
 
 cAbstractLineFigure (const cAbstractLineFigure &other)
 
cAbstractLineFigureoperator= (const cAbstractLineFigure &other)
 
Redefined cObject and cFigure member functions.
virtual cAbstractLineFiguredup () const override
 
virtual std::string str () const override
 
virtual void parse (cProperty *property) override
 
Figure attributes
virtual const Color & getLineColor () const
 
virtual void setLineColor (const Color &lineColor)
 
virtual double getLineWidth () const
 
virtual void setLineWidth (double lineWidth)
 
virtual double getLineOpacity () const
 
virtual void setLineOpacity (double lineOpacity)
 
virtual LineStyle getLineStyle () const
 
virtual void setLineStyle (LineStyle lineStyle)
 
virtual CapStyle getCapStyle () const
 
virtual void setCapStyle (CapStyle capStyle)
 
virtual Arrowhead getStartArrowhead () const
 
virtual void setStartArrowhead (Arrowhead startArrowhead)
 
virtual Arrowhead getEndArrowhead () const
 
virtual void setEndArrowhead (Arrowhead endArrowhead)
 
virtual bool getZoomLineWidth () const
 
virtual void setZoomLineWidth (bool zoomLineWidth)
 
- Public Member Functions inherited from cFigure
 cFigure (const char *name=nullptr)
 
 cFigure (const cFigure &other)
 
virtual ~cFigure ()
 
cFigureoperator= (const cFigure &other)
 
virtual void forEachChild (cVisitor *v) override
 
int getId () const
 
virtual bool isVisible () const
 
virtual void setVisible (bool visible)
 
virtual const TransformgetTransform () const
 
virtual void setTransform (const Transform &transform)
 
virtual void resetTransform ()
 
virtual double getZIndex () const
 
virtual void setZIndex (double zIndex)
 
virtual double getEffectiveZIndex () const
 
virtual const char * getTooltip () const
 
virtual void setTooltip (const char *tooltip)
 
virtual cObjectgetAssociatedObject () const
 
virtual void setAssociatedObject (cObject *obj)
 
virtual const char * getTags () const
 
virtual void setTags (const char *tags)
 
virtual cFiguregetParentFigure () const
 
virtual cCanvasgetCanvas () const
 
virtual int getNumFigures () const
 
virtual cFiguregetFigure (int pos) const
 
virtual cFiguregetFigure (const char *name) const
 
virtual int findFigure (const char *name) const
 
virtual int findFigure (const cFigure *figure) const
 
virtual bool containsFigures () const
 
virtual cFigurefindFigureRecursively (const char *name) const
 
virtual cFiguregetFigureByPath (const char *path) const
 
virtual void addFigure (cFigure *figure)
 
virtual void addFigure (cFigure *figure, int pos)
 
virtual cFigureremoveFigure (cFigure *figure)
 
virtual cFigureremoveFigure (int pos)
 
virtual cFigureremoveFromParent ()
 
virtual bool isAbove (const cFigure *figure) const
 
virtual bool isBelow (const cFigure *figure) const
 
virtual void insertAbove (cFigure *referenceFigure)
 
virtual void insertBelow (cFigure *referenceFigure)
 
virtual void insertAfter (const cFigure *referenceFigure)
 
virtual void insertBefore (const cFigure *referenceFigure)
 
virtual void raiseAbove (cFigure *figure)
 
virtual void lowerBelow (cFigure *figure)
 
virtual void raiseToTop ()
 
virtual void lowerToBottom ()
 
virtual cFiguredupTree () const
 
virtual void translate (double dx, double dy)
 
virtual void scale (double s)
 
virtual void scale (double sx, double sy)
 
virtual void scale (double sx, double sy, double cx, double cy)
 
virtual void scale (double sx, double sy, const Point &c)
 
virtual void rotate (double phi)
 
virtual void rotate (double phi, double cx, double cy)
 
virtual void rotate (double phi, const Point &c)
 
virtual void skewx (double coeff)
 
virtual void skewy (double coeff)
 
virtual void skewx (double coeff, double cy)
 
virtual void skewy (double coeff, double cx)
 
virtual void moveLocal (double dx, double dy)=0
 
virtual void move (double dx, double dy)
 
virtual void refreshDisplay ()
 
virtual const char * getRendererClassName () const =0
 
virtual void updateParentTransform (Transform &transform)
 
virtual void callRefreshDisplay ()
 
uint8_t getLocalChangeFlags () const
 
uint8_t getSubtreeChangeFlags () const
 
void clearChangeFlags ()
 
void refreshTagBitsRec (cCanvas *ownerCanvas)
 
int64_t getTagBits () const
 
void setTagBits (uint64_t tagBits)
 
uint32_t getHash () const
 
void clearCachedHash ()
 
- Public Member Functions inherited from cOwnedObject
 cOwnedObject ()
 
 cOwnedObject (const char *name, bool namepooling=true)
 
 cOwnedObject (const cOwnedObject &obj)
 
virtual ~cOwnedObject ()
 
cOwnedObjectoperator= (const cOwnedObject &o)
 
virtual void parsimPack (cCommBuffer *buffer) const override
 
virtual void parsimUnpack (cCommBuffer *buffer) override
 
virtual cObjectgetOwner () const override
 
virtual bool isOwnedObject () const override
 
- Public Member Functions inherited from cNamedObject
 cNamedObject ()
 
 cNamedObject (const char *name, bool namepooling=true)
 
 cNamedObject (const cNamedObject &obj)
 
virtual ~cNamedObject ()
 
cNamedObjectoperator= (const cNamedObject &o)
 
virtual void setName (const char *s)
 
virtual const char * getName () const override
 
virtual void setNamePooling (bool b)
 
virtual bool getNamePooling ()
 
- Public Member Functions inherited from cObject
 cObject ()
 
 cObject (const cObject &other)=default
 
virtual ~cObject ()
 
virtual const char * getClassName () const
 
bool isName (const char *s) const
 
virtual const char * getFullName () const
 
virtual std::string getFullPath () const
 
virtual std::string getClassAndFullName () const
 
virtual std::string getClassAndFullPath () const
 
const cObjectgetThisPtr () const
 
virtual std::ostream & printOn (std::ostream &os) const
 
virtual bool isSoftOwner () const
 
cObjectfindObject (const char *name, bool deep=true)
 
virtual cClassDescriptorgetDescriptor () const
 
void copyNotSupported () const
 

Protected Member Functions

virtual const char ** getAllowedPropertyKeys () const override
 
- Protected Member Functions inherited from cFigure
virtual void validatePropertyKeys (cProperty *property) const
 
virtual bool isAllowedPropertyKey (const char *key) const
 
virtual cFiguregetRootFigure () const
 
void fireStructuralChange ()
 
void fireTransformChange ()
 
void fireGeometryChange ()
 
void fireVisualChange ()
 
void fireInputDataChange ()
 
virtual void fire (uint8_t flags)
 
- Protected Member Functions inherited from cObject
virtual void take (cOwnedObject *obj)
 
virtual void drop (cOwnedObject *obj)
 
void dropAndDelete (cOwnedObject *obj)
 

Additional Inherited Members

- Public Types inherited from cFigure
enum  FontStyle
 Font style constants: FONT_NONE, FONT_BOLD, etc. More...
 
enum  LineStyle
 Line style constants: LINE_SOLID, LINE_DOTTED, etc. More...
 
enum  CapStyle
 Line cap style constants: CAP_BUTT, CAP_SQUARE, etc. More...
 
enum  JoinStyle
 Line join style constants: JOIN_BEVEL, JOIN_MITER, etc. More...
 
enum  FillRule
 Fill rule constants: FILL_EVENODD, FILL_NONZERO. More...
 
enum  Arrowhead
 Arrowhead style constants: ARROW_NONE, ARROW_SIMPLE, etc. More...
 
enum  Interpolation
 Image interpolation mode constants: INTERPOLATION_NONE, INTERPOLATION_FAST, etc. More...
 
enum  Anchor
 Anchoring mode constants: ANCHOR_CENTER, ANCHOR_N, etc. More...
 
enum  Alignment
 Text alignment mode constants: ALIGN_LEFT, ALIGN_RIGHT, ALIGN_CENTER. More...
 
enum  
 
- Static Public Member Functions inherited from cFigure
static Point parsePoint (const char *s)
 
static Rectangle parseRectangle (const char *s)
 
static Transform parseTransform (const char *s)
 
static Font parseFont (const char *s)
 
static Color parseColor (const char *s)
 
static bool parseBool (const char *s)
 
static LineStyle parseLineStyle (const char *s)
 
static CapStyle parseCapStyle (const char *s)
 
static JoinStyle parseJoinStyle (const char *s)
 
static FillRule parseFillRule (const char *s)
 
static Arrowhead parseArrowhead (const char *s)
 
static Interpolation parseInterpolation (const char *s)
 
static Anchor parseAnchor (const char *s)
 
static Alignment parseAlignment (const char *s)
 
- Static Public Member Functions inherited from cOwnedObject
static long getTotalObjectCount ()
 
static long getLiveObjectCount ()
 
static void resetObjectCounters ()
 
static cSoftOwnergetOwningContext ()
 
- Static Public Attributes inherited from cFigure
static const Color BLACK
 
static const Color WHITE
 
static const Color GREY
 
static const Color RED
 
static const Color GREEN
 
static const Color BLUE
 
static const Color YELLOW
 
static const Color CYAN
 
static const Color MAGENTA
 
static const int NUM_GOOD_DARK_COLORS
 
static const int NUM_GOOD_LIGHT_COLORS
 
static const Color GOOD_DARK_COLORS [14]
 
static const Color GOOD_LIGHT_COLORS [10]
 
- Static Protected Member Functions inherited from cFigure
static Point parsePoint (cProperty *property, const char *key, int index)
 
static std::vector< PointparsePoints (cProperty *property, const char *key)
 
static Rectangle parseBounds (cProperty *property, const Rectangle &defaults)
 
static Transform parseTransform (cProperty *property, const char *key)
 
static Font parseFont (cProperty *property, const char *key)
 
static Rectangle computeBoundingBox (const Point &position, const Point &size, double ascent, Anchor anchor)
 
static void concatArrays (const char **dest, const char **first, const char **second)
 

Member Function Documentation

◆ getAllowedPropertyKeys()

virtual const char** getAllowedPropertyKeys ( ) const
overrideprotectedvirtual

Returns the list of allowed keys in @figure properties with this figure type, in a nullptr-terminated array of const char* elements. This method is invoked e.g. from parse(), in order to be able to issue error messages for invalid keys in the property. Note that property keys starting with "x-" are already allowed by default. Custom figure classes usually need to override this method together with parse(); see the source code of the library classes for example implementations.

Reimplemented from cFigure.

Reimplemented in cPolylineFigure, cArcFigure, and cLineFigure.

◆ dup()

virtual cAbstractLineFigure* dup ( ) const
inlineoverridevirtual

Clones the figure, ignoring its child figures. (The copy will have no children.) To clone a figure together with its figure subtree, use dupTree().

Reimplemented from cFigure.

Reimplemented in cPolylineFigure, cArcFigure, and cLineFigure.

◆ str()

virtual std::string str ( ) const
overridevirtual

Returns a one-line string with the most characteristic data of the figure.

Reimplemented from cFigure.

Reimplemented in cPolylineFigure, cArcFigure, and cLineFigure.

◆ parse()

virtual void parse ( cProperty property)
overridevirtual

This method is invoked by the simulation library to initialize the figure from a @figure NED property. Custom figure classes usually need to override this method (and call the super class' similar method in it).

Note: When overriding parse(), it is usually also necessary to override getAllowedPropertyKeys(), in order to allow new keys in the @figure property.

Reimplemented from cFigure.

Reimplemented in cPolylineFigure, cArcFigure, and cLineFigure.

◆ getLineColor()

virtual const Color& getLineColor ( ) const
inlinevirtual

Returns the line color of the figure.

◆ setLineColor()

virtual void setLineColor ( const Color &  lineColor)
virtual

Sets the line color of the figure. The default color is black.

◆ getLineWidth()

virtual double getLineWidth ( ) const
inlinevirtual

Returns the line width of the figure. Note that the actual line width will also be affected by the figure transformations and, if zoomLineWidth is set, by the zoom level as well.

◆ setLineWidth()

virtual void setLineWidth ( double  lineWidth)
virtual

Sets the line width of the figure. The number must be positive (zero is not allowed). The default line width is 1. See also setZoomLineWidth().

◆ getLineOpacity()

virtual double getLineOpacity ( ) const
inlinevirtual

Returns the line opacity of the figure, a number in the [0,1] interval.

◆ setLineOpacity()

virtual void setLineOpacity ( double  lineOpacity)
virtual

Sets the line opacity of the figure. The argument must be a number in the [0,1] interval. The default opacity is 1.0.

◆ getLineStyle()

virtual LineStyle getLineStyle ( ) const
inlinevirtual

Returns the line style of the figure.

◆ setLineStyle()

virtual void setLineStyle ( LineStyle  lineStyle)
virtual

Sets the line style of the figure (dotted, dashed, etc.) The default line style is solid.

◆ getCapStyle()

virtual CapStyle getCapStyle ( ) const
inlinevirtual

Returns the cap style for the figure's line.

◆ setCapStyle()

virtual void setCapStyle ( CapStyle  capStyle)
virtual

Sets the cap style for the figure's line. The default cap style is butt.

◆ getStartArrowhead()

virtual Arrowhead getStartArrowhead ( ) const
inlinevirtual

Returns the type of the arrowhead at the start of the line.

◆ setStartArrowhead()

virtual void setStartArrowhead ( Arrowhead  startArrowhead)
virtual

Sets the type of the arrowhead at the start of the line. The default is no arrowhead.

◆ getEndArrowhead()

virtual Arrowhead getEndArrowhead ( ) const
inlinevirtual

Returns the type of the arrowhead at the end of the line.

◆ setEndArrowhead()

virtual void setEndArrowhead ( Arrowhead  endArrowhead)
virtual

Sets the type of the arrowhead at the end of the line. The default is no arrowhead.

◆ getZoomLineWidth()

virtual bool getZoomLineWidth ( ) const
inlinevirtual

Returns true if zoom level affects the line width the figure is drawn with, and false if it does not.

◆ setZoomLineWidth()

virtual void setZoomLineWidth ( bool  zoomLineWidth)
virtual

Sets the flag that controls whether zoom level should affect the line width the figure is drawn with. The default setting is false, i.e. zoom does not affect line width.


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