35 #define DEFAULTINCREMENT 100
50 static char*
StrDup(
const char *str);
71 Data=
new(mem) T[Allocated];
75 Data =
new T[Allocated];
99 if(newSize >= Allocated)
107 Data=
new(mem) T[Allocated];
111 Data=
new T[Allocated];
117 memcpy((
void*)Data, (
void*)temp, oldSize*
sizeof(T));
173 void*
operator new(
size_t n)
178 void operator delete(
void *)
188 # ************************************************** \n\
189 # * VRML 2.0 Parser \n\
190 # * Copyright (C) 1996 Silicon Graphics, Inc. \n\
192 # * Author(s) : Gavin Bell \n\
193 # * Daniel Woods (first port) \n\
194 # ************************************************** \n\
196 # Definitions for all of the nodes built-in to the spec. \n\
197 # Taken almost directly from the VRML 2.0 final spec: \n\
200 eventIn MFNode addChildren \n\
201 eventIn MFNode removeChildren \n\
202 exposedField MFNode children [] \n\
203 exposedField SFString description \"\" \n\
204 exposedField MFString parameter [] \n\
205 exposedField MFString url [] \n\
206 field SFVec3f bboxCenter 0.0 0.0 0.0 \n\
207 field SFVec3f bboxSize -1.0 -1.0 -1.0 \n\
210 PROTO Appearance [ \n\
211 exposedField SFNode material NULL \n\
212 exposedField SFNode texture NULL \n\
213 exposedField SFNode textureTransform NULL \n\
216 PROTO AudioClip [ \n\
217 exposedField SFString description \"\" \n\
218 exposedField SFBool loop FALSE \n\
219 exposedField SFFloat pitch 1.0 \n\
220 exposedField SFTime startTime 0 \n\
221 exposedField SFTime stopTime 0 \n\
222 exposedField MFString url [] \n\
223 eventOut SFTime duration_changed \n\
224 eventOut SFBool isActive \n\
227 PROTO Background [ \n\
228 eventIn SFBool set_bind \n\
229 exposedField MFFloat groundAngle [] \n\
230 exposedField MFColor groundColor [] \n\
231 exposedField MFString backUrl [] \n\
232 exposedField MFString bottomUrl [] \n\
233 exposedField MFString frontUrl [] \n\
234 exposedField MFString leftUrl [] \n\
235 exposedField MFString rightUrl [] \n\
236 exposedField MFString topUrl [] \n\
237 exposedField MFFloat skyAngle [] \n\
238 exposedField MFColor skyColor [ 0 0 0 ] \n\
239 eventOut SFBool isBound \n\
241 "PROTO Billboard [ \n\
242 eventIn MFNode addChildren \n\
243 eventIn MFNode removeChildren \n\
244 exposedField SFVec3f axisOfRotation 0 1 0 \n\
245 exposedField MFNode children [] \n\
246 field SFVec3f bboxCenter 0 0 0 \n\
247 field SFVec3f bboxSize -1 -1 -1 \n\
251 field SFVec3f size 2 2 2 \n\
254 PROTO Collision [ \n\
255 eventIn MFNode addChildren \n\
256 eventIn MFNode removeChildren \n\
257 exposedField MFNode children [] \n\
258 exposedField SFBool collide TRUE \n\
259 field SFVec3f bboxCenter 0 0 0 \n\
260 field SFVec3f bboxSize -1 -1 -1 \n\
261 field SFNode proxy NULL \n\
262 eventOut SFTime collideTime \n\
266 exposedField MFColor color [] \n\
269 PROTO ColorInterpolator [ \n\
270 eventIn SFFloat set_fraction \n\
271 exposedField MFFloat key [] \n\
272 exposedField MFColor keyValue [] \n\
273 eventOut SFColor value_changed \n\
277 field SFFloat bottomRadius 1 \n\
278 field SFFloat height 2 \n\
279 field SFBool side TRUE \n\
280 field SFBool bottom TRUE \n\
283 PROTO Coordinate [ \n\
284 exposedField MFVec3f point [] \n\
287 PROTO CoordinateInterpolator [ \n\
288 eventIn SFFloat set_fraction \n\
289 exposedField MFFloat key [] \n\
290 exposedField MFVec3f keyValue [] \n\
291 eventOut MFVec3f value_changed \n\
295 field SFBool bottom TRUE \n\
296 field SFFloat height 2 \n\
297 field SFFloat radius 1 \n\
298 field SFBool side TRUE \n\
299 field SFBool top TRUE \n\
302 PROTO CylinderSensor [ \n\
303 exposedField SFBool autoOffset TRUE \n\
304 exposedField SFFloat diskAngle 0.262 \n\
305 exposedField SFBool enabled TRUE \n\
306 exposedField SFFloat maxAngle -1 \n\
307 exposedField SFFloat minAngle 0 \n\
308 exposedField SFFloat offset 0 \n\
309 eventOut SFBool isActive \n\
310 eventOut SFRotation rotation_changed \n\
311 eventOut SFVec3f trackPoint_changed \n\
313 "PROTO DirectionalLight [ \n\
314 exposedField SFFloat ambientIntensity 0 \n\
315 exposedField SFColor color 1 1 1 \n\
316 exposedField SFVec3f direction 0 0 -1 \n\
317 exposedField SFFloat intensity 1 \n\
318 exposedField SFBool on TRUE \n\
321 PROTO ElevationGrid [ \n\
322 eventIn MFFloat set_height \n\
323 exposedField SFNode color NULL \n\
324 exposedField SFNode normal NULL \n\
325 exposedField SFNode texCoord NULL \n\
326 field SFBool ccw TRUE \n\
327 field SFBool colorPerVertex TRUE \n\
328 field SFFloat creaseAngle 0 \n\
329 field MFFloat height [] \n\
330 field SFBool normalPerVertex TRUE \n\
331 field SFBool solid TRUE \n\
332 field SFInt32 xDimension 0 \n\
333 field SFFloat xSpacing 0.0 \n\
334 field SFInt32 zDimension 0 \n\
335 field SFFloat zSpacing 0.0 \n\
339 PROTO Extrusion [ \n\
340 eventIn MFVec2f set_crossSection \n\
341 eventIn MFRotation set_orientation \n\
342 eventIn MFVec2f set_scale \n\
343 eventIn MFVec3f set_spine \n\
344 field SFBool beginCap TRUE \n\
345 field SFBool ccw TRUE \n\
346 field SFBool convex TRUE \n\
347 field SFFloat creaseAngle 0 \n\
348 field MFVec2f crossSection [ 1 1, 1 -1, -1 -1, -1 1, 1 1 ] \n\
349 field SFBool endCap TRUE \n\
350 field MFRotation orientation 0 0 1 0 \n\
351 field MFVec2f scale 1 1 \n\
352 field SFBool solid TRUE \n\
353 field MFVec3f spine [ 0 0 0, 0 1 0 ] \n\
357 exposedField SFColor color 1 1 1 \n\
358 exposedField SFString fogType \"LINEAR\" \n\
359 exposedField SFFloat visibilityRange 0 \n\
360 eventIn SFBool set_bind \n\
361 eventOut SFBool isBound \n\
363 "PROTO FontStyle [ \n\
364 field SFString family \"SERIF\" \n\
365 field SFBool horizontal TRUE \n\
366 field MFString justify \"BEGIN\" \n\
367 field SFString language \"\" \n\
368 field SFBool leftToRight TRUE \n\
369 field SFFloat size 1.0 \n\
370 field SFFloat spacing 1.0 \n\
371 field SFString style \"PLAIN\" \n\
372 field SFBool topToBottom TRUE \n\
376 eventIn MFNode addChildren \n\
377 eventIn MFNode removeChildren \n\
378 exposedField MFNode children [] \n\
379 field SFVec3f bboxCenter 0 0 0 \n\
380 field SFVec3f bboxSize -1 -1 -1 \n\
383 PROTO ImageTexture [ \n\
384 exposedField MFString url [] \n\
385 field SFBool repeatS TRUE \n\
386 field SFBool repeatT TRUE \n\
389 PROTO IndexedFaceSet [ \n\
390 eventIn MFInt32 set_colorIndex \n\
391 eventIn MFInt32 set_coordIndex \n\
392 eventIn MFInt32 set_normalIndex \n\
393 eventIn MFInt32 set_texCoordIndex \n\
394 exposedField SFNode color NULL \n\
395 exposedField SFNode coord NULL \n\
396 exposedField SFNode normal NULL \n\
397 exposedField SFNode texCoord NULL \n\
398 field SFBool ccw TRUE \n\
399 field MFInt32 colorIndex [] \n\
400 field SFBool colorPerVertex TRUE \n\
401 field SFBool convex TRUE \n\
402 field MFInt32 coordIndex [] \n\
403 field SFFloat creaseAngle 0 \n\
404 field MFInt32 normalIndex [] \n\
405 field SFBool normalPerVertex TRUE \n\
406 field SFBool solid TRUE \n\
407 field MFInt32 texCoordIndex [] \n\
410 PROTO IndexedLineSet [ \n\
411 eventIn MFInt32 set_colorIndex \n\
412 eventIn MFInt32 set_coordIndex \n\
413 exposedField SFNode color NULL \n\
414 exposedField SFNode coord NULL \n\
415 field MFInt32 colorIndex [] \n\
416 field SFBool colorPerVertex TRUE \n\
417 field MFInt32 coordIndex [] \n\
420 exposedField MFString url [] \n\
421 field SFVec3f bboxCenter 0 0 0 \n\
422 field SFVec3f bboxSize -1 -1 -1 \n\
425 exposedField MFNode level [] \n\
426 field SFVec3f center 0 0 0 \n\
427 field MFFloat range [] \n\
431 exposedField SFFloat ambientIntensity 0.2 \n\
432 exposedField SFColor diffuseColor 0.8 0.8 0.8 \n\
433 exposedField SFColor emissiveColor 0 0 0 \n\
434 exposedField SFFloat shininess 0.2 \n\
435 exposedField SFColor specularColor 0 0 0 \n\
436 exposedField SFFloat transparency 0 \n\
439 PROTO MovieTexture [ \n\
440 exposedField SFBool loop FALSE \n\
441 exposedField SFFloat speed 1 \n\
442 exposedField SFTime startTime 0 \n\
443 exposedField SFTime stopTime 0 \n\
444 exposedField MFString url [] \n\
445 field SFBool repeatS TRUE \n\
446 field SFBool repeatT TRUE \n\
447 eventOut SFFloat duration_changed \n\
448 eventOut SFBool isActive \n\
451 PROTO NavigationInfo [ \n\
452 eventIn SFBool set_bind \n\
453 exposedField MFFloat avatarSize [ 0.25, 1.6, 0.75 ] \n\
454 exposedField SFBool headlight TRUE \n\
455 exposedField SFFloat speed 1.0 \n\
456 exposedField MFString type \"WALK\" \n\
457 exposedField SFFloat visibilityLimit 0.0 \n\
458 eventOut SFBool isBound \n\
462 exposedField MFVec3f vector [] \n\
465 PROTO NormalInterpolator [ \n\
466 eventIn SFFloat set_fraction \n\
467 exposedField MFFloat key [] \n\
468 exposedField MFVec3f keyValue [] \n\
469 eventOut MFVec3f value_changed \n\
472 PROTO OrientationInterpolator [ \n\
473 eventIn SFFloat set_fraction \n\
474 exposedField MFFloat key [] \n\
475 exposedField MFRotation keyValue [] \n\
476 eventOut SFRotation value_changed \n\
479 PROTO PixelTexture [ \n\
480 exposedField SFImage image 0 0 0 \n\
481 field SFBool repeatS TRUE \n\
482 field SFBool repeatT TRUE \n\
484 "PROTO PlaneSensor [ \n\
485 exposedField SFBool autoOffset TRUE \n\
486 exposedField SFBool enabled TRUE \n\
487 exposedField SFVec2f maxPosition -1 -1 \n\
488 exposedField SFVec2f minPosition 0 0 \n\
489 exposedField SFVec3f offset 0 0 0 \n\
490 eventOut SFBool isActive \n\
491 eventOut SFVec3f trackPoint_changed \n\
492 eventOut SFVec3f translation_changed \n\
495 PROTO PointLight [ \n\
496 exposedField SFFloat ambientIntensity 0 \n\
497 exposedField SFVec3f attenuation 1 0 0 \n\
498 exposedField SFColor color 1 1 1 \n\
499 exposedField SFFloat intensity 1 \n\
500 exposedField SFVec3f location 0 0 0 \n\
501 exposedField SFBool on TRUE \n\
502 exposedField SFFloat radius 100 \n\
506 exposedField SFNode color NULL \n\
507 exposedField SFNode coord NULL \n\
510 PROTO PositionInterpolator [ \n\
511 eventIn SFFloat set_fraction \n\
512 exposedField MFFloat key [] \n\
513 exposedField MFVec3f keyValue [] \n\
514 eventOut SFVec3f value_changed \n\
517 PROTO ProximitySensor [ \n\
518 exposedField SFVec3f center 0 0 0 \n\
519 exposedField SFVec3f size 0 0 0 \n\
520 exposedField SFBool enabled TRUE \n\
521 eventOut SFBool isActive \n\
522 eventOut SFVec3f position_changed \n\
523 eventOut SFRotation orientation_changed \n\
524 eventOut SFTime enterTime \n\
525 eventOut SFTime exitTime \n\
527 "PROTO ScalarInterpolator [ \n\
528 eventIn SFFloat set_fraction \n\
529 exposedField MFFloat key [] \n\
530 exposedField MFFloat keyValue [] \n\
531 eventOut SFFloat value_changed \n\
535 exposedField MFString url [ ] \n\
536 field SFBool directOutput FALSE \n\
537 field SFBool mustEvaluate FALSE \n\
541 field SFNode appearance NULL \n\
542 field SFNode geometry NULL \n\
546 exposedField SFVec3f direction 0 0 1 \n\
547 exposedField SFFloat intensity 1 \n\
548 exposedField SFVec3f location 0 0 0 \n\
549 exposedField SFFloat maxBack 10 \n\
550 exposedField SFFloat maxFront 10 \n\
551 exposedField SFFloat minBack 1 \n\
552 exposedField SFFloat minFront 1 \n\
553 exposedField SFFloat priority 0 \n\
554 exposedField SFNode source NULL \n\
555 field SFBool spatialize TRUE \n\
559 field SFFloat radius 1 \n\
562 PROTO SphereSensor [ \n\
563 exposedField SFBool autoOffset TRUE \n\
564 exposedField SFBool enabled TRUE \n\
565 exposedField SFRotation offset 0 1 0 0 \n\
566 eventOut SFBool isActive \n\
567 eventOut SFRotation rotation_changed \n\
568 eventOut SFVec3f trackPoint_changed \n\
571 PROTO SpotLight [ \n\
572 exposedField SFFloat ambientIntensity 0 \n\
573 exposedField SFVec3f attenuation 1 0 0 \n\
574 exposedField SFFloat beamWidth 1.570796 \n\
575 exposedField SFColor color 1 1 1 \n\
576 exposedField SFFloat cutOffAngle 0.785398 \n\
577 exposedField SFVec3f direction 0 0 -1 \n\
578 exposedField SFFloat intensity 1 \n\
579 exposedField SFVec3f location 0 0 0 \n\
580 exposedField SFBool on TRUE \n\
581 exposedField SFFloat radius 100 \n\
585 exposedField MFNode choice [] \n\
586 exposedField SFInt32 whichChoice -1 \n\
590 exposedField MFString string [] \n\
591 field SFNode fontStyle NULL \n\
592 field MFFloat length [] \n\
593 field SFFloat maxExtent 0.0 \n\
595 "PROTO TextureCoordinate [ \n\
596 exposedField MFVec2f point [] \n\
598 PROTO TextureTransform [ \n\
599 exposedField SFVec2f center 0 0 \n\
600 exposedField SFFloat rotation 0 \n\
601 exposedField SFVec2f scale 1 1 \n\
602 exposedField SFVec2f translation 0 0 \n\
605 PROTO TimeSensor [ \n\
606 exposedField SFTime cycleInterval 1 \n\
607 exposedField SFBool enabled TRUE \n\
608 exposedField SFBool loop FALSE \n\
609 exposedField SFTime startTime 0 \n\
610 exposedField SFTime stopTime 0 \n\
611 eventOut SFTime cycleTime \n\
612 eventOut SFFloat fraction_changed \n\
613 eventOut SFBool isActive \n\
614 eventOut SFTime time \n\
617 PROTO TouchSensor [ \n\
618 exposedField SFBool enabled TRUE \n\
619 eventOut SFVec3f hitNormal_changed \n\
620 eventOut SFVec3f hitPoint_changed \n\
621 eventOut SFVec2f hitTexCoord_changed \n\
622 eventOut SFBool isActive \n\
623 eventOut SFBool isOver \n\
624 eventOut SFTime touchTime \n\
627 PROTO Transform [ \n\
628 eventIn MFNode addChildren \n\
629 eventIn MFNode removeChildren \n\
630 exposedField SFVec3f center 0 0 0 \n\
631 exposedField MFNode children [] \n\
632 exposedField SFRotation rotation 0 0 1 0 \n\
633 exposedField SFVec3f scale 1 1 1 \n\
634 exposedField SFRotation scaleOrientation 0 0 1 0 \n\
635 exposedField SFVec3f translation 0 0 0 \n\
636 field SFVec3f bboxCenter 0 0 0 \n\
637 field SFVec3f bboxSize -1 -1 -1 \n\
640 PROTO Viewpoint [ \n\
641 eventIn SFBool set_bind \n\
642 exposedField SFFloat fieldOfView 0.785398 \n\
643 exposedField SFBool jump TRUE \n\
644 exposedField SFRotation orientation 0 0 1 0 \n\
645 exposedField SFVec3f position 0 0 10 \n\
646 field SFString description \"\" \n\
647 eventOut SFTime bindTime \n\
648 eventOut SFBool isBound \n\
650 "PROTO VisibilitySensor [ \n\
651 exposedField SFVec3f center 0 0 0 \n\
652 exposedField SFBool enabled TRUE \n\
653 exposedField SFVec3f size 0 0 0 \n\
654 eventOut SFTime enterTime \n\
655 eventOut SFTime exitTime \n\
656 eventOut SFBool isActive \n\
659 PROTO WorldInfo [ \n\
660 field MFString info [] \n\
661 field SFString title \"\" \n\
static const char standardNodes[][2042]
vtkVRMLVectorType(int usenew)
static char * StrDup(const char *str)
static void * AllocateMemory(size_t n)
T & operator[](int index)
vtkVRMLVectorType< T > & operator+=(T datum)
void Reserve(int newSize)
replacement for malloc/free and new/delete
#define VTKIOIMPORT_EXPORT