Open Inventor Release 2024.2.1
 
Loading...
Searching...
No Matches
SoAsciiText.h
1/*=======================================================================
2 * Copyright 1991-1996, Silicon Graphics, Inc.
3 * ALL RIGHTS RESERVED
4 *
5 * UNPUBLISHED -- Rights reserved under the copyright laws of the United
6 * States. Use of a copyright notice is precautionary only and does not
7 * imply publication or disclosure.
8 *
9 * U.S. GOVERNMENT RESTRICTED RIGHTS LEGEND:
10 * Use, duplication or disclosure by the Government is subject to restrictions
11 * as set forth in FAR 52.227.19(c)(2) or subparagraph (c)(1)(ii) of the Rights
12 * in Technical Data and Computer Software clause at DFARS 252.227-7013 and/or
13 * in similar or successor clauses in the FAR, or the DOD or NASA FAR
14 * Supplement. Contractor/manufacturer is Silicon Graphics, Inc.,
15 * 2011 N. Shoreline Blvd. Mountain View, CA 94039-7311.
16 *
17 * THE CONTENT OF THIS WORK CONTAINS CONFIDENTIAL AND PROPRIETARY
18 * INFORMATION OF SILICON GRAPHICS, INC. ANY DUPLICATION, MODIFICATION,
19 * DISTRIBUTION, OR DISCLOSURE IN ANY FORM, IN WHOLE, OR IN PART, IS STRICTLY
20 * PROHIBITED WITHOUT THE PRIOR EXPRESS WRITTEN PERMISSION OF SILICON
21 * GRAPHICS, INC.
22**=======================================================================*/
23/*=======================================================================
24** Author : SGI (MMM YYYY)
25**=======================================================================*/
26/*=======================================================================
27 *** THE CONTENT OF THIS WORK IS PROPRIETARY TO FEI S.A.S, (FEI S.A.S.), ***
28 *** AND IS DISTRIBUTED UNDER A LICENSE AGREEMENT. ***
29 *** ***
30 *** REPRODUCTION, DISCLOSURE, OR USE, IN WHOLE OR IN PART, OTHER THAN AS ***
31 *** SPECIFIED IN THE LICENSE ARE NOT TO BE UNDERTAKEN EXCEPT WITH PRIOR ***
32 *** WRITTEN AUTHORIZATION OF FEI S.A.S. ***
33 *** ***
34 *** RESTRICTED RIGHTS LEGEND ***
35 *** USE, DUPLICATION, OR DISCLOSURE BY THE GOVERNMENT OF THE CONTENT OF THIS ***
36 *** WORK OR RELATED DOCUMENTATION IS SUBJECT TO RESTRICTIONS AS SET FORTH IN ***
37 *** SUBPARAGRAPH (C)(1) OF THE COMMERCIAL COMPUTER SOFTWARE RESTRICTED RIGHT ***
38 *** CLAUSE AT FAR 52.227-19 OR SUBPARAGRAPH (C)(1)(II) OF THE RIGHTS IN ***
39 *** TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 52.227-7013. ***
40 *** ***
41 *** COPYRIGHT (C) 1996-2014 BY FEI S.A.S, ***
42 *** BORDEAUX, FRANCE ***
43 *** ALL RIGHTS RESERVED ***
44**=======================================================================*/
45/*=======================================================================
46** Modified by : Nicolas DAGUISE (Oct 2004)
47**=======================================================================*/
48
49
50#ifndef _SO_ASCII_TEXT_
51#define _SO_ASCII_TEXT_
52
53#include <Inventor/fields/SoSFEnum.h>
54#include <Inventor/fields/SoSFFloat.h>
55#include <Inventor/fields/SoMFFloat.h>
56#include <Inventor/fields/SoMFString.h>
57#include <Inventor/fields/SoMFVec3f.h>
58#include <Inventor/fields/SoSFNode.h>
59#include <Inventor/nodes/SoShape.h>
60#include <Inventor/STL/map>
61
62class SoFontServer;
63class TextBBoxCache;
64class SbBox3f;
65class SoText3;
66
127class SoAsciiText : public SoShape {
128
129 SO_NODE_HEADER(SoAsciiText);
130
131 public:
132 enum Justification { // Justification types
136 LEFT = 0x01,
140 CENTER = 0x03,
144 RIGHT = 0x02,
148 INHERITED = 0x04
149 };
150
151 // Fields
157
165
175
182
187
188 private:
189
202 SbBox3f getCharacterBounds(SoState *state, int stringIndex, int charIndex);
203
204 virtual void GLRender(SoGLRenderAction *action);
205 virtual void rayPick(SoRayPickAction *action);
206 virtual void getPrimitiveCount(SoGetPrimitiveCountAction *action);
207
211 virtual void computeBBox(SoAction *action, SbBox3f &box, SbVec3f &center);
212
213 private:
214 static void initClass();
215 static void exitClass();
216
217 SoSFNode m_text3Rep;
218
219 virtual void notify( SoNotList* list );
220
221 private:
222
226 virtual void generatePrimitives(SoAction *);
227
231 virtual ~SoAsciiText();
232
238 virtual SbBool shouldGLRender(SoGLRenderAction *action, SbBool isPointsOrLines = FALSE);
239
240 private:
241
242 SbVec2f getStringOffset(SoState* state, int line, float& pAdd);
243};
244
245#endif // _SO_ASCII_TEXT_
246
247
248
249
3D box class.
Definition SbBox.h:649
2D vector class.
Definition SbVec.h:76
3D vector class.
Definition SbVec.h:932
Abstract base class for all actions.
Definition SoAction.h:132
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Simple 3D text s...
@ CENTER
Centers of all strings are aligned.
@ INHERITED
The text justification is inherited from the current SoTextProperty::alignmentH value.
@ LEFT
Left edges of all strings are aligned.
@ RIGHT
Right edges of all strings are aligned.
SoMFString string
The text string(s) to display.
SoMFFloat width
Defines the width of each text string.
SoSFEnum justification
Indicates placement and alignment of strings.
SoSFFloat spacing
Defines the distance (in the negative y direction) between the base points of successive strings,...
SoAsciiText()
Creates an ascii text node with default settings.
Renders a scene graph using Open Inventor's Render Engine.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Counts number of...
Multiple-value field containing any number of floating point values.
Definition SoMFFloat.h:90
Multiple-value field containing any number of strings.
Definition SoMFString.h:116
Intersects objects with a ray cast into scene.
Field containing an enumerated value.
Definition SoSFEnum.h:89
Field containing a floating-point value.
Definition SoSFFloat.h:78
Field containing a a node.
Definition SoSFNode.h:97
Abstract base class for all shape nodes.
Definition SoShape.h:116
Traversal state.
Definition SoState.h:74
3D text shape node.
Definition SoText3.h:204
int SbBool
Boolean type.
Definition SbBase.h:87