TextPropertiesManager
-
class TextPropertiesManager
This defines all of the
TextProperties
structures 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 theTextProperties
defined 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
TextGraphic
that 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
TextGraphic
structure from the manager.
-
void clear_properties(std::string const &name)
Removes the named
TextProperties
structure from the manager.
-
static TextPropertiesManager *get_global_ptr(void)
Returns the pointer to the global
TextPropertiesManager
object.
-
TextGraphic get_graphic(std::string const &name)
Returns the
TextGraphic
associated with the indicated name. If there was not previously aTextGraphic
associated with this name, a warning is printed and then a defaultTextGraphic
structure 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
TextProperties
associated with the indicated name. If there was not previously aTextProperties
associated with this name, a warning is printed and then a defaultTextProperties
structure 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
TextGraphic
structure 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 defaultTextGraphic
structure, 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
TextProperties
structure 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 defaultTextProperties
structure, 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
TextGraphic
associated with the indicated name. When the name is subsequently encountered in text embedded between 5 characters in aTextNode
string, the specified graphic will be embedded in the text at that point.If there was already a
TextGraphic
structure 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 aTextGraphic
object first if you want to have explicit control of the frame.
-
void set_properties(std::string const &name, TextProperties const &properties)
Defines the
TextProperties
associated with the indicated name. When the name is subsequently encountered in text embedded between 1 characters in aTextNode
string, the following text will be rendered with these properties.If there was already a
TextProperties
structure 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)