VTK
vtkVRML.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkVRML.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
15 /* ======================================================================
16 
17  Importer based on BNF Yacc and Lex parser definition from:
18 
19  **************************************************
20  * VRML 2.0 Parser
21  * Copyright (C) 1996 Silicon Graphics, Inc.
22  *
23  * Author(s) : Gavin Bell
24  * Daniel Woods (first port)
25  **************************************************
26 
27  Ported to VTK By: Thomas D. Citriniti
28  Rensselaer Polytechnic Institute
29  citrit@rpi.edu
30 
31 =======================================================================*/
32 #ifndef _VTKVRML_H_
33 #define _VTKVRML_H_
34 
35 #define DEFAULTINCREMENT 100
36 
37 #include "vtkHeap.h"
38 
39 #include <new>
40 
41 // Use a user-managed heap to remove memory leaks
43 {
44  static void Initialize()
45  {
46  if (Heap == NULL)
47  {
48  Heap = vtkHeap::New();
49  }
50  }
51 
52  static void* AllocateMemory(size_t n)
53  {
54  return Heap->AllocateMemory(n);
55  }
56 
57  static void CleanUp()
58  {
59  if (Heap)
60  {
61  Heap->Delete();
62  Heap = NULL;
63  }
64  }
65 
66  static char* StrDup(const char *str)
67  {
68  return Heap->StringDup(str);
69  }
70 
71  static vtkHeap *Heap;
72 };
73 
74 template <class T>
76 {
77 public:
78  vtkVRMLVectorType(int usenew = 0) : UseNew(usenew)
79  {
80  this->Init();
81  }
82 
84  {
85  if (this->UseNew)
86  {
87  delete[] this->Data;
88  }
89  }
90 
91  void Init()
92  {
93  this->Allocated = DEFAULTINCREMENT;
94  if (!this->UseNew)
95  {
97  void* mem = vtkVRMLAllocator::AllocateMemory(this->Allocated * sizeof(T));
98  this->Data = new(mem) T[this->Allocated];
99  }
100  else
101  {
102  this->Data = new T[this->Allocated];
103  }
104  Used = 0;
105  }
106 
107  void Reserve(int newSize)
108  {
109  if (newSize >= this->Allocated)
110  {
111  int oldSize = this->Allocated;
112  this->Allocated = newSize + DEFAULTINCREMENT;
113  T* temp = this->Data;
114  if (!this->UseNew)
115  {
116  void* mem = vtkVRMLAllocator::AllocateMemory(this->Allocated * sizeof(T));
117  this->Data = new(mem) T[this->Allocated];
118  }
119  else
120  {
121  this->Data = new T[this->Allocated];
122  }
123  if (this->Data == (T*)'\0')
124  {
125  return;
126  }
127  memcpy((void*)this->Data, (void*)temp, oldSize * sizeof(T));
128  if (this->UseNew)
129  {
130  delete[] temp;
131  }
132  }
133  }
134 
135  void Demand(int newSize)
136  {
137  this->Reserve(newSize);
138  this->Used = newSize;
139  }
140 
141  int Count(void) const
142  {
143  return this->Used;
144  }
145 
146  T& Get(int index) const
147  {
148  return (index > this->Used) ?
149  this->Data[this->Used - 1] : this->Data[index];
150  }
151 
153  {
154  if (index > Used)
155  {
156  this->Demand(index);
157  }
158  return this->Data[index];
159  }
160 
161  operator T*() const
162  {
163  return this->Data;
164  }
165 
167  {
168  this->Reserve(this->Used + 1);
169  this->Data[this->Used] = datum;
170  this->Used++;
171  return *this;
172  }
173 
174  void Push(T datum)
175  {
176  this->Reserve(this->Used + 1);
177  this->Data[this->Used] = datum;
178  this->Used++;
179  }
180 
181  T& Pop()
182  {
183  this->Used--;
184  return this->Data[this->Used];
185  }
186 
187  T& Top()
188  {
189  return this->Data[this->Used - 1];
190  }
191 
192  void* operator new(size_t n)
193  {
195  }
196 
197  void operator delete(void *)
198  {
199  }
200 
201 protected:
202  T *Data;
203  int UseNew;
205  int Used;
206 };
207 
208 static const char standardNodes[][2042] = {
209  "#VRML V2.0 utf8 \n\
210 # \n\
211 # ************************************************** \n\
212 # * VRML 2.0 Parser \n\
213 # * Copyright (C) 1996 Silicon Graphics, Inc. \n\
214 # * \n\
215 # * Author(s) : Gavin Bell \n\
216 # * Daniel Woods (first port) \n\
217 # ************************************************** \n\
218 # \n\
219 # Definitions for all of the nodes built-in to the spec. \n\
220 # Taken almost directly from the VRML 2.0 final spec: \n\
221  \n\
222 PROTO Anchor [ \n\
223  eventIn MFNode addChildren \n\
224  eventIn MFNode removeChildren \n\
225  exposedField MFNode children [] \n\
226  exposedField SFString description \"\" \n\
227  exposedField MFString parameter [] \n\
228  exposedField MFString url [] \n\
229  field SFVec3f bboxCenter 0.0 0.0 0.0 \n\
230  field SFVec3f bboxSize -1.0 -1.0 -1.0 \n\
231 ] { } \n\
232  \n\
233 PROTO Appearance [ \n\
234  exposedField SFNode material NULL \n\
235  exposedField SFNode texture NULL \n\
236  exposedField SFNode textureTransform NULL \n\
237 ] { } \n\
238  \n\
239 PROTO AudioClip [ \n\
240  exposedField SFString description \"\" \n\
241  exposedField SFBool loop FALSE \n\
242  exposedField SFFloat pitch 1.0 \n\
243  exposedField SFTime startTime 0 \n\
244  exposedField SFTime stopTime 0 \n\
245  exposedField MFString url [] \n\
246  eventOut SFTime duration_changed \n\
247  eventOut SFBool isActive \n\
248 ] { } \n\
249  \n\
250 PROTO Background [ \n\
251  eventIn SFBool set_bind \n\
252  exposedField MFFloat groundAngle [] \n\
253  exposedField MFColor groundColor [] \n\
254  exposedField MFString backUrl [] \n\
255  exposedField MFString bottomUrl [] \n\
256  exposedField MFString frontUrl [] \n\
257  exposedField MFString leftUrl [] \n\
258  exposedField MFString rightUrl [] \n\
259  exposedField MFString topUrl [] \n\
260  exposedField MFFloat skyAngle [] \n\
261  exposedField MFColor skyColor [ 0 0 0 ] \n\
262  eventOut SFBool isBound \n\
263 ] { }",
264  "PROTO Billboard [ \n\
265  eventIn MFNode addChildren \n\
266  eventIn MFNode removeChildren \n\
267  exposedField SFVec3f axisOfRotation 0 1 0 \n\
268  exposedField MFNode children [] \n\
269  field SFVec3f bboxCenter 0 0 0 \n\
270  field SFVec3f bboxSize -1 -1 -1 \n\
271 ] { } \n\
272  \n\
273 PROTO Box [ \n\
274  field SFVec3f size 2 2 2 \n\
275 ] { } \n\
276  \n\
277 PROTO Collision [ \n\
278  eventIn MFNode addChildren \n\
279  eventIn MFNode removeChildren \n\
280  exposedField MFNode children [] \n\
281  exposedField SFBool collide TRUE \n\
282  field SFVec3f bboxCenter 0 0 0 \n\
283  field SFVec3f bboxSize -1 -1 -1 \n\
284  field SFNode proxy NULL \n\
285  eventOut SFTime collideTime \n\
286 ] { } \n\
287  \n\
288 PROTO Color [ \n\
289  exposedField MFColor color [] \n\
290 ] { } \n\
291  \n\
292 PROTO ColorInterpolator [ \n\
293  eventIn SFFloat set_fraction \n\
294  exposedField MFFloat key [] \n\
295  exposedField MFColor keyValue [] \n\
296  eventOut SFColor value_changed \n\
297 ] { } \n\
298  \n\
299 PROTO Cone [ \n\
300  field SFFloat bottomRadius 1 \n\
301  field SFFloat height 2 \n\
302  field SFBool side TRUE \n\
303  field SFBool bottom TRUE \n\
304 ] { } \n\
305  \n\
306 PROTO Coordinate [ \n\
307  exposedField MFVec3f point [] \n\
308 ] { } \n\
309  \n\
310 PROTO CoordinateInterpolator [ \n\
311  eventIn SFFloat set_fraction \n\
312  exposedField MFFloat key [] \n\
313  exposedField MFVec3f keyValue [] \n\
314  eventOut MFVec3f value_changed \n\
315 ] { } \n\
316  \n\
317 PROTO Cylinder [ \n\
318  field SFBool bottom TRUE \n\
319  field SFFloat height 2 \n\
320  field SFFloat radius 1 \n\
321  field SFBool side TRUE \n\
322  field SFBool top TRUE \n\
323 ] { } \n\
324  \n\
325 PROTO CylinderSensor [ \n\
326  exposedField SFBool autoOffset TRUE \n\
327  exposedField SFFloat diskAngle 0.262 \n\
328  exposedField SFBool enabled TRUE \n\
329  exposedField SFFloat maxAngle -1 \n\
330  exposedField SFFloat minAngle 0 \n\
331  exposedField SFFloat offset 0 \n\
332  eventOut SFBool isActive \n\
333  eventOut SFRotation rotation_changed \n\
334  eventOut SFVec3f trackPoint_changed \n\
335 ] { }",
336  "PROTO DirectionalLight [ \n\
337  exposedField SFFloat ambientIntensity 0 \n\
338  exposedField SFColor color 1 1 1 \n\
339  exposedField SFVec3f direction 0 0 -1 \n\
340  exposedField SFFloat intensity 1 \n\
341  exposedField SFBool on TRUE \n\
342 ] { } \n\
343  \n\
344 PROTO ElevationGrid [ \n\
345  eventIn MFFloat set_height \n\
346  exposedField SFNode color NULL \n\
347  exposedField SFNode normal NULL \n\
348  exposedField SFNode texCoord NULL \n\
349  field SFBool ccw TRUE \n\
350  field SFBool colorPerVertex TRUE \n\
351  field SFFloat creaseAngle 0 \n\
352  field MFFloat height [] \n\
353  field SFBool normalPerVertex TRUE \n\
354  field SFBool solid TRUE \n\
355  field SFInt32 xDimension 0 \n\
356  field SFFloat xSpacing 0.0 \n\
357  field SFInt32 zDimension 0 \n\
358  field SFFloat zSpacing 0.0 \n\
359  \n\
360 ] { } \n\
361  \n\
362 PROTO Extrusion [ \n\
363  eventIn MFVec2f set_crossSection \n\
364  eventIn MFRotation set_orientation \n\
365  eventIn MFVec2f set_scale \n\
366  eventIn MFVec3f set_spine \n\
367  field SFBool beginCap TRUE \n\
368  field SFBool ccw TRUE \n\
369  field SFBool convex TRUE \n\
370  field SFFloat creaseAngle 0 \n\
371  field MFVec2f crossSection [ 1 1, 1 -1, -1 -1, -1 1, 1 1 ] \n\
372  field SFBool endCap TRUE \n\
373  field MFRotation orientation 0 0 1 0 \n\
374  field MFVec2f scale 1 1 \n\
375  field SFBool solid TRUE \n\
376  field MFVec3f spine [ 0 0 0, 0 1 0 ] \n\
377 ] { } \n\
378  \n\
379 PROTO Fog [ \n\
380  exposedField SFColor color 1 1 1 \n\
381  exposedField SFString fogType \"LINEAR\" \n\
382  exposedField SFFloat visibilityRange 0 \n\
383  eventIn SFBool set_bind \n\
384  eventOut SFBool isBound \n\
385 ] { }",
386  "PROTO FontStyle [ \n\
387  field SFString family \"SERIF\" \n\
388  field SFBool horizontal TRUE \n\
389  field MFString justify \"BEGIN\" \n\
390  field SFString language \"\" \n\
391  field SFBool leftToRight TRUE \n\
392  field SFFloat size 1.0 \n\
393  field SFFloat spacing 1.0 \n\
394  field SFString style \"PLAIN\" \n\
395  field SFBool topToBottom TRUE \n\
396 ] { } \n\
397  \n\
398 PROTO Group [ \n\
399  eventIn MFNode addChildren \n\
400  eventIn MFNode removeChildren \n\
401  exposedField MFNode children [] \n\
402  field SFVec3f bboxCenter 0 0 0 \n\
403  field SFVec3f bboxSize -1 -1 -1 \n\
404 ] { } \n\
405  \n\
406 PROTO ImageTexture [ \n\
407  exposedField MFString url [] \n\
408  field SFBool repeatS TRUE \n\
409  field SFBool repeatT TRUE \n\
410 ] { } \n\
411  \n\
412 PROTO IndexedFaceSet [ \n\
413  eventIn MFInt32 set_colorIndex \n\
414  eventIn MFInt32 set_coordIndex \n\
415  eventIn MFInt32 set_normalIndex \n\
416  eventIn MFInt32 set_texCoordIndex \n\
417  exposedField SFNode color NULL \n\
418  exposedField SFNode coord NULL \n\
419  exposedField SFNode normal NULL \n\
420  exposedField SFNode texCoord NULL \n\
421  field SFBool ccw TRUE \n\
422  field MFInt32 colorIndex [] \n\
423  field SFBool colorPerVertex TRUE \n\
424  field SFBool convex TRUE \n\
425  field MFInt32 coordIndex [] \n\
426  field SFFloat creaseAngle 0 \n\
427  field MFInt32 normalIndex [] \n\
428  field SFBool normalPerVertex TRUE \n\
429  field SFBool solid TRUE \n\
430  field MFInt32 texCoordIndex [] \n\
431 ] { } \n\
432  \n\
433 PROTO IndexedLineSet [ \n\
434  eventIn MFInt32 set_colorIndex \n\
435  eventIn MFInt32 set_coordIndex \n\
436  exposedField SFNode color NULL \n\
437  exposedField SFNode coord NULL \n\
438  field MFInt32 colorIndex [] \n\
439  field SFBool colorPerVertex TRUE \n\
440  field MFInt32 coordIndex [] \n\
441 ] { }",
442  "PROTO Inline [ \n\
443  exposedField MFString url [] \n\
444  field SFVec3f bboxCenter 0 0 0 \n\
445  field SFVec3f bboxSize -1 -1 -1 \n\
446 ] { } \n\
447 PROTO LOD [ \n\
448  exposedField MFNode level [] \n\
449  field SFVec3f center 0 0 0 \n\
450  field MFFloat range [] \n\
451 ] { } \n\
452  \n\
453 PROTO Material [ \n\
454  exposedField SFFloat ambientIntensity 0.2 \n\
455  exposedField SFColor diffuseColor 0.8 0.8 0.8 \n\
456  exposedField SFColor emissiveColor 0 0 0 \n\
457  exposedField SFFloat shininess 0.2 \n\
458  exposedField SFColor specularColor 0 0 0 \n\
459  exposedField SFFloat transparency 0 \n\
460 ] { } \n\
461  \n\
462 PROTO MovieTexture [ \n\
463  exposedField SFBool loop FALSE \n\
464  exposedField SFFloat speed 1 \n\
465  exposedField SFTime startTime 0 \n\
466  exposedField SFTime stopTime 0 \n\
467  exposedField MFString url [] \n\
468  field SFBool repeatS TRUE \n\
469  field SFBool repeatT TRUE \n\
470  eventOut SFFloat duration_changed \n\
471  eventOut SFBool isActive \n\
472 ] { } \n\
473  \n\
474 PROTO NavigationInfo [ \n\
475  eventIn SFBool set_bind \n\
476  exposedField MFFloat avatarSize [ 0.25, 1.6, 0.75 ] \n\
477  exposedField SFBool headlight TRUE \n\
478  exposedField SFFloat speed 1.0 \n\
479  exposedField MFString type \"WALK\" \n\
480  exposedField SFFloat visibilityLimit 0.0 \n\
481  eventOut SFBool isBound \n\
482 ] { } \n\
483  \n\
484 PROTO Normal [ \n\
485  exposedField MFVec3f vector [] \n\
486 ] { } \n\
487  \n\
488 PROTO NormalInterpolator [ \n\
489  eventIn SFFloat set_fraction \n\
490  exposedField MFFloat key [] \n\
491  exposedField MFVec3f keyValue [] \n\
492  eventOut MFVec3f value_changed \n\
493 ] { } \n\
494  \n\
495 PROTO OrientationInterpolator [ \n\
496  eventIn SFFloat set_fraction \n\
497  exposedField MFFloat key [] \n\
498  exposedField MFRotation keyValue [] \n\
499  eventOut SFRotation value_changed \n\
500 ] { } \n\
501  \n\
502 PROTO PixelTexture [ \n\
503  exposedField SFImage image 0 0 0 \n\
504  field SFBool repeatS TRUE \n\
505  field SFBool repeatT TRUE \n\
506 ] { }",
507  "PROTO PlaneSensor [ \n\
508  exposedField SFBool autoOffset TRUE \n\
509  exposedField SFBool enabled TRUE \n\
510  exposedField SFVec2f maxPosition -1 -1 \n\
511  exposedField SFVec2f minPosition 0 0 \n\
512  exposedField SFVec3f offset 0 0 0 \n\
513  eventOut SFBool isActive \n\
514  eventOut SFVec3f trackPoint_changed \n\
515  eventOut SFVec3f translation_changed \n\
516 ] { } \n\
517  \n\
518 PROTO PointLight [ \n\
519  exposedField SFFloat ambientIntensity 0 \n\
520  exposedField SFVec3f attenuation 1 0 0 \n\
521  exposedField SFColor color 1 1 1 \n\
522  exposedField SFFloat intensity 1 \n\
523  exposedField SFVec3f location 0 0 0 \n\
524  exposedField SFBool on TRUE \n\
525  exposedField SFFloat radius 100 \n\
526 ] { } \n\
527  \n\
528 PROTO PointSet [ \n\
529  exposedField SFNode color NULL \n\
530  exposedField SFNode coord NULL \n\
531 ] { } \n\
532  \n\
533 PROTO PositionInterpolator [ \n\
534  eventIn SFFloat set_fraction \n\
535  exposedField MFFloat key [] \n\
536  exposedField MFVec3f keyValue [] \n\
537  eventOut SFVec3f value_changed \n\
538 ] { } \n\
539  \n\
540 PROTO ProximitySensor [ \n\
541  exposedField SFVec3f center 0 0 0 \n\
542  exposedField SFVec3f size 0 0 0 \n\
543  exposedField SFBool enabled TRUE \n\
544  eventOut SFBool isActive \n\
545  eventOut SFVec3f position_changed \n\
546  eventOut SFRotation orientation_changed \n\
547  eventOut SFTime enterTime \n\
548  eventOut SFTime exitTime \n\
549 ] { }",
550  "PROTO ScalarInterpolator [ \n\
551  eventIn SFFloat set_fraction \n\
552  exposedField MFFloat key [] \n\
553  exposedField MFFloat keyValue [] \n\
554  eventOut SFFloat value_changed \n\
555 ] { } \n\
556  \n\
557 PROTO Script [ \n\
558  exposedField MFString url [ ] \n\
559  field SFBool directOutput FALSE \n\
560  field SFBool mustEvaluate FALSE \n\
561 ] { } \n\
562  \n\
563 PROTO Shape [ \n\
564  field SFNode appearance NULL \n\
565  field SFNode geometry NULL \n\
566 ] { } \n\
567  \n\
568 PROTO Sound [ \n\
569  exposedField SFVec3f direction 0 0 1 \n\
570  exposedField SFFloat intensity 1 \n\
571  exposedField SFVec3f location 0 0 0 \n\
572  exposedField SFFloat maxBack 10 \n\
573  exposedField SFFloat maxFront 10 \n\
574  exposedField SFFloat minBack 1 \n\
575  exposedField SFFloat minFront 1 \n\
576  exposedField SFFloat priority 0 \n\
577  exposedField SFNode source NULL \n\
578  field SFBool spatialize TRUE \n\
579 ] { } \n\
580  \n\
581 PROTO Sphere [ \n\
582  field SFFloat radius 1 \n\
583 ] { } \n\
584  \n\
585 PROTO SphereSensor [ \n\
586  exposedField SFBool autoOffset TRUE \n\
587  exposedField SFBool enabled TRUE \n\
588  exposedField SFRotation offset 0 1 0 0 \n\
589  eventOut SFBool isActive \n\
590  eventOut SFRotation rotation_changed \n\
591  eventOut SFVec3f trackPoint_changed \n\
592 ] { } \n\
593  \n\
594 PROTO SpotLight [ \n\
595  exposedField SFFloat ambientIntensity 0 \n\
596  exposedField SFVec3f attenuation 1 0 0 \n\
597  exposedField SFFloat beamWidth 1.570796 \n\
598  exposedField SFColor color 1 1 1 \n\
599  exposedField SFFloat cutOffAngle 0.785398 \n\
600  exposedField SFVec3f direction 0 0 -1 \n\
601  exposedField SFFloat intensity 1 \n\
602  exposedField SFVec3f location 0 0 0 \n\
603  exposedField SFBool on TRUE \n\
604  exposedField SFFloat radius 100 \n\
605 ] { } \n\
606  \n\
607 PROTO Switch [ \n\
608  exposedField MFNode choice [] \n\
609  exposedField SFInt32 whichChoice -1 \n\
610 ] { } \n\
611  \n\
612 PROTO Text [ \n\
613  exposedField MFString string [] \n\
614  field SFNode fontStyle NULL \n\
615  field MFFloat length [] \n\
616  field SFFloat maxExtent 0.0 \n\
617 ] { }",
618  "PROTO TextureCoordinate [ \n\
619  exposedField MFVec2f point [] \n\
620 ] { } \n\
621 PROTO TextureTransform [ \n\
622  exposedField SFVec2f center 0 0 \n\
623  exposedField SFFloat rotation 0 \n\
624  exposedField SFVec2f scale 1 1 \n\
625  exposedField SFVec2f translation 0 0 \n\
626 ] { } \n\
627  \n\
628 PROTO TimeSensor [ \n\
629  exposedField SFTime cycleInterval 1 \n\
630  exposedField SFBool enabled TRUE \n\
631  exposedField SFBool loop FALSE \n\
632  exposedField SFTime startTime 0 \n\
633  exposedField SFTime stopTime 0 \n\
634  eventOut SFTime cycleTime \n\
635  eventOut SFFloat fraction_changed \n\
636  eventOut SFBool isActive \n\
637  eventOut SFTime time \n\
638 ] { } \n\
639  \n\
640 PROTO TouchSensor [ \n\
641  exposedField SFBool enabled TRUE \n\
642  eventOut SFVec3f hitNormal_changed \n\
643  eventOut SFVec3f hitPoint_changed \n\
644  eventOut SFVec2f hitTexCoord_changed \n\
645  eventOut SFBool isActive \n\
646  eventOut SFBool isOver \n\
647  eventOut SFTime touchTime \n\
648 ] { } \n\
649  \n\
650 PROTO Transform [ \n\
651  eventIn MFNode addChildren \n\
652  eventIn MFNode removeChildren \n\
653  exposedField SFVec3f center 0 0 0 \n\
654  exposedField MFNode children [] \n\
655  exposedField SFRotation rotation 0 0 1 0 \n\
656  exposedField SFVec3f scale 1 1 1 \n\
657  exposedField SFRotation scaleOrientation 0 0 1 0 \n\
658  exposedField SFVec3f translation 0 0 0 \n\
659  field SFVec3f bboxCenter 0 0 0 \n\
660  field SFVec3f bboxSize -1 -1 -1 \n\
661 ] { } \n\
662  \n\
663 PROTO Viewpoint [ \n\
664  eventIn SFBool set_bind \n\
665  exposedField SFFloat fieldOfView 0.785398 \n\
666  exposedField SFBool jump TRUE \n\
667  exposedField SFRotation orientation 0 0 1 0 \n\
668  exposedField SFVec3f position 0 0 10 \n\
669  field SFString description \"\" \n\
670  eventOut SFTime bindTime \n\
671  eventOut SFBool isBound \n\
672 ] { }",
673  "PROTO VisibilitySensor [ \n\
674  exposedField SFVec3f center 0 0 0 \n\
675  exposedField SFBool enabled TRUE \n\
676  exposedField SFVec3f size 0 0 0 \n\
677  eventOut SFTime enterTime \n\
678  eventOut SFTime exitTime \n\
679  eventOut SFBool isActive \n\
680 ] { } \n\
681  \n\
682 PROTO WorldInfo [ \n\
683  field MFString info [] \n\
684  field SFString title \"\" \n\
685 ] { }",""
686 };
687 
688 #endif
689 // VTK-HeaderTest-Exclude: vtkVRML.h
static const char standardNodes[][2042]
Definition: vtkVRML.h:208
GLuint index
Definition: vtkgl.h:11983
#define DEFAULTINCREMENT
Definition: vtkVRML.h:35
static vtkHeap * New()
static char * StrDup(const char *str)
Definition: vtkVRML.h:66
char * StringDup(const char *str)
void * AllocateMemory(size_t n)
static void * AllocateMemory(size_t n)
Definition: vtkVRML.h:52
int Count(void) const
Definition: vtkVRML.h:141
T & operator[](int index)
Definition: vtkVRML.h:152
static void CleanUp()
Definition: vtkVRML.h:57
vtkVRMLVectorType< T > & operator+=(T datum)
Definition: vtkVRML.h:166
void Reserve(int newSize)
Definition: vtkVRML.h:107
void Push(T datum)
Definition: vtkVRML.h:174
static void Initialize()
Definition: vtkVRML.h:44
replacement for malloc/free and new/delete
Definition: vtkHeap.h:52
static vtkHeap * Heap
Definition: vtkVRML.h:71
GLclampd n
Definition: vtkgl.h:14370
~vtkVRMLVectorType(void)
Definition: vtkVRML.h:83
vtkVRMLVectorType(int usenew=0)
Definition: vtkVRML.h:78
void Demand(int newSize)
Definition: vtkVRML.h:135
T & Get(int index) const
Definition: vtkVRML.h:146
virtual void Delete()