Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Related Pages  

Hybrid/vtkVRML.h

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

Generated on Thu Mar 28 14:19:24 2002 for VTK by doxygen1.2.11.1 written by Dimitri van Heesch, © 1997-2001