cee::vis::MarkupPartText3d
-
class MarkupPartText3d : public MarkupPart
A MarkupModel part for drawing text positioned and oriented in 3D.
The part can contain any number of text items (MarkupText3dItem). Each text item’s position, orientation and size described by:
position: World coordinate position of the bottom left corner of the text
directionVector: The horizontal direction (local x axis) of the text
upVector: The vertical axis (local y axis) of the text
textHeight: The height of the text along the upVector axis. This determines the size of the text
The texts support picking through the MarkupModel::rayIntersect() method, but as this only returns the part index, you will have to split your text into parts according to the granularity required for picking.
Example:
cee::PtrRef<cee::vis::MarkupModel> myModel = new cee::vis::MarkupModel; m_view->addModel(myModel.get()); std::vector<cee::Vec3d> tris; tris.push_back(cee::Vec3d(0, 0, 0)); tris.push_back(cee::Vec3d(2, 2, 0)); tris.push_back(cee::Vec3d(2, 2, 1)); tris.push_back(cee::Vec3d(0, 0, 0)); tris.push_back(cee::Vec3d(2, 2, 1)); tris.push_back(cee::Vec3d(0, 0, 1)); myModel->addPart(cee::vis::MarkupPartTriangles::create(tris, cee::Color3f(0.0f, 0.51f, 0.64f), 1.0f).get()); cee::PtrRef<cee::vis::MarkupPartText3d> myText = new cee::vis::MarkupPartText3d(); myText->setTextColor(cee::Color3f(0,0,0)); #ifdef WIN32 { cee::Str trueTypeFontName; TCHAR windir[MAX_PATH]; GetWindowsDirectory(windir, MAX_PATH); cee::Str fontFilename = cee::Str(windir) + "\\Fonts\\arial.ttf"; cee::PtrRef<cee::vis::Font> font = cee::vis::Font::createTrueTypeFont(fontFilename, 144); myText->setFont(font.get()); } #endif myText->add("Ceetron", cee::Vec3d(0.1, 0.1, 0.6), cee::Vec3d(1,1,0), cee::Vec3d(0,0,1), 0.3); myText->add("Desktop Components", cee::Vec3d(0.1, 0.1, 0.1), cee::Vec3d(1,1,0), cee::Vec3d(0,0,1), 0.25); myModel->addPart(myText.get());
See also
Public Functions
-
MarkupPartText3d()
Constructs an empty part.
-
virtual PartType type() const
Returns the type of the part. Always MarkupPart::TEXT_3D.
-
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 setFont(Font *labelFont)
Sets the font to use for drawing the labels in the part.
Default is the large built-in font (Font::createLargeFont())
-
float eyeLiftFactor() const
Returns the eye lift factor of the 3d text.
See also
-
void setEyeLiftFactor(float factor)
Sets the eye lift factor for the 3d text.
The eye lift factor specifies if the text 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.
-
unsigned int maximumNumberOfLabelsToDraw() const
Returns the maximum number of text items to draw in this part.
-
void setMaximumNumberOfLabelsToDraw(unsigned int maximumNumberToDraw)
Sets the maximum number of text items to draw in the part.
The text items within the view volume will be sorted and the closest items up to the given number will be drawn.
-
size_t count() const
Returns the number of text items in the part.
-
MarkupText3dItem textItem(size_t index) const
Returns the text item at the given index.
See also
-
size_t add(const MarkupText3dItem &item)
Adds the given text item to the part.
See also
-
size_t add(const Str &text, const Vec3d &position, const Vec3d &directionVector, const Vec3d &upVector, double textHeight)
Adds a text item to the part with the given parameters.
Note that directionVector and upVector cannot be zero vectors and they do not need to be normalized
The textHeight is the height of the text (in world coordinates) (in the upVector direction).
-
void set(size_t index, const MarkupText3dItem &item)
Sets the text item at the given index.
See also
-
void remove(size_t index)
Removes the text item at the given index.
See also
-
void removeAll()
Removes all labels in the part.
Public Static Functions
-
static PtrRef<MarkupPartText3d> create(const Str &text, const Color3f &color, const Vec3d &position, const Vec3d &directionVector, const Vec3d &upVector, double textHeight)
Returns a newly created part with the given settings.
The returned part will have the specified color and have one text item with the given parameters