Panda3D
Loading...
Searching...
No Matches
textProperties.I
Go to the documentation of this file.
1/**
2 * PANDA 3D SOFTWARE
3 * Copyright (c) Carnegie Mellon University. All rights reserved.
4 *
5 * All use of this software is subject to the terms of the revised BSD
6 * license. You should have received a copy of this license along
7 * with this source code in a file named "LICENSE."
8 *
9 * @file textProperties.I
10 * @author drose
11 * @date 2004-04-06
12 */
13
14/**
15 *
16 */
17INLINE bool TextProperties::
18operator != (const TextProperties &other) const {
19 return !operator == (other);
20}
21
22/**
23 * Returns true if any properties have been specified, false otherwise.
24 */
26is_any_specified() const {
27 return (_specified != 0);
28}
29
30/**
31 * Specifies the default font to be used for any TextNode whose font is
32 * uninitialized or NULL. See set_font().
33 */
36 // If the user overrides the default, we don't need to try to load whatever
37 // it would have been.
38 _loaded_default_font = true;
39 _default_font = font;
40}
41
42/**
43 * Specifies the default font to be used for any TextNode whose font is
44 * uninitialized or NULL. See set_font().
45 */
48 if (!_loaded_default_font) {
49 load_default_font();
50 }
51 return _default_font;
52}
53
54/**
55 * Sets the font that will be used when making text. If this is set to NULL,
56 * the default font will be used, which can be set via set_default_font().
57 */
58INLINE void TextProperties::
59set_font(TextFont *font) {
60 _font = font;
61 _specified |= F_has_font;
62}
63
64/**
65 * Restores the default font to the text.
66 */
67INLINE void TextProperties::
68clear_font() {
69 _font.clear();
70 _specified &= ~F_has_font;
71}
72
73/**
74 *
75 */
76INLINE bool TextProperties::
77has_font() const {
78 return (_specified & F_has_font) != 0;
79}
80
81/**
82 * Returns the font currently in use, if any. If no font is in use, this
83 * returns the default font.
84 */
86get_font() const {
87 return has_font() ? _font.p() : get_default_font();
88}
89
90/**
91 * Sets the small_caps flag. When this is set, lowercase letters are
92 * generated as scaled-down versions of their uppercase equivalents. This is
93 * particularly useful to set for fonts that do not have lowercase letters.
94 *
95 * It is also a good idea to set this for a (dynamic) font that has already
96 * implemented lowercase letters as scaled-down versions of their uppercase
97 * equivalents, since without this flag the texture memory may needlessly
98 * duplicate equivalent glyphs for upper and lowercase letters. Setting this
99 * flag causes the texture memory to share the mixed-case letters.
100 *
101 * The amount by which the lowercase letters are scaled is specified by
102 * set_small_caps_scale().
103 */
104INLINE void TextProperties::
105set_small_caps(bool small_caps) {
106 _small_caps = small_caps;
107 _specified |= F_has_small_caps;
108}
109
110/**
111 *
112 */
113INLINE void TextProperties::
114clear_small_caps() {
115 _small_caps = false;
116 _specified &= ~F_has_small_caps;
117}
118
119/**
120 *
121 */
122INLINE bool TextProperties::
123has_small_caps() const {
124 return (_specified & F_has_small_caps) != 0;
125}
126
127/**
128 * Returns the small_caps flag. See set_small_caps().
129 */
130INLINE bool TextProperties::
131get_small_caps() const {
132 return _small_caps;
133}
134
135/**
136 * Sets the scale factor applied to lowercase letters from their uppercase
137 * equivalents, when the small_caps flag is in effect. See set_small_caps().
138 * Normally, this will be a number less than one.
139 */
140INLINE void TextProperties::
141set_small_caps_scale(PN_stdfloat small_caps_scale) {
142 _small_caps_scale = small_caps_scale;
143}
144
145/**
146 *
147 */
148INLINE void TextProperties::
149clear_small_caps_scale() {
150 _small_caps_scale = text_small_caps_scale;
151 _specified &= ~F_has_small_caps_scale;
152}
153
154/**
155 *
156 */
157INLINE bool TextProperties::
158has_small_caps_scale() const {
159 return (_specified & F_has_small_caps_scale) != 0;
160}
161
162/**
163 * Returns the scale factor applied to lowercase letters from their uppercase
164 * equivalents, when the small_caps flag is in effect. See set_small_caps()
165 * and set_small_caps_scale().
166 */
167INLINE PN_stdfloat TextProperties::
168get_small_caps_scale() const {
169 return _small_caps_scale;
170}
171
172/**
173 * Specifies the factor by which the text slants to the right.
174 */
175INLINE void TextProperties::
176set_slant(PN_stdfloat slant) {
177 _slant = slant;
178 _specified |= F_has_slant;
179}
180
181/**
182 *
183 */
184INLINE void TextProperties::
185clear_slant() {
186 _slant = 0.0f;
187 _specified &= ~F_has_slant;
188}
189
190/**
191 *
192 */
193INLINE bool TextProperties::
194has_slant() const {
195 return (_specified & F_has_slant) != 0;
196}
197
198/**
199 * Returns the factor by which the text is specified to slant to the right.
200 */
201INLINE PN_stdfloat TextProperties::
202get_slant() const {
203 return _slant;
204}
205
206/**
207 * Sets the underscore flag. When this is set, the text is underscored with a
208 * one-pixel line the same color as the text foreground, drawn at the
209 * baseline.
210 */
211INLINE void TextProperties::
212set_underscore(bool underscore) {
213 _underscore = underscore;
214 _specified |= F_has_underscore;
215}
216
217/**
218 *
219 */
220INLINE void TextProperties::
221clear_underscore() {
222 _underscore = false;
223 _specified &= ~F_has_underscore;
224}
225
226/**
227 *
228 */
229INLINE bool TextProperties::
230has_underscore() const {
231 return (_specified & F_has_underscore) != 0;
232}
233
234/**
235 * Returns the underscore flag. See set_underscore().
236 */
237INLINE bool TextProperties::
238get_underscore() const {
239 return _underscore;
240}
241
242/**
243 * Specifies the vertical height of the underscore, relative to the text
244 * baseline. This only has meaning if the underscore mode is enabled with
245 * set_underscore().
246 */
247INLINE void TextProperties::
248set_underscore_height(PN_stdfloat underscore_height) {
249 _underscore_height = underscore_height;
250 _specified |= F_has_underscore_height;
251}
252
253/**
254 *
255 */
256INLINE void TextProperties::
257clear_underscore_height() {
258 _underscore_height = 0.0f;
259 _specified &= ~F_has_underscore_height;
260}
261
262/**
263 *
264 */
265INLINE bool TextProperties::
266has_underscore_height() const {
267 return (_specified & F_has_underscore_height) != 0;
268}
269
270/**
271 * Returns the vertical height of the underscore; see set_underscore_height().
272 */
273INLINE PN_stdfloat TextProperties::
274get_underscore_height() const {
275 return has_underscore_height() ? _underscore_height : text_default_underscore_height;
276}
277
278/**
279 * Specifies the alignment of the text within its margins.
280 */
281INLINE void TextProperties::
282set_align(TextProperties::Alignment align_type) {
283 _align = align_type;
284 _specified |= F_has_align;
285}
286
287/**
288 * Restores the default alignment of the text.
289 */
290INLINE void TextProperties::
291clear_align() {
292 _align = A_left;
293 _specified &= ~F_has_align;
294}
295
296/**
297 *
298 */
299INLINE bool TextProperties::
300has_align() const {
301 return (_specified & F_has_align) != 0;
302}
303
304/**
305 *
306 */
307INLINE TextProperties::Alignment TextProperties::
308get_align() const {
309 return _align;
310}
311
312/**
313 * Specifies the amount of extra space that is inserted before the first
314 * character of each line. This can be thought of as a left margin.
315 */
316INLINE void TextProperties::
317set_indent(PN_stdfloat indent) {
318 _indent_width = indent;
319 _specified |= F_has_indent;
320}
321
322/**
323 * Removes the indent setting from the text. Text will be as wide as it is.
324 */
325INLINE void TextProperties::
326clear_indent() {
327 _indent_width = 0.0f;
328 _specified &= ~F_has_indent;
329}
330
331/**
332 *
333 */
334INLINE bool TextProperties::
335has_indent() const {
336 return (_specified & F_has_indent) != 0;
337}
338
339/**
340 *
341 */
342INLINE PN_stdfloat TextProperties::
343get_indent() const {
344 return _indent_width;
345}
346
347/**
348 * Sets the text up to automatically wordwrap when it exceeds the indicated
349 * width. This can be thought of as a right margin or margin width.
350 */
351INLINE void TextProperties::
352set_wordwrap(PN_stdfloat wordwrap) {
353 _wordwrap_width = wordwrap;
354 _specified |= F_has_wordwrap;
355}
356
357/**
358 * Removes the wordwrap setting from the text. Text will be as wide as it is.
359 */
360INLINE void TextProperties::
362 _wordwrap_width = 0.0f;
363 _specified &= ~F_has_wordwrap;
364}
365
366/**
367 *
368 */
369INLINE bool TextProperties::
370has_wordwrap() const {
371 return (_specified & F_has_wordwrap) != 0;
372}
373
374/**
375 *
376 */
377INLINE PN_stdfloat TextProperties::
378get_wordwrap() const {
379 return _wordwrap_width;
380}
381
382/**
383 * Sets the preserve_trailing_whitespace flag. When this is set, trailing
384 * whitespace at the end of the line is not stripped when the text is
385 * wordwrapped (it is stripped by default). Since the trailing whitespace is
386 * invisible, this is important primarily for determining the proper width of
387 * a frame or card behind the text.
388 */
389INLINE void TextProperties::
390set_preserve_trailing_whitespace(bool preserve_trailing_whitespace) {
391 _preserve_trailing_whitespace = preserve_trailing_whitespace;
392 _specified |= F_has_preserve_trailing_whitespace;
393}
394
395/**
396 *
397 */
398INLINE void TextProperties::
399clear_preserve_trailing_whitespace() {
400 _preserve_trailing_whitespace = false;
401 _specified &= ~F_has_preserve_trailing_whitespace;
402}
403
404/**
405 *
406 */
407INLINE bool TextProperties::
408has_preserve_trailing_whitespace() const {
409 return (_specified & F_has_preserve_trailing_whitespace) != 0;
410}
411
412/**
413 * Returns the preserve_trailing_whitespace flag. See
414 * set_preserve_trailing_whitespace().
415 */
416INLINE bool TextProperties::
418 return _preserve_trailing_whitespace;
419}
420
421/**
422 * Sets the color of the text. Note that this will modulate the color of all
423 * components of the text, including the shadow and outline. If you wish to
424 * only set the foreground color, see DynamicTextFont::set_fg().
425 */
426INLINE void TextProperties::
427set_text_color(PN_stdfloat r, PN_stdfloat g, PN_stdfloat b, PN_stdfloat a) {
428 set_text_color(LColor(r, g, b, a));
429}
430
431/**
432 * Sets the color of the text. Note that this will modulate the color of all
433 * components of the text, including the shadow and outline. If you wish to
434 * only set the foreground color, see DynamicTextFont::set_fg().
435 */
436INLINE void TextProperties::
437set_text_color(const LColor &text_color) {
438 _text_color = text_color;
439 _specified |= F_has_text_color;
440 _text_state.clear();
441}
442
443/**
444 * Removes the text color specification; the text will be colored whatever it
445 * was in the source font file.
446 */
447INLINE void TextProperties::
449 _text_color.set(1.0f, 1.0f, 1.0f, 1.0f);
450 _specified &= ~F_has_text_color;
451 _text_state.clear();
452}
453
454/**
455 * Returns true if a text color was specified with set_text_color().
456 */
457INLINE bool TextProperties::
458has_text_color() const {
459 return (_specified & F_has_text_color) != 0;
460}
461
462/**
463 *
464 */
465INLINE LColor TextProperties::
466get_text_color() const {
467 return _text_color;
468}
469
470/**
471 *
472 */
473INLINE void TextProperties::
474set_shadow_color(PN_stdfloat r, PN_stdfloat g, PN_stdfloat b, PN_stdfloat a) {
475 set_shadow_color(LColor(r, g, b, a));
476}
477
478/**
479 *
480 */
481INLINE void TextProperties::
482set_shadow_color(const LColor &shadow_color) {
483 _shadow_color = shadow_color;
484 _specified |= F_has_shadow_color;
485 _shadow_state.clear();
486}
487
488/**
489 * Removes the shadow color specification.
490 */
491INLINE void TextProperties::
493 _shadow_color.set(0.0f, 0.0f, 0.0f, 1.0f);
494 _specified &= ~F_has_shadow_color;
495 _shadow_state.clear();
496}
497
498/**
499 *
500 */
501INLINE bool TextProperties::
502has_shadow_color() const {
503 return (_specified & F_has_shadow_color) != 0;
504}
505
506/**
507 *
508 */
509INLINE LColor TextProperties::
510get_shadow_color() const {
511 return _shadow_color;
512}
513
514/**
515 * Specifies that the text should be drawn with a shadow, by creating a second
516 * copy of the text and offsetting it slightly behind the first.
517 */
518INLINE void TextProperties::
519set_shadow(PN_stdfloat xoffset, PN_stdfloat yoffset) {
520 set_shadow(LVecBase2(xoffset, yoffset));
521}
522
523/**
524 * Specifies that the text should be drawn with a shadow, by creating a second
525 * copy of the text and offsetting it slightly behind the first.
526 */
527INLINE void TextProperties::
528set_shadow(const LVecBase2 &shadow_offset) {
529 _shadow_offset = shadow_offset;
530 _specified |= F_has_shadow;
531}
532
533/**
534 * Specifies that a shadow will not be drawn behind the text.
535 */
536INLINE void TextProperties::
537clear_shadow() {
538 _specified &= ~F_has_shadow;
539 _shadow_offset.set(0.0f, 0.0f);
540}
541
542/**
543 *
544 */
545INLINE bool TextProperties::
546has_shadow() const {
547 return (_specified & F_has_shadow) != 0;
548}
549
550/**
551 * Returns the offset of the shadow as set by set_shadow(). It is an error to
552 * call this if has_shadow() is false.
553 */
554INLINE LVector2 TextProperties::
555get_shadow() const {
556 return _shadow_offset;
557}
558
559/**
560 * Names the CullBin that the text geometry should be assigned to. If this is
561 * set, then a CullBinAttrib will be created to explicitly place each
562 * component in the named bin.
563 *
564 * The draw_order value will also be passed to each CullBinAttrib as
565 * appropriate; this is particularly useful if this names a CullBinFixed, e.g.
566 * "fixed".
567 */
568INLINE void TextProperties::
569set_bin(const std::string &bin) {
570 _bin = bin;
571 _specified |= F_has_bin;
572 _text_state.clear();
573 _shadow_state.clear();
574}
575
576/**
577 * Removes the effect of a previous call to set_bin(). Text will be drawn in
578 * whatever bin it would like to be drawn in, with no explicit ordering.
579 */
580INLINE void TextProperties::
581clear_bin() {
582 _bin = std::string();
583 _specified &= ~F_has_bin;
584 _text_state.clear();
585 _shadow_state.clear();
586}
587
588/**
589 * Returns true if an explicit drawing bin has been set via set_bin(), false
590 * otherwise.
591 */
592INLINE bool TextProperties::
593has_bin() const {
594 return (_specified & F_has_bin) != 0;
595}
596
597/**
598 * Returns the drawing bin set with set_bin(), or empty string if no bin has
599 * been set.
600 */
601INLINE const std::string &TextProperties::
602get_bin() const {
603 return _bin;
604}
605
606/**
607 * Sets the drawing order of text created by the TextNode. This is actually
608 * the draw order of the card and frame. The shadow is drawn at
609 * _draw_order+1, and the text at _draw_order+2.
610 *
611 * This affects the sorting order assigned to the nodes as they are created,
612 * and also is passed to whatever bin may be assigned via set_bin().
613 *
614 * The return value is the first unused draw_order number, e.g. _draw_order +
615 * 3.
616 */
617INLINE int TextProperties::
618set_draw_order(int draw_order) {
619 _draw_order = draw_order;
620 _specified |= F_has_draw_order;
621 _text_state.clear();
622 _shadow_state.clear();
623 return _draw_order + 3;
624}
625
626/**
627 *
628 */
629INLINE void TextProperties::
630clear_draw_order() {
631 _draw_order = 1;
632 _specified &= ~F_has_draw_order;
633 _text_state.clear();
634 _shadow_state.clear();
635}
636
637/**
638 *
639 */
640INLINE bool TextProperties::
641has_draw_order() const {
642 return (_specified & F_has_draw_order) != 0;
643}
644
645/**
646 * Returns the drawing order set with set_draw_order().
647 */
648INLINE int TextProperties::
649get_draw_order() const {
650 return _draw_order;
651}
652
653/**
654 * Sets the width of each tab stop, in screen units. A tab character embedded
655 * in the text will advance the horizontal position to the next tab stop.
656 */
657INLINE void TextProperties::
658set_tab_width(PN_stdfloat tab_width) {
659 _tab_width = tab_width;
660 _specified |= F_has_tab_width;
661}
662
663/**
664 *
665 */
666INLINE void TextProperties::
667clear_tab_width() {
668 _tab_width = text_tab_width;
669 _specified &= ~F_has_tab_width;
670}
671
672/**
673 *
674 */
675INLINE bool TextProperties::
676has_tab_width() const {
677 return (_specified & F_has_tab_width) != 0;
678}
679
680/**
681 * Returns the width set via set_tab_width().
682 */
683INLINE PN_stdfloat TextProperties::
684get_tab_width() const {
685 return _tab_width;
686}
687
688/**
689 * Specifies the factor by which to scale each letter of the text as it is
690 * placed, in addition to any scales inherited from the node or from
691 * set_text_scale(). This can be used (possibly in conjunction with
692 * set_glyph_shift()) to implement superscripting or subscripting.
693 *
694 * The glyph scale is cumulative when applied to nested TextProperties. It is
695 * intended primarily for implementing superscripts, not for scaling the text
696 * in general. See also set_text_scale(), which is intended primarily for
697 * scaling the text in general, and is not cumulative.
698 */
699INLINE void TextProperties::
700set_glyph_scale(PN_stdfloat glyph_scale) {
701 _glyph_scale = glyph_scale;
702 _specified |= F_has_glyph_scale;
703}
704
705/**
706 *
707 */
708INLINE void TextProperties::
709clear_glyph_scale() {
710 _specified &= ~F_has_glyph_scale;
711 _glyph_scale = 0.0f;
712}
713
714/**
715 *
716 */
717INLINE bool TextProperties::
718has_glyph_scale() const {
719 return (_specified & F_has_glyph_scale) != 0;
720}
721
722/**
723 * Returns the scale factor of each letter as specified by set_glyph_scale().
724 */
725INLINE PN_stdfloat TextProperties::
726get_glyph_scale() const {
727 return _glyph_scale;
728}
729
730/**
731 * Specifies a vertical amount to shift each letter of the text as it is
732 * placed. This can be used (possibly in conjunction with set_glyph_scale())
733 * to implement superscripting or subscripting.
734 */
735INLINE void TextProperties::
736set_glyph_shift(PN_stdfloat glyph_shift) {
737 _glyph_shift = glyph_shift;
738 _specified |= F_has_glyph_shift;
739}
740
741/**
742 *
743 */
744INLINE void TextProperties::
745clear_glyph_shift() {
746 _specified &= ~F_has_glyph_shift;
747 _glyph_shift = 0.0f;
748}
749
750/**
751 *
752 */
753INLINE bool TextProperties::
754has_glyph_shift() const {
755 return (_specified & F_has_glyph_shift) != 0;
756}
757
758/**
759 * Returns the vertical shift of each letter as specified by
760 * set_glyph_shift().
761 */
762INLINE PN_stdfloat TextProperties::
763get_glyph_shift() const {
764 return _glyph_shift;
765}
766
767/**
768 * Specifies the factor by which to scale the text, in addition to any
769 * scalings imposed by the node, as well as in addition to the glyph scale.
770 *
771 * The text scale is not cumulative when applied to nested TextProperties.
772 * See also set_glyph_scale(), which is cumulative.
773 */
774INLINE void TextProperties::
775set_text_scale(PN_stdfloat text_scale) {
776 _text_scale = text_scale;
777 _specified |= F_has_text_scale;
778}
779
780/**
781 *
782 */
783INLINE void TextProperties::
784clear_text_scale() {
785 _specified &= ~F_has_text_scale;
786 _text_scale = 0.0f;
787}
788
789/**
790 *
791 */
792INLINE bool TextProperties::
793has_text_scale() const {
794 return (_specified & F_has_text_scale) != 0;
795}
796
797/**
798 * Returns the scale factor of the text as specified by set_text_scale().
799 */
800INLINE PN_stdfloat TextProperties::
801get_text_scale() const {
802 return _text_scale;
803}
804
805/**
806 * Specifies the text direction. If none is specified, it will be guessed
807 * based on the contents of the string.
808 *
809 * @since 1.10.0
810 */
811INLINE void TextProperties::
812set_direction(Direction direction) {
813 _direction = direction;
814 _specified |= F_has_direction;
815}
816
817/**
818 * Clears the text direction setting. If no text direction is specified, it
819 * will be guessed based on the contents of the string.
820 *
821 * @since 1.10.0
822 */
823INLINE void TextProperties::
825 _specified &= ~F_has_direction;
826 _direction = D_ltr;
827}
828
829/**
830 * @since 1.10.0
831 */
832INLINE bool TextProperties::
833has_direction() const {
834 return (_specified & F_has_direction) != 0;
835}
836
837/**
838 * Returns the direction of the text as specified by set_direction().
839 *
840 * @since 1.10.0
841 */
842INLINE TextProperties::Direction TextProperties::
843get_direction() const {
844 return _direction;
845}
An encapsulation of a font; i.e.
Definition textFont.h:32
This defines the set of visual properties that may be assigned to the individual characters of the te...
set_glyph_shift
Specifies a vertical amount to shift each letter of the text as it is placed.
set_underscore_height
Specifies the vertical height of the underscore, relative to the text baseline.
get_slant
Returns the factor by which the text is specified to slant to the right.
set_shadow
Specifies that the text should be drawn with a shadow, by creating a second copy of the text and offs...
get_draw_order
Returns the drawing order set with set_draw_order().
set_align
Specifies the alignment of the text within its margins.
clear_bin
Removes the effect of a previous call to set_bin().
get_underscore_height
Returns the vertical height of the underscore; see set_underscore_height().
get_small_caps
Returns the small_caps flag.
get_glyph_shift
Returns the vertical shift of each letter as specified by set_glyph_shift().
clear_font
Restores the default font to the text.
has_text_color
Returns true if a text color was specified with set_text_color().
clear_shadow
Specifies that a shadow will not be drawn behind the text.
set_draw_order
Sets the drawing order of text created by the TextNode.
set_wordwrap
Sets the text up to automatically wordwrap when it exceeds the indicated width.
clear_indent
Removes the indent setting from the text.
clear_shadow_color
Removes the shadow color specification.
get_preserve_trailing_whitespace
Returns the preserve_trailing_whitespace flag.
clear_direction
Clears the text direction setting.
get_glyph_scale
Returns the scale factor of each letter as specified by set_glyph_scale().
set_underscore
Sets the underscore flag.
set_font
Sets the font that will be used when making text.
set_small_caps_scale
Sets the scale factor applied to lowercase letters from their uppercase equivalents,...
set_tab_width
Sets the width of each tab stop, in screen units.
get_shadow
Returns the offset of the shadow as set by set_shadow().
get_bin
Returns the drawing bin set with set_bin(), or empty string if no bin has been set.
clear_text_color
Removes the text color specification; the text will be colored whatever it was in the source font fil...
set_glyph_scale
Specifies the factor by which to scale each letter of the text as it is placed, in addition to any sc...
get_font
Returns the font currently in use, if any.
get_small_caps_scale
Returns the scale factor applied to lowercase letters from their uppercase equivalents,...
get_underscore
Returns the underscore flag.
clear_wordwrap
Removes the wordwrap setting from the text.
bool is_any_specified() const
Returns true if any properties have been specified, false otherwise.
set_indent
Specifies the amount of extra space that is inserted before the first character of each line.
static void set_default_font(TextFont *)
Specifies the default font to be used for any TextNode whose font is uninitialized or NULL.
get_direction
Returns the direction of the text as specified by set_direction().
get_tab_width
Returns the width set via set_tab_width().
has_bin
Returns true if an explicit drawing bin has been set via set_bin(), false otherwise.
clear_align
Restores the default alignment of the text.
set_preserve_trailing_whitespace
Sets the preserve_trailing_whitespace flag.
set_text_color
Sets the color of the text.
static TextFont * get_default_font()
Specifies the default font to be used for any TextNode whose font is uninitialized or NULL.
set_direction
Specifies the text direction.
set_text_scale
Specifies the factor by which to scale the text, in addition to any scalings imposed by the node,...
get_text_scale
Returns the scale factor of the text as specified by set_text_scale().
set_small_caps
Sets the small_caps flag.
set_slant
Specifies the factor by which the text slants to the right.
set_bin
Names the CullBin that the text geometry should be assigned to.
std::ostream & indent(std::ostream &out, int indent_level)
A handy function for doing text formatting.
Definition indent.cxx:20