cee::vis::MarkupPartLabels

class MarkupPartLabels : public MarkupPart

A MarkupModel part for drawing labels.

The part can contain any number of labels, but all labels will share the same settings for

  • text color

  • border color and draw border on/off

  • background color and draw background on/off

The default label is a label with black text and border on a light yellow background (like a standard tooltip in most systems).

See also

MarkupModel

Public Types

enum LabelDrawMode

Enum specifying the way to draw the labels. Controls the visibility of the label.

Values:

enumerator DRAW_ONLY_VISIBLE

Label is visible if the position of the label (position provided in the add()) is visible.

enumerator DRAW_WITH_ZBUFFER_TEST

Draw the label as geometry with z buffer test.

enumerator DRAW_WITHOUT_ZBUFFER_TEST

Draw the label without z buffer test. The label will always be visible.

enum Orientation

Enum specifying the direction to draw the labels.

Values:

enumerator HORIZONTAL

Horizontal text direction.

enumerator VERTICAL_UP

Vertical direction, upward text.

enumerator VERTICAL_DOWN

Vertical direction, downward text.

enum HorizontalTextAlignment

Horizontal alignment of the text when drawing multiple lines.

Values:

enumerator LEFT

Align left.

enumerator CENTER

Align center.

enumerator RIGHT

Align right.

Public Functions

MarkupPartLabels()

Constructs an empty part.

MarkupPartLabels(LabelDrawMode labelDrawMode, const Color3f &textColor, const Color3f &borderColor, const Color3f &backgroundColor)

Constructs a part with the given settings.

MarkupPartLabels(LabelDrawMode labelDrawMode, const Color3f &textColor, const Color3f &borderColor, const Color3f &backgroundColor, const Color3f &markerColor)

Constructs a part with the given settings.

virtual PartType type() const

Returns the type of the part. Always MarkupPart::LABELS.

virtual BoundingBox boundingBox() const

Returns the current bounding box of the part.

virtual void setPriority(int priority)

Sets render priority of the part.

The render priority determines the order in which parts get rendered. Parts with lower priorities get rendered first. The default priority is 100.

virtual int priority() const

Returns the render priority of the part.

virtual const Mat4d &transformation() const

Returns the current transformation matrix for the part.

virtual void setTransformation(const Mat4d &matrix)

Sets the transformation matrix to use for the part.

void setAbsoluteOffset(int x, int y)

Sets the absolute offset in pixels from the anchor point to the label.

Note! The marker is not affected by this offset

int absoluteOffsetX() const

Returns the horizontal absolute offset in pixels from the anchor point to the label.

int absoluteOffsetY() const

Returns the vertical absolute offset in pixels from the anchor point to the label.

void setRelativeOffset(double x, double y)

Sets the normalized relative offset of the label size from the anchor point to the label.

Note! The marker is not affected by this offset

double relativeOffsetX() const

Returns the normalized horizontal relative offset of the label width from the anchor point to the label.

double relativeOffsetY() const

Returns the normalized vertical relative offset of the label height from the anchor point to the label.

LabelDrawMode drawMode() const

Returns the current draw mode of the label.

See also

setDrawMode

void setDrawMode(LabelDrawMode mode)

Sets the current draw mode of the label.

Orientation orientation() const

Sets the current orientation of the label.

See also

setDirection

void setOrientation(Orientation direction)

Returns the current orientation of the label.

HorizontalTextAlignment horizontalTextAlignment() const

Returns the horizontal alignment of the text used when drawing multiple lines.

void setHorizontalTextAlignment(HorizontalTextAlignment alignment)

Sets the horizontal alignment of the text used when drawing multiple lines.

unsigned int maximumNumberOfLabelsToDraw() const

Returns the maximum number of labels to draw in this part.

void setMaximumNumberOfLabelsToDraw(unsigned int maximumNumberToDraw)

Sets the maximum number of labels to draw in the part.

The labels within the view volume will be sorted and the closest labels up to the given number will be drawn.-

float eyeLiftFactor() const

Returns the eye lift factor of the labels.

See also

setEyeLiftFactor

void setEyeLiftFactor(float factor)

Sets the eye lift factor for the labels.

The eye lift factor specifies if the label should be moved towards the camera (or away from the camera if the factor is negative).

This is useful for controlling the ordering of items that are defined in the same plane.

const Font *font() const

Returns the font used to draw the labels in the part.

void setFont(Font *labelFont)

Sets the font to use for drawing the labels in the part.

Default is the normal built-in font (Font::createNormalFont())

const Color3f &textColor() const

Returns the current text color.

void setTextColor(const Color3f &color)

Sets the text color of the labels in the part.

const Color3f &backgroundColor() const

Returns the background color.

void setBackgroundColor(const Color3f &color)

Sets the background color of the labels in the part.

const Color3f &borderColor() const

Returns the border color of the labels in the part.

void setBorderColor(const Color3f &color)

Sets the border color of the labels in the part.

const Color3f &markerColor() const

Returns the marker color of the labels in the part.

void setMarkerColor(const Color3f &color)

Sets the marker color of the labels in the part.

float borderWidth() const

Returns the line width of the border.

void setBorderWidth(float width)

Sets the line width of the border.

float markerPointSize() const

Returns the point size of the marker.

void setMarkerPointSize(float pointSize)

Sets the point size of the marker.

bool drawBackground() const

Returns true if the labels will be drawn with a filled background.

void setDrawBackground(bool drawBackground)

Sets if the filled background of the labels should be drawn or not.

bool drawBorder() const

Returns true if the labels will be drawn with a border around the text.

void setDrawBorder(bool drawBorder)

Sets if the labels will be drawn with a border around the text or not.

See also

setBorderColor

bool drawMarker() const

Returns true if the labels will be drawn with a marker at the label position.

void setDrawMarker(bool drawMarker)

Sets if the labels will be drawn with a marker at the label position or not.

See also

setMarkerColor

bool offsetLabelToFitInView() const

Returns true if the labels will be adjusted so the label would be fully visible in the attachment point is visible.

void setOffsetLabelToFitInView(bool offsetLabel)

Sets if the labels will be adjusted so the label would be fully visible in the attachment point is visible.

If enabled, the label will be moved to the left or bottom of the attachment point if needed to keep the label fully visible.

size_t count() const

Returns the number of labels in the part.

const cee::Str &text(size_t index) const

Returns the text of the label at the given index.

const cee::Vec3d &position(size_t index) const

Returns the position of the label at the given index.

unsigned int width(size_t index)

Returns the width of the drawn label in pixels.

unsigned int height(size_t index)

Returns the height of the drawn label in pixels.

size_t add(const Vec3d &position, const Str &text)

Adds a label to the part with the given text and position.

void set(size_t index, const Vec3d &position, const Str &text)

Sets the text and position of the label at the given index.

void remove(size_t index)

Removes the label at the given index.

void removeAll()

Removes all labels in the part.

Public Static Functions

static PtrRef<MarkupPartLabels> create(const Vec3d &position, const Str &text, LabelDrawMode drawMode = DRAW_WITHOUT_ZBUFFER_TEST)

Returns a newly created part with the given settings.

The returned part will have the specified draw mode and have one label with the given position and text.

static PtrRef<MarkupPartLabels> createWithMarker(const Vec3d &position, const Str &text, const Color3f &markerColor, LabelDrawMode drawMode = DRAW_WITHOUT_ZBUFFER_TEST)

Returns a newly created part with the given settings.

The returned part will have the specified draw mode and have one label with the given position and text.