TextPropertiesManager
-
class TextPropertiesManager
This defines all of the
TextPropertiesstructures that might be referenced by name from an embedded text string.A text string, as rendered by a
TextNode, can contain embedded references to one of theTextPropertiesdefined here, by enclosing the name between 1 (ASCII 0x01) characters; this causes a “push” to the named state. All text following the closing 1 character will then be rendered in the new state. The next 2 (ASCII 0x02) character will then restore the previous state for subsequent text.For instance, “x1up1n2 + y” indicates that the character “x” will be rendered in the normal state, the character “n” will be rendered in the “up” state, and then ” + y” will be rendered in the normal state again.
This can also be used to define arbitrary models that can serve as embedded graphic images in a text paragraph. This works similarly; the convention is to create a
TextGraphicthat describes the graphic image, and then associate it here via theset_graphic()call. Then “5name5” will embed the named graphic.Inheritance diagram
-
void clear_graphic(std::string const &name)
Removes the named
TextGraphicstructure from the manager.
-
void clear_properties(std::string const &name)
Removes the named
TextPropertiesstructure from the manager.
-
static TextPropertiesManager *get_global_ptr(void)
Returns the pointer to the global
TextPropertiesManagerobject.
-
TextGraphic get_graphic(std::string const &name)
Returns the
TextGraphicassociated with the indicated name. If there was not previously aTextGraphicassociated with this name, a warning is printed and then a defaultTextGraphicstructure is associated with the name, and returned.Call
has_graphic()instead to check whether a particular name has been defined.
-
TextProperties get_properties(std::string const &name)
Returns the
TextPropertiesassociated with the indicated name. If there was not previously aTextPropertiesassociated with this name, a warning is printed and then a defaultTextPropertiesstructure is associated with the name, and returned.Call
has_properties()instead to check whether a particular name has been defined.
-
bool has_graphic(std::string const &name) const
Returns true if a
TextGraphicstructure has been associated with the indicated name, false otherwise. Normally this meansset_graphic()has been called with this name, but becauseget_graphic()will implicitly create a defaultTextGraphicstructure, it may also mean simply thatget_graphic()has been called with the indicated name.
-
bool has_properties(std::string const &name) const
Returns true if a
TextPropertiesstructure has been associated with the indicated name, false otherwise. Normally this meansset_properties()has been called with this name, but becauseget_properties()will implicitly create a defaultTextPropertiesstructure, it may also mean simply thatget_properties()has been called with the indicated name.
-
void set_graphic(std::string const &name, TextGraphic const &graphic)
-
void set_graphic(std::string const &name, NodePath const &model)
Defines the
TextGraphicassociated with the indicated name. When the name is subsequently encountered in text embedded between 5 characters in aTextNodestring, the specified graphic will be embedded in the text at that point.If there was already a
TextGraphicstructure associated with this name, it is quietly replaced with the new definition.This flavor of set_graphic implicitly creates a frame for the model using the model’s actual computed bounding volume, as derived from
NodePath::calc_tight_bounds(). Create aTextGraphicobject first if you want to have explicit control of the frame.
-
void set_properties(std::string const &name, TextProperties const &properties)
Defines the
TextPropertiesassociated with the indicated name. When the name is subsequently encountered in text embedded between 1 characters in aTextNodestring, the following text will be rendered with these properties.If there was already a
TextPropertiesstructure associated with this name, it is quietly replaced with the new definition.
-
void write(std::ostream &out, int indent_level = 0) const
-
void clear_graphic(std::string const &name)
