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