00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
#ifndef _VTKVRML_H_
00034
#define _VTKVRML_H_
00035
00036 #define DEFAULTINCREMENT 100
00037
00038
#include "vtkHeap.h"
00039
00040
#ifdef VTK_USE_ANSI_STDLIB
00041
#include <new>
00042
#else
00043
#include <new.h>
00044
#endif
00045
00046
#if defined(__BORLANDC__) && (__BORLANDC__<0x0560)
00047
00048
void* operator new[](
unsigned int,
void *v)
00049 {
00050
return v;
00051 }
00052
#endif
00053
00054
00055
00056
00057 struct vtkVRMLAllocator
00058 {
00059
static void Initialize();
00060
static void *
AllocateMemory(size_t n);
00061
static void CleanUp();
00062
static char*
StrDup(
const char *str);
00063 static vtkHeap *
Heap;
00064 };
00065
00066
00067
00068
template <
class T>
00069 class VTK_HYBRID_EXPORT vtkVRMLVectorType
00070 {
00071
protected:
00072 T *Data;
00073 int Allocated;
00074 int Used;
00075
public:
00076 void Init()
00077 {
00078 Allocated=
DEFAULTINCREMENT;
00079
if (!this->UseNew)
00080 {
00081
vtkVRMLAllocator::Initialize();
00082
void* mem =
vtkVRMLAllocator::AllocateMemory(Allocated*
sizeof(T));
00083 Data=
new(mem) T[Allocated];
00084 }
00085
else
00086 {
00087 Data =
new T[Allocated];
00088 }
00089 Used=0;
00090 }
00091 vtkVRMLVectorType()
00092 {
00093 this->UseNew = 0;
00094 this->Init();
00095 }
00096 vtkVRMLVectorType(
int usenew) : UseNew(usenew)
00097 {
00098 this->Init();
00099 }
00100 ~vtkVRMLVectorType(
void)
00101 {
00102
if (this->UseNew)
00103 {
00104
delete[] Data;
00105 }
00106 }
00107 void Reserve(
int newSize)
00108 {
00109 T *temp;
00110
int oldSize;
00111
if(newSize >= Allocated)
00112 {
00113 oldSize=Allocated;
00114 Allocated=newSize+
DEFAULTINCREMENT;
00115 temp=Data;
00116
if (!this->UseNew)
00117 {
00118
void* mem =
vtkVRMLAllocator::AllocateMemory(Allocated*
sizeof(T));
00119 Data=
new(mem) T[Allocated];
00120 }
00121
else
00122 {
00123 Data=
new T[Allocated];
00124 }
00125
if(Data==(T *)
'\0')
00126 {
00127
return;
00128 }
00129 memcpy((
void*)Data, (
void*)temp, oldSize*
sizeof(T));
00130
if (this->UseNew)
00131 {
00132
delete[] temp;
00133 }
00134 }
00135 }
00136
00137 void Demand(
int newSize)
00138 {
00139 Reserve(newSize);
00140 Used=newSize;
00141 }
00142 int Count(
void)
const
00143
{
00144
return Used;
00145 }
00146 T& Get(
int index)
const
00147
{
00148
if (index > Used)
00149
return Data[Used-1];
00150
return Data[index];
00151 }
00152 T& operator[](
int index)
00153 {
00154
if (index > Used)
00155 Demand(index);
00156
return Data[index];
00157 }
00158 operator T*()
const
00159
{
00160
return Data;
00161 }
00162 vtkVRMLVectorType<T>& operator+=(T datum)
00163 {
00164 Reserve(Used+1);
00165 Data[Used]=datum;
00166 Used++;
00167
return *
this;
00168 }
00169 void Push(T datum)
00170 {
00171 Reserve(Used+1);
00172 Data[Used]=datum;
00173 Used++;
00174 }
00175 T& Pop()
00176 {
00177 Used--;
00178
return Data[Used];
00179 }
00180 T& Top()
00181 {
00182
return Data[Used-1];
00183 }
00184
00185 void* operator new(size_t n)
00186 {
00187
return vtkVRMLAllocator::AllocateMemory(n);
00188 }
00189
00190 void operator delete(
void *)
00191 {
00192 }
00193
00194 int UseNew;
00195 };
00196
00197 static const char standardNodes[][2042] = {
00198
"#VRML V2.0 utf8 \n\
00199
# \n\
00200
# ************************************************** \n\
00201
# * VRML 2.0 Parser \n\
00202
# * Copyright (C) 1996 Silicon Graphics, Inc. \n\
00203
# * \n\
00204
# * Author(s) : Gavin Bell \n\
00205
# * Daniel Woods (first port) \n\
00206
# ************************************************** \n\
00207
# \n\
00208
# Definitions for all of the nodes built-in to the spec. \n\
00209
# Taken almost directly from the VRML 2.0 final spec: \n\
00210
\n\
00211
PROTO Anchor [ \n\
00212
eventIn MFNode addChildren \n\
00213
eventIn MFNode removeChildren \n\
00214
exposedField MFNode children [] \n\
00215
exposedField SFString description \"\" \n\
00216
exposedField MFString parameter [] \n\
00217
exposedField MFString url [] \n\
00218
field SFVec3f bboxCenter 0.0 0.0 0.0 \n\
00219
field SFVec3f bboxSize -1.0 -1.0 -1.0 \n\
00220
] { } \n\
00221
\n\
00222
PROTO Appearance [ \n\
00223
exposedField SFNode material NULL \n\
00224
exposedField SFNode texture NULL \n\
00225
exposedField SFNode textureTransform NULL \n\
00226
] { } \n\
00227
\n\
00228
PROTO AudioClip [ \n\
00229
exposedField SFString description \"\" \n\
00230
exposedField SFBool loop FALSE \n\
00231
exposedField SFFloat pitch 1.0 \n\
00232
exposedField SFTime startTime 0 \n\
00233
exposedField SFTime stopTime 0 \n\
00234
exposedField MFString url [] \n\
00235
eventOut SFTime duration_changed \n\
00236
eventOut SFBool isActive \n\
00237
] { } \n\
00238
\n\
00239
PROTO Background [ \n\
00240
eventIn SFBool set_bind \n\
00241
exposedField MFFloat groundAngle [] \n\
00242
exposedField MFColor groundColor [] \n\
00243
exposedField MFString backUrl [] \n\
00244
exposedField MFString bottomUrl [] \n\
00245
exposedField MFString frontUrl [] \n\
00246
exposedField MFString leftUrl [] \n\
00247
exposedField MFString rightUrl [] \n\
00248
exposedField MFString topUrl [] \n\
00249
exposedField MFFloat skyAngle [] \n\
00250
exposedField MFColor skyColor [ 0 0 0 ] \n\
00251
eventOut SFBool isBound \n\
00252
] { }",
00253
"PROTO Billboard [ \n\
00254
eventIn MFNode addChildren \n\
00255
eventIn MFNode removeChildren \n\
00256
exposedField SFVec3f axisOfRotation 0 1 0 \n\
00257
exposedField MFNode children [] \n\
00258
field SFVec3f bboxCenter 0 0 0 \n\
00259
field SFVec3f bboxSize -1 -1 -1 \n\
00260
] { } \n\
00261
\n\
00262
PROTO Box [ \n\
00263
field SFVec3f size 2 2 2 \n\
00264
] { } \n\
00265
\n\
00266
PROTO Collision [ \n\
00267
eventIn MFNode addChildren \n\
00268
eventIn MFNode removeChildren \n\
00269
exposedField MFNode children [] \n\
00270
exposedField SFBool collide TRUE \n\
00271
field SFVec3f bboxCenter 0 0 0 \n\
00272
field SFVec3f bboxSize -1 -1 -1 \n\
00273
field SFNode proxy NULL \n\
00274
eventOut SFTime collideTime \n\
00275
] { } \n\
00276
\n\
00277
PROTO Color [ \n\
00278
exposedField MFColor color [] \n\
00279
] { } \n\
00280
\n\
00281
PROTO ColorInterpolator [ \n\
00282
eventIn SFFloat set_fraction \n\
00283
exposedField MFFloat key [] \n\
00284
exposedField MFColor keyValue [] \n\
00285
eventOut SFColor value_changed \n\
00286
] { } \n\
00287
\n\
00288
PROTO Cone [ \n\
00289
field SFFloat bottomRadius 1 \n\
00290
field SFFloat height 2 \n\
00291
field SFBool side TRUE \n\
00292
field SFBool bottom TRUE \n\
00293
] { } \n\
00294
\n\
00295
PROTO Coordinate [ \n\
00296
exposedField MFVec3f point [] \n\
00297
] { } \n\
00298
\n\
00299
PROTO CoordinateInterpolator [ \n\
00300
eventIn SFFloat set_fraction \n\
00301
exposedField MFFloat key [] \n\
00302
exposedField MFVec3f keyValue [] \n\
00303
eventOut MFVec3f value_changed \n\
00304
] { } \n\
00305
\n\
00306
PROTO Cylinder [ \n\
00307
field SFBool bottom TRUE \n\
00308
field SFFloat height 2 \n\
00309
field SFFloat radius 1 \n\
00310
field SFBool side TRUE \n\
00311
field SFBool top TRUE \n\
00312
] { } \n\
00313
\n\
00314
PROTO CylinderSensor [ \n\
00315
exposedField SFBool autoOffset TRUE \n\
00316
exposedField SFFloat diskAngle 0.262 \n\
00317
exposedField SFBool enabled TRUE \n\
00318
exposedField SFFloat maxAngle -1 \n\
00319
exposedField SFFloat minAngle 0 \n\
00320
exposedField SFFloat offset 0 \n\
00321
eventOut SFBool isActive \n\
00322
eventOut SFRotation rotation_changed \n\
00323
eventOut SFVec3f trackPoint_changed \n\
00324
] { }",
00325
"PROTO DirectionalLight [ \n\
00326
exposedField SFFloat ambientIntensity 0 \n\
00327
exposedField SFColor color 1 1 1 \n\
00328
exposedField SFVec3f direction 0 0 -1 \n\
00329
exposedField SFFloat intensity 1 \n\
00330
exposedField SFBool on TRUE \n\
00331
] { } \n\
00332
\n\
00333
PROTO ElevationGrid [ \n\
00334
eventIn MFFloat set_height \n\
00335
exposedField SFNode color NULL \n\
00336
exposedField SFNode normal NULL \n\
00337
exposedField SFNode texCoord NULL \n\
00338
field SFBool ccw TRUE \n\
00339
field SFBool colorPerVertex TRUE \n\
00340
field SFFloat creaseAngle 0 \n\
00341
field MFFloat height [] \n\
00342
field SFBool normalPerVertex TRUE \n\
00343
field SFBool solid TRUE \n\
00344
field SFInt32 xDimension 0 \n\
00345
field SFFloat xSpacing 0.0 \n\
00346
field SFInt32 zDimension 0 \n\
00347
field SFFloat zSpacing 0.0 \n\
00348
\n\
00349
] { } \n\
00350
\n\
00351
PROTO Extrusion [ \n\
00352
eventIn MFVec2f set_crossSection \n\
00353
eventIn MFRotation set_orientation \n\
00354
eventIn MFVec2f set_scale \n\
00355
eventIn MFVec3f set_spine \n\
00356
field SFBool beginCap TRUE \n\
00357
field SFBool ccw TRUE \n\
00358
field SFBool convex TRUE \n\
00359
field SFFloat creaseAngle 0 \n\
00360
field MFVec2f crossSection [ 1 1, 1 -1, -1 -1, -1 1, 1 1 ] \n\
00361
field SFBool endCap TRUE \n\
00362
field MFRotation orientation 0 0 1 0 \n\
00363
field MFVec2f scale 1 1 \n\
00364
field SFBool solid TRUE \n\
00365
field MFVec3f spine [ 0 0 0, 0 1 0 ] \n\
00366
] { } \n\
00367
\n\
00368
PROTO Fog [ \n\
00369
exposedField SFColor color 1 1 1 \n\
00370
exposedField SFString fogType \"LINEAR\" \n\
00371
exposedField SFFloat visibilityRange 0 \n\
00372
eventIn SFBool set_bind \n\
00373
eventOut SFBool isBound \n\
00374
] { }",
00375
"PROTO FontStyle [ \n\
00376
field SFString family \"SERIF\" \n\
00377
field SFBool horizontal TRUE \n\
00378
field MFString justify \"BEGIN\" \n\
00379
field SFString language \"\" \n\
00380
field SFBool leftToRight TRUE \n\
00381
field SFFloat size 1.0 \n\
00382
field SFFloat spacing 1.0 \n\
00383
field SFString style \"PLAIN\" \n\
00384
field SFBool topToBottom TRUE \n\
00385
] { } \n\
00386
\n\
00387
PROTO Group [ \n\
00388
eventIn MFNode addChildren \n\
00389
eventIn MFNode removeChildren \n\
00390
exposedField MFNode children [] \n\
00391
field SFVec3f bboxCenter 0 0 0 \n\
00392
field SFVec3f bboxSize -1 -1 -1 \n\
00393
] { } \n\
00394
\n\
00395
PROTO ImageTexture [ \n\
00396
exposedField MFString url [] \n\
00397
field SFBool repeatS TRUE \n\
00398
field SFBool repeatT TRUE \n\
00399
] { } \n\
00400
\n\
00401
PROTO IndexedFaceSet [ \n\
00402
eventIn MFInt32 set_colorIndex \n\
00403
eventIn MFInt32 set_coordIndex \n\
00404
eventIn MFInt32 set_normalIndex \n\
00405
eventIn MFInt32 set_texCoordIndex \n\
00406
exposedField SFNode color NULL \n\
00407
exposedField SFNode coord NULL \n\
00408
exposedField SFNode normal NULL \n\
00409
exposedField SFNode texCoord NULL \n\
00410
field SFBool ccw TRUE \n\
00411
field MFInt32 colorIndex [] \n\
00412
field SFBool colorPerVertex TRUE \n\
00413
field SFBool convex TRUE \n\
00414
field MFInt32 coordIndex [] \n\
00415
field SFFloat creaseAngle 0 \n\
00416
field MFInt32 normalIndex [] \n\
00417
field SFBool normalPerVertex TRUE \n\
00418
field SFBool solid TRUE \n\
00419
field MFInt32 texCoordIndex [] \n\
00420
] { } \n\
00421
\n\
00422
PROTO IndexedLineSet [ \n\
00423
eventIn MFInt32 set_colorIndex \n\
00424
eventIn MFInt32 set_coordIndex \n\
00425
exposedField SFNode color NULL \n\
00426
exposedField SFNode coord NULL \n\
00427
field MFInt32 colorIndex [] \n\
00428
field SFBool colorPerVertex TRUE \n\
00429
field MFInt32 coordIndex [] \n\
00430
] { }",
00431
"PROTO Inline [ \n\
00432
exposedField MFString url [] \n\
00433
field SFVec3f bboxCenter 0 0 0 \n\
00434
field SFVec3f bboxSize -1 -1 -1 \n\
00435
] { } \n\
00436
PROTO LOD [ \n\
00437
exposedField MFNode level [] \n\
00438
field SFVec3f center 0 0 0 \n\
00439
field MFFloat range [] \n\
00440
] { } \n\
00441
\n\
00442
PROTO Material [ \n\
00443
exposedField SFFloat ambientIntensity 0.2 \n\
00444
exposedField SFColor diffuseColor 0.8 0.8 0.8 \n\
00445
exposedField SFColor emissiveColor 0 0 0 \n\
00446
exposedField SFFloat shininess 0.2 \n\
00447
exposedField SFColor specularColor 0 0 0 \n\
00448
exposedField SFFloat transparency 0 \n\
00449
] { } \n\
00450
\n\
00451
PROTO MovieTexture [ \n\
00452
exposedField SFBool loop FALSE \n\
00453
exposedField SFFloat speed 1 \n\
00454
exposedField SFTime startTime 0 \n\
00455
exposedField SFTime stopTime 0 \n\
00456
exposedField MFString url [] \n\
00457
field SFBool repeatS TRUE \n\
00458
field SFBool repeatT TRUE \n\
00459
eventOut SFFloat duration_changed \n\
00460
eventOut SFBool isActive \n\
00461
] { } \n\
00462
\n\
00463
PROTO NavigationInfo [ \n\
00464
eventIn SFBool set_bind \n\
00465
exposedField MFFloat avatarSize [ 0.25, 1.6, 0.75 ] \n\
00466
exposedField SFBool headlight TRUE \n\
00467
exposedField SFFloat speed 1.0 \n\
00468
exposedField MFString type \"WALK\" \n\
00469
exposedField SFFloat visibilityLimit 0.0 \n\
00470
eventOut SFBool isBound \n\
00471
] { } \n\
00472
\n\
00473
PROTO Normal [ \n\
00474
exposedField MFVec3f vector [] \n\
00475
] { } \n\
00476
\n\
00477
PROTO NormalInterpolator [ \n\
00478
eventIn SFFloat set_fraction \n\
00479
exposedField MFFloat key [] \n\
00480
exposedField MFVec3f keyValue [] \n\
00481
eventOut MFVec3f value_changed \n\
00482
] { } \n\
00483
\n\
00484
PROTO OrientationInterpolator [ \n\
00485
eventIn SFFloat set_fraction \n\
00486
exposedField MFFloat key [] \n\
00487
exposedField MFRotation keyValue [] \n\
00488
eventOut SFRotation value_changed \n\
00489
] { } \n\
00490
\n\
00491
PROTO PixelTexture [ \n\
00492
exposedField SFImage image 0 0 0 \n\
00493
field SFBool repeatS TRUE \n\
00494
field SFBool repeatT TRUE \n\
00495
] { }",
00496
"PROTO PlaneSensor [ \n\
00497
exposedField SFBool autoOffset TRUE \n\
00498
exposedField SFBool enabled TRUE \n\
00499
exposedField SFVec2f maxPosition -1 -1 \n\
00500
exposedField SFVec2f minPosition 0 0 \n\
00501
exposedField SFVec3f offset 0 0 0 \n\
00502
eventOut SFBool isActive \n\
00503
eventOut SFVec3f trackPoint_changed \n\
00504
eventOut SFVec3f translation_changed \n\
00505
] { } \n\
00506
\n\
00507
PROTO PointLight [ \n\
00508
exposedField SFFloat ambientIntensity 0 \n\
00509
exposedField SFVec3f attenuation 1 0 0 \n\
00510
exposedField SFColor color 1 1 1 \n\
00511
exposedField SFFloat intensity 1 \n\
00512
exposedField SFVec3f location 0 0 0 \n\
00513
exposedField SFBool on TRUE \n\
00514
exposedField SFFloat radius 100 \n\
00515
] { } \n\
00516
\n\
00517
PROTO PointSet [ \n\
00518
exposedField SFNode color NULL \n\
00519
exposedField SFNode coord NULL \n\
00520
] { } \n\
00521
\n\
00522
PROTO PositionInterpolator [ \n\
00523
eventIn SFFloat set_fraction \n\
00524
exposedField MFFloat key [] \n\
00525
exposedField MFVec3f keyValue [] \n\
00526
eventOut SFVec3f value_changed \n\
00527
] { } \n\
00528
\n\
00529
PROTO ProximitySensor [ \n\
00530
exposedField SFVec3f center 0 0 0 \n\
00531
exposedField SFVec3f size 0 0 0 \n\
00532
exposedField SFBool enabled TRUE \n\
00533
eventOut SFBool isActive \n\
00534
eventOut SFVec3f position_changed \n\
00535
eventOut SFRotation orientation_changed \n\
00536
eventOut SFTime enterTime \n\
00537
eventOut SFTime exitTime \n\
00538
] { }",
00539
"PROTO ScalarInterpolator [ \n\
00540
eventIn SFFloat set_fraction \n\
00541
exposedField MFFloat key [] \n\
00542
exposedField MFFloat keyValue [] \n\
00543
eventOut SFFloat value_changed \n\
00544
] { } \n\
00545
\n\
00546
PROTO Script [ \n\
00547
exposedField MFString url [ ] \n\
00548
field SFBool directOutput FALSE \n\
00549
field SFBool mustEvaluate FALSE \n\
00550
] { } \n\
00551
\n\
00552
PROTO Shape [ \n\
00553
field SFNode appearance NULL \n\
00554
field SFNode geometry NULL \n\
00555
] { } \n\
00556
\n\
00557
PROTO Sound [ \n\
00558
exposedField SFVec3f direction 0 0 1 \n\
00559
exposedField SFFloat intensity 1 \n\
00560
exposedField SFVec3f location 0 0 0 \n\
00561
exposedField SFFloat maxBack 10 \n\
00562
exposedField SFFloat maxFront 10 \n\
00563
exposedField SFFloat minBack 1 \n\
00564
exposedField SFFloat minFront 1 \n\
00565
exposedField SFFloat priority 0 \n\
00566
exposedField SFNode source NULL \n\
00567
field SFBool spatialize TRUE \n\
00568
] { } \n\
00569
\n\
00570
PROTO Sphere [ \n\
00571
field SFFloat radius 1 \n\
00572
] { } \n\
00573
\n\
00574
PROTO SphereSensor [ \n\
00575
exposedField SFBool autoOffset TRUE \n\
00576
exposedField SFBool enabled TRUE \n\
00577
exposedField SFRotation offset 0 1 0 0 \n\
00578
eventOut SFBool isActive \n\
00579
eventOut SFRotation rotation_changed \n\
00580
eventOut SFVec3f trackPoint_changed \n\
00581
] { } \n\
00582
\n\
00583
PROTO SpotLight [ \n\
00584
exposedField SFFloat ambientIntensity 0 \n\
00585
exposedField SFVec3f attenuation 1 0 0 \n\
00586
exposedField SFFloat beamWidth 1.570796 \n\
00587
exposedField SFColor color 1 1 1 \n\
00588
exposedField SFFloat cutOffAngle 0.785398 \n\
00589
exposedField SFVec3f direction 0 0 -1 \n\
00590
exposedField SFFloat intensity 1 \n\
00591
exposedField SFVec3f location 0 0 0 \n\
00592
exposedField SFBool on TRUE \n\
00593
exposedField SFFloat radius 100 \n\
00594
] { } \n\
00595
\n\
00596
PROTO Switch [ \n\
00597
exposedField MFNode choice [] \n\
00598
exposedField SFInt32 whichChoice -1 \n\
00599
] { } \n\
00600
\n\
00601
PROTO Text [ \n\
00602
exposedField MFString string [] \n\
00603
field SFNode fontStyle NULL \n\
00604
field MFFloat length [] \n\
00605
field SFFloat maxExtent 0.0 \n\
00606
] { }",
00607
"PROTO TextureCoordinate [ \n\
00608
exposedField MFVec2f point [] \n\
00609
] { } \n\
00610
PROTO TextureTransform [ \n\
00611
exposedField SFVec2f center 0 0 \n\
00612
exposedField SFFloat rotation 0 \n\
00613
exposedField SFVec2f scale 1 1 \n\
00614
exposedField SFVec2f translation 0 0 \n\
00615
] { } \n\
00616
\n\
00617
PROTO TimeSensor [ \n\
00618
exposedField SFTime cycleInterval 1 \n\
00619
exposedField SFBool enabled TRUE \n\
00620
exposedField SFBool loop FALSE \n\
00621
exposedField SFTime startTime 0 \n\
00622
exposedField SFTime stopTime 0 \n\
00623
eventOut SFTime cycleTime \n\
00624
eventOut SFFloat fraction_changed \n\
00625
eventOut SFBool isActive \n\
00626
eventOut SFTime time \n\
00627
] { } \n\
00628
\n\
00629
PROTO TouchSensor [ \n\
00630
exposedField SFBool enabled TRUE \n\
00631
eventOut SFVec3f hitNormal_changed \n\
00632
eventOut SFVec3f hitPoint_changed \n\
00633
eventOut SFVec2f hitTexCoord_changed \n\
00634
eventOut SFBool isActive \n\
00635
eventOut SFBool isOver \n\
00636
eventOut SFTime touchTime \n\
00637
] { } \n\
00638
\n\
00639
PROTO Transform [ \n\
00640
eventIn MFNode addChildren \n\
00641
eventIn MFNode removeChildren \n\
00642
exposedField SFVec3f center 0 0 0 \n\
00643
exposedField MFNode children [] \n\
00644
exposedField SFRotation rotation 0 0 1 0 \n\
00645
exposedField SFVec3f scale 1 1 1 \n\
00646
exposedField SFRotation scaleOrientation 0 0 1 0 \n\
00647
exposedField SFVec3f translation 0 0 0 \n\
00648
field SFVec3f bboxCenter 0 0 0 \n\
00649
field SFVec3f bboxSize -1 -1 -1 \n\
00650
] { } \n\
00651
\n\
00652
PROTO Viewpoint [ \n\
00653
eventIn SFBool set_bind \n\
00654
exposedField SFFloat fieldOfView 0.785398 \n\
00655
exposedField SFBool jump TRUE \n\
00656
exposedField SFRotation orientation 0 0 1 0 \n\
00657
exposedField SFVec3f position 0 0 10 \n\
00658
field SFString description \"\" \n\
00659
eventOut SFTime bindTime \n\
00660
eventOut SFBool isBound \n\
00661
] { }",
00662
"PROTO VisibilitySensor [ \n\
00663
exposedField SFVec3f center 0 0 0 \n\
00664
exposedField SFBool enabled TRUE \n\
00665
exposedField SFVec3f size 0 0 0 \n\
00666
eventOut SFTime enterTime \n\
00667
eventOut SFTime exitTime \n\
00668
eventOut SFBool isActive \n\
00669
] { } \n\
00670
\n\
00671
PROTO WorldInfo [ \n\
00672
field MFString info [] \n\
00673
field SFString title \"\" \n\
00674
] { }",
""
00675 };
00676
#endif