Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNils Thuerey <nils@thuerey.de>2005-09-28 20:20:57 +0400
committerNils Thuerey <nils@thuerey.de>2005-09-28 20:20:57 +0400
commitd7b441473a0e00c49c7986ea98bb87b4537247f8 (patch)
tree0d1db09bfcd0a888a3ba44d88cc123189624e3f7 /intern/elbeem
parent9a8ab66a1d82aca646265ef08e1212c6614d5e3d (diff)
- removed some unecessary files & code
- debug output now controlled globally by elbeem debug level (BLENDER_ELBEEMDEBUG environment var), also for fluidsimBake and read/writeBobj - debug output is written to file for WIN32 - added "for" and "vector" etc. defines for MSVC6 (I couldnt get hold of the compiler itself, so not tested yet)
Diffstat (limited to 'intern/elbeem')
-rw-r--r--intern/elbeem/SConscript5
-rw-r--r--intern/elbeem/extern/LBM_fluidsim.h7
-rw-r--r--intern/elbeem/intern/arrays.h290
-rw-r--r--intern/elbeem/intern/blendercall.cpp8
-rw-r--r--intern/elbeem/intern/cfglexer.cpp815
-rw-r--r--intern/elbeem/intern/cfgparser.cpp1463
-rw-r--r--intern/elbeem/intern/cfgparser.h382
-rw-r--r--intern/elbeem/intern/elbeem.cpp4
-rw-r--r--intern/elbeem/intern/isosurface.cpp300
-rw-r--r--intern/elbeem/intern/isosurface.h119
-rw-r--r--intern/elbeem/intern/lbmdimensions.h2
-rw-r--r--intern/elbeem/intern/lbmfsgrsolver.h65
-rw-r--r--intern/elbeem/intern/lbminterface.cpp4
-rw-r--r--intern/elbeem/intern/lbminterface.h8
-rw-r--r--intern/elbeem/intern/ntl_geometrybox.cpp302
-rw-r--r--intern/elbeem/intern/ntl_geometrybox.h63
-rw-r--r--intern/elbeem/intern/ntl_geometryshader.h6
-rw-r--r--intern/elbeem/intern/ntl_geometrysphere.cpp229
-rw-r--r--intern/elbeem/intern/ntl_geometrysphere.h65
-rw-r--r--intern/elbeem/intern/ntl_image.cpp13
-rw-r--r--intern/elbeem/intern/ntl_image.h167
-rw-r--r--intern/elbeem/intern/ntl_lightobject.h29
-rw-r--r--intern/elbeem/intern/ntl_ray.cpp19
-rw-r--r--intern/elbeem/intern/ntl_raytracer.cpp24
-rw-r--r--intern/elbeem/intern/ntl_scene.cpp4
-rw-r--r--intern/elbeem/intern/ntl_vector3dim.h16
-rw-r--r--intern/elbeem/intern/utilities.cpp102
-rw-r--r--intern/elbeem/intern/utilities.h16
28 files changed, 1484 insertions, 3043 deletions
diff --git a/intern/elbeem/SConscript b/intern/elbeem/SConscript
index c155bb79fab..3f859752b26 100644
--- a/intern/elbeem/SConscript
+++ b/intern/elbeem/SConscript
@@ -5,7 +5,7 @@ Import('user_options_dict');
print "Including El'Beem Fluid Simulation..."
elbeem_env = library_env.Copy();
elbeem_env.Append(CPPDEFINES= 'NOGUI');
-elbeem_env.Append(CPPDEFINES= 'ELBEEM_BLENDER=1');
+elbeem_env.Append(CPPDEFINES= [('ELBEEM_BLENDER',1)] );
elbeem_env.Append (CPPPATH = user_options_dict['PNG_INCLUDE'])
elbeem_env.Append (CPPPATH = user_options_dict['Z_INCLUDE'])
@@ -26,11 +26,8 @@ Sources = [
"intern/lbminterface.cpp",
"intern/ntl_blenderdumper.cpp",
"intern/ntl_bsptree.cpp",
- "intern/ntl_geometrybox.cpp",
"intern/ntl_geometrymodel.cpp",
"intern/ntl_geometryobject.cpp",
- "intern/ntl_geometrysphere.cpp",
- "intern/ntl_image.cpp",
"intern/ntl_lightobject.cpp",
"intern/ntl_ray.cpp",
"intern/ntl_raytracer.cpp",
diff --git a/intern/elbeem/extern/LBM_fluidsim.h b/intern/elbeem/extern/LBM_fluidsim.h
index 27fcc101440..884a243e6a6 100644
--- a/intern/elbeem/extern/LBM_fluidsim.h
+++ b/intern/elbeem/extern/LBM_fluidsim.h
@@ -63,6 +63,13 @@ struct DerivedMesh *getFluidsimDerivedMesh(struct Object *srcob, int useRenderPa
// WARNING - implemented in intern/elbeem/blendercall.cpp
int performElbeemSimulation(char *cfgfilename);
+// implemented in intern/elbeem/utilities.cpp
+/* set elbeem debug output level (0=off to 10=full on) */
+void elbeemSetDebugLevel(int level);
+/* elbeem debug output function */
+void elbeemDebugOut(char *msg);
+
+
#endif
diff --git a/intern/elbeem/intern/arrays.h b/intern/elbeem/intern/arrays.h
deleted file mode 100644
index 9eea34e579f..00000000000
--- a/intern/elbeem/intern/arrays.h
+++ /dev/null
@@ -1,290 +0,0 @@
-/******************************************************************************
- *
- * El'Beem - Free Surface Fluid Simulation with the Lattice Boltzmann Method
- * Copyright 2003,2004 Nils Thuerey
- *
- * Array class definitions
- *
- *****************************************************************************/
-#ifndef ARRAYS_H
-#include <string>
-#include <sstream>
-#include <fstream>
-
-
-/*****************************************************************************/
-/* array handling "cutting off" access along the border */
-template<class T>
-class ArrayCutoffBc {
- public:
- //! constructor
- ArrayCutoffBc() :
- mpVal( NULL ), mElemSize( sizeof(T) ),
- mAllocSize(0),
- mSizex(0), mSizey(0), mSizez(0)
- { };
- //! destructor
- virtual ~ArrayCutoffBc() {
- if((mpVal)&&(mAllocSize>0)) delete[] mpVal;
- mpVal = NULL;
- }
-
- //! init sizes
- void initializeArray(int setx, int sety, int setz) {
- mSizex = setx;
- mSizey = sety;
- mSizez = setz;
- }
-
- //! allocate a new array
- inline void allocate() {
- int size = mSizex*mSizey*mSizez;
- if(size == mAllocSize) return; // dont reallocate
- T* newval = new T[size];
- for(int i=0;i<size;i++) newval[i] = (T)(0.0);
- mpVal = (unsigned char *)newval;
- mAllocSize = size;
- };
-
- //! set the scalar field pointer
- inline void setValuePointer(T *pnt, int elem) { mpVal = (unsigned char *)pnt; mElemSize = elem; };
-
- //! internal array index calculator
- inline int arrayIndex(int x, int y, int z) {
- if(x<0) x=0;
- if(y<0) y=0;
- if(z<0) z=0;
- if(x>mSizex-1) x=mSizex-1;
- if(y>mSizey-1) y=mSizey-1;
- if(z>mSizez-1) z=mSizez-1;
- return z*mSizex*mSizey + y*mSizex + x;
- }
- //! phi access function
- inline T& getValue(int x, int y, int z) {
- unsigned char *bpnt = &mpVal[ arrayIndex(x,y,z)*mElemSize ];
- return *((T*)bpnt);
- //return mpPhi[ z*mSizex*mSizey + y*mSizex + x];
- }
- //! return relative offset in direction dir (x=0,y=1,z=2)
- inline T& getOffset(T *base,int off, int dir) {
- unsigned char *basep = (unsigned char *)base;
- int multiplier = 1;
- if(dir==1) multiplier=mSizex;
- if(dir==2) multiplier=mSizex*mSizey;
- // check boundary
- unsigned char *bpnt = (basep+ ((off*multiplier)*mElemSize) );
- if(bpnt<mpVal) bpnt = basep;
- if(bpnt>= (unsigned char *)&getValue(mSizex-1,mSizey-1,mSizez-1) ) bpnt = basep;
- return *((T*)bpnt);
- }
-
- //! perform trilinear interpolation of array values
- inline T interpolateValueAt(LbmFloat x, LbmFloat y, LbmFloat z) {
- const LbmFloat gsx=1.0, gsy=1.0, gsz=1.0;
- int i= (int)x;
- int j= (int)y;
- int k= (int)z;
-
- int in = i+1;
- int jn = j+1;
- int kn = k+1;
- if(in>=mSizex) in = mSizex-1;
- if(jn>=mSizey) jn = mSizey-1;
- if(kn>=mSizez) kn = mSizez-1;
-
- LbmVec mStart(0.0); // TODO remove?
- LbmFloat x1 = mStart[0]+ (LbmFloat)(i)*gsx;
- LbmFloat x2 = mStart[0]+ (LbmFloat)(in)*gsx;
- LbmFloat y1 = mStart[1]+ (LbmFloat)(j)*gsy;
- LbmFloat y2 = mStart[1]+ (LbmFloat)(jn)*gsy;
- LbmFloat z1 = mStart[2]+ (LbmFloat)(k)*gsz;
- LbmFloat z2 = mStart[2]+ (LbmFloat)(kn)*gsz;
-
- if(mSizez==1) {
- z1=0.0; z2=1.0;
- k = kn = 0;
- }
-
- T v1, v2, v3, v4, v5, v6, v7, v8;
- v1 = getValue(i ,j ,k );
- v2 = getValue(in ,j ,k );
- v3 = getValue(i ,jn ,k );
- v4 = getValue(in ,jn ,k );
- v5 = getValue(i ,j ,kn );
- v6 = getValue(in ,j ,kn );
- v7 = getValue(i ,jn ,kn );
- v8 = getValue(in ,jn ,kn );
-
- T val =
- ( v1 *(x2-x)* (y2-y)* (z2-z) +
- v2 *(x-x1)* (y2-y)* (z2-z) +
- v3 *(x2-x)* (y-y1)* (z2-z) +
- v4 *(x-x1)* (y-y1)* (z2-z) +
- v5 *(x2-x)* (y2-y)* (z-z1) +
- v6 *(x-x1)* (y2-y)* (z-z1) +
- v7 *(x2-x)* (y-y1)* (z-z1) +
- v8 *(x-x1)* (y-y1)* (z-z1)
- ) * (1.0/(gsx*gsy*gsz)) ;
- return val;
- }
-
- //! get size of an element
- inline int getElementSize(){ return mElemSize; }
- //! get array sizes
- inline int getSizeX(){ return mSizex; }
- inline int getSizeY(){ return mSizey; }
- inline int getSizeZ(){ return mSizez; }
- //! get array pointer
- inline T* getPointer(){ return (T*)mpVal; }
-
- //! testing, gnuplot dump (XY plane for k=Z/2)
- void dumpToFile(std::string filebase, int id, int nr) {
- std::ostringstream filename;
- filename << filebase << "_"<< id <<"_"<< nr <<".dump";
- std::ofstream outfile( filename.str().c_str() );
- for(int k=mSizez/2; k<=mSizez/2; k++) {
- for(int j=0; j<mSizey; j++) {
- for(int i=0; i<mSizex; i++) {
- outfile <<i<<" "<<j<<" " << getValue(i,j,k)<<" " <<std::endl;
- }
- outfile << std::endl;
- }
- }
- }
- //! testing, grid text dump (XY plane for k=Z/2)
- void dumpToGridFile(std::string filebase, int id, int nr) {
- std::ostringstream filename;
- filename << filebase << "_"<< id <<"_"<< nr <<".dump";
- std::ofstream outfile( filename.str().c_str() );
- for(int k=mSizez/2; k<=mSizez/2; k++) {
- for(int j=0; j<mSizey; j++) {
- for(int i=0; i<mSizex; i++) {
- outfile <<getValue(i,j,k)<<"\t";
- }
- outfile << std::endl;
- }
- }
- }
-
- protected:
- //! pointer for the value field (unsigned char for adding element size)
- unsigned char *mpVal;
- //! element offset in array
- int mElemSize;
- //! store allocated size
- int mAllocSize;
-
- //! Sizes of the scal array in each dimension
- int mSizex,mSizey,mSizez;
-};
-
-/*****************************************************************************/
-/* array handling "cutting off" access along the border */
-template<class T>
-class ArrayPlain {
- public:
- //! constructor
- ArrayPlain() :
- mpVal( NULL ), mElemSize( sizeof(T) ),
- mAllocSize(0),
- mSizex(0), mSizey(0), mSizez(0)
- { };
- //! destructor
- virtual ~ArrayPlain() {
- if((mpVal)&&(mAllocSize>0)) delete[] mpVal;
- mpVal = NULL;
- }
-
- //! init sizes
- void initializeArray(int setx, int sety, int setz) {
- mSizex = setx;
- mSizey = sety;
- mSizez = setz;
- }
-
- //! allocate a new array
- inline void allocate() {
- int size = mSizex*mSizey*mSizez;
- if(size == mAllocSize) return; // dont reallocate
- T* newval = new T[size];
- for(int i=0;i<size;i++) newval[i] = (T)(0.0);
- mpVal = (unsigned char *)newval;
- mAllocSize = size;
- };
-
- //! set the scalar field pointer
- inline void setValuePointer(T *pnt, int elem) { mpVal = (unsigned char *)pnt; mElemSize = elem; };
-
- //! phi access function
- inline T& getValue(const int x, const int y, const int z) const {
- unsigned char *bpnt = &mpVal[ (z*mSizex*mSizey + y*mSizex + x)*mElemSize ];
- return *((T*)bpnt);
- }
- //! return relative offset in direction dir (x=0,y=1,z=2)
- inline T& getOffset(T *base,int off, int dir) {
- unsigned char *basep = (unsigned char *)base;
- int multiplier = 1;
- if(dir==1) multiplier=mSizex;
- if(dir==2) multiplier=mSizex*mSizey;
- // check boundary
- unsigned char *bpnt = (basep+ ((off*multiplier)*mElemSize) );
- if(bpnt<mpVal) bpnt = basep;
- if(bpnt>= (unsigned char *)&getValue(mSizex-1,mSizey-1,mSizez-1) ) bpnt = basep;
- return *((T*)bpnt);
- }
-
- //! get size of an element
- inline int getElementSize(){ return mElemSize; }
- //! get array sizes
- inline int getSizeX(){ return mSizex; }
- inline int getSizeY(){ return mSizey; }
- inline int getSizeZ(){ return mSizez; }
- //! get array pointer
- inline T* getPointer(){ return (T*)mpVal; }
-
- //! testing, gnuplot dump (XY plane for k=Z/2)
- void dumpToFile(std::string filebase, int id, int nr) {
- std::ostringstream filename;
- filename << filebase << "_"<< id <<"_"<< nr <<".dump";
- std::ofstream outfile( filename.str().c_str() );
- for(int k=mSizez/2; k<=mSizez/2; k++) {
- for(int j=0; j<mSizey; j++) {
- for(int i=0; i<mSizex; i++) {
- outfile <<i<<" "<<j<<" " << getValue(i,j,k)<<" " <<std::endl;
- }
- outfile << std::endl;
- }
- }
- }
- //! testing, grid text dump (XY plane for k=Z/2)
- void dumpToGridFile(std::string filebase, int id, int nr) {
- std::ostringstream filename;
- filename << filebase << "_"<< id <<"_"<< nr <<".dump";
- std::ofstream outfile( filename.str().c_str() );
- for(int k=mSizez/2; k<=mSizez/2; k++) {
- for(int j=0; j<mSizey; j++) {
- for(int i=0; i<mSizex; i++) {
- outfile <<getValue(i,j,k)<<"\t";
- }
- outfile << std::endl;
- }
- }
- }
-
- protected:
- //! pointer for the value field (unsigned char for adding element size)
- unsigned char *mpVal;
- //! element offset in array
- int mElemSize;
- //! store allocated size
- int mAllocSize;
-
- //! Sizes of the scal array in each dimension
- int mSizex,mSizey,mSizez;
-};
-
-
-
-#define ARRAYS_H
-#endif
-
diff --git a/intern/elbeem/intern/blendercall.cpp b/intern/elbeem/intern/blendercall.cpp
index 13ab3aeae5e..7ac80eedc3a 100644
--- a/intern/elbeem/intern/blendercall.cpp
+++ b/intern/elbeem/intern/blendercall.cpp
@@ -23,9 +23,11 @@ int performElbeemSimulation(char *cfgfilename) {
gDebugLevel = atoi(getenv(strEnvName));
if(gDebugLevel< 0) gDebugLevel = 0;
if(gDebugLevel>10) gDebugLevel = 0; // only use valid values
- if(gDebugLevel>0) fprintf(stderr, "Using envvar '%s'='%s', debugLevel set to: %d\n",strEnvName, getenv(strEnvName), gDebugLevel);
+ if(gDebugLevel>0) debMsgStd("performElbeemSimulation",DM_NOTIFY,"Using envvar '"<<strEnvName<<"'='"<<getenv(strEnvName)<<"', debugLevel set to: "<<gDebugLevel<<"\n", 1);
}
- if(gDebugLevel>0) fprintf(GEN_userstream, "Running El'Beem from Blender with file '%s', debugLevel:%d ...\n",cfgfilename,gDebugLevel);
+ //if(gDebugLevel>0) {
+ debMsgStd("performElbeemSimulation",DM_NOTIFY,"Running El'Beem from Blender with file '"<< cfgfilename <<"', debugLevel:"<<gDebugLevel<<" ...\n", 2);
+ //}
// load given file in command line mode
ntlBlenderDumper elbeem(cfgfilename, true);
if(SIMWORLD_OK()) {
@@ -33,7 +35,7 @@ int performElbeemSimulation(char *cfgfilename) {
myTime_t timestart = getTime();
elbeem.renderAnimation();
myTime_t timeend = getTime();
- if(gDebugLevel>0) fprintf(GEN_userstream, "El'Beem simulation done, time: %f seconds.\n", ((timeend-timestart)/(double)1000.0) );
+ debMsgStd("performElbeemSimulation",DM_NOTIFY, "El'Beem simulation done, time: "<<((timeend-timestart)/(double)1000.0) <<" seconds.\n", 2 );
} else {
}
return 1;
diff --git a/intern/elbeem/intern/cfglexer.cpp b/intern/elbeem/intern/cfglexer.cpp
index f4574a6c05a..c8492f8105c 100644
--- a/intern/elbeem/intern/cfglexer.cpp
+++ b/intern/elbeem/intern/cfglexer.cpp
@@ -349,8 +349,8 @@ static void yy_fatal_error (yyconst char msg[] );
*yy_cp = '\0'; \
(yy_c_buf_p) = yy_cp;
-#define YY_NUM_RULES 97
-#define YY_END_OF_BUFFER 98
+#define YY_NUM_RULES 98
+#define YY_END_OF_BUFFER 99
/* This struct is not used in this scanner,
but its presence is necessary. */
struct yy_trans_info
@@ -358,70 +358,70 @@ struct yy_trans_info
flex_int32_t yy_verify;
flex_int32_t yy_nxt;
};
-static yyconst flex_int16_t yy_accept[562] =
+static yyconst flex_int16_t yy_accept[567] =
{ 0,
- 0, 0, 0, 0, 6, 6, 98, 96, 96, 94,
- 95, 96, 92, 96, 96, 96, 88, 96, 96, 96,
- 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,
- 96, 96, 96, 96, 96, 1, 2, 96, 95, 4,
+ 0, 0, 0, 0, 6, 6, 99, 97, 97, 95,
+ 96, 97, 93, 97, 97, 97, 89, 97, 97, 97,
+ 97, 97, 97, 97, 97, 97, 97, 97, 97, 97,
+ 97, 97, 97, 97, 97, 1, 2, 97, 96, 4,
3, 6, 7, 6, 6, 6, 7, 1, 2, 0,
- 1, 2, 0, 92, 0, 88, 89, 93, 91, 88,
+ 1, 2, 0, 93, 0, 89, 90, 94, 92, 89,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 84, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 85, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1, 2, 0, 3,
- 4, 3, 6, 6, 5, 6, 6, 6, 90, 91,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 44,
- 0, 0, 0, 0, 0, 0, 0, 0, 51, 0,
+ 4, 3, 6, 6, 5, 6, 6, 6, 91, 92,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 45,
+ 0, 0, 0, 0, 0, 0, 0, 0, 52, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 85, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 86, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 17, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 63, 0, 0, 0, 75, 0,
- 0, 52, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 86, 43, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 62,
- 0, 0, 78, 0, 0, 0, 0, 0, 0, 0,
- 87, 0, 0, 0, 0, 0, 0, 0, 0, 74,
- 0, 0, 0, 0, 0, 0, 0, 0, 61, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,
- 0, 0, 0, 16, 0, 0, 76, 0, 0, 0,
-
- 0, 18, 0, 0, 0, 0, 0, 77, 0, 0,
- 0, 39, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 59, 0, 15, 0, 0, 67, 0, 0, 0,
+ 0, 0, 0, 18, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 64, 0, 0, 0, 76, 0,
+ 0, 53, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 87, 44, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,
+ 0, 0, 79, 0, 0, 0, 0, 0, 0, 0,
+ 88, 0, 0, 0, 0, 0, 0, 0, 0, 75,
+ 0, 0, 0, 0, 0, 0, 0, 0, 62, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 51,
+ 0, 0, 0, 17, 0, 0, 77, 0, 0, 0,
+
+ 0, 19, 0, 0, 0, 0, 0, 78, 0, 0,
+ 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 60, 0, 16, 0, 0, 68, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 45, 0, 0, 0, 0, 55, 0, 64, 0, 0,
+ 0, 46, 0, 0, 0, 0, 56, 0, 65, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 65, 0, 0, 0, 0, 0, 72, 0, 0,
- 0, 0, 0, 0, 0, 0, 53, 0, 0, 0,
+ 0, 0, 0, 66, 0, 0, 0, 0, 0, 73,
+ 0, 0, 0, 0, 0, 0, 0, 0, 54, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 49, 0, 0, 21, 0, 0, 0, 0, 0, 0,
-
- 0, 0, 0, 0, 0, 0, 0, 14, 58, 25,
- 8, 0, 42, 0, 60, 0, 0, 0, 46, 0,
- 79, 0, 0, 0, 0, 0, 0, 66, 34, 0,
- 0, 0, 0, 0, 0, 22, 0, 13, 38, 0,
- 0, 0, 0, 0, 0, 0, 0, 10, 0, 0,
- 0, 24, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 82, 0, 0, 0, 0, 0, 0, 0,
- 37, 20, 0, 0, 0, 0, 0, 0, 9, 33,
- 0, 73, 57, 0, 0, 0, 35, 11, 0, 0,
- 0, 12, 0, 0, 0, 0, 0, 0, 0, 0,
-
- 36, 47, 0, 0, 83, 0, 40, 30, 56, 54,
- 0, 69, 0, 0, 0, 71, 0, 0, 0, 19,
- 23, 0, 0, 0, 0, 0, 0, 0, 0, 68,
- 31, 0, 0, 0, 0, 0, 0, 0, 0, 29,
- 70, 0, 0, 0, 80, 0, 0, 48, 26, 0,
- 0, 0, 81, 0, 0, 27, 28, 0, 32, 41,
- 0
+ 0, 0, 50, 0, 0, 22, 0, 0, 0, 0,
+
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 15, 59, 26, 8, 0, 43, 0, 61, 0, 0,
+ 0, 47, 0, 80, 0, 0, 0, 0, 0, 0,
+ 67, 35, 0, 0, 0, 0, 0, 0, 23, 0,
+ 14, 39, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 10, 0, 0, 0, 25, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 83, 0, 0, 0,
+ 0, 0, 0, 0, 38, 21, 0, 0, 0, 0,
+ 0, 0, 9, 11, 34, 0, 74, 58, 0, 0,
+ 0, 36, 12, 0, 0, 0, 13, 0, 0, 0,
+
+ 0, 0, 0, 0, 0, 37, 48, 0, 0, 84,
+ 0, 41, 31, 57, 55, 0, 70, 0, 0, 0,
+ 72, 0, 0, 0, 20, 24, 0, 0, 0, 0,
+ 0, 0, 0, 0, 69, 32, 0, 0, 0, 0,
+ 0, 0, 0, 0, 30, 71, 0, 0, 0, 81,
+ 0, 0, 49, 27, 0, 0, 0, 82, 0, 0,
+ 28, 29, 0, 33, 42, 0
} ;
static yyconst flex_int32_t yy_ec[256] =
@@ -465,141 +465,141 @@ static yyconst flex_int32_t yy_meta[44] =
6, 1, 1
} ;
-static yyconst flex_int16_t yy_base[572] =
+static yyconst flex_int16_t yy_base[577] =
{ 0,
- 0, 0, 43, 86, 128, 170, 699, 700, 60, 700,
- 63, 0, 0, 43, 687, 53, 50, 47, 53, 78,
- 47, 39, 87, 676, 43, 82, 54, 80, 117, 92,
- 93, 112, 116, 664, 99, 123, 138, 149, 152, 0,
- 141, 0, 700, 690, 156, 101, 700, 157, 160, 163,
- 175, 180, 689, 0, 682, 176, 681, 700, 0, 177,
- 655, 672, 153, 657, 652, 668, 101, 646, 161, 46,
- 175, 178, 665, 663, 655, 654, 644, 642, 186, 648,
- 640, 646, 653, 644, 168, 640, 644, 643, 645, 648,
- 639, 700, 647, 636, 174, 625, 192, 648, 131, 647,
-
- 628, 198, 630, 623, 626, 624, 214, 219, 222, 226,
- 0, 227, 0, 653, 652, 230, 0, 235, 700, 0,
- 631, 630, 146, 629, 632, 618, 624, 620, 619, 700,
- 612, 612, 615, 613, 607, 618, 614, 619, 700, 608,
- 604, 617, 612, 595, 606, 599, 604, 611, 596, 606,
- 602, 607, 593, 592, 604, 206, 595, 700, 598, 592,
- 591, 579, 594, 582, 596, 582, 595, 583, 593, 593,
- 590, 576, 573, 578, 586, 585, 584, 583, 567, 577,
- 238, 563, 579, 565, 562, 580, 577, 570, 571, 573,
- 562, 556, 554, 183, 572, 565, 557, 565, 548, 553,
-
- 562, 216, 562, 700, 560, 550, 558, 544, 540, 540,
- 558, 540, 556, 541, 700, 540, 549, 538, 700, 545,
- 544, 543, 529, 530, 538, 545, 540, 532, 528, 521,
- 523, 520, 526, 519, 524, 700, 700, 533, 530, 532,
- 528, 518, 530, 529, 517, 508, 525, 508, 520, 700,
- 516, 514, 700, 504, 503, 218, 515, 516, 499, 508,
- 700, 501, 514, 502, 494, 507, 491, 490, 491, 700,
- 488, 498, 481, 487, 492, 485, 498, 489, 700, 485,
- 490, 497, 475, 493, 477, 473, 470, 480, 486, 700,
- 475, 193, 488, 700, 464, 475, 700, 466, 472, 466,
-
- 474, 700, 461, 466, 462, 478, 475, 700, 472, 461,
- 466, 474, 453, 467, 457, 466, 456, 466, 456, 454,
- 447, 700, 458, 700, 462, 458, 700, 436, 440, 454,
- 457, 443, 441, 452, 449, 444, 449, 431, 437, 448,
- 700, 444, 213, 446, 422, 700, 440, 432, 438, 422,
- 440, 420, 418, 437, 433, 227, 424, 431, 410, 432,
- 414, 700, 411, 425, 424, 415, 418, 700, 401, 424,
- 412, 418, 415, 412, 408, 399, 700, 404, 408, 397,
- 401, 413, 404, 411, 393, 405, 405, 388, 389, 221,
- 700, 397, 218, 700, 386, 399, 389, 382, 386, 382,
-
- 391, 227, 396, 392, 391, 375, 385, 700, 700, 700,
- 700, 377, 700, 389, 700, 375, 375, 386, 700, 368,
- 700, 373, 378, 381, 363, 368, 366, 700, 700, 372,
- 377, 374, 373, 359, 369, 700, 366, 700, 355, 369,
- 352, 348, 352, 354, 367, 349, 353, 700, 353, 344,
- 360, 700, 357, 341, 346, 354, 340, 350, 355, 350,
- 335, 339, 350, 331, 335, 335, 332, 338, 338, 332,
- 700, 700, 326, 324, 341, 321, 324, 334, 700, 700,
- 320, 700, 700, 329, 317, 316, 700, 700, 330, 309,
- 312, 700, 322, 321, 317, 325, 307, 325, 305, 319,
-
- 700, 700, 319, 307, 700, 307, 311, 700, 700, 700,
- 304, 700, 309, 316, 294, 700, 310, 306, 299, 700,
- 700, 235, 298, 304, 308, 286, 305, 288, 301, 700,
- 700, 298, 295, 295, 280, 273, 266, 263, 262, 700,
- 700, 268, 257, 260, 700, 266, 249, 700, 700, 245,
- 225, 224, 700, 237, 166, 700, 700, 155, 700, 700,
- 700, 267, 273, 276, 282, 113, 288, 294, 300, 306,
- 312
+ 0, 0, 43, 86, 128, 170, 704, 705, 60, 705,
+ 63, 0, 0, 43, 692, 53, 50, 47, 53, 78,
+ 47, 39, 87, 681, 43, 82, 54, 80, 117, 92,
+ 93, 112, 116, 669, 99, 123, 138, 149, 152, 0,
+ 141, 0, 705, 695, 156, 101, 705, 157, 160, 163,
+ 175, 180, 694, 0, 687, 176, 686, 705, 0, 177,
+ 660, 677, 153, 662, 657, 673, 101, 651, 161, 46,
+ 175, 178, 670, 668, 660, 659, 649, 647, 186, 653,
+ 645, 651, 658, 649, 168, 645, 649, 648, 650, 653,
+ 644, 705, 652, 641, 174, 630, 192, 653, 131, 652,
+
+ 633, 198, 635, 628, 631, 629, 214, 219, 222, 226,
+ 0, 227, 0, 658, 657, 230, 0, 235, 705, 0,
+ 636, 635, 146, 634, 637, 623, 629, 625, 624, 705,
+ 617, 617, 620, 618, 612, 623, 619, 624, 705, 613,
+ 609, 622, 617, 600, 611, 604, 609, 616, 601, 611,
+ 607, 612, 598, 597, 609, 206, 600, 705, 603, 597,
+ 596, 584, 599, 587, 601, 587, 600, 588, 598, 598,
+ 595, 581, 578, 583, 591, 590, 589, 588, 572, 582,
+ 238, 568, 584, 570, 567, 585, 582, 575, 576, 578,
+ 567, 561, 559, 183, 577, 570, 562, 570, 553, 558,
+
+ 567, 216, 567, 705, 565, 555, 563, 549, 545, 545,
+ 563, 545, 561, 546, 705, 545, 554, 543, 705, 550,
+ 549, 548, 534, 535, 543, 550, 545, 537, 533, 526,
+ 528, 525, 531, 524, 529, 705, 705, 538, 535, 537,
+ 533, 523, 535, 534, 522, 513, 530, 513, 525, 705,
+ 521, 519, 705, 509, 508, 221, 520, 521, 504, 513,
+ 705, 506, 519, 507, 499, 512, 496, 495, 496, 705,
+ 493, 503, 486, 492, 497, 490, 503, 494, 705, 490,
+ 495, 502, 480, 498, 482, 478, 475, 485, 491, 705,
+ 480, 193, 493, 705, 469, 480, 705, 471, 477, 471,
+
+ 479, 705, 466, 471, 467, 483, 480, 705, 477, 476,
+ 465, 470, 478, 457, 471, 461, 470, 460, 470, 460,
+ 458, 451, 705, 462, 705, 466, 462, 705, 440, 444,
+ 458, 461, 447, 445, 456, 453, 448, 453, 435, 441,
+ 452, 705, 448, 221, 450, 426, 705, 444, 436, 442,
+ 426, 444, 424, 422, 441, 437, 227, 428, 417, 434,
+ 413, 435, 417, 705, 414, 428, 427, 418, 421, 705,
+ 404, 427, 415, 421, 418, 415, 411, 402, 705, 407,
+ 411, 400, 404, 416, 407, 414, 396, 408, 408, 391,
+ 392, 227, 705, 400, 219, 705, 389, 402, 392, 385,
+
+ 389, 385, 394, 231, 399, 395, 394, 393, 377, 387,
+ 705, 705, 705, 705, 379, 705, 391, 705, 377, 377,
+ 388, 705, 370, 705, 375, 380, 383, 365, 370, 368,
+ 705, 705, 374, 379, 376, 375, 361, 371, 705, 368,
+ 705, 357, 371, 354, 350, 354, 356, 369, 351, 355,
+ 355, 705, 354, 345, 361, 705, 358, 342, 347, 355,
+ 341, 351, 356, 351, 336, 340, 351, 332, 336, 336,
+ 333, 339, 339, 333, 705, 705, 327, 325, 342, 322,
+ 325, 335, 705, 705, 705, 321, 705, 705, 330, 318,
+ 317, 705, 705, 331, 310, 313, 705, 323, 322, 318,
+
+ 326, 308, 326, 306, 320, 705, 705, 320, 308, 705,
+ 308, 312, 705, 705, 705, 305, 705, 310, 317, 295,
+ 705, 311, 307, 300, 705, 705, 236, 299, 305, 309,
+ 287, 306, 289, 302, 705, 705, 299, 296, 296, 281,
+ 274, 267, 264, 263, 705, 705, 269, 258, 261, 705,
+ 267, 250, 705, 705, 245, 225, 222, 705, 212, 166,
+ 705, 705, 155, 705, 705, 705, 268, 274, 277, 283,
+ 113, 289, 295, 301, 307, 313
} ;
-static yyconst flex_int16_t yy_def[572] =
+static yyconst flex_int16_t yy_def[577] =
{ 0,
- 561, 1, 562, 562, 563, 563, 561, 561, 561, 561,
- 561, 564, 565, 561, 561, 561, 561, 561, 561, 561,
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 566,
- 561, 567, 561, 568, 569, 567, 561, 567, 567, 561,
- 561, 561, 564, 565, 561, 561, 561, 561, 570, 561,
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
-
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 566, 561, 567, 568, 568, 569, 567, 571, 561, 570,
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 571, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
-
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
-
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
-
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
-
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 0, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 561
+ 566, 1, 567, 567, 568, 568, 566, 566, 566, 566,
+ 566, 569, 570, 566, 566, 566, 566, 566, 566, 566,
+ 566, 566, 566, 566, 566, 566, 566, 566, 566, 566,
+ 566, 566, 566, 566, 566, 566, 566, 566, 566, 571,
+ 566, 572, 566, 573, 574, 572, 566, 572, 572, 566,
+ 566, 566, 569, 570, 566, 566, 566, 566, 575, 566,
+ 566, 566, 566, 566, 566, 566, 566, 566, 566, 566,
+ 566, 566, 566, 566, 566, 566, 566, 566, 566, 566,
+ 566, 566, 566, 566, 566, 566, 566, 566, 566, 566,
+ 566, 566, 566, 566, 566, 566, 566, 566, 566, 566,
+
+ 566, 566, 566, 566, 566, 566, 566, 566, 566, 566,
+ 571, 566, 572, 573, 573, 574, 572, 576, 566, 575,
+ 566, 566, 566, 566, 566, 566, 566, 566, 566, 566,
+ 566, 566, 566, 566, 566, 566, 566, 566, 566, 566,
+ 566, 566, 566, 566, 566, 566, 566, 566, 566, 566,
+ 566, 566, 566, 566, 566, 566, 566, 566, 566, 566,
+ 566, 566, 566, 566, 566, 566, 566, 566, 566, 566,
+ 566, 566, 566, 566, 566, 566, 566, 566, 566, 566,
+ 576, 566, 566, 566, 566, 566, 566, 566, 566, 566,
+ 566, 566, 566, 566, 566, 566, 566, 566, 566, 566,
+
+ 566, 566, 566, 566, 566, 566, 566, 566, 566, 566,
+ 566, 566, 566, 566, 566, 566, 566, 566, 566, 566,
+ 566, 566, 566, 566, 566, 566, 566, 566, 566, 566,
+ 566, 566, 566, 566, 566, 566, 566, 566, 566, 566,
+ 566, 566, 566, 566, 566, 566, 566, 566, 566, 566,
+ 566, 566, 566, 566, 566, 566, 566, 566, 566, 566,
+ 566, 566, 566, 566, 566, 566, 566, 566, 566, 566,
+ 566, 566, 566, 566, 566, 566, 566, 566, 566, 566,
+ 566, 566, 566, 566, 566, 566, 566, 566, 566, 566,
+ 566, 566, 566, 566, 566, 566, 566, 566, 566, 566,
+
+ 566, 566, 566, 566, 566, 566, 566, 566, 566, 566,
+ 566, 566, 566, 566, 566, 566, 566, 566, 566, 566,
+ 566, 566, 566, 566, 566, 566, 566, 566, 566, 566,
+ 566, 566, 566, 566, 566, 566, 566, 566, 566, 566,
+ 566, 566, 566, 566, 566, 566, 566, 566, 566, 566,
+ 566, 566, 566, 566, 566, 566, 566, 566, 566, 566,
+ 566, 566, 566, 566, 566, 566, 566, 566, 566, 566,
+ 566, 566, 566, 566, 566, 566, 566, 566, 566, 566,
+ 566, 566, 566, 566, 566, 566, 566, 566, 566, 566,
+ 566, 566, 566, 566, 566, 566, 566, 566, 566, 566,
+
+ 566, 566, 566, 566, 566, 566, 566, 566, 566, 566,
+ 566, 566, 566, 566, 566, 566, 566, 566, 566, 566,
+ 566, 566, 566, 566, 566, 566, 566, 566, 566, 566,
+ 566, 566, 566, 566, 566, 566, 566, 566, 566, 566,
+ 566, 566, 566, 566, 566, 566, 566, 566, 566, 566,
+ 566, 566, 566, 566, 566, 566, 566, 566, 566, 566,
+ 566, 566, 566, 566, 566, 566, 566, 566, 566, 566,
+ 566, 566, 566, 566, 566, 566, 566, 566, 566, 566,
+ 566, 566, 566, 566, 566, 566, 566, 566, 566, 566,
+ 566, 566, 566, 566, 566, 566, 566, 566, 566, 566,
+
+ 566, 566, 566, 566, 566, 566, 566, 566, 566, 566,
+ 566, 566, 566, 566, 566, 566, 566, 566, 566, 566,
+ 566, 566, 566, 566, 566, 566, 566, 566, 566, 566,
+ 566, 566, 566, 566, 566, 566, 566, 566, 566, 566,
+ 566, 566, 566, 566, 566, 566, 566, 566, 566, 566,
+ 566, 566, 566, 566, 566, 566, 566, 566, 566, 566,
+ 566, 566, 566, 566, 566, 0, 566, 566, 566, 566,
+ 566, 566, 566, 566, 566, 566
} ;
-static yyconst flex_int16_t yy_nxt[744] =
+static yyconst flex_int16_t yy_nxt[749] =
{ 0,
8, 9, 10, 11, 12, 13, 8, 14, 15, 16,
17, 8, 8, 8, 8, 8, 18, 19, 20, 21,
@@ -620,72 +620,72 @@ static yyconst flex_int16_t yy_nxt[744] =
109, 170, 109, 109, 171, 109, 103, 54, 107, 54,
107, 108, 110, 108, 50, 110, 50, 184, 54, 48,
49, 9, 43, 11, 44, 45, 107, 123, 107, 46,
- 185, 108, 47, 108, 55, 55, 56, 60, 124, 560,
+ 185, 108, 47, 108, 55, 55, 56, 60, 124, 565,
51, 52, 135, 51, 52, 131, 136, 132, 137, 138,
- 559, 162, 145, 152, 51, 52, 146, 153, 163, 343,
+ 564, 162, 145, 152, 51, 52, 146, 153, 163, 344,
165, 48, 49, 166, 174, 107, 253, 107, 175, 254,
- 108, 167, 108, 109, 344, 109, 168, 112, 112, 112,
- 112, 54, 387, 54, 176, 110, 120, 216, 120, 120,
- 433, 120, 54, 217, 262, 263, 310, 120, 388, 311,
- 120, 400, 436, 437, 533, 445, 434, 558, 401, 557,
- 556, 402, 446, 51, 52, 555, 534, 40, 40, 40,
- 40, 40, 40, 42, 42, 42, 42, 42, 42, 53,
- 53, 53, 54, 54, 554, 54, 54, 54, 113, 553,
- 552, 551, 113, 113, 114, 550, 549, 548, 114, 114,
-
- 116, 116, 547, 116, 116, 116, 120, 120, 546, 120,
- 120, 120, 181, 181, 545, 181, 181, 181, 544, 543,
- 542, 541, 540, 539, 538, 537, 536, 535, 532, 531,
- 530, 529, 528, 527, 526, 525, 524, 523, 522, 521,
- 520, 519, 518, 517, 516, 515, 514, 513, 512, 511,
- 510, 509, 508, 507, 506, 505, 504, 503, 502, 501,
- 500, 499, 498, 497, 496, 495, 494, 493, 492, 491,
- 490, 489, 488, 487, 486, 485, 484, 483, 482, 481,
- 480, 479, 478, 477, 476, 475, 474, 473, 472, 471,
- 470, 469, 468, 467, 466, 465, 464, 463, 462, 461,
-
- 460, 459, 458, 457, 456, 455, 454, 453, 452, 451,
- 450, 449, 448, 447, 444, 443, 442, 441, 440, 439,
- 438, 435, 432, 431, 430, 429, 428, 427, 426, 425,
- 424, 423, 422, 421, 420, 419, 418, 417, 416, 415,
- 414, 413, 412, 411, 410, 409, 408, 407, 406, 405,
- 404, 403, 399, 398, 397, 396, 395, 394, 393, 392,
- 391, 390, 389, 386, 385, 384, 383, 382, 381, 380,
- 379, 378, 377, 376, 375, 374, 373, 372, 371, 370,
- 369, 368, 367, 366, 365, 364, 363, 362, 361, 360,
- 359, 358, 357, 356, 355, 354, 353, 352, 351, 350,
-
- 349, 348, 347, 346, 345, 342, 341, 340, 339, 338,
- 337, 336, 335, 334, 333, 332, 331, 330, 329, 328,
- 327, 326, 325, 324, 323, 322, 321, 320, 319, 318,
- 317, 316, 315, 314, 313, 312, 309, 308, 307, 306,
- 305, 304, 303, 302, 301, 300, 299, 298, 297, 296,
- 295, 294, 293, 292, 291, 290, 289, 288, 287, 286,
- 285, 284, 283, 282, 281, 280, 279, 278, 277, 276,
- 275, 274, 273, 272, 271, 270, 269, 268, 267, 266,
- 265, 264, 261, 260, 259, 258, 257, 256, 255, 252,
- 251, 250, 249, 248, 247, 246, 245, 244, 243, 242,
-
- 241, 240, 239, 238, 237, 236, 235, 234, 233, 232,
- 231, 230, 229, 228, 227, 226, 225, 224, 223, 222,
- 221, 220, 219, 218, 215, 214, 213, 212, 211, 210,
- 209, 208, 207, 206, 205, 204, 203, 202, 201, 200,
- 199, 198, 197, 196, 195, 194, 193, 192, 191, 190,
- 189, 188, 187, 186, 183, 182, 115, 115, 180, 179,
- 178, 177, 173, 172, 169, 164, 161, 160, 159, 158,
- 157, 156, 155, 154, 151, 150, 149, 148, 147, 144,
- 143, 142, 141, 140, 139, 130, 127, 126, 125, 122,
- 121, 57, 57, 119, 115, 104, 80, 57, 561, 7,
-
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 561, 561, 561
+ 108, 167, 108, 109, 345, 109, 168, 112, 112, 112,
+ 112, 54, 563, 54, 176, 110, 120, 216, 120, 120,
+ 389, 120, 54, 217, 262, 263, 436, 120, 310, 311,
+ 120, 402, 312, 439, 440, 538, 390, 562, 403, 448,
+ 561, 404, 437, 51, 52, 560, 449, 539, 40, 40,
+ 40, 40, 40, 40, 42, 42, 42, 42, 42, 42,
+ 53, 53, 53, 54, 54, 559, 54, 54, 54, 113,
+ 558, 557, 556, 113, 113, 114, 555, 554, 553, 114,
+
+ 114, 116, 116, 552, 116, 116, 116, 120, 120, 551,
+ 120, 120, 120, 181, 181, 550, 181, 181, 181, 549,
+ 548, 547, 546, 545, 544, 543, 542, 541, 540, 537,
+ 536, 535, 534, 533, 532, 531, 530, 529, 528, 527,
+ 526, 525, 524, 523, 522, 521, 520, 519, 518, 517,
+ 516, 515, 514, 513, 512, 511, 510, 509, 508, 507,
+ 506, 505, 504, 503, 502, 501, 500, 499, 498, 497,
+ 496, 495, 494, 493, 492, 491, 490, 489, 488, 487,
+ 486, 485, 484, 483, 482, 481, 480, 479, 478, 477,
+ 476, 475, 474, 473, 472, 471, 470, 469, 468, 467,
+
+ 466, 465, 464, 463, 462, 461, 460, 459, 458, 457,
+ 456, 455, 454, 453, 452, 451, 450, 447, 446, 445,
+ 444, 443, 442, 441, 438, 435, 434, 433, 432, 431,
+ 430, 429, 428, 427, 426, 425, 424, 423, 422, 421,
+ 420, 419, 418, 417, 416, 415, 414, 413, 412, 411,
+ 410, 409, 408, 407, 406, 405, 401, 400, 399, 398,
+ 397, 396, 395, 394, 393, 392, 391, 388, 387, 386,
+ 385, 384, 383, 382, 381, 380, 379, 378, 377, 376,
+ 375, 374, 373, 372, 371, 370, 369, 368, 367, 366,
+ 365, 364, 363, 362, 361, 360, 359, 358, 357, 356,
+
+ 355, 354, 353, 352, 351, 350, 349, 348, 347, 346,
+ 343, 342, 341, 340, 339, 338, 337, 336, 335, 334,
+ 333, 332, 331, 330, 329, 328, 327, 326, 325, 324,
+ 323, 322, 321, 320, 319, 318, 317, 316, 315, 314,
+ 313, 309, 308, 307, 306, 305, 304, 303, 302, 301,
+ 300, 299, 298, 297, 296, 295, 294, 293, 292, 291,
+ 290, 289, 288, 287, 286, 285, 284, 283, 282, 281,
+ 280, 279, 278, 277, 276, 275, 274, 273, 272, 271,
+ 270, 269, 268, 267, 266, 265, 264, 261, 260, 259,
+ 258, 257, 256, 255, 252, 251, 250, 249, 248, 247,
+
+ 246, 245, 244, 243, 242, 241, 240, 239, 238, 237,
+ 236, 235, 234, 233, 232, 231, 230, 229, 228, 227,
+ 226, 225, 224, 223, 222, 221, 220, 219, 218, 215,
+ 214, 213, 212, 211, 210, 209, 208, 207, 206, 205,
+ 204, 203, 202, 201, 200, 199, 198, 197, 196, 195,
+ 194, 193, 192, 191, 190, 189, 188, 187, 186, 183,
+ 182, 115, 115, 180, 179, 178, 177, 173, 172, 169,
+ 164, 161, 160, 159, 158, 157, 156, 155, 154, 151,
+ 150, 149, 148, 147, 144, 143, 142, 141, 140, 139,
+ 130, 127, 126, 125, 122, 121, 57, 57, 119, 115,
+
+ 104, 80, 57, 566, 7, 566, 566, 566, 566, 566,
+ 566, 566, 566, 566, 566, 566, 566, 566, 566, 566,
+ 566, 566, 566, 566, 566, 566, 566, 566, 566, 566,
+ 566, 566, 566, 566, 566, 566, 566, 566, 566, 566,
+ 566, 566, 566, 566, 566, 566, 566, 566
} ;
-static yyconst flex_int16_t yy_chk[744] =
+static yyconst flex_int16_t yy_chk[749] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -699,76 +699,76 @@ static yyconst flex_int16_t yy_chk[744] =
4, 4, 4, 4, 20, 4, 28, 4, 4, 4,
4, 9, 9, 23, 11, 11, 26, 46, 20, 31,
- 46, 23, 26, 31, 23, 30, 28, 23, 566, 35,
+ 46, 23, 26, 31, 23, 30, 28, 23, 571, 35,
23, 67, 30, 35, 36, 67, 36, 4, 4, 5,
5, 5, 5, 5, 29, 32, 33, 5, 29, 37,
5, 37, 41, 32, 41, 29, 29, 32, 29, 33,
38, 99, 38, 39, 99, 39, 33, 45, 48, 45,
48, 49, 38, 49, 50, 39, 50, 123, 45, 5,
5, 6, 6, 6, 6, 6, 51, 63, 51, 6,
- 123, 52, 6, 52, 56, 60, 56, 60, 63, 558,
+ 123, 52, 6, 52, 56, 60, 56, 60, 63, 563,
38, 38, 71, 39, 39, 69, 71, 69, 72, 72,
- 555, 95, 79, 85, 50, 50, 79, 85, 95, 292,
+ 560, 95, 79, 85, 50, 50, 79, 85, 95, 292,
97, 6, 6, 97, 102, 107, 194, 107, 102, 194,
108, 97, 108, 109, 292, 109, 97, 110, 112, 110,
- 112, 116, 343, 116, 102, 109, 118, 156, 118, 181,
- 390, 181, 116, 156, 202, 202, 256, 118, 343, 256,
- 181, 356, 393, 393, 522, 402, 390, 554, 356, 552,
- 551, 356, 402, 109, 109, 550, 522, 562, 562, 562,
- 562, 562, 562, 563, 563, 563, 563, 563, 563, 564,
- 564, 564, 565, 565, 547, 565, 565, 565, 567, 546,
- 544, 543, 567, 567, 568, 542, 539, 538, 568, 568,
-
- 569, 569, 537, 569, 569, 569, 570, 570, 536, 570,
- 570, 570, 571, 571, 535, 571, 571, 571, 534, 533,
- 532, 529, 528, 527, 526, 525, 524, 523, 519, 518,
- 517, 515, 514, 513, 511, 507, 506, 504, 503, 500,
- 499, 498, 497, 496, 495, 494, 493, 491, 490, 489,
- 486, 485, 484, 481, 478, 477, 476, 475, 474, 473,
- 470, 469, 468, 467, 466, 465, 464, 463, 462, 461,
- 460, 459, 458, 457, 456, 455, 454, 453, 451, 450,
- 449, 447, 446, 445, 444, 443, 442, 441, 440, 439,
- 437, 435, 434, 433, 432, 431, 430, 427, 426, 425,
-
- 424, 423, 422, 420, 418, 417, 416, 414, 412, 407,
- 406, 405, 404, 403, 401, 400, 399, 398, 397, 396,
- 395, 392, 389, 388, 387, 386, 385, 384, 383, 382,
- 381, 380, 379, 378, 376, 375, 374, 373, 372, 371,
- 370, 369, 367, 366, 365, 364, 363, 361, 360, 359,
- 358, 357, 355, 354, 353, 352, 351, 350, 349, 348,
- 347, 345, 344, 342, 340, 339, 338, 337, 336, 335,
- 334, 333, 332, 331, 330, 329, 328, 326, 325, 323,
- 321, 320, 319, 318, 317, 316, 315, 314, 313, 312,
- 311, 310, 309, 307, 306, 305, 304, 303, 301, 300,
-
- 299, 298, 296, 295, 293, 291, 289, 288, 287, 286,
- 285, 284, 283, 282, 281, 280, 278, 277, 276, 275,
- 274, 273, 272, 271, 269, 268, 267, 266, 265, 264,
- 263, 262, 260, 259, 258, 257, 255, 254, 252, 251,
- 249, 248, 247, 246, 245, 244, 243, 242, 241, 240,
- 239, 238, 235, 234, 233, 232, 231, 230, 229, 228,
- 227, 226, 225, 224, 223, 222, 221, 220, 218, 217,
- 216, 214, 213, 212, 211, 210, 209, 208, 207, 206,
- 205, 203, 201, 200, 199, 198, 197, 196, 195, 193,
- 192, 191, 190, 189, 188, 187, 186, 185, 184, 183,
-
- 182, 180, 179, 178, 177, 176, 175, 174, 173, 172,
- 171, 170, 169, 168, 167, 166, 165, 164, 163, 162,
- 161, 160, 159, 157, 155, 154, 153, 152, 151, 150,
- 149, 148, 147, 146, 145, 144, 143, 142, 141, 140,
- 138, 137, 136, 135, 134, 133, 132, 131, 129, 128,
- 127, 126, 125, 124, 122, 121, 115, 114, 106, 105,
- 104, 103, 101, 100, 98, 96, 94, 93, 91, 90,
- 89, 88, 87, 86, 84, 83, 82, 81, 80, 78,
- 77, 76, 75, 74, 73, 68, 66, 65, 64, 62,
- 61, 57, 55, 53, 44, 34, 24, 15, 7, 561,
-
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 561, 561, 561
+ 112, 116, 559, 116, 102, 109, 118, 156, 118, 181,
+ 344, 181, 116, 156, 202, 202, 392, 118, 256, 256,
+ 181, 357, 256, 395, 395, 527, 344, 557, 357, 404,
+ 556, 357, 392, 109, 109, 555, 404, 527, 567, 567,
+ 567, 567, 567, 567, 568, 568, 568, 568, 568, 568,
+ 569, 569, 569, 570, 570, 552, 570, 570, 570, 572,
+ 551, 549, 548, 572, 572, 573, 547, 544, 543, 573,
+
+ 573, 574, 574, 542, 574, 574, 574, 575, 575, 541,
+ 575, 575, 575, 576, 576, 540, 576, 576, 576, 539,
+ 538, 537, 534, 533, 532, 531, 530, 529, 528, 524,
+ 523, 522, 520, 519, 518, 516, 512, 511, 509, 508,
+ 505, 504, 503, 502, 501, 500, 499, 498, 496, 495,
+ 494, 491, 490, 489, 486, 482, 481, 480, 479, 478,
+ 477, 474, 473, 472, 471, 470, 469, 468, 467, 466,
+ 465, 464, 463, 462, 461, 460, 459, 458, 457, 455,
+ 454, 453, 451, 450, 449, 448, 447, 446, 445, 444,
+ 443, 442, 440, 438, 437, 436, 435, 434, 433, 430,
+
+ 429, 428, 427, 426, 425, 423, 421, 420, 419, 417,
+ 415, 410, 409, 408, 407, 406, 405, 403, 402, 401,
+ 400, 399, 398, 397, 394, 391, 390, 389, 388, 387,
+ 386, 385, 384, 383, 382, 381, 380, 378, 377, 376,
+ 375, 374, 373, 372, 371, 369, 368, 367, 366, 365,
+ 363, 362, 361, 360, 359, 358, 356, 355, 354, 353,
+ 352, 351, 350, 349, 348, 346, 345, 343, 341, 340,
+ 339, 338, 337, 336, 335, 334, 333, 332, 331, 330,
+ 329, 327, 326, 324, 322, 321, 320, 319, 318, 317,
+ 316, 315, 314, 313, 312, 311, 310, 309, 307, 306,
+
+ 305, 304, 303, 301, 300, 299, 298, 296, 295, 293,
+ 291, 289, 288, 287, 286, 285, 284, 283, 282, 281,
+ 280, 278, 277, 276, 275, 274, 273, 272, 271, 269,
+ 268, 267, 266, 265, 264, 263, 262, 260, 259, 258,
+ 257, 255, 254, 252, 251, 249, 248, 247, 246, 245,
+ 244, 243, 242, 241, 240, 239, 238, 235, 234, 233,
+ 232, 231, 230, 229, 228, 227, 226, 225, 224, 223,
+ 222, 221, 220, 218, 217, 216, 214, 213, 212, 211,
+ 210, 209, 208, 207, 206, 205, 203, 201, 200, 199,
+ 198, 197, 196, 195, 193, 192, 191, 190, 189, 188,
+
+ 187, 186, 185, 184, 183, 182, 180, 179, 178, 177,
+ 176, 175, 174, 173, 172, 171, 170, 169, 168, 167,
+ 166, 165, 164, 163, 162, 161, 160, 159, 157, 155,
+ 154, 153, 152, 151, 150, 149, 148, 147, 146, 145,
+ 144, 143, 142, 141, 140, 138, 137, 136, 135, 134,
+ 133, 132, 131, 129, 128, 127, 126, 125, 124, 122,
+ 121, 115, 114, 106, 105, 104, 103, 101, 100, 98,
+ 96, 94, 93, 91, 90, 89, 88, 87, 86, 84,
+ 83, 82, 81, 80, 78, 77, 76, 75, 74, 73,
+ 68, 66, 65, 64, 62, 61, 57, 55, 53, 44,
+
+ 34, 24, 15, 7, 566, 566, 566, 566, 566, 566,
+ 566, 566, 566, 566, 566, 566, 566, 566, 566, 566,
+ 566, 566, 566, 566, 566, 566, 566, 566, 566, 566,
+ 566, 566, 566, 566, 566, 566, 566, 566, 566, 566,
+ 566, 566, 566, 566, 566, 566, 566, 566
} ;
static yy_state_type yy_last_accepting_state;
@@ -1035,13 +1035,13 @@ yy_match:
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 562 )
+ if ( yy_current_state >= 567 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
++yy_cp;
}
- while ( yy_current_state != 561 );
+ while ( yy_current_state != 566 );
yy_cp = (yy_last_accepting_cpos);
yy_current_state = (yy_last_accepting_state);
@@ -1132,152 +1132,152 @@ YY_RULE_SETUP
case 11:
YY_RULE_SETUP
#line 87 "src/cfglexer.ll"
-{ return KW_RAYTRACING; }
+{ return KW_DEBUGLEVEL; }
YY_BREAK
case 12:
YY_RULE_SETUP
-#line 90 "src/cfglexer.ll"
-{ return KW_RESOLUTION; }
+#line 88 "src/cfglexer.ll"
+{ return KW_RAYTRACING; }
YY_BREAK
case 13:
YY_RULE_SETUP
#line 91 "src/cfglexer.ll"
-{ return KW_ANTIALIAS; }
+{ return KW_RESOLUTION; }
YY_BREAK
case 14:
YY_RULE_SETUP
#line 92 "src/cfglexer.ll"
-{ return KW_EYEPOINT; }
+{ return KW_ANTIALIAS; }
YY_BREAK
case 15:
YY_RULE_SETUP
#line 93 "src/cfglexer.ll"
-{ return KW_LOOKAT ; }
+{ return KW_EYEPOINT; }
YY_BREAK
case 16:
YY_RULE_SETUP
#line 94 "src/cfglexer.ll"
-{ return KW_UPVEC ; }
+{ return KW_LOOKAT ; }
YY_BREAK
case 17:
YY_RULE_SETUP
#line 95 "src/cfglexer.ll"
-{ return KW_FOVY; }
+{ return KW_UPVEC ; }
YY_BREAK
case 18:
YY_RULE_SETUP
#line 96 "src/cfglexer.ll"
-{ return KW_ASPECT ; }
+{ return KW_FOVY; }
YY_BREAK
case 19:
YY_RULE_SETUP
#line 97 "src/cfglexer.ll"
-{ return KW_AMBIENCE; }
+{ return KW_ASPECT ; }
YY_BREAK
case 20:
YY_RULE_SETUP
#line 98 "src/cfglexer.ll"
-{ return KW_BACKGROUND; }
+{ return KW_AMBIENCE; }
YY_BREAK
case 21:
YY_RULE_SETUP
#line 99 "src/cfglexer.ll"
-{ return KW_ANISTART; }
+{ return KW_BACKGROUND; }
YY_BREAK
case 22:
YY_RULE_SETUP
#line 100 "src/cfglexer.ll"
-{ return KW_ANIFRAMES; }
+{ return KW_ANISTART; }
YY_BREAK
case 23:
YY_RULE_SETUP
#line 101 "src/cfglexer.ll"
-{ return KW_ANIFRAMETIME; }
+{ return KW_ANIFRAMES; }
YY_BREAK
case 24:
YY_RULE_SETUP
#line 102 "src/cfglexer.ll"
-{ return KW_FRAMESKIP; }
+{ return KW_ANIFRAMETIME; }
YY_BREAK
case 25:
YY_RULE_SETUP
#line 103 "src/cfglexer.ll"
-{ return KW_FILENAME; }
+{ return KW_FRAMESKIP; }
YY_BREAK
case 26:
YY_RULE_SETUP
#line 104 "src/cfglexer.ll"
-{ return KW_PMCAUSTICS; }
+{ return KW_FILENAME; }
YY_BREAK
case 27:
YY_RULE_SETUP
#line 105 "src/cfglexer.ll"
-{ return KW_CAUSTICDIST; }
+{ return KW_PMCAUSTICS; }
YY_BREAK
case 28:
YY_RULE_SETUP
#line 106 "src/cfglexer.ll"
-{ return KW_CAUSTICPHOT; }
+{ return KW_CAUSTICDIST; }
YY_BREAK
case 29:
YY_RULE_SETUP
#line 107 "src/cfglexer.ll"
-{ return KW_SHADOWMAPBIAS; }
+{ return KW_CAUSTICPHOT; }
YY_BREAK
case 30:
YY_RULE_SETUP
#line 108 "src/cfglexer.ll"
-{ return KW_MAXRAYDEPTH; }
+{ return KW_SHADOWMAPBIAS; }
YY_BREAK
case 31:
YY_RULE_SETUP
#line 109 "src/cfglexer.ll"
-{ return KW_TREEMAXDEPTH; }
+{ return KW_MAXRAYDEPTH; }
YY_BREAK
case 32:
YY_RULE_SETUP
#line 110 "src/cfglexer.ll"
-{ return KW_TREEMAXTRIANGLES; }
+{ return KW_TREEMAXDEPTH; }
YY_BREAK
case 33:
YY_RULE_SETUP
#line 111 "src/cfglexer.ll"
-{ return KW_DEBUGPIXEL; }
+{ return KW_TREEMAXTRIANGLES; }
YY_BREAK
case 34:
YY_RULE_SETUP
#line 112 "src/cfglexer.ll"
-{ return KW_TESTMODE; }
+{ return KW_DEBUGPIXEL; }
YY_BREAK
case 35:
YY_RULE_SETUP
#line 113 "src/cfglexer.ll"
-{ return KW_OPENGLATTR; }
+{ return KW_TESTMODE; }
YY_BREAK
case 36:
YY_RULE_SETUP
#line 114 "src/cfglexer.ll"
-{ return KW_BLENDERATTR; }
+{ return KW_OPENGLATTR; }
YY_BREAK
case 37:
YY_RULE_SETUP
-#line 116 "src/cfglexer.ll"
-{ return KW_OBJATTR; /* assign attr to obj */ }
+#line 115 "src/cfglexer.ll"
+{ return KW_BLENDERATTR; }
YY_BREAK
case 38:
YY_RULE_SETUP
#line 117 "src/cfglexer.ll"
-{ BEGIN(ATTR); return KW_ATTRIBUTE; /* global attr list */ }
+{ return KW_OBJATTR; /* assign attr to obj */ }
YY_BREAK
case 39:
YY_RULE_SETUP
#line 118 "src/cfglexer.ll"
-{ BEGIN(ATTR); return KW_DEFINEATTR; /* obj defines new attrs */ }
+{ BEGIN(ATTR); return KW_ATTRIBUTE; /* global attr list */ }
YY_BREAK
case 40:
YY_RULE_SETUP
#line 119 "src/cfglexer.ll"
-{ BEGIN(ATTR); return KW_DEFINEATTR; }
+{ BEGIN(ATTR); return KW_DEFINEATTR; /* obj defines new attrs */ }
YY_BREAK
case 41:
YY_RULE_SETUP
@@ -1286,58 +1286,58 @@ YY_RULE_SETUP
YY_BREAK
case 42:
YY_RULE_SETUP
-#line 122 "src/cfglexer.ll"
-{ return KW_GEOMETRY; }
+#line 121 "src/cfglexer.ll"
+{ BEGIN(ATTR); return KW_DEFINEATTR; }
YY_BREAK
case 43:
YY_RULE_SETUP
#line 123 "src/cfglexer.ll"
-{ return KW_TYPE; }
+{ return KW_GEOMETRY; }
YY_BREAK
case 44:
YY_RULE_SETUP
#line 124 "src/cfglexer.ll"
-{ return KW_GEOTYPE_BOX; }
+{ return KW_TYPE; }
YY_BREAK
case 45:
YY_RULE_SETUP
#line 125 "src/cfglexer.ll"
-{ return KW_GEOTYPE_SPHERE; }
+{ return KW_GEOTYPE_BOX; }
YY_BREAK
case 46:
YY_RULE_SETUP
#line 126 "src/cfglexer.ll"
-{ return KW_GEOTYPE_OBJMODEL; }
+{ return KW_GEOTYPE_SPHERE; }
YY_BREAK
case 47:
YY_RULE_SETUP
#line 127 "src/cfglexer.ll"
-{ return KW_CASTSHADOWS; }
+{ return KW_GEOTYPE_OBJMODEL; }
YY_BREAK
case 48:
YY_RULE_SETUP
#line 128 "src/cfglexer.ll"
-{ return KW_RECEIVESHADOWS ; }
+{ return KW_CASTSHADOWS; }
YY_BREAK
case 49:
YY_RULE_SETUP
#line 129 "src/cfglexer.ll"
-{ return KW_VISIBLE; }
+{ return KW_RECEIVESHADOWS ; }
YY_BREAK
case 50:
YY_RULE_SETUP
#line 130 "src/cfglexer.ll"
-{ return KW_BOX_START; }
+{ return KW_VISIBLE; }
YY_BREAK
case 51:
YY_RULE_SETUP
#line 131 "src/cfglexer.ll"
-{ return KW_BOX_END; }
+{ return KW_BOX_START; }
YY_BREAK
case 52:
YY_RULE_SETUP
#line 132 "src/cfglexer.ll"
-{ return KW_POLY ; }
+{ return KW_BOX_END; }
YY_BREAK
case 53:
YY_RULE_SETUP
@@ -1347,97 +1347,97 @@ YY_RULE_SETUP
case 54:
YY_RULE_SETUP
#line 134 "src/cfglexer.ll"
-{ return KW_NUMVERTICES; }
+{ return KW_POLY ; }
YY_BREAK
case 55:
YY_RULE_SETUP
#line 135 "src/cfglexer.ll"
-{ return KW_VERTEX; }
+{ return KW_NUMVERTICES; }
YY_BREAK
case 56:
YY_RULE_SETUP
#line 136 "src/cfglexer.ll"
-{ return KW_NUMPOLYGONS; }
+{ return KW_VERTEX; }
YY_BREAK
case 57:
YY_RULE_SETUP
#line 137 "src/cfglexer.ll"
-{ return KW_ISOSURF; }
+{ return KW_NUMPOLYGONS; }
YY_BREAK
case 58:
YY_RULE_SETUP
#line 138 "src/cfglexer.ll"
-{ return KW_FILEMODE; }
+{ return KW_ISOSURF; }
YY_BREAK
case 59:
YY_RULE_SETUP
#line 139 "src/cfglexer.ll"
-{ return KW_INVERT; }
+{ return KW_FILEMODE; }
YY_BREAK
case 60:
YY_RULE_SETUP
-#line 141 "src/cfglexer.ll"
-{ return KW_MATERIAL; }
+#line 140 "src/cfglexer.ll"
+{ return KW_INVERT; }
YY_BREAK
case 61:
YY_RULE_SETUP
#line 142 "src/cfglexer.ll"
-{ return KW_MATTYPE_PHONG; }
+{ return KW_MATERIAL; }
YY_BREAK
case 62:
YY_RULE_SETUP
#line 143 "src/cfglexer.ll"
-{ return KW_MATTYPE_BLINN; }
+{ return KW_MATTYPE_PHONG; }
YY_BREAK
case 63:
YY_RULE_SETUP
#line 144 "src/cfglexer.ll"
-{ return KW_NAME; }
+{ return KW_MATTYPE_BLINN; }
YY_BREAK
case 64:
YY_RULE_SETUP
#line 145 "src/cfglexer.ll"
-{ return KW_AMBIENT; }
+{ return KW_NAME; }
YY_BREAK
case 65:
YY_RULE_SETUP
#line 146 "src/cfglexer.ll"
-{ return KW_DIFFUSE; }
+{ return KW_AMBIENT; }
YY_BREAK
case 66:
YY_RULE_SETUP
#line 147 "src/cfglexer.ll"
-{ return KW_SPECULAR; }
+{ return KW_DIFFUSE; }
YY_BREAK
case 67:
YY_RULE_SETUP
#line 148 "src/cfglexer.ll"
-{ return KW_MIRROR; }
+{ return KW_SPECULAR; }
YY_BREAK
case 68:
YY_RULE_SETUP
#line 149 "src/cfglexer.ll"
-{ return KW_TRANSPARENCE; }
+{ return KW_MIRROR; }
YY_BREAK
case 69:
YY_RULE_SETUP
#line 150 "src/cfglexer.ll"
-{ return KW_REFRACINDEX; }
+{ return KW_TRANSPARENCE; }
YY_BREAK
case 70:
YY_RULE_SETUP
#line 151 "src/cfglexer.ll"
-{ return KW_TRANSADDITIVE; }
+{ return KW_REFRACINDEX; }
YY_BREAK
case 71:
YY_RULE_SETUP
#line 152 "src/cfglexer.ll"
-{ return KW_TRANSATTCOL; }
+{ return KW_TRANSADDITIVE; }
YY_BREAK
case 72:
YY_RULE_SETUP
#line 153 "src/cfglexer.ll"
-{ return KW_FRESNEL; }
+{ return KW_TRANSATTCOL; }
YY_BREAK
case 73:
YY_RULE_SETUP
@@ -1446,23 +1446,23 @@ YY_RULE_SETUP
YY_BREAK
case 74:
YY_RULE_SETUP
-#line 156 "src/cfglexer.ll"
-{ return KW_LIGHT; }
+#line 155 "src/cfglexer.ll"
+{ return KW_FRESNEL; }
YY_BREAK
case 75:
YY_RULE_SETUP
#line 157 "src/cfglexer.ll"
-{ return KW_LIGHT_OMNI; }
+{ return KW_LIGHT; }
YY_BREAK
case 76:
YY_RULE_SETUP
#line 158 "src/cfglexer.ll"
-{ return KW_ACTIVE; }
+{ return KW_LIGHT_OMNI; }
YY_BREAK
case 77:
YY_RULE_SETUP
#line 159 "src/cfglexer.ll"
-{ return KW_COLOUR; }
+{ return KW_ACTIVE; }
YY_BREAK
case 78:
YY_RULE_SETUP
@@ -1472,65 +1472,70 @@ YY_RULE_SETUP
case 79:
YY_RULE_SETUP
#line 161 "src/cfglexer.ll"
-{ return KW_POSITION; }
+{ return KW_COLOUR; }
YY_BREAK
case 80:
YY_RULE_SETUP
#line 162 "src/cfglexer.ll"
-{ return KW_CAUSTICPHOTONS; }
+{ return KW_POSITION; }
YY_BREAK
case 81:
YY_RULE_SETUP
#line 163 "src/cfglexer.ll"
-{ return KW_CAUSTICSTRENGTH; }
+{ return KW_CAUSTICPHOTONS; }
YY_BREAK
case 82:
YY_RULE_SETUP
#line 164 "src/cfglexer.ll"
-{ return KW_SHADOWMAP; }
+{ return KW_CAUSTICSTRENGTH; }
YY_BREAK
case 83:
YY_RULE_SETUP
#line 165 "src/cfglexer.ll"
-{ return KW_CAUSTICSMAP; }
+{ return KW_SHADOWMAP; }
YY_BREAK
case 84:
YY_RULE_SETUP
-#line 167 "src/cfglexer.ll"
-{ yy_lval.intValue = 1; return DT_INTEGER; }
+#line 166 "src/cfglexer.ll"
+{ return KW_CAUSTICSMAP; }
YY_BREAK
case 85:
YY_RULE_SETUP
#line 168 "src/cfglexer.ll"
-{ yy_lval.intValue = 0; return DT_INTEGER; }
+{ yy_lval.intValue = 1; return DT_INTEGER; }
YY_BREAK
case 86:
YY_RULE_SETUP
#line 169 "src/cfglexer.ll"
-{ yy_lval.intValue = 1; return DT_INTEGER; }
+{ yy_lval.intValue = 0; return DT_INTEGER; }
YY_BREAK
case 87:
YY_RULE_SETUP
#line 170 "src/cfglexer.ll"
-{ yy_lval.intValue = 0; return DT_INTEGER; }
+{ yy_lval.intValue = 1; return DT_INTEGER; }
YY_BREAK
case 88:
YY_RULE_SETUP
-#line 173 "src/cfglexer.ll"
+#line 171 "src/cfglexer.ll"
+{ yy_lval.intValue = 0; return DT_INTEGER; }
+ YY_BREAK
+case 89:
+YY_RULE_SETUP
+#line 174 "src/cfglexer.ll"
{ // integer number
yy_lval.intValue = atoi( yy_text );
return DT_INTEGER; }
YY_BREAK
-case 89:
+case 90:
YY_RULE_SETUP
-#line 177 "src/cfglexer.ll"
+#line 178 "src/cfglexer.ll"
{ // floating point number
yy_lval.floatValue = atof( yy_text );
return DT_FLOAT; }
YY_BREAK
-case 90:
+case 91:
YY_RULE_SETUP
-#line 181 "src/cfglexer.ll"
+#line 182 "src/cfglexer.ll"
{ /* normal character strings, now also for paths/filenames */
strncpy( charBuffer, yy_text, CHAR_BUFFER_SIZE-2 );
/* get rid of " " */
@@ -1539,11 +1544,6 @@ YY_RULE_SETUP
yy_lval.charValue = charBuffer;
return DT_STRING; }
YY_BREAK
-case 91:
-YY_RULE_SETUP
-#line 189 "src/cfglexer.ll"
-{ /* one line comment */ }
- YY_BREAK
case 92:
YY_RULE_SETUP
#line 190 "src/cfglexer.ll"
@@ -1552,6 +1552,11 @@ YY_RULE_SETUP
case 93:
YY_RULE_SETUP
#line 191 "src/cfglexer.ll"
+{ /* one line comment */ }
+ YY_BREAK
+case 94:
+YY_RULE_SETUP
+#line 192 "src/cfglexer.ll"
{ /* multiline comment */
register int c;
for ( ; ; ) {
@@ -1574,29 +1579,29 @@ YY_RULE_SETUP
} /* multline comment done */
}
YY_BREAK
-case 94:
-/* rule 94 can match eol */
+case 95:
+/* rule 95 can match eol */
YY_RULE_SETUP
-#line 215 "src/cfglexer.ll"
+#line 216 "src/cfglexer.ll"
{ // count line numbers
lineCount++; }
YY_BREAK
-case 95:
+case 96:
YY_RULE_SETUP
-#line 218 "src/cfglexer.ll"
+#line 219 "src/cfglexer.ll"
{ /* do nothing by default... */ }
YY_BREAK
-case 96:
+case 97:
YY_RULE_SETUP
-#line 220 "src/cfglexer.ll"
+#line 221 "src/cfglexer.ll"
{ /*errorOut( "cfgLexer, Line "<<lineCount<<" : Unknown character '"<<(char)yyinput()<<"' " ); xit(1); */ }
YY_BREAK
-case 97:
+case 98:
YY_RULE_SETUP
-#line 223 "src/cfglexer.ll"
+#line 224 "src/cfglexer.ll"
ECHO;
YY_BREAK
-#line 1600 "<stdout>"
+#line 1605 "<stdout>"
case YY_STATE_EOF(INITIAL):
case YY_STATE_EOF(ATTR):
case YY_STATE_EOF(ATTRVALUE):
@@ -1883,7 +1888,7 @@ static int yy_get_next_buffer (void)
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 562 )
+ if ( yy_current_state >= 567 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -1911,11 +1916,11 @@ static int yy_get_next_buffer (void)
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 562 )
+ if ( yy_current_state >= 567 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
- yy_is_jam = (yy_current_state == 561);
+ yy_is_jam = (yy_current_state == 566);
return yy_is_jam ? 0 : yy_current_state;
}
@@ -2561,4 +2566,4 @@ void yy_free (void * ptr )
#undef YY_DECL_IS_OURS
#undef YY_DECL
#endif
-#line 223 "src/cfglexer.ll"
+#line 224 "src/cfglexer.ll"
diff --git a/intern/elbeem/intern/cfgparser.cpp b/intern/elbeem/intern/cfgparser.cpp
index d5f0be48c12..8984fce107c 100644
--- a/intern/elbeem/intern/cfgparser.cpp
+++ b/intern/elbeem/intern/cfgparser.cpp
@@ -1,4 +1,4 @@
-/* A Bison parser, made by GNU Bison 1.875d. */
+/* A Bison parser, made by GNU Bison 2.0. */
/* Skeleton parser for Yacc-like parsing with Bison,
Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
@@ -45,8 +45,7 @@
/* Using locations. */
#define YYLSP_NEEDED 0
-/* If NAME_PREFIX is specified substitute the variables and functions
- names. */
+/* Substitute the variable and function names. */
#define yyparse yy_parse
#define yylex yy_lex
#define yyerror yy_error
@@ -71,99 +70,100 @@
KW_COMPARELBM = 264,
KW_ANIFRAMETIME = 265,
KW_DEBUGMODE = 266,
- KW_P_RELAXTIME = 267,
- KW_P_REYNOLDS = 268,
- KW_P_VISCOSITY = 269,
- KW_P_SOUNDSPEED = 270,
- KW_P_DOMAINSIZE = 271,
- KW_P_FORCE = 272,
- KW_P_TIMELENGTH = 273,
- KW_P_STEPTIME = 274,
- KW_P_TIMEFACTOR = 275,
- KW_P_ANIFRAMETIME = 276,
- KW_P_ANISTART = 277,
- KW_P_SURFACETENSION = 278,
- KW_P_ACTIVATE = 279,
- KW_P_DEACTIVATE = 280,
- KW_P_DENSITY = 281,
- KW_P_CELLSIZE = 282,
- KW_P_GSTAR = 283,
- KW_PFSPATH = 284,
- KW_PARTLINELENGTH = 285,
- KW_PARTICLES = 286,
- KW_FRAMESPERSEC = 287,
- KW_RAYTRACING = 288,
- KW_PAROPEN = 289,
- KW_PARCLOSE = 290,
- KW_FILENAME = 291,
- KW_PMCAUSTICS = 292,
- KW_MAXRAYDEPTH = 293,
- KW_CAUSTICDIST = 294,
- KW_CAUSTICPHOT = 295,
- KW_SHADOWMAPBIAS = 296,
- KW_TREEMAXDEPTH = 297,
- KW_TREEMAXTRIANGLES = 298,
- KW_RESOLUTION = 299,
- KW_ANTIALIAS = 300,
- KW_EYEPOINT = 301,
- KW_ANISTART = 302,
- KW_ANIFRAMES = 303,
- KW_FRAMESKIP = 304,
- KW_LOOKAT = 305,
- KW_UPVEC = 306,
- KW_FOVY = 307,
- KW_ASPECT = 308,
- KW_AMBIENCE = 309,
- KW_BACKGROUND = 310,
- KW_DEBUGPIXEL = 311,
- KW_TESTMODE = 312,
- KW_OPENGLATTR = 313,
- KW_BLENDERATTR = 314,
- KW_ATTRIBUTE = 315,
- KW_OBJATTR = 316,
- KW_EQUALS = 317,
- KW_DEFINEATTR = 318,
- KW_ATTREND = 319,
- KW_GEOMETRY = 320,
- KW_TYPE = 321,
- KW_GEOTYPE_BOX = 322,
- KW_GEOTYPE_FLUID = 323,
- KW_GEOTYPE_OBJMODEL = 324,
- KW_GEOTYPE_SPHERE = 325,
- KW_CASTSHADOWS = 326,
- KW_RECEIVESHADOWS = 327,
- KW_VISIBLE = 328,
- KW_BOX_END = 329,
- KW_BOX_START = 330,
- KW_POLY = 331,
- KW_NUMVERTICES = 332,
- KW_VERTEX = 333,
- KW_NUMPOLYGONS = 334,
- KW_ISOSURF = 335,
- KW_FILEMODE = 336,
- KW_INVERT = 337,
- KW_MATERIAL = 338,
- KW_MATTYPE_PHONG = 339,
- KW_MATTYPE_BLINN = 340,
- KW_NAME = 341,
- KW_AMBIENT = 342,
- KW_DIFFUSE = 343,
- KW_SPECULAR = 344,
- KW_MIRROR = 345,
- KW_TRANSPARENCE = 346,
- KW_REFRACINDEX = 347,
- KW_TRANSADDITIVE = 348,
- KW_TRANSATTCOL = 349,
- KW_FRESNEL = 350,
- KW_LIGHT = 351,
- KW_ACTIVE = 352,
- KW_COLOUR = 353,
- KW_POSITION = 354,
- KW_LIGHT_OMNI = 355,
- KW_CAUSTICPHOTONS = 356,
- KW_CAUSTICSTRENGTH = 357,
- KW_SHADOWMAP = 358,
- KW_CAUSTICSMAP = 359
+ KW_DEBUGLEVEL = 267,
+ KW_P_RELAXTIME = 268,
+ KW_P_REYNOLDS = 269,
+ KW_P_VISCOSITY = 270,
+ KW_P_SOUNDSPEED = 271,
+ KW_P_DOMAINSIZE = 272,
+ KW_P_FORCE = 273,
+ KW_P_TIMELENGTH = 274,
+ KW_P_STEPTIME = 275,
+ KW_P_TIMEFACTOR = 276,
+ KW_P_ANIFRAMETIME = 277,
+ KW_P_ANISTART = 278,
+ KW_P_SURFACETENSION = 279,
+ KW_P_ACTIVATE = 280,
+ KW_P_DEACTIVATE = 281,
+ KW_P_DENSITY = 282,
+ KW_P_CELLSIZE = 283,
+ KW_P_GSTAR = 284,
+ KW_PFSPATH = 285,
+ KW_PARTLINELENGTH = 286,
+ KW_PARTICLES = 287,
+ KW_FRAMESPERSEC = 288,
+ KW_RAYTRACING = 289,
+ KW_PAROPEN = 290,
+ KW_PARCLOSE = 291,
+ KW_FILENAME = 292,
+ KW_PMCAUSTICS = 293,
+ KW_MAXRAYDEPTH = 294,
+ KW_CAUSTICDIST = 295,
+ KW_CAUSTICPHOT = 296,
+ KW_SHADOWMAPBIAS = 297,
+ KW_TREEMAXDEPTH = 298,
+ KW_TREEMAXTRIANGLES = 299,
+ KW_RESOLUTION = 300,
+ KW_ANTIALIAS = 301,
+ KW_EYEPOINT = 302,
+ KW_ANISTART = 303,
+ KW_ANIFRAMES = 304,
+ KW_FRAMESKIP = 305,
+ KW_LOOKAT = 306,
+ KW_UPVEC = 307,
+ KW_FOVY = 308,
+ KW_ASPECT = 309,
+ KW_AMBIENCE = 310,
+ KW_BACKGROUND = 311,
+ KW_DEBUGPIXEL = 312,
+ KW_TESTMODE = 313,
+ KW_OPENGLATTR = 314,
+ KW_BLENDERATTR = 315,
+ KW_ATTRIBUTE = 316,
+ KW_OBJATTR = 317,
+ KW_EQUALS = 318,
+ KW_DEFINEATTR = 319,
+ KW_ATTREND = 320,
+ KW_GEOMETRY = 321,
+ KW_TYPE = 322,
+ KW_GEOTYPE_BOX = 323,
+ KW_GEOTYPE_FLUID = 324,
+ KW_GEOTYPE_OBJMODEL = 325,
+ KW_GEOTYPE_SPHERE = 326,
+ KW_CASTSHADOWS = 327,
+ KW_RECEIVESHADOWS = 328,
+ KW_VISIBLE = 329,
+ KW_BOX_END = 330,
+ KW_BOX_START = 331,
+ KW_POLY = 332,
+ KW_NUMVERTICES = 333,
+ KW_VERTEX = 334,
+ KW_NUMPOLYGONS = 335,
+ KW_ISOSURF = 336,
+ KW_FILEMODE = 337,
+ KW_INVERT = 338,
+ KW_MATERIAL = 339,
+ KW_MATTYPE_PHONG = 340,
+ KW_MATTYPE_BLINN = 341,
+ KW_NAME = 342,
+ KW_AMBIENT = 343,
+ KW_DIFFUSE = 344,
+ KW_SPECULAR = 345,
+ KW_MIRROR = 346,
+ KW_TRANSPARENCE = 347,
+ KW_REFRACINDEX = 348,
+ KW_TRANSADDITIVE = 349,
+ KW_TRANSATTCOL = 350,
+ KW_FRESNEL = 351,
+ KW_LIGHT = 352,
+ KW_ACTIVE = 353,
+ KW_COLOUR = 354,
+ KW_POSITION = 355,
+ KW_LIGHT_OMNI = 356,
+ KW_CAUSTICPHOTONS = 357,
+ KW_CAUSTICSTRENGTH = 358,
+ KW_SHADOWMAP = 359,
+ KW_CAUSTICSMAP = 360
};
#endif
#define DT_INTEGER 258
@@ -175,99 +175,100 @@
#define KW_COMPARELBM 264
#define KW_ANIFRAMETIME 265
#define KW_DEBUGMODE 266
-#define KW_P_RELAXTIME 267
-#define KW_P_REYNOLDS 268
-#define KW_P_VISCOSITY 269
-#define KW_P_SOUNDSPEED 270
-#define KW_P_DOMAINSIZE 271
-#define KW_P_FORCE 272
-#define KW_P_TIMELENGTH 273
-#define KW_P_STEPTIME 274
-#define KW_P_TIMEFACTOR 275
-#define KW_P_ANIFRAMETIME 276
-#define KW_P_ANISTART 277
-#define KW_P_SURFACETENSION 278
-#define KW_P_ACTIVATE 279
-#define KW_P_DEACTIVATE 280
-#define KW_P_DENSITY 281
-#define KW_P_CELLSIZE 282
-#define KW_P_GSTAR 283
-#define KW_PFSPATH 284
-#define KW_PARTLINELENGTH 285
-#define KW_PARTICLES 286
-#define KW_FRAMESPERSEC 287
-#define KW_RAYTRACING 288
-#define KW_PAROPEN 289
-#define KW_PARCLOSE 290
-#define KW_FILENAME 291
-#define KW_PMCAUSTICS 292
-#define KW_MAXRAYDEPTH 293
-#define KW_CAUSTICDIST 294
-#define KW_CAUSTICPHOT 295
-#define KW_SHADOWMAPBIAS 296
-#define KW_TREEMAXDEPTH 297
-#define KW_TREEMAXTRIANGLES 298
-#define KW_RESOLUTION 299
-#define KW_ANTIALIAS 300
-#define KW_EYEPOINT 301
-#define KW_ANISTART 302
-#define KW_ANIFRAMES 303
-#define KW_FRAMESKIP 304
-#define KW_LOOKAT 305
-#define KW_UPVEC 306
-#define KW_FOVY 307
-#define KW_ASPECT 308
-#define KW_AMBIENCE 309
-#define KW_BACKGROUND 310
-#define KW_DEBUGPIXEL 311
-#define KW_TESTMODE 312
-#define KW_OPENGLATTR 313
-#define KW_BLENDERATTR 314
-#define KW_ATTRIBUTE 315
-#define KW_OBJATTR 316
-#define KW_EQUALS 317
-#define KW_DEFINEATTR 318
-#define KW_ATTREND 319
-#define KW_GEOMETRY 320
-#define KW_TYPE 321
-#define KW_GEOTYPE_BOX 322
-#define KW_GEOTYPE_FLUID 323
-#define KW_GEOTYPE_OBJMODEL 324
-#define KW_GEOTYPE_SPHERE 325
-#define KW_CASTSHADOWS 326
-#define KW_RECEIVESHADOWS 327
-#define KW_VISIBLE 328
-#define KW_BOX_END 329
-#define KW_BOX_START 330
-#define KW_POLY 331
-#define KW_NUMVERTICES 332
-#define KW_VERTEX 333
-#define KW_NUMPOLYGONS 334
-#define KW_ISOSURF 335
-#define KW_FILEMODE 336
-#define KW_INVERT 337
-#define KW_MATERIAL 338
-#define KW_MATTYPE_PHONG 339
-#define KW_MATTYPE_BLINN 340
-#define KW_NAME 341
-#define KW_AMBIENT 342
-#define KW_DIFFUSE 343
-#define KW_SPECULAR 344
-#define KW_MIRROR 345
-#define KW_TRANSPARENCE 346
-#define KW_REFRACINDEX 347
-#define KW_TRANSADDITIVE 348
-#define KW_TRANSATTCOL 349
-#define KW_FRESNEL 350
-#define KW_LIGHT 351
-#define KW_ACTIVE 352
-#define KW_COLOUR 353
-#define KW_POSITION 354
-#define KW_LIGHT_OMNI 355
-#define KW_CAUSTICPHOTONS 356
-#define KW_CAUSTICSTRENGTH 357
-#define KW_SHADOWMAP 358
-#define KW_CAUSTICSMAP 359
+#define KW_DEBUGLEVEL 267
+#define KW_P_RELAXTIME 268
+#define KW_P_REYNOLDS 269
+#define KW_P_VISCOSITY 270
+#define KW_P_SOUNDSPEED 271
+#define KW_P_DOMAINSIZE 272
+#define KW_P_FORCE 273
+#define KW_P_TIMELENGTH 274
+#define KW_P_STEPTIME 275
+#define KW_P_TIMEFACTOR 276
+#define KW_P_ANIFRAMETIME 277
+#define KW_P_ANISTART 278
+#define KW_P_SURFACETENSION 279
+#define KW_P_ACTIVATE 280
+#define KW_P_DEACTIVATE 281
+#define KW_P_DENSITY 282
+#define KW_P_CELLSIZE 283
+#define KW_P_GSTAR 284
+#define KW_PFSPATH 285
+#define KW_PARTLINELENGTH 286
+#define KW_PARTICLES 287
+#define KW_FRAMESPERSEC 288
+#define KW_RAYTRACING 289
+#define KW_PAROPEN 290
+#define KW_PARCLOSE 291
+#define KW_FILENAME 292
+#define KW_PMCAUSTICS 293
+#define KW_MAXRAYDEPTH 294
+#define KW_CAUSTICDIST 295
+#define KW_CAUSTICPHOT 296
+#define KW_SHADOWMAPBIAS 297
+#define KW_TREEMAXDEPTH 298
+#define KW_TREEMAXTRIANGLES 299
+#define KW_RESOLUTION 300
+#define KW_ANTIALIAS 301
+#define KW_EYEPOINT 302
+#define KW_ANISTART 303
+#define KW_ANIFRAMES 304
+#define KW_FRAMESKIP 305
+#define KW_LOOKAT 306
+#define KW_UPVEC 307
+#define KW_FOVY 308
+#define KW_ASPECT 309
+#define KW_AMBIENCE 310
+#define KW_BACKGROUND 311
+#define KW_DEBUGPIXEL 312
+#define KW_TESTMODE 313
+#define KW_OPENGLATTR 314
+#define KW_BLENDERATTR 315
+#define KW_ATTRIBUTE 316
+#define KW_OBJATTR 317
+#define KW_EQUALS 318
+#define KW_DEFINEATTR 319
+#define KW_ATTREND 320
+#define KW_GEOMETRY 321
+#define KW_TYPE 322
+#define KW_GEOTYPE_BOX 323
+#define KW_GEOTYPE_FLUID 324
+#define KW_GEOTYPE_OBJMODEL 325
+#define KW_GEOTYPE_SPHERE 326
+#define KW_CASTSHADOWS 327
+#define KW_RECEIVESHADOWS 328
+#define KW_VISIBLE 329
+#define KW_BOX_END 330
+#define KW_BOX_START 331
+#define KW_POLY 332
+#define KW_NUMVERTICES 333
+#define KW_VERTEX 334
+#define KW_NUMPOLYGONS 335
+#define KW_ISOSURF 336
+#define KW_FILEMODE 337
+#define KW_INVERT 338
+#define KW_MATERIAL 339
+#define KW_MATTYPE_PHONG 340
+#define KW_MATTYPE_BLINN 341
+#define KW_NAME 342
+#define KW_AMBIENT 343
+#define KW_DIFFUSE 344
+#define KW_SPECULAR 345
+#define KW_MIRROR 346
+#define KW_TRANSPARENCE 347
+#define KW_REFRACINDEX 348
+#define KW_TRANSADDITIVE 349
+#define KW_TRANSATTCOL 350
+#define KW_FRESNEL 351
+#define KW_LIGHT 352
+#define KW_ACTIVE 353
+#define KW_COLOUR 354
+#define KW_POSITION 355
+#define KW_LIGHT_OMNI 356
+#define KW_CAUSTICPHOTONS 357
+#define KW_CAUSTICSTRENGTH 358
+#define KW_SHADOWMAP 359
+#define KW_CAUSTICSMAP 360
@@ -307,11 +308,9 @@
#include "ntl_lightobject.h"
#include "ntl_material.h"
-#include "ntl_geometrybox.h"
-#include "ntl_geometrysphere.h"
#include "ntl_geometrymodel.h"
#include "globals.h"
-
+
/* global variables */
static map<string,AttributeList*> attrs; /* global attribute storage */
vector<string> currentAttrValue; /* build string vector */
@@ -327,13 +326,17 @@
/* geometry initialization checks */
ntlGeometryClass *currentGeoClass;
ntlGeometryObject *currentGeoObj;
- ntlGeometryBox *currentGeometryBox;
- ntlGeometrySphere *currentGeometrySphere;
SimulationObject *currentGeometrySim;
ntlGeometryObjModel *currentGeometryModel;
AttributeList *currentAttrib;
string currentAttrName, currentAttribAddName;
+#ifndef ELBEEM_BLENDER
+#include "ntl_geometrybox.h"
+#include "ntl_geometrysphere.h"
+ ntlGeometryBox *currentGeometryBox;
+#endif //ELBEEM_BLENDER
+
/* material init checks */
ntlMaterial *currentMaterial;
@@ -353,14 +356,14 @@
#endif
#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-#line 85 "src/cfgparser.yy"
+#line 87 "src/cfgparser.yy"
typedef union YYSTYPE {
int intValue;
float floatValue;
char *charValue;
} YYSTYPE;
-/* Line 191 of yacc.c. */
-#line 364 "bld-std-gcc40/src/cfgparser.cpp"
+/* Line 190 of yacc.c. */
+#line 367 "bld-std-gcc40/src/cfgparser.cpp"
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
# define YYSTYPE_IS_TRIVIAL 1
@@ -371,8 +374,8 @@ typedef union YYSTYPE {
/* Copy the second part of user declarations. */
-/* Line 214 of yacc.c. */
-#line 376 "bld-std-gcc40/src/cfgparser.cpp"
+/* Line 213 of yacc.c. */
+#line 379 "bld-std-gcc40/src/cfgparser.cpp"
#if ! defined (yyoverflow) || YYERROR_VERBOSE
@@ -387,14 +390,10 @@ typedef union YYSTYPE {
# ifdef YYSTACK_USE_ALLOCA
# if YYSTACK_USE_ALLOCA
-# define YYSTACK_ALLOC alloca
-# endif
-# else
-# if defined (alloca) || defined (_ALLOCA_H)
-# define YYSTACK_ALLOC alloca
-# else
# ifdef __GNUC__
# define YYSTACK_ALLOC __builtin_alloca
+# else
+# define YYSTACK_ALLOC alloca
# endif
# endif
# endif
@@ -476,22 +475,22 @@ union yyalloc
#endif
/* YYFINAL -- State number of the termination state. */
-#define YYFINAL 12
+#define YYFINAL 15
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 278
+#define YYLAST 277
/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 105
+#define YYNTOKENS 106
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 77
+#define YYNNTS 78
/* YYNRULES -- Number of rules. */
-#define YYNRULES 136
+#define YYNRULES 138
/* YYNRULES -- Number of states. */
-#define YYNSTATES 237
+#define YYNSTATES 240
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
-#define YYMAXUTOK 359
+#define YYMAXUTOK 360
#define YYTRANSLATE(YYX) \
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -534,7 +533,8 @@ static const unsigned char yytranslate[] =
65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
- 95, 96, 97, 98, 99, 100, 101, 102, 103, 104
+ 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
+ 105
};
#if YYDEBUG
@@ -542,82 +542,83 @@ static const unsigned char yytranslate[] =
YYRHS. */
static const unsigned short int yyprhs[] =
{
- 0, 0, 3, 6, 8, 10, 12, 14, 17, 22,
- 25, 27, 29, 31, 33, 35, 37, 39, 41, 43,
- 45, 47, 49, 51, 53, 55, 57, 59, 61, 63,
- 65, 67, 69, 71, 73, 75, 77, 80, 83, 86,
- 89, 93, 96, 101, 106, 111, 114, 117, 122, 127,
- 130, 133, 136, 139, 143, 146, 149, 152, 159, 162,
- 164, 166, 168, 170, 172, 174, 177, 180, 185, 190,
- 191, 199, 202, 204, 206, 208, 210, 212, 214, 216,
- 218, 220, 222, 224, 226, 228, 230, 232, 235, 238,
- 241, 244, 247, 252, 257, 260, 265, 272, 275, 277,
- 279, 281, 283, 285, 287, 289, 291, 293, 295, 297,
- 299, 301, 304, 309, 314, 318, 321, 324, 327, 330,
- 335, 338, 339, 346, 349, 351, 352, 353, 360, 363,
- 365, 367, 369, 371, 373, 375, 377
+ 0, 0, 3, 6, 8, 10, 12, 14, 16, 19,
+ 22, 27, 30, 32, 34, 36, 38, 40, 42, 44,
+ 46, 48, 50, 52, 54, 56, 58, 60, 62, 64,
+ 66, 68, 70, 72, 74, 76, 78, 80, 82, 85,
+ 88, 91, 94, 98, 101, 106, 111, 116, 119, 122,
+ 127, 132, 135, 138, 141, 144, 148, 151, 154, 157,
+ 164, 167, 169, 171, 173, 175, 177, 179, 182, 185,
+ 190, 195, 196, 204, 207, 209, 211, 213, 215, 217,
+ 219, 221, 223, 225, 227, 229, 231, 233, 235, 237,
+ 240, 243, 246, 249, 252, 257, 262, 265, 270, 277,
+ 280, 282, 284, 286, 288, 290, 292, 294, 296, 298,
+ 300, 302, 304, 306, 309, 314, 319, 323, 326, 329,
+ 332, 335, 340, 343, 344, 351, 354, 356, 357, 358,
+ 365, 368, 370, 372, 374, 376, 378, 380, 382
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
static const short int yyrhs[] =
{
- 106, 0, -1, 106, 107, -1, 107, -1, 109, -1,
- 169, -1, 108, -1, 11, 3, -1, 33, 34, 110,
- 35, -1, 110, 111, -1, 111, -1, 114, -1, 112,
- -1, 113, -1, 115, -1, 116, -1, 117, -1, 118,
- -1, 119, -1, 120, -1, 121, -1, 122, -1, 123,
- -1, 124, -1, 125, -1, 126, -1, 127, -1, 128,
- -1, 129, -1, 130, -1, 131, -1, 132, -1, 133,
- -1, 141, -1, 172, -1, 155, -1, 47, 180, -1,
- 10, 180, -1, 48, 179, -1, 49, 181, -1, 44,
- 179, 179, -1, 45, 3, -1, 46, 178, 178, 178,
- -1, 50, 178, 178, 178, -1, 51, 178, 178, 178,
- -1, 52, 178, -1, 53, 178, -1, 54, 178, 178,
- 178, -1, 55, 178, 178, 178, -1, 36, 5, -1,
- 42, 179, -1, 43, 179, -1, 38, 179, -1, 56,
- 3, 3, -1, 57, 181, -1, 58, 5, -1, 59,
- 5, -1, 96, 34, 66, 135, 134, 35, -1, 134,
- 136, -1, 136, -1, 100, -1, 137, -1, 138, -1,
- 139, -1, 140, -1, 97, 181, -1, 71, 181, -1,
- 98, 178, 178, 178, -1, 99, 178, 178, 178, -1,
- -1, 65, 34, 66, 144, 142, 143, 35, -1, 143,
- 145, -1, 145, -1, 67, -1, 70, -1, 69, -1,
- 8, -1, 9, -1, 146, -1, 147, -1, 148, -1,
- 149, -1, 150, -1, 151, -1, 152, -1, 153, -1,
- 154, -1, 86, 5, -1, 83, 5, -1, 71, 181,
- -1, 72, 181, -1, 73, 181, -1, 75, 178, 178,
- 178, -1, 74, 178, 178, 178, -1, 61, 5, -1,
- 63, 34, 171, 35, -1, 83, 34, 66, 157, 156,
- 35, -1, 156, 158, -1, 158, -1, 84, -1, 85,
- -1, 159, -1, 160, -1, 161, -1, 162, -1, 163,
- -1, 165, -1, 164, -1, 166, -1, 167, -1, 168,
- -1, 86, 5, -1, 87, 176, 176, 176, -1, 88,
- 176, 176, 176, -1, 89, 178, 178, -1, 90, 177,
- -1, 91, 177, -1, 92, 178, -1, 93, 177, -1,
- 94, 178, 178, 178, -1, 95, 180, -1, -1, 60,
- 6, 34, 170, 171, 35, -1, 171, 172, -1, 172,
- -1, -1, -1, 6, 62, 173, 175, 174, 64, -1,
- 175, 7, -1, 7, -1, 177, -1, 178, -1, 4,
- -1, 3, -1, 3, -1, 3, -1, 3, -1
+ 107, 0, -1, 107, 108, -1, 108, -1, 111, -1,
+ 171, -1, 109, -1, 110, -1, 11, 3, -1, 12,
+ 3, -1, 34, 35, 112, 36, -1, 112, 113, -1,
+ 113, -1, 116, -1, 114, -1, 115, -1, 117, -1,
+ 118, -1, 119, -1, 120, -1, 121, -1, 122, -1,
+ 123, -1, 124, -1, 125, -1, 126, -1, 127, -1,
+ 128, -1, 129, -1, 130, -1, 131, -1, 132, -1,
+ 133, -1, 134, -1, 135, -1, 143, -1, 174, -1,
+ 157, -1, 48, 182, -1, 10, 182, -1, 49, 181,
+ -1, 50, 183, -1, 45, 181, 181, -1, 46, 3,
+ -1, 47, 180, 180, 180, -1, 51, 180, 180, 180,
+ -1, 52, 180, 180, 180, -1, 53, 180, -1, 54,
+ 180, -1, 55, 180, 180, 180, -1, 56, 180, 180,
+ 180, -1, 37, 5, -1, 43, 181, -1, 44, 181,
+ -1, 39, 181, -1, 57, 3, 3, -1, 58, 183,
+ -1, 59, 5, -1, 60, 5, -1, 97, 35, 67,
+ 137, 136, 36, -1, 136, 138, -1, 138, -1, 101,
+ -1, 139, -1, 140, -1, 141, -1, 142, -1, 98,
+ 183, -1, 72, 183, -1, 99, 180, 180, 180, -1,
+ 100, 180, 180, 180, -1, -1, 66, 35, 67, 146,
+ 144, 145, 36, -1, 145, 147, -1, 147, -1, 68,
+ -1, 71, -1, 70, -1, 8, -1, 9, -1, 148,
+ -1, 149, -1, 150, -1, 151, -1, 152, -1, 153,
+ -1, 154, -1, 155, -1, 156, -1, 87, 5, -1,
+ 84, 5, -1, 72, 183, -1, 73, 183, -1, 74,
+ 183, -1, 76, 180, 180, 180, -1, 75, 180, 180,
+ 180, -1, 62, 5, -1, 64, 35, 173, 36, -1,
+ 84, 35, 67, 159, 158, 36, -1, 158, 160, -1,
+ 160, -1, 85, -1, 86, -1, 161, -1, 162, -1,
+ 163, -1, 164, -1, 165, -1, 167, -1, 166, -1,
+ 168, -1, 169, -1, 170, -1, 87, 5, -1, 88,
+ 178, 178, 178, -1, 89, 178, 178, 178, -1, 90,
+ 180, 180, -1, 91, 179, -1, 92, 179, -1, 93,
+ 180, -1, 94, 179, -1, 95, 180, 180, 180, -1,
+ 96, 182, -1, -1, 61, 6, 35, 172, 173, 36,
+ -1, 173, 174, -1, 174, -1, -1, -1, 6, 63,
+ 175, 177, 176, 65, -1, 177, 7, -1, 7, -1,
+ 179, -1, 180, -1, 4, -1, 3, -1, 3, -1,
+ 3, -1, 3, -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const unsigned short int yyrline[] =
{
- 0, 144, 144, 145, 148, 149, 150, 154, 164, 165,
- 165, 168, 169, 170, 171, 173, 174, 175, 176, 177,
- 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
- 188, 189, 191, 192, 193, 194, 199, 203, 208, 212,
- 218, 222, 226, 230, 234, 238, 242, 246, 250, 254,
- 258, 262, 266, 270, 274, 278, 283, 292, 303, 304,
- 307, 315, 316, 317, 318, 322, 327, 332, 337, 355,
- 354, 374, 375, 378, 383, 388, 393, 399, 411, 412,
- 413, 414, 415, 416, 417, 418, 419, 424, 429, 435,
- 441, 447, 452, 464, 477, 483, 493, 504, 505, 508,
- 513, 517, 518, 519, 520, 521, 522, 523, 524, 525,
- 526, 531, 536, 541, 546, 552, 557, 562, 567, 572,
- 577, 588, 588, 598, 598, 601, 602, 601, 609, 612,
- 622, 625, 637, 639, 645, 656, 668
+ 0, 146, 146, 147, 150, 151, 152, 153, 157, 160,
+ 175, 176, 176, 179, 180, 181, 182, 184, 185, 186,
+ 187, 188, 189, 190, 191, 192, 193, 194, 195, 196,
+ 197, 198, 199, 200, 202, 203, 204, 205, 210, 214,
+ 219, 223, 229, 233, 237, 241, 245, 249, 253, 257,
+ 261, 265, 269, 273, 277, 281, 285, 289, 294, 303,
+ 314, 315, 318, 326, 327, 328, 329, 333, 338, 343,
+ 348, 366, 365, 386, 387, 390, 399, 407, 412, 418,
+ 430, 431, 432, 433, 434, 435, 436, 437, 438, 443,
+ 448, 454, 460, 466, 471, 486, 502, 508, 518, 529,
+ 530, 533, 538, 542, 543, 544, 545, 546, 547, 548,
+ 549, 550, 551, 556, 561, 566, 571, 577, 582, 587,
+ 592, 597, 602, 613, 613, 623, 623, 626, 627, 626,
+ 634, 637, 647, 650, 662, 664, 670, 681, 693
};
#endif
@@ -628,9 +629,9 @@ static const char *const yytname[] =
{
"$end", "error", "$undefined", "DT_INTEGER", "DT_FLOAT", "DT_STRING",
"DT_ATTRNAME", "DT_ATTRVALUE", "KW_LBMSIM", "KW_COMPARELBM",
- "KW_ANIFRAMETIME", "KW_DEBUGMODE", "KW_P_RELAXTIME", "KW_P_REYNOLDS",
- "KW_P_VISCOSITY", "KW_P_SOUNDSPEED", "KW_P_DOMAINSIZE", "KW_P_FORCE",
- "KW_P_TIMELENGTH", "KW_P_STEPTIME", "KW_P_TIMEFACTOR",
+ "KW_ANIFRAMETIME", "KW_DEBUGMODE", "KW_DEBUGLEVEL", "KW_P_RELAXTIME",
+ "KW_P_REYNOLDS", "KW_P_VISCOSITY", "KW_P_SOUNDSPEED", "KW_P_DOMAINSIZE",
+ "KW_P_FORCE", "KW_P_TIMELENGTH", "KW_P_STEPTIME", "KW_P_TIMEFACTOR",
"KW_P_ANIFRAMETIME", "KW_P_ANISTART", "KW_P_SURFACETENSION",
"KW_P_ACTIVATE", "KW_P_DEACTIVATE", "KW_P_DENSITY", "KW_P_CELLSIZE",
"KW_P_GSTAR", "KW_PFSPATH", "KW_PARTLINELENGTH", "KW_PARTICLES",
@@ -653,12 +654,12 @@ static const char *const yytname[] =
"KW_POSITION", "KW_LIGHT_OMNI", "KW_CAUSTICPHOTONS",
"KW_CAUSTICSTRENGTH", "KW_SHADOWMAP", "KW_CAUSTICSMAP", "$accept",
"desc_line", "desc_expression", "toggledebug_expression",
- "raytrace_section", "raytrace_line", "raytrace_expression",
- "anistart_expression", "aniframetime_expression", "aniframes_expression",
- "frameskip_expression", "resolution_expression", "antialias_expression",
- "eyepoint_expression", "lookat_expression", "upvec_expression",
- "fovy_expression", "aspect_expression", "ambience_expression",
- "background_expression", "filename_expression",
+ "setdebuglevel_expression", "raytrace_section", "raytrace_line",
+ "raytrace_expression", "anistart_expression", "aniframetime_expression",
+ "aniframes_expression", "frameskip_expression", "resolution_expression",
+ "antialias_expression", "eyepoint_expression", "lookat_expression",
+ "upvec_expression", "fovy_expression", "aspect_expression",
+ "ambience_expression", "background_expression", "filename_expression",
"treemaxdepth_expression", "treemaxtriangles_expression",
"maxraydepth_expression", "debugpixel_expression", "testmode_expression",
"openglattr_expr", "blenderattr_expr", "light_expression",
@@ -700,46 +701,46 @@ static const unsigned short int yytoknum[] =
325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
- 355, 356, 357, 358, 359
+ 355, 356, 357, 358, 359, 360
};
# endif
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const unsigned char yyr1[] =
{
- 0, 105, 106, 106, 107, 107, 107, 108, 109, 110,
- 110, 111, 111, 111, 111, 111, 111, 111, 111, 111,
- 111, 111, 111, 111, 111, 111, 111, 111, 111, 111,
- 111, 111, 111, 111, 111, 111, 112, 113, 114, 115,
+ 0, 106, 107, 107, 108, 108, 108, 108, 109, 110,
+ 111, 112, 112, 113, 113, 113, 113, 113, 113, 113,
+ 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
+ 113, 113, 113, 113, 113, 113, 113, 113, 114, 115,
116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
- 126, 127, 128, 129, 130, 131, 132, 133, 134, 134,
- 135, 136, 136, 136, 136, 137, 138, 139, 140, 142,
- 141, 143, 143, 144, 144, 144, 144, 144, 145, 145,
- 145, 145, 145, 145, 145, 145, 145, 146, 147, 148,
- 149, 150, 151, 152, 153, 154, 155, 156, 156, 157,
- 157, 158, 158, 158, 158, 158, 158, 158, 158, 158,
- 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
- 168, 170, 169, 171, 171, 173, 174, 172, 175, 175,
- 176, 177, 178, 178, 179, 180, 181
+ 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
+ 136, 136, 137, 138, 138, 138, 138, 139, 140, 141,
+ 142, 144, 143, 145, 145, 146, 146, 146, 146, 146,
+ 147, 147, 147, 147, 147, 147, 147, 147, 147, 148,
+ 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
+ 158, 159, 159, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 161, 162, 163, 164, 165, 166, 167,
+ 168, 169, 170, 172, 171, 173, 173, 175, 176, 174,
+ 177, 177, 178, 179, 180, 180, 181, 182, 183
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
static const unsigned char yyr2[] =
{
- 0, 2, 2, 1, 1, 1, 1, 2, 4, 2,
+ 0, 2, 2, 1, 1, 1, 1, 1, 2, 2,
+ 4, 2, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2,
+ 2, 2, 3, 2, 4, 4, 4, 2, 2, 4,
+ 4, 2, 2, 2, 2, 3, 2, 2, 2, 6,
+ 2, 1, 1, 1, 1, 1, 1, 2, 2, 4,
+ 4, 0, 7, 2, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
+ 2, 2, 2, 2, 4, 4, 2, 4, 6, 2,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 2, 2, 2, 2,
- 3, 2, 4, 4, 4, 2, 2, 4, 4, 2,
- 2, 2, 2, 3, 2, 2, 2, 6, 2, 1,
- 1, 1, 1, 1, 1, 2, 2, 4, 4, 0,
- 7, 2, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 2, 2, 2,
- 2, 2, 4, 4, 2, 4, 6, 2, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 2, 4, 4, 3, 2, 2, 2, 2, 4,
- 2, 0, 6, 2, 1, 0, 0, 6, 2, 1,
- 1, 1, 1, 1, 1, 1, 1
+ 1, 1, 1, 2, 4, 4, 3, 2, 2, 2,
+ 2, 4, 2, 0, 6, 2, 1, 0, 0, 6,
+ 2, 1, 1, 1, 1, 1, 1, 1, 1
};
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
@@ -747,87 +748,87 @@ static const unsigned char yyr2[] =
means the default is an error. */
static const unsigned char yydefact[] =
{
- 0, 0, 0, 0, 0, 3, 6, 4, 5, 7,
- 0, 0, 1, 2, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 3, 6, 7, 4,
+ 5, 8, 9, 0, 0, 1, 2, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 12, 14, 15, 13, 16, 17, 18,
+ 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
+ 29, 30, 31, 32, 33, 34, 35, 37, 36, 123,
+ 127, 137, 39, 51, 136, 54, 52, 53, 0, 43,
+ 135, 134, 0, 38, 40, 138, 41, 0, 0, 47,
+ 48, 0, 0, 0, 56, 57, 58, 0, 0, 0,
+ 10, 11, 0, 0, 42, 0, 0, 0, 0, 0,
+ 55, 0, 0, 0, 0, 126, 131, 128, 44, 45,
+ 46, 49, 50, 78, 79, 75, 77, 76, 71, 101,
+ 102, 0, 62, 0, 124, 125, 130, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 10, 12, 13, 11, 14, 15, 16, 17, 18, 19,
- 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
- 30, 31, 32, 33, 35, 34, 121, 125, 135, 37,
- 49, 134, 52, 50, 51, 0, 41, 133, 132, 0,
- 36, 38, 136, 39, 0, 0, 45, 46, 0, 0,
- 0, 54, 55, 56, 0, 0, 0, 8, 9, 0,
- 0, 40, 0, 0, 0, 0, 0, 53, 0, 0,
- 0, 0, 124, 129, 126, 42, 43, 44, 47, 48,
- 76, 77, 73, 75, 74, 69, 99, 100, 0, 60,
- 0, 122, 123, 128, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 98, 101, 102,
- 103, 104, 105, 107, 106, 108, 109, 110, 0, 0,
- 0, 0, 0, 59, 61, 62, 63, 64, 127, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,
- 78, 79, 80, 81, 82, 83, 84, 85, 86, 111,
- 0, 130, 131, 0, 0, 115, 116, 117, 118, 0,
- 120, 96, 97, 66, 65, 0, 0, 57, 58, 94,
- 0, 89, 90, 91, 0, 0, 88, 87, 70, 71,
- 0, 0, 114, 0, 0, 0, 0, 0, 0, 112,
- 113, 119, 67, 68, 95, 93, 92
+ 100, 103, 104, 105, 106, 107, 109, 108, 110, 111,
+ 112, 0, 0, 0, 0, 0, 61, 63, 64, 65,
+ 66, 129, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 74, 80, 81, 82, 83, 84, 85, 86,
+ 87, 88, 113, 0, 132, 133, 0, 0, 117, 118,
+ 119, 120, 0, 122, 98, 99, 68, 67, 0, 0,
+ 59, 60, 96, 0, 91, 92, 93, 0, 0, 90,
+ 89, 72, 73, 0, 0, 116, 0, 0, 0, 0,
+ 0, 0, 114, 115, 121, 69, 70, 97, 95, 94
};
/* YYDEFGOTO[NTERM-NUM]. */
static const short int yydefgoto[] =
{
- -1, 4, 5, 6, 7, 39, 40, 41, 42, 43,
- 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
- 54, 55, 56, 57, 58, 59, 60, 61, 62, 162,
- 130, 163, 164, 165, 166, 167, 63, 135, 178, 125,
- 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
- 64, 146, 128, 147, 148, 149, 150, 151, 152, 153,
- 154, 155, 156, 157, 8, 99, 111, 65, 100, 134,
- 114, 190, 191, 192, 72, 69, 83
+ -1, 5, 6, 7, 8, 9, 42, 43, 44, 45,
+ 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
+ 165, 133, 166, 167, 168, 169, 170, 66, 138, 181,
+ 128, 182, 183, 184, 185, 186, 187, 188, 189, 190,
+ 191, 67, 149, 131, 150, 151, 152, 153, 154, 155,
+ 156, 157, 158, 159, 160, 10, 102, 114, 68, 103,
+ 137, 117, 193, 194, 195, 75, 72, 86
};
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
-#define YYPACT_NINF -111
+#define YYPACT_NINF -115
static const short int yypact[] =
{
- 31, 10, -18, 22, 12, -111, -111, -111, -111, -111,
- 172, -2, -111, -111, -26, 41, 45, 43, 43, 43,
- 43, 48, 21, 41, 43, 51, 21, 21, 21, 21,
- 21, 21, 55, 51, 54, 60, 19, 34, 35, 50,
- -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
- -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
- -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
- -111, -111, -111, -111, -111, 43, -111, -111, -111, 21,
- -111, -111, -111, -111, 21, 21, -111, -111, 21, 21,
- 67, -111, -111, -111, -11, 5, 23, -111, -111, 81,
- 83, -111, 21, 21, 21, 21, 21, -111, 9, -50,
- 11, 8, -111, -111, 105, -111, -111, -111, -111, -111,
- -111, -111, -111, -111, -111, -111, -111, -111, 183, -111,
- 52, -111, -111, -111, 57, 171, 113, 21, 21, 21,
- 21, 21, 21, 21, 21, 41, 75, -111, -111, -111,
- -111, -111, -111, -111, -111, -111, -111, -111, 51, 51,
- 21, 21, -24, -111, -111, -111, -111, -111, -111, 114,
- 90, 51, 51, 51, 21, 21, 120, 121, -34, -111,
- -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
- 21, -111, -111, 21, 21, -111, -111, -111, -111, 21,
- -111, -111, -111, -111, -111, 21, 21, -111, -111, -111,
- 81, -111, -111, -111, 21, 21, -111, -111, -111, -111,
- 21, 21, -111, 21, 21, 21, 13, 21, 21, -111,
- -111, -111, -111, -111, -111, -111, -111
+ 7, 10, 22, -9, 27, 11, -115, -115, -115, -115,
+ -115, -115, -115, 170, 2, -115, -115, -21, 35, 34,
+ 40, 40, 40, 40, 43, 17, 35, 40, 44, 17,
+ 17, 17, 17, 17, 17, 46, 44, 48, 51, 23,
+ 25, 29, 49, -115, -115, -115, -115, -115, -115, -115,
+ -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
+ -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
+ -115, -115, -115, -115, -115, -115, -115, -115, 40, -115,
+ -115, -115, 17, -115, -115, -115, -115, 17, 17, -115,
+ -115, 17, 17, 62, -115, -115, -115, -13, 3, 4,
+ -115, -115, 63, 66, -115, 17, 17, 17, 17, 17,
+ -115, 19, -69, -23, -5, -115, -115, 70, -115, -115,
+ -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
+ -115, 181, -115, -48, -115, -115, -115, 14, 169, 106,
+ 17, 17, 17, 17, 17, 17, 17, 17, 35, 74,
+ -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
+ -115, 44, 44, 17, 17, -24, -115, -115, -115, -115,
+ -115, -115, 107, 83, 44, 44, 44, 17, 17, 114,
+ 116, 124, -115, -115, -115, -115, -115, -115, -115, -115,
+ -115, -115, -115, 17, -115, -115, 17, 17, -115, -115,
+ -115, -115, 17, -115, -115, -115, -115, -115, 17, 17,
+ -115, -115, -115, 63, -115, -115, -115, 17, 17, -115,
+ -115, -115, -115, 17, 17, -115, 17, 17, 17, 8,
+ 17, 17, -115, -115, -115, -115, -115, -115, -115, -115
};
/* YYPGOTO[NTERM-NUM]. */
static const yysigned_char yypgoto[] =
{
- -111, -111, 125, -111, -111, -111, 92, -111, -111, -111,
- -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
- -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
- -111, -28, -111, -111, -111, -111, -111, -111, -111, -111,
- -43, -111, -111, -111, -111, -111, -111, -111, -111, -111,
- -111, -111, -111, -10, -111, -111, -111, -111, -111, -111,
- -111, -111, -111, -111, -111, -111, -73, -96, -111, -111,
- -111, -77, -110, -22, 2, -13, -31
+ -115, -115, 118, -115, -115, -115, -115, 82, -115, -115,
+ -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
+ -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
+ -115, -115, -40, -115, -115, -115, -115, -115, -115, -115,
+ -115, -55, -115, -115, -115, -115, -115, -115, -115, -115,
+ -115, -115, -115, -115, -20, -115, -115, -115, -115, -115,
+ -115, -115, -115, -115, -115, -115, -115, -82, -99, -115,
+ -115, -115, -80, -114, -25, 13, -16, -34
};
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
@@ -837,96 +838,96 @@ static const yysigned_char yypgoto[] =
#define YYTABLE_NINF -1
static const unsigned char yytable[] =
{
- 79, 218, 91, 112, 84, 85, 86, 87, 88, 89,
- 80, 207, 12, 9, 14, 132, 10, 120, 121, 14,
- 73, 74, 75, 1, 77, 78, 81, 169, 11, 170,
- 195, 196, 66, 198, 126, 127, 67, 171, 172, 173,
- 174, 175, 1, 131, 68, 2, 71, 158, 234, 176,
- 70, 76, 177, 94, 82, 108, 14, 102, 90, 92,
- 15, 193, 103, 104, 2, 93, 105, 106, 95, 96,
- 107, 109, 3, 159, 160, 161, 122, 101, 123, 124,
- 115, 116, 117, 118, 119, 97, 16, 14, 17, 110,
- 113, 3, 18, 19, 20, 21, 22, 23, 24, 25,
- 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
- 201, 129, 133, 220, 112, 36, 221, 194, 189, 209,
- 197, 168, 199, 158, 210, 216, 217, 203, 204, 13,
- 132, 98, 200, 37, 208, 219, 202, 226, 205, 206,
- 211, 212, 213, 229, 230, 0, 38, 0, 0, 159,
- 160, 161, 214, 215, 0, 0, 0, 0, 0, 0,
- 0, 136, 137, 138, 139, 140, 141, 142, 143, 144,
- 145, 0, 222, 0, 0, 0, 0, 223, 14, 0,
- 0, 0, 15, 224, 225, 0, 0, 0, 0, 0,
- 0, 0, 227, 228, 0, 0, 0, 0, 0, 0,
- 0, 231, 232, 233, 0, 235, 236, 0, 16, 0,
- 17, 0, 0, 0, 18, 19, 20, 21, 22, 23,
- 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
- 34, 35, 169, 0, 170, 0, 0, 36, 0, 0,
- 0, 0, 171, 172, 173, 174, 175, 0, 0, 0,
- 0, 0, 0, 0, 176, 37, 0, 177, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 38, 136,
- 137, 138, 139, 140, 141, 142, 143, 144, 145
+ 82, 17, 94, 115, 87, 88, 89, 90, 91, 92,
+ 83, 15, 210, 11, 17, 135, 129, 130, 1, 2,
+ 80, 81, 1, 2, 161, 12, 13, 123, 124, 198,
+ 199, 134, 201, 14, 76, 77, 78, 69, 71, 73,
+ 84, 3, 70, 74, 237, 3, 79, 85, 161, 93,
+ 162, 163, 164, 95, 111, 17, 96, 105, 97, 18,
+ 98, 196, 106, 107, 99, 110, 108, 109, 4, 17,
+ 112, 113, 4, 116, 162, 163, 164, 136, 132, 171,
+ 118, 119, 120, 121, 122, 100, 19, 125, 20, 126,
+ 127, 104, 21, 22, 23, 24, 25, 26, 27, 28,
+ 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
+ 204, 192, 212, 223, 115, 39, 224, 197, 213, 219,
+ 200, 220, 202, 16, 101, 211, 222, 206, 207, 205,
+ 135, 229, 203, 40, 0, 0, 0, 0, 208, 209,
+ 214, 215, 216, 232, 233, 0, 41, 0, 0, 0,
+ 0, 0, 217, 218, 0, 0, 0, 0, 0, 0,
+ 221, 139, 140, 141, 142, 143, 144, 145, 146, 147,
+ 148, 0, 225, 0, 0, 0, 17, 226, 0, 0,
+ 18, 0, 0, 227, 228, 0, 172, 0, 173, 0,
+ 0, 0, 230, 231, 0, 0, 174, 175, 176, 177,
+ 178, 234, 235, 236, 0, 238, 239, 19, 179, 20,
+ 0, 180, 0, 21, 22, 23, 24, 25, 26, 27,
+ 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 172, 0, 173, 0, 0, 39, 0, 0, 0,
+ 0, 174, 175, 176, 177, 178, 0, 0, 0, 0,
+ 0, 0, 0, 179, 40, 0, 180, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 41, 139, 140,
+ 141, 142, 143, 144, 145, 146, 147, 148
};
static const short int yycheck[] =
{
- 22, 35, 33, 99, 26, 27, 28, 29, 30, 31,
- 23, 35, 0, 3, 6, 111, 34, 8, 9, 6,
- 18, 19, 20, 11, 3, 4, 24, 61, 6, 63,
- 140, 141, 34, 143, 84, 85, 62, 71, 72, 73,
- 74, 75, 11, 35, 3, 33, 3, 71, 35, 83,
- 5, 3, 86, 34, 3, 66, 6, 79, 3, 5,
- 10, 138, 84, 85, 33, 5, 88, 89, 34, 34,
- 3, 66, 60, 97, 98, 99, 67, 75, 69, 70,
- 102, 103, 104, 105, 106, 35, 36, 6, 38, 66,
- 7, 60, 42, 43, 44, 45, 46, 47, 48, 49,
+ 25, 6, 36, 102, 29, 30, 31, 32, 33, 34,
+ 26, 0, 36, 3, 6, 114, 85, 86, 11, 12,
+ 3, 4, 11, 12, 72, 3, 35, 8, 9, 143,
+ 144, 36, 146, 6, 21, 22, 23, 35, 3, 5,
+ 27, 34, 63, 3, 36, 34, 3, 3, 72, 3,
+ 98, 99, 100, 5, 67, 6, 5, 82, 35, 10,
+ 35, 141, 87, 88, 35, 3, 91, 92, 61, 6,
+ 67, 67, 61, 7, 98, 99, 100, 7, 101, 65,
+ 105, 106, 107, 108, 109, 36, 37, 68, 39, 70,
+ 71, 78, 43, 44, 45, 46, 47, 48, 49, 50,
+ 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
+ 36, 5, 5, 193, 213, 66, 196, 142, 35, 5,
+ 145, 5, 147, 5, 42, 165, 181, 161, 162, 149,
+ 229, 213, 148, 84, -1, -1, -1, -1, 163, 164,
+ 174, 175, 176, 223, 224, -1, 97, -1, -1, -1,
+ -1, -1, 177, 178, -1, -1, -1, -1, -1, -1,
+ 36, 87, 88, 89, 90, 91, 92, 93, 94, 95,
+ 96, -1, 197, -1, -1, -1, 6, 202, -1, -1,
+ 10, -1, -1, 208, 209, -1, 62, -1, 64, -1,
+ -1, -1, 217, 218, -1, -1, 72, 73, 74, 75,
+ 76, 226, 227, 228, -1, 230, 231, 37, 84, 39,
+ -1, 87, -1, 43, 44, 45, 46, 47, 48, 49,
50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
- 35, 100, 7, 190, 210, 65, 193, 139, 5, 5,
- 142, 64, 144, 71, 34, 5, 5, 158, 159, 4,
- 226, 39, 145, 83, 162, 178, 146, 210, 160, 161,
- 171, 172, 173, 220, 221, -1, 96, -1, -1, 97,
- 98, 99, 174, 175, -1, -1, -1, -1, -1, -1,
- -1, 86, 87, 88, 89, 90, 91, 92, 93, 94,
- 95, -1, 194, -1, -1, -1, -1, 199, 6, -1,
- -1, -1, 10, 205, 206, -1, -1, -1, -1, -1,
- -1, -1, 214, 215, -1, -1, -1, -1, -1, -1,
- -1, 223, 224, 225, -1, 227, 228, -1, 36, -1,
- 38, -1, -1, -1, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
- 58, 59, 61, -1, 63, -1, -1, 65, -1, -1,
- -1, -1, 71, 72, 73, 74, 75, -1, -1, -1,
- -1, -1, -1, -1, 83, 83, -1, 86, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 96, 86,
- 87, 88, 89, 90, 91, 92, 93, 94, 95
+ 60, 62, -1, 64, -1, -1, 66, -1, -1, -1,
+ -1, 72, 73, 74, 75, 76, -1, -1, -1, -1,
+ -1, -1, -1, 84, 84, -1, 87, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 97, 87, 88,
+ 89, 90, 91, 92, 93, 94, 95, 96
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
symbol of state STATE-NUM. */
static const unsigned char yystos[] =
{
- 0, 11, 33, 60, 106, 107, 108, 109, 169, 3,
- 34, 6, 0, 107, 6, 10, 36, 38, 42, 43,
- 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
- 54, 55, 56, 57, 58, 59, 65, 83, 96, 110,
- 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
- 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,
- 131, 132, 133, 141, 155, 172, 34, 62, 3, 180,
- 5, 3, 179, 179, 179, 179, 3, 3, 4, 178,
- 180, 179, 3, 181, 178, 178, 178, 178, 178, 178,
- 3, 181, 5, 5, 34, 34, 34, 35, 111, 170,
- 173, 179, 178, 178, 178, 178, 178, 3, 66, 66,
- 66, 171, 172, 7, 175, 178, 178, 178, 178, 178,
- 8, 9, 67, 69, 70, 144, 84, 85, 157, 100,
- 135, 35, 172, 7, 174, 142, 86, 87, 88, 89,
- 90, 91, 92, 93, 94, 95, 156, 158, 159, 160,
- 161, 162, 163, 164, 165, 166, 167, 168, 71, 97,
- 98, 99, 134, 136, 137, 138, 139, 140, 64, 61,
- 63, 71, 72, 73, 74, 75, 83, 86, 143, 145,
- 146, 147, 148, 149, 150, 151, 152, 153, 154, 5,
- 176, 177, 178, 176, 178, 177, 177, 178, 177, 178,
- 180, 35, 158, 181, 181, 178, 178, 35, 136, 5,
- 34, 181, 181, 181, 178, 178, 5, 5, 35, 145,
- 176, 176, 178, 178, 178, 178, 171, 178, 178, 176,
- 176, 178, 178, 178, 35, 178, 178
+ 0, 11, 12, 34, 61, 107, 108, 109, 110, 111,
+ 171, 3, 3, 35, 6, 0, 108, 6, 10, 37,
+ 39, 43, 44, 45, 46, 47, 48, 49, 50, 51,
+ 52, 53, 54, 55, 56, 57, 58, 59, 60, 66,
+ 84, 97, 112, 113, 114, 115, 116, 117, 118, 119,
+ 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
+ 130, 131, 132, 133, 134, 135, 143, 157, 174, 35,
+ 63, 3, 182, 5, 3, 181, 181, 181, 181, 3,
+ 3, 4, 180, 182, 181, 3, 183, 180, 180, 180,
+ 180, 180, 180, 3, 183, 5, 5, 35, 35, 35,
+ 36, 113, 172, 175, 181, 180, 180, 180, 180, 180,
+ 3, 67, 67, 67, 173, 174, 7, 177, 180, 180,
+ 180, 180, 180, 8, 9, 68, 70, 71, 146, 85,
+ 86, 159, 101, 137, 36, 174, 7, 176, 144, 87,
+ 88, 89, 90, 91, 92, 93, 94, 95, 96, 158,
+ 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
+ 170, 72, 98, 99, 100, 136, 138, 139, 140, 141,
+ 142, 65, 62, 64, 72, 73, 74, 75, 76, 84,
+ 87, 145, 147, 148, 149, 150, 151, 152, 153, 154,
+ 155, 156, 5, 178, 179, 180, 178, 180, 179, 179,
+ 180, 179, 180, 182, 36, 160, 183, 183, 180, 180,
+ 36, 138, 5, 35, 183, 183, 183, 180, 180, 5,
+ 5, 36, 147, 178, 178, 180, 180, 180, 180, 173,
+ 180, 180, 178, 178, 180, 180, 180, 36, 180, 180
};
#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
@@ -980,20 +981,53 @@ do \
} \
while (0)
+
#define YYTERROR 1
#define YYERRCODE 256
-/* YYLLOC_DEFAULT -- Compute the default location (before the actions
- are run). */
+/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
+ If N is 0, then set CURRENT to the empty location which ends
+ the previous symbol: RHS[0] (always defined). */
+
+#define YYRHSLOC(Rhs, K) ((Rhs)[K])
#ifndef YYLLOC_DEFAULT
-# define YYLLOC_DEFAULT(Current, Rhs, N) \
- ((Current).first_line = (Rhs)[1].first_line, \
- (Current).first_column = (Rhs)[1].first_column, \
- (Current).last_line = (Rhs)[N].last_line, \
- (Current).last_column = (Rhs)[N].last_column)
+# define YYLLOC_DEFAULT(Current, Rhs, N) \
+ do \
+ if (N) \
+ { \
+ (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
+ (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
+ (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
+ (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
+ } \
+ else \
+ { \
+ (Current).first_line = (Current).last_line = \
+ YYRHSLOC (Rhs, 0).last_line; \
+ (Current).first_column = (Current).last_column = \
+ YYRHSLOC (Rhs, 0).last_column; \
+ } \
+ while (0)
+#endif
+
+
+/* YY_LOCATION_PRINT -- Print the location on the stream.
+ This macro was not mandated originally: define only if we know
+ we won't break user code: when these are the locations we know. */
+
+#ifndef YY_LOCATION_PRINT
+# if YYLTYPE_IS_TRIVIAL
+# define YY_LOCATION_PRINT(File, Loc) \
+ fprintf (File, "%d.%d-%d.%d", \
+ (Loc).first_line, (Loc).first_column, \
+ (Loc).last_line, (Loc).last_column)
+# else
+# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
+# endif
#endif
+
/* YYLEX -- calling `yylex' with the right arguments. */
#ifdef YYLEX_PARAM
@@ -1016,19 +1050,13 @@ do { \
YYFPRINTF Args; \
} while (0)
-# define YYDSYMPRINT(Args) \
-do { \
- if (yydebug) \
- yysymprint Args; \
-} while (0)
-
-# define YYDSYMPRINTF(Title, Token, Value, Location) \
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
do { \
if (yydebug) \
{ \
YYFPRINTF (stderr, "%s ", Title); \
yysymprint (stderr, \
- Token, Value); \
+ Type, Value); \
YYFPRINTF (stderr, "\n"); \
} \
} while (0)
@@ -1095,8 +1123,7 @@ do { \
int yydebug;
#else /* !YYDEBUG */
# define YYDPRINTF(Args)
-# define YYDSYMPRINT(Args)
-# define YYDSYMPRINTF(Title, Token, Value, Location)
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
# define YY_STACK_PRINT(Bottom, Top)
# define YY_REDUCE_PRINT(Rule)
#endif /* !YYDEBUG */
@@ -1114,10 +1141,6 @@ int yydebug;
SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
evaluated with infinite-precision integer arithmetic. */
-#if defined (YYMAXDEPTH) && YYMAXDEPTH == 0
-# undef YYMAXDEPTH
-#endif
-
#ifndef YYMAXDEPTH
# define YYMAXDEPTH 10000
#endif
@@ -1199,15 +1222,15 @@ yysymprint (yyoutput, yytype, yyvaluep)
(void) yyvaluep;
if (yytype < YYNTOKENS)
- {
- YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
-# ifdef YYPRINT
- YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
-# endif
- }
+ YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
else
YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
+
+# ifdef YYPRINT
+ if (yytype < YYNTOKENS)
+ YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
+# endif
switch (yytype)
{
default:
@@ -1223,10 +1246,11 @@ yysymprint (yyoutput, yytype, yyvaluep)
#if defined (__STDC__) || defined (__cplusplus)
static void
-yydestruct (int yytype, YYSTYPE *yyvaluep)
+yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
#else
static void
-yydestruct (yytype, yyvaluep)
+yydestruct (yymsg, yytype, yyvaluep)
+ const char *yymsg;
int yytype;
YYSTYPE *yyvaluep;
#endif
@@ -1234,6 +1258,10 @@ yydestruct (yytype, yyvaluep)
/* Pacify ``unused variable'' warnings. */
(void) yyvaluep;
+ if (!yymsg)
+ yymsg = "Deleting";
+ YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
+
switch (yytype)
{
@@ -1261,10 +1289,10 @@ int yyparse ();
-/* The lookahead symbol. */
+/* The look-ahead symbol. */
int yychar;
-/* The semantic value of the lookahead symbol. */
+/* The semantic value of the look-ahead symbol. */
YYSTYPE yylval;
/* Number of syntax errors so far. */
@@ -1300,7 +1328,7 @@ yyparse ()
int yyresult;
/* Number of tokens to shift before error messages enabled. */
int yyerrstatus;
- /* Lookahead token as an internal (translated) token number. */
+ /* Look-ahead token as an internal (translated) token number. */
int yytoken = 0;
/* Three stacks and their tools:
@@ -1352,6 +1380,8 @@ yyparse ()
yyvsp = yyvs;
+ yyvsp[0] = yylval;
+
goto yysetstate;
/*------------------------------------------------------------.
@@ -1441,18 +1471,18 @@ yyparse ()
yybackup:
/* Do appropriate processing given the current state. */
-/* Read a lookahead token if we need one and don't already have one. */
+/* Read a look-ahead token if we need one and don't already have one. */
/* yyresume: */
- /* First try to decide what to do without reference to lookahead token. */
+ /* First try to decide what to do without reference to look-ahead token. */
yyn = yypact[yystate];
if (yyn == YYPACT_NINF)
goto yydefault;
- /* Not known => get a lookahead token if don't already have one. */
+ /* Not known => get a look-ahead token if don't already have one. */
- /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
+ /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
if (yychar == YYEMPTY)
{
YYDPRINTF ((stderr, "Reading a token: "));
@@ -1467,7 +1497,7 @@ yybackup:
else
{
yytoken = YYTRANSLATE (yychar);
- YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
+ YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
}
/* If the proper action on seeing token YYTOKEN is to reduce or to
@@ -1487,8 +1517,8 @@ yybackup:
if (yyn == YYFINAL)
YYACCEPT;
- /* Shift the lookahead token. */
- YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
+ /* Shift the look-ahead token. */
+ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
/* Discard the token being shifted unless it is eof. */
if (yychar != YYEOF)
@@ -1537,167 +1567,177 @@ yyreduce:
YY_REDUCE_PRINT (yyn);
switch (yyn)
{
- case 7:
-#line 154 "src/cfgparser.yy"
- { yy_debug = yyvsp[0].intValue; }
- break;
-
- case 36:
-#line 200 "src/cfgparser.yy"
- { reglob->setAniStart( yyvsp[0].intValue ); }
+ case 8:
+#line 157 "src/cfgparser.yy"
+ { yy_debug = (yyvsp[0].intValue); }
break;
- case 37:
-#line 204 "src/cfgparser.yy"
- { /*reglob->setAniFrameTime( $2 );*/ debMsgStd("cfgparser",DM_NOTIFY,"Deprecated setting aniframetime!",1); }
+ case 9:
+#line 160 "src/cfgparser.yy"
+ {
+ int sdebug = (yyvsp[0].intValue);
+ if(sdebug<0) sdebug=0;
+ if(sdebug>10) sdebug=10;
+ gDebugLevel = sdebug;
+ }
break;
case 38:
-#line 209 "src/cfgparser.yy"
- { reglob->setAniFrames( (yyvsp[0].intValue)-1 ); }
+#line 211 "src/cfgparser.yy"
+ { reglob->setAniStart( (yyvsp[0].intValue) ); }
break;
case 39:
-#line 213 "src/cfgparser.yy"
- { reglob->setFrameSkip( (yyvsp[0].intValue) ); }
+#line 215 "src/cfgparser.yy"
+ { /*reglob->setAniFrameTime( $2 );*/ debMsgStd("cfgparser",DM_NOTIFY,"Deprecated setting aniframetime!",1); }
break;
case 40:
-#line 219 "src/cfgparser.yy"
- { reglob->setResX( yyvsp[-1].intValue ); reglob->setResY( yyvsp[0].intValue); }
+#line 220 "src/cfgparser.yy"
+ { reglob->setAniFrames( ((yyvsp[0].intValue))-1 ); }
break;
case 41:
-#line 223 "src/cfgparser.yy"
- { reglob->setAADepth( yyvsp[0].intValue ); }
+#line 224 "src/cfgparser.yy"
+ { reglob->setFrameSkip( ((yyvsp[0].intValue)) ); }
break;
case 42:
-#line 227 "src/cfgparser.yy"
- { reglob->setEye( ntlVec3Gfx(yyvsp[-2].floatValue,yyvsp[-1].floatValue,yyvsp[0].floatValue) ); }
+#line 230 "src/cfgparser.yy"
+ { reglob->setResX( (yyvsp[-1].intValue) ); reglob->setResY( (yyvsp[0].intValue)); }
break;
case 43:
-#line 231 "src/cfgparser.yy"
- { reglob->setLookat( ntlVec3Gfx(yyvsp[-2].floatValue,yyvsp[-1].floatValue,yyvsp[0].floatValue) ); }
+#line 234 "src/cfgparser.yy"
+ { reglob->setAADepth( (yyvsp[0].intValue) ); }
break;
case 44:
-#line 235 "src/cfgparser.yy"
- { reglob->setUpVec( ntlVec3Gfx(yyvsp[-2].floatValue,yyvsp[-1].floatValue,yyvsp[0].floatValue) ); }
+#line 238 "src/cfgparser.yy"
+ { reglob->setEye( ntlVec3Gfx((yyvsp[-2].floatValue),(yyvsp[-1].floatValue),(yyvsp[0].floatValue)) ); }
break;
case 45:
-#line 239 "src/cfgparser.yy"
- { reglob->setFovy( yyvsp[0].floatValue ); }
+#line 242 "src/cfgparser.yy"
+ { reglob->setLookat( ntlVec3Gfx((yyvsp[-2].floatValue),(yyvsp[-1].floatValue),(yyvsp[0].floatValue)) ); }
break;
case 46:
-#line 243 "src/cfgparser.yy"
- { reglob->setAspect( yyvsp[0].floatValue ); }
+#line 246 "src/cfgparser.yy"
+ { reglob->setUpVec( ntlVec3Gfx((yyvsp[-2].floatValue),(yyvsp[-1].floatValue),(yyvsp[0].floatValue)) ); }
break;
case 47:
-#line 247 "src/cfgparser.yy"
- { reglob->setAmbientLight( ntlColor(yyvsp[-2].floatValue,yyvsp[-1].floatValue,yyvsp[0].floatValue) ); }
+#line 250 "src/cfgparser.yy"
+ { reglob->setFovy( (yyvsp[0].floatValue) ); }
break;
case 48:
-#line 251 "src/cfgparser.yy"
- { reglob->setBackgroundCol( ntlColor(yyvsp[-2].floatValue,yyvsp[-1].floatValue,yyvsp[0].floatValue) ); }
+#line 254 "src/cfgparser.yy"
+ { reglob->setAspect( (yyvsp[0].floatValue) ); }
break;
case 49:
-#line 255 "src/cfgparser.yy"
- { reglob->setOutFilename( yyvsp[0].charValue ); }
+#line 258 "src/cfgparser.yy"
+ { reglob->setAmbientLight( ntlColor((yyvsp[-2].floatValue),(yyvsp[-1].floatValue),(yyvsp[0].floatValue)) ); }
break;
case 50:
-#line 259 "src/cfgparser.yy"
- { reglob->setTreeMaxDepth( yyvsp[0].intValue ); }
+#line 262 "src/cfgparser.yy"
+ { reglob->setBackgroundCol( ntlColor((yyvsp[-2].floatValue),(yyvsp[-1].floatValue),(yyvsp[0].floatValue)) ); }
break;
case 51:
-#line 263 "src/cfgparser.yy"
- { reglob->setTreeMaxTriangles( yyvsp[0].intValue ); }
+#line 266 "src/cfgparser.yy"
+ { reglob->setOutFilename( (yyvsp[0].charValue) ); }
break;
case 52:
-#line 267 "src/cfgparser.yy"
- { reglob->setRayMaxDepth( yyvsp[0].intValue ); }
+#line 270 "src/cfgparser.yy"
+ { reglob->setTreeMaxDepth( (yyvsp[0].intValue) ); }
break;
case 53:
-#line 271 "src/cfgparser.yy"
- { reglob->setDebugPixel( yyvsp[-1].intValue, yyvsp[0].intValue ); }
+#line 274 "src/cfgparser.yy"
+ { reglob->setTreeMaxTriangles( (yyvsp[0].intValue) ); }
break;
case 54:
-#line 275 "src/cfgparser.yy"
- { reglob->setTestMode( yyvsp[0].intValue ); }
+#line 278 "src/cfgparser.yy"
+ { reglob->setRayMaxDepth( (yyvsp[0].intValue) ); }
break;
case 55:
-#line 279 "src/cfgparser.yy"
- { if(attrs[yyvsp[0].charValue] == NULL){ yyerror("OPENGL ATTRIBUTES: The attribute was not found!"); }
- reglob->getOpenGlAttributes()->import( attrs[yyvsp[0].charValue] ); }
+#line 282 "src/cfgparser.yy"
+ { reglob->setDebugPixel( (yyvsp[-1].intValue), (yyvsp[0].intValue) ); }
break;
case 56:
-#line 284 "src/cfgparser.yy"
- { if(attrs[yyvsp[0].charValue] == NULL){ yyerror("BLENDER ATTRIBUTES: The attribute was not found!"); }
- reglob->getBlenderAttributes()->import( attrs[yyvsp[0].charValue] ); }
+#line 286 "src/cfgparser.yy"
+ { reglob->setTestMode( (yyvsp[0].intValue) ); }
break;
case 57:
-#line 296 "src/cfgparser.yy"
+#line 290 "src/cfgparser.yy"
+ { if(attrs[(yyvsp[0].charValue)] == NULL){ yyerror("OPENGL ATTRIBUTES: The attribute was not found!"); }
+ reglob->getOpenGlAttributes()->import( attrs[(yyvsp[0].charValue)] ); }
+ break;
+
+ case 58:
+#line 295 "src/cfgparser.yy"
+ { if(attrs[(yyvsp[0].charValue)] == NULL){ yyerror("BLENDER ATTRIBUTES: The attribute was not found!"); }
+ reglob->getBlenderAttributes()->import( attrs[(yyvsp[0].charValue)] ); }
+ break;
+
+ case 59:
+#line 307 "src/cfgparser.yy"
{
/* reset light pointers */
currentLightOmni = NULL;
}
break;
- case 60:
-#line 308 "src/cfgparser.yy"
+ case 62:
+#line 319 "src/cfgparser.yy"
{ currentLightOmni = new ntlLightObject( reglob );
currentLight = currentLightOmni;
reglob->getLightList()->push_back(currentLight);
}
break;
- case 65:
-#line 322 "src/cfgparser.yy"
+ case 67:
+#line 333 "src/cfgparser.yy"
{
- currentLight->setActive( yyvsp[0].intValue );
+ currentLight->setActive( (yyvsp[0].intValue) );
}
break;
- case 66:
-#line 327 "src/cfgparser.yy"
+ case 68:
+#line 338 "src/cfgparser.yy"
{
- currentLight->setCastShadows( yyvsp[0].intValue );
+ currentLight->setCastShadows( (yyvsp[0].intValue) );
}
break;
- case 67:
-#line 332 "src/cfgparser.yy"
+ case 69:
+#line 343 "src/cfgparser.yy"
{
- currentLight->setColor( ntlColor(yyvsp[-2].floatValue,yyvsp[-1].floatValue,yyvsp[0].floatValue) );
+ currentLight->setColor( ntlColor((yyvsp[-2].floatValue),(yyvsp[-1].floatValue),(yyvsp[0].floatValue)) );
}
break;
- case 68:
-#line 337 "src/cfgparser.yy"
+ case 70:
+#line 348 "src/cfgparser.yy"
{
int init = 0;
if(currentLightOmni != NULL) {
- currentLightOmni->setPosition( ntlVec3Gfx(yyvsp[-2].floatValue,yyvsp[-1].floatValue,yyvsp[0].floatValue) ); init = 1; }
+ currentLightOmni->setPosition( ntlVec3Gfx((yyvsp[-2].floatValue),(yyvsp[-1].floatValue),(yyvsp[0].floatValue)) ); init = 1; }
if(!init) yyerror("This property can only be set for omni-directional and rectangular lights!");
}
break;
- case 69:
-#line 355 "src/cfgparser.yy"
+ case 71:
+#line 366 "src/cfgparser.yy"
{
// geo classes have attributes...
reglob->getScene()->addGeoClass(currentGeoClass);
@@ -1705,40 +1745,48 @@ yyreduce:
}
break;
- case 70:
-#line 361 "src/cfgparser.yy"
+ case 72:
+#line 372 "src/cfgparser.yy"
{
/* reset geometry object pointers */
currentGeoObj = NULL;
currentGeoClass = NULL;
- currentGeometryBox = NULL;
currentGeometrySim = NULL;
currentGeometryModel = NULL;
- currentGeometrySphere = NULL;
currentAttrib = NULL;
+#ifndef ELBEEM_BLENDER
+ currentGeometryBox = NULL;
+#endif // ELBEEM_BLENDER
}
break;
- case 73:
-#line 378 "src/cfgparser.yy"
+ case 75:
+#line 390 "src/cfgparser.yy"
{
+#ifndef ELBEEM_BLENDER
currentGeometryBox = new ntlGeometryBox( );
currentGeoClass = currentGeometryBox;
currentGeoObj = (ntlGeometryObject*)( currentGeometryBox );
+#else // ELBEEM_BLENDER
+ yyerror("GEOTYPE_BOX : This object type is not supported in this version!");
+#endif // ELBEEM_BLENDER
}
break;
- case 74:
-#line 383 "src/cfgparser.yy"
+ case 76:
+#line 399 "src/cfgparser.yy"
{
- currentGeometrySphere = new ntlGeometrySphere( );
- currentGeoClass = currentGeometrySphere;
- currentGeoObj = (ntlGeometryObject*)( currentGeometrySphere );
+#ifndef ELBEEM_BLENDER
+ currentGeoClass = new ntlGeometrySphere( );
+ currentGeoObj = (ntlGeometryObject*)( currentGeoClass );
+#else // ELBEEM_BLENDER
+ yyerror("GEOTYPE_SPHERE : This object type is not supported in this version!");
+#endif // ELBEEM_BLENDER
}
break;
- case 75:
-#line 388 "src/cfgparser.yy"
+ case 77:
+#line 407 "src/cfgparser.yy"
{
currentGeometryModel = new ntlGeometryObjModel( );
currentGeoClass = currentGeometryModel;
@@ -1746,8 +1794,8 @@ yyreduce:
}
break;
- case 76:
-#line 393 "src/cfgparser.yy"
+ case 78:
+#line 412 "src/cfgparser.yy"
{
currentGeometrySim = new SimulationObject();
currentGeoClass = currentGeometrySim;
@@ -1756,8 +1804,8 @@ yyreduce:
}
break;
- case 77:
-#line 399 "src/cfgparser.yy"
+ case 79:
+#line 418 "src/cfgparser.yy"
{
#ifdef LBM_INCLUDE_TESTSOLVERS
currentGeometrySim = new SimulationCompareLbm();
@@ -1769,187 +1817,193 @@ yyreduce:
}
break;
- case 87:
-#line 424 "src/cfgparser.yy"
+ case 89:
+#line 443 "src/cfgparser.yy"
{
- currentGeoClass->setName( yyvsp[0].charValue );
+ currentGeoClass->setName( (yyvsp[0].charValue) );
}
break;
- case 88:
-#line 429 "src/cfgparser.yy"
+ case 90:
+#line 448 "src/cfgparser.yy"
{
if(currentGeoObj == NULL){ yyerror(" MATERIAL : This property can only be set for geometry objects!"); }
- currentGeoObj->setMaterialName( yyvsp[0].charValue );
+ currentGeoObj->setMaterialName( (yyvsp[0].charValue) );
}
break;
- case 89:
-#line 435 "src/cfgparser.yy"
+ case 91:
+#line 454 "src/cfgparser.yy"
{
if(currentGeoObj == NULL){ yyerror(" CAST_SHADOW : This property can only be set for geometry objects!"); }
- currentGeoObj->setCastShadows( yyvsp[0].intValue );
+ currentGeoObj->setCastShadows( (yyvsp[0].intValue) );
}
break;
- case 90:
-#line 441 "src/cfgparser.yy"
+ case 92:
+#line 460 "src/cfgparser.yy"
{
if(currentGeoObj == NULL){ yyerror(" RECEIVE_SHADOW : This property can only be set for geometry objects!"); }
- currentGeoObj->setReceiveShadows( yyvsp[0].intValue );
+ currentGeoObj->setReceiveShadows( (yyvsp[0].intValue) );
}
break;
- case 91:
-#line 447 "src/cfgparser.yy"
+ case 93:
+#line 466 "src/cfgparser.yy"
{
- currentGeoClass->setVisible( yyvsp[0].intValue );
+ currentGeoClass->setVisible( (yyvsp[0].intValue) );
}
break;
- case 92:
-#line 452 "src/cfgparser.yy"
+ case 94:
+#line 471 "src/cfgparser.yy"
{
int init = 0;
+#ifndef ELBEEM_BLENDER
if(currentGeometryBox != NULL){
- currentGeometryBox->setStart( ntlVec3Gfx(yyvsp[-2].floatValue,yyvsp[-1].floatValue,yyvsp[0].floatValue) ); init=1; }
+ currentGeometryBox->setStart( ntlVec3Gfx((yyvsp[-2].floatValue),(yyvsp[-1].floatValue),(yyvsp[0].floatValue)) ); init=1; }
+#else // ELBEEM_BLENDER
+#endif // ELBEEM_BLENDER
if(currentGeometrySim != NULL){
- currentGeometrySim->setGeoStart( ntlVec3Gfx(yyvsp[-2].floatValue,yyvsp[-1].floatValue,yyvsp[0].floatValue) ); init=1; }
+ currentGeometrySim->setGeoStart( ntlVec3Gfx((yyvsp[-2].floatValue),(yyvsp[-1].floatValue),(yyvsp[0].floatValue)) ); init=1; }
if(currentGeometryModel != NULL){
- currentGeometryModel->setStart( ntlVec3Gfx(yyvsp[-2].floatValue,yyvsp[-1].floatValue,yyvsp[0].floatValue) ); init=1; }
+ currentGeometryModel->setStart( ntlVec3Gfx((yyvsp[-2].floatValue),(yyvsp[-1].floatValue),(yyvsp[0].floatValue)) ); init=1; }
if(!init ){ yyerror("BOXSTART : This property can only be set for box, objmodel, fluid and isosurface objects!"); }
}
break;
- case 93:
-#line 464 "src/cfgparser.yy"
+ case 95:
+#line 486 "src/cfgparser.yy"
{
int init = 0;
+#ifndef ELBEEM_BLENDER
if(currentGeometryBox != NULL){
- currentGeometryBox->setEnd( ntlVec3Gfx(yyvsp[-2].floatValue,yyvsp[-1].floatValue,yyvsp[0].floatValue) ); init=1; }
+ currentGeometryBox->setEnd( ntlVec3Gfx((yyvsp[-2].floatValue),(yyvsp[-1].floatValue),(yyvsp[0].floatValue)) ); init=1; }
+#else // ELBEEM_BLENDER
+#endif // ELBEEM_BLENDER
if(currentGeometrySim != NULL){
- currentGeometrySim->setGeoEnd( ntlVec3Gfx(yyvsp[-2].floatValue,yyvsp[-1].floatValue,yyvsp[0].floatValue) ); init=1; }
+ currentGeometrySim->setGeoEnd( ntlVec3Gfx((yyvsp[-2].floatValue),(yyvsp[-1].floatValue),(yyvsp[0].floatValue)) ); init=1; }
if(currentGeometryModel != NULL){
- currentGeometryModel->setEnd( ntlVec3Gfx(yyvsp[-2].floatValue,yyvsp[-1].floatValue,yyvsp[0].floatValue) ); init=1; }
+ currentGeometryModel->setEnd( ntlVec3Gfx((yyvsp[-2].floatValue),(yyvsp[-1].floatValue),(yyvsp[0].floatValue)) ); init=1; }
if(!init ){ yyerror("BOXEND : This property can only be set for box, objmodel, fluid and isosurface objects!"); }
}
break;
- case 94:
-#line 477 "src/cfgparser.yy"
+ case 96:
+#line 502 "src/cfgparser.yy"
{
- if(attrs[yyvsp[0].charValue] == NULL){ yyerror("GEO ATTRIBUTES: The attribute was not found!"); }
- currentGeoClass->getAttributeList()->import( attrs[yyvsp[0].charValue] );
+ if(attrs[(yyvsp[0].charValue)] == NULL){ yyerror("GEO ATTRIBUTES: The attribute was not found!"); }
+ currentGeoClass->getAttributeList()->import( attrs[(yyvsp[0].charValue)] );
}
break;
- case 95:
-#line 485 "src/cfgparser.yy"
+ case 97:
+#line 510 "src/cfgparser.yy"
{ }
break;
- case 96:
-#line 497 "src/cfgparser.yy"
+ case 98:
+#line 522 "src/cfgparser.yy"
{
/* reset geometry object pointers */
currentMaterial = NULL;
}
break;
- case 99:
-#line 509 "src/cfgparser.yy"
+ case 101:
+#line 534 "src/cfgparser.yy"
{ currentMaterial = new ntlMaterial( );
currentMaterial = currentMaterial;
reglob->getMaterials()->push_back(currentMaterial);
}
break;
- case 100:
-#line 513 "src/cfgparser.yy"
+ case 102:
+#line 538 "src/cfgparser.yy"
{
yyerror("MATTYPE: Blinn NYI!"); }
break;
- case 111:
-#line 531 "src/cfgparser.yy"
+ case 113:
+#line 556 "src/cfgparser.yy"
{
- currentMaterial->setName( yyvsp[0].charValue );
+ currentMaterial->setName( (yyvsp[0].charValue) );
}
break;
- case 112:
-#line 536 "src/cfgparser.yy"
+ case 114:
+#line 561 "src/cfgparser.yy"
{
- currentMaterial->setAmbientRefl( ntlColor(yyvsp[-2].floatValue,yyvsp[-1].floatValue,yyvsp[0].floatValue) );
+ currentMaterial->setAmbientRefl( ntlColor((yyvsp[-2].floatValue),(yyvsp[-1].floatValue),(yyvsp[0].floatValue)) );
}
break;
- case 113:
-#line 541 "src/cfgparser.yy"
+ case 115:
+#line 566 "src/cfgparser.yy"
{
- currentMaterial->setDiffuseRefl( ntlColor(yyvsp[-2].floatValue,yyvsp[-1].floatValue,yyvsp[0].floatValue) );
+ currentMaterial->setDiffuseRefl( ntlColor((yyvsp[-2].floatValue),(yyvsp[-1].floatValue),(yyvsp[0].floatValue)) );
}
break;
- case 114:
-#line 546 "src/cfgparser.yy"
+ case 116:
+#line 571 "src/cfgparser.yy"
{
- currentMaterial->setSpecular( yyvsp[-1].floatValue );
- currentMaterial->setSpecExponent( yyvsp[0].floatValue );
+ currentMaterial->setSpecular( (yyvsp[-1].floatValue) );
+ currentMaterial->setSpecExponent( (yyvsp[0].floatValue) );
}
break;
- case 115:
-#line 552 "src/cfgparser.yy"
+ case 117:
+#line 577 "src/cfgparser.yy"
{
- currentMaterial->setMirror( yyvsp[0].floatValue );
+ currentMaterial->setMirror( (yyvsp[0].floatValue) );
}
break;
- case 116:
-#line 557 "src/cfgparser.yy"
+ case 118:
+#line 582 "src/cfgparser.yy"
{
- currentMaterial->setTransparence( yyvsp[0].floatValue );
+ currentMaterial->setTransparence( (yyvsp[0].floatValue) );
}
break;
- case 117:
-#line 562 "src/cfgparser.yy"
+ case 119:
+#line 587 "src/cfgparser.yy"
{
- currentMaterial->setRefracIndex( yyvsp[0].floatValue );
+ currentMaterial->setRefracIndex( (yyvsp[0].floatValue) );
}
break;
- case 118:
-#line 567 "src/cfgparser.yy"
+ case 120:
+#line 592 "src/cfgparser.yy"
{
- currentMaterial->setTransAdditive( yyvsp[0].floatValue );
+ currentMaterial->setTransAdditive( (yyvsp[0].floatValue) );
}
break;
- case 119:
-#line 572 "src/cfgparser.yy"
+ case 121:
+#line 597 "src/cfgparser.yy"
{
- currentMaterial->setTransAttCol( ntlColor(yyvsp[-2].floatValue,yyvsp[-1].floatValue,yyvsp[0].floatValue) );
+ currentMaterial->setTransAttCol( ntlColor((yyvsp[-2].floatValue),(yyvsp[-1].floatValue),(yyvsp[0].floatValue)) );
}
break;
- case 120:
-#line 577 "src/cfgparser.yy"
+ case 122:
+#line 602 "src/cfgparser.yy"
{
- currentMaterial->setFresnel( yyvsp[0].intValue );
+ currentMaterial->setFresnel( (yyvsp[0].intValue) );
}
break;
- case 121:
-#line 588 "src/cfgparser.yy"
+ case 123:
+#line 613 "src/cfgparser.yy"
{
- currentAttrib = new AttributeList(yyvsp[-1].charValue);
- currentAttrName = yyvsp[-1].charValue; }
+ currentAttrib = new AttributeList((yyvsp[-1].charValue));
+ currentAttrName = (yyvsp[-1].charValue); }
break;
- case 122:
-#line 591 "src/cfgparser.yy"
+ case 124:
+#line 616 "src/cfgparser.yy"
{ // store attribute
//std::cerr << " NEW ATTR " << currentAttrName << std::endl;
//currentAttrib->print();
@@ -1957,13 +2011,13 @@ yyreduce:
currentAttrib = NULL; }
break;
- case 125:
-#line 601 "src/cfgparser.yy"
- { currentAttrValue.clear(); currentAttribAddName = yyvsp[-1].charValue; }
+ case 127:
+#line 626 "src/cfgparser.yy"
+ { currentAttrValue.clear(); currentAttribAddName = (yyvsp[-1].charValue); }
break;
- case 126:
-#line 602 "src/cfgparser.yy"
+ case 128:
+#line 627 "src/cfgparser.yy"
{
currentAttrib->addAttr( currentAttribAddName, currentAttrValue, lineCount);
//std::cerr << " ADD ATTR " << currentAttribAddName << std::endl;
@@ -1971,83 +2025,83 @@ yyreduce:
}
break;
- case 128:
-#line 609 "src/cfgparser.yy"
+ case 130:
+#line 634 "src/cfgparser.yy"
{
//std::cerr << "LLL "<<$2<<endl;
- currentAttrValue.push_back(yyvsp[0].charValue); }
+ currentAttrValue.push_back((yyvsp[0].charValue)); }
break;
- case 129:
-#line 612 "src/cfgparser.yy"
+ case 131:
+#line 637 "src/cfgparser.yy"
{
//std::cerr << "LRR "<<$1<<endl;
- currentAttrValue.push_back(yyvsp[0].charValue); }
+ currentAttrValue.push_back((yyvsp[0].charValue)); }
break;
- case 131:
-#line 626 "src/cfgparser.yy"
+ case 133:
+#line 651 "src/cfgparser.yy"
{
- if ( (yyvsp[0].floatValue < 0.0) || (yyvsp[0].floatValue > 1.0) ) {
+ if ( ((yyvsp[0].floatValue) < 0.0) || ((yyvsp[0].floatValue) > 1.0) ) {
yyerror("Value out of range (only 0 to 1 allowed)");
}
/* pass that value up the tree */
- yyval.floatValue = yyvsp[0].floatValue;
+ (yyval.floatValue) = (yyvsp[0].floatValue);
}
break;
- case 132:
-#line 638 "src/cfgparser.yy"
- { yyval.floatValue = yyvsp[0].floatValue; }
+ case 134:
+#line 663 "src/cfgparser.yy"
+ { (yyval.floatValue) = (yyvsp[0].floatValue); }
break;
- case 133:
-#line 640 "src/cfgparser.yy"
- { yyval.floatValue = (float) yyvsp[0].intValue; /* conversion from integers */ }
+ case 135:
+#line 665 "src/cfgparser.yy"
+ { (yyval.floatValue) = (float) (yyvsp[0].intValue); /* conversion from integers */ }
break;
- case 134:
-#line 646 "src/cfgparser.yy"
+ case 136:
+#line 671 "src/cfgparser.yy"
{
- if ( yyvsp[0].intValue <= 0 ) {
+ if ( (yyvsp[0].intValue) <= 0 ) {
yy_error("Value out of range (has to be above zero)");
}
/* pass that value up the tree */
- yyval.intValue = yyvsp[0].intValue;
+ (yyval.intValue) = (yyvsp[0].intValue);
}
break;
- case 135:
-#line 657 "src/cfgparser.yy"
+ case 137:
+#line 682 "src/cfgparser.yy"
{
//cout << " " << $1 << " ";
- if ( yyvsp[0].intValue < 0 ) {
+ if ( (yyvsp[0].intValue) < 0 ) {
yy_error("Value out of range (has to be above or equal to zero)");
}
/* pass that value up the tree */
- yyval.intValue = yyvsp[0].intValue;
+ (yyval.intValue) = (yyvsp[0].intValue);
}
break;
- case 136:
-#line 669 "src/cfgparser.yy"
+ case 138:
+#line 694 "src/cfgparser.yy"
{
- if( ( yyvsp[0].intValue != 0 ) && ( yyvsp[0].intValue != 1 ) ) {
+ if( ( (yyvsp[0].intValue) != 0 ) && ( (yyvsp[0].intValue) != 1 ) ) {
yy_error("Boolean value has to be 1|0, 'true'|'false' or 'on'|'off'!");
}
/* pass that value up the tree */
- yyval.intValue = yyvsp[0].intValue;
+ (yyval.intValue) = (yyvsp[0].intValue);
}
break;
}
-/* Line 1010 of yacc.c. */
-#line 2051 "bld-std-gcc40/src/cfgparser.cpp"
+/* Line 1037 of yacc.c. */
+#line 2105 "bld-std-gcc40/src/cfgparser.cpp"
yyvsp -= yylen;
yyssp -= yylen;
@@ -2147,7 +2201,7 @@ yyerrlab:
if (yyerrstatus == 3)
{
- /* If just tried and failed to reuse lookahead token after an
+ /* If just tried and failed to reuse look-ahead token after an
error, discard it. */
if (yychar <= YYEOF)
@@ -2157,23 +2211,22 @@ yyerrlab:
if (yychar == YYEOF)
for (;;)
{
+
YYPOPSTACK;
if (yyssp == yyss)
YYABORT;
- YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
- yydestruct (yystos[*yyssp], yyvsp);
+ yydestruct ("Error: popping",
+ yystos[*yyssp], yyvsp);
}
}
else
{
- YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
- yydestruct (yytoken, &yylval);
+ yydestruct ("Error: discarding", yytoken, &yylval);
yychar = YYEMPTY;
-
}
}
- /* Else will try to reuse lookahead token after shifting the error
+ /* Else will try to reuse look-ahead token after shifting the error
token. */
goto yyerrlab1;
@@ -2190,7 +2243,7 @@ yyerrorlab:
goto yyerrorlab;
#endif
- yyvsp -= yylen;
+yyvsp -= yylen;
yyssp -= yylen;
yystate = *yyssp;
goto yyerrlab1;
@@ -2220,8 +2273,8 @@ yyerrlab1:
if (yyssp == yyss)
YYABORT;
- YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
- yydestruct (yystos[yystate], yyvsp);
+
+ yydestruct ("Error: popping", yystos[yystate], yyvsp);
YYPOPSTACK;
yystate = *yyssp;
YY_STACK_PRINT (yyss, yyssp);
@@ -2230,11 +2283,12 @@ yyerrlab1:
if (yyn == YYFINAL)
YYACCEPT;
- YYDPRINTF ((stderr, "Shifting error token, "));
-
*++yyvsp = yylval;
+ /* Shift the error token. */
+ YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
+
yystate = yyn;
goto yynewstate;
@@ -2250,6 +2304,9 @@ yyacceptlab:
| yyabortlab -- YYABORT comes here. |
`-----------------------------------*/
yyabortlab:
+ yydestruct ("Error: discarding lookahead",
+ yytoken, &yylval);
+ yychar = YYEMPTY;
yyresult = 1;
goto yyreturn;
@@ -2272,7 +2329,7 @@ yyreturn:
}
-#line 677 "src/cfgparser.yy"
+#line 702 "src/cfgparser.yy"
/*---------------------------------------------------------------------------*/
@@ -2283,7 +2340,7 @@ yyreturn:
/* parse warnings */
void yy_warn(char *s)
{
- printf("Config Parse Warning at Line %d: %s \n", lineCount, s);
+ debMsgStd("yy_warn",DM_WARNING,"Config Parse Warning at Line :"<<lineCount<<" '"<<s<<"' ",1);
}
/* parse errors */
diff --git a/intern/elbeem/intern/cfgparser.h b/intern/elbeem/intern/cfgparser.h
index 659159ef74d..afde655d2fb 100644
--- a/intern/elbeem/intern/cfgparser.h
+++ b/intern/elbeem/intern/cfgparser.h
@@ -1,4 +1,4 @@
-/* A Bison parser, made by GNU Bison 1.875d. */
+/* A Bison parser, made by GNU Bison 2.0. */
/* Skeleton parser for Yacc-like parsing with Bison,
Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
@@ -38,99 +38,100 @@
KW_COMPARELBM = 264,
KW_ANIFRAMETIME = 265,
KW_DEBUGMODE = 266,
- KW_P_RELAXTIME = 267,
- KW_P_REYNOLDS = 268,
- KW_P_VISCOSITY = 269,
- KW_P_SOUNDSPEED = 270,
- KW_P_DOMAINSIZE = 271,
- KW_P_FORCE = 272,
- KW_P_TIMELENGTH = 273,
- KW_P_STEPTIME = 274,
- KW_P_TIMEFACTOR = 275,
- KW_P_ANIFRAMETIME = 276,
- KW_P_ANISTART = 277,
- KW_P_SURFACETENSION = 278,
- KW_P_ACTIVATE = 279,
- KW_P_DEACTIVATE = 280,
- KW_P_DENSITY = 281,
- KW_P_CELLSIZE = 282,
- KW_P_GSTAR = 283,
- KW_PFSPATH = 284,
- KW_PARTLINELENGTH = 285,
- KW_PARTICLES = 286,
- KW_FRAMESPERSEC = 287,
- KW_RAYTRACING = 288,
- KW_PAROPEN = 289,
- KW_PARCLOSE = 290,
- KW_FILENAME = 291,
- KW_PMCAUSTICS = 292,
- KW_MAXRAYDEPTH = 293,
- KW_CAUSTICDIST = 294,
- KW_CAUSTICPHOT = 295,
- KW_SHADOWMAPBIAS = 296,
- KW_TREEMAXDEPTH = 297,
- KW_TREEMAXTRIANGLES = 298,
- KW_RESOLUTION = 299,
- KW_ANTIALIAS = 300,
- KW_EYEPOINT = 301,
- KW_ANISTART = 302,
- KW_ANIFRAMES = 303,
- KW_FRAMESKIP = 304,
- KW_LOOKAT = 305,
- KW_UPVEC = 306,
- KW_FOVY = 307,
- KW_ASPECT = 308,
- KW_AMBIENCE = 309,
- KW_BACKGROUND = 310,
- KW_DEBUGPIXEL = 311,
- KW_TESTMODE = 312,
- KW_OPENGLATTR = 313,
- KW_BLENDERATTR = 314,
- KW_ATTRIBUTE = 315,
- KW_OBJATTR = 316,
- KW_EQUALS = 317,
- KW_DEFINEATTR = 318,
- KW_ATTREND = 319,
- KW_GEOMETRY = 320,
- KW_TYPE = 321,
- KW_GEOTYPE_BOX = 322,
- KW_GEOTYPE_FLUID = 323,
- KW_GEOTYPE_OBJMODEL = 324,
- KW_GEOTYPE_SPHERE = 325,
- KW_CASTSHADOWS = 326,
- KW_RECEIVESHADOWS = 327,
- KW_VISIBLE = 328,
- KW_BOX_END = 329,
- KW_BOX_START = 330,
- KW_POLY = 331,
- KW_NUMVERTICES = 332,
- KW_VERTEX = 333,
- KW_NUMPOLYGONS = 334,
- KW_ISOSURF = 335,
- KW_FILEMODE = 336,
- KW_INVERT = 337,
- KW_MATERIAL = 338,
- KW_MATTYPE_PHONG = 339,
- KW_MATTYPE_BLINN = 340,
- KW_NAME = 341,
- KW_AMBIENT = 342,
- KW_DIFFUSE = 343,
- KW_SPECULAR = 344,
- KW_MIRROR = 345,
- KW_TRANSPARENCE = 346,
- KW_REFRACINDEX = 347,
- KW_TRANSADDITIVE = 348,
- KW_TRANSATTCOL = 349,
- KW_FRESNEL = 350,
- KW_LIGHT = 351,
- KW_ACTIVE = 352,
- KW_COLOUR = 353,
- KW_POSITION = 354,
- KW_LIGHT_OMNI = 355,
- KW_CAUSTICPHOTONS = 356,
- KW_CAUSTICSTRENGTH = 357,
- KW_SHADOWMAP = 358,
- KW_CAUSTICSMAP = 359
+ KW_DEBUGLEVEL = 267,
+ KW_P_RELAXTIME = 268,
+ KW_P_REYNOLDS = 269,
+ KW_P_VISCOSITY = 270,
+ KW_P_SOUNDSPEED = 271,
+ KW_P_DOMAINSIZE = 272,
+ KW_P_FORCE = 273,
+ KW_P_TIMELENGTH = 274,
+ KW_P_STEPTIME = 275,
+ KW_P_TIMEFACTOR = 276,
+ KW_P_ANIFRAMETIME = 277,
+ KW_P_ANISTART = 278,
+ KW_P_SURFACETENSION = 279,
+ KW_P_ACTIVATE = 280,
+ KW_P_DEACTIVATE = 281,
+ KW_P_DENSITY = 282,
+ KW_P_CELLSIZE = 283,
+ KW_P_GSTAR = 284,
+ KW_PFSPATH = 285,
+ KW_PARTLINELENGTH = 286,
+ KW_PARTICLES = 287,
+ KW_FRAMESPERSEC = 288,
+ KW_RAYTRACING = 289,
+ KW_PAROPEN = 290,
+ KW_PARCLOSE = 291,
+ KW_FILENAME = 292,
+ KW_PMCAUSTICS = 293,
+ KW_MAXRAYDEPTH = 294,
+ KW_CAUSTICDIST = 295,
+ KW_CAUSTICPHOT = 296,
+ KW_SHADOWMAPBIAS = 297,
+ KW_TREEMAXDEPTH = 298,
+ KW_TREEMAXTRIANGLES = 299,
+ KW_RESOLUTION = 300,
+ KW_ANTIALIAS = 301,
+ KW_EYEPOINT = 302,
+ KW_ANISTART = 303,
+ KW_ANIFRAMES = 304,
+ KW_FRAMESKIP = 305,
+ KW_LOOKAT = 306,
+ KW_UPVEC = 307,
+ KW_FOVY = 308,
+ KW_ASPECT = 309,
+ KW_AMBIENCE = 310,
+ KW_BACKGROUND = 311,
+ KW_DEBUGPIXEL = 312,
+ KW_TESTMODE = 313,
+ KW_OPENGLATTR = 314,
+ KW_BLENDERATTR = 315,
+ KW_ATTRIBUTE = 316,
+ KW_OBJATTR = 317,
+ KW_EQUALS = 318,
+ KW_DEFINEATTR = 319,
+ KW_ATTREND = 320,
+ KW_GEOMETRY = 321,
+ KW_TYPE = 322,
+ KW_GEOTYPE_BOX = 323,
+ KW_GEOTYPE_FLUID = 324,
+ KW_GEOTYPE_OBJMODEL = 325,
+ KW_GEOTYPE_SPHERE = 326,
+ KW_CASTSHADOWS = 327,
+ KW_RECEIVESHADOWS = 328,
+ KW_VISIBLE = 329,
+ KW_BOX_END = 330,
+ KW_BOX_START = 331,
+ KW_POLY = 332,
+ KW_NUMVERTICES = 333,
+ KW_VERTEX = 334,
+ KW_NUMPOLYGONS = 335,
+ KW_ISOSURF = 336,
+ KW_FILEMODE = 337,
+ KW_INVERT = 338,
+ KW_MATERIAL = 339,
+ KW_MATTYPE_PHONG = 340,
+ KW_MATTYPE_BLINN = 341,
+ KW_NAME = 342,
+ KW_AMBIENT = 343,
+ KW_DIFFUSE = 344,
+ KW_SPECULAR = 345,
+ KW_MIRROR = 346,
+ KW_TRANSPARENCE = 347,
+ KW_REFRACINDEX = 348,
+ KW_TRANSADDITIVE = 349,
+ KW_TRANSATTCOL = 350,
+ KW_FRESNEL = 351,
+ KW_LIGHT = 352,
+ KW_ACTIVE = 353,
+ KW_COLOUR = 354,
+ KW_POSITION = 355,
+ KW_LIGHT_OMNI = 356,
+ KW_CAUSTICPHOTONS = 357,
+ KW_CAUSTICSTRENGTH = 358,
+ KW_SHADOWMAP = 359,
+ KW_CAUSTICSMAP = 360
};
#endif
#define DT_INTEGER 258
@@ -142,112 +143,113 @@
#define KW_COMPARELBM 264
#define KW_ANIFRAMETIME 265
#define KW_DEBUGMODE 266
-#define KW_P_RELAXTIME 267
-#define KW_P_REYNOLDS 268
-#define KW_P_VISCOSITY 269
-#define KW_P_SOUNDSPEED 270
-#define KW_P_DOMAINSIZE 271
-#define KW_P_FORCE 272
-#define KW_P_TIMELENGTH 273
-#define KW_P_STEPTIME 274
-#define KW_P_TIMEFACTOR 275
-#define KW_P_ANIFRAMETIME 276
-#define KW_P_ANISTART 277
-#define KW_P_SURFACETENSION 278
-#define KW_P_ACTIVATE 279
-#define KW_P_DEACTIVATE 280
-#define KW_P_DENSITY 281
-#define KW_P_CELLSIZE 282
-#define KW_P_GSTAR 283
-#define KW_PFSPATH 284
-#define KW_PARTLINELENGTH 285
-#define KW_PARTICLES 286
-#define KW_FRAMESPERSEC 287
-#define KW_RAYTRACING 288
-#define KW_PAROPEN 289
-#define KW_PARCLOSE 290
-#define KW_FILENAME 291
-#define KW_PMCAUSTICS 292
-#define KW_MAXRAYDEPTH 293
-#define KW_CAUSTICDIST 294
-#define KW_CAUSTICPHOT 295
-#define KW_SHADOWMAPBIAS 296
-#define KW_TREEMAXDEPTH 297
-#define KW_TREEMAXTRIANGLES 298
-#define KW_RESOLUTION 299
-#define KW_ANTIALIAS 300
-#define KW_EYEPOINT 301
-#define KW_ANISTART 302
-#define KW_ANIFRAMES 303
-#define KW_FRAMESKIP 304
-#define KW_LOOKAT 305
-#define KW_UPVEC 306
-#define KW_FOVY 307
-#define KW_ASPECT 308
-#define KW_AMBIENCE 309
-#define KW_BACKGROUND 310
-#define KW_DEBUGPIXEL 311
-#define KW_TESTMODE 312
-#define KW_OPENGLATTR 313
-#define KW_BLENDERATTR 314
-#define KW_ATTRIBUTE 315
-#define KW_OBJATTR 316
-#define KW_EQUALS 317
-#define KW_DEFINEATTR 318
-#define KW_ATTREND 319
-#define KW_GEOMETRY 320
-#define KW_TYPE 321
-#define KW_GEOTYPE_BOX 322
-#define KW_GEOTYPE_FLUID 323
-#define KW_GEOTYPE_OBJMODEL 324
-#define KW_GEOTYPE_SPHERE 325
-#define KW_CASTSHADOWS 326
-#define KW_RECEIVESHADOWS 327
-#define KW_VISIBLE 328
-#define KW_BOX_END 329
-#define KW_BOX_START 330
-#define KW_POLY 331
-#define KW_NUMVERTICES 332
-#define KW_VERTEX 333
-#define KW_NUMPOLYGONS 334
-#define KW_ISOSURF 335
-#define KW_FILEMODE 336
-#define KW_INVERT 337
-#define KW_MATERIAL 338
-#define KW_MATTYPE_PHONG 339
-#define KW_MATTYPE_BLINN 340
-#define KW_NAME 341
-#define KW_AMBIENT 342
-#define KW_DIFFUSE 343
-#define KW_SPECULAR 344
-#define KW_MIRROR 345
-#define KW_TRANSPARENCE 346
-#define KW_REFRACINDEX 347
-#define KW_TRANSADDITIVE 348
-#define KW_TRANSATTCOL 349
-#define KW_FRESNEL 350
-#define KW_LIGHT 351
-#define KW_ACTIVE 352
-#define KW_COLOUR 353
-#define KW_POSITION 354
-#define KW_LIGHT_OMNI 355
-#define KW_CAUSTICPHOTONS 356
-#define KW_CAUSTICSTRENGTH 357
-#define KW_SHADOWMAP 358
-#define KW_CAUSTICSMAP 359
+#define KW_DEBUGLEVEL 267
+#define KW_P_RELAXTIME 268
+#define KW_P_REYNOLDS 269
+#define KW_P_VISCOSITY 270
+#define KW_P_SOUNDSPEED 271
+#define KW_P_DOMAINSIZE 272
+#define KW_P_FORCE 273
+#define KW_P_TIMELENGTH 274
+#define KW_P_STEPTIME 275
+#define KW_P_TIMEFACTOR 276
+#define KW_P_ANIFRAMETIME 277
+#define KW_P_ANISTART 278
+#define KW_P_SURFACETENSION 279
+#define KW_P_ACTIVATE 280
+#define KW_P_DEACTIVATE 281
+#define KW_P_DENSITY 282
+#define KW_P_CELLSIZE 283
+#define KW_P_GSTAR 284
+#define KW_PFSPATH 285
+#define KW_PARTLINELENGTH 286
+#define KW_PARTICLES 287
+#define KW_FRAMESPERSEC 288
+#define KW_RAYTRACING 289
+#define KW_PAROPEN 290
+#define KW_PARCLOSE 291
+#define KW_FILENAME 292
+#define KW_PMCAUSTICS 293
+#define KW_MAXRAYDEPTH 294
+#define KW_CAUSTICDIST 295
+#define KW_CAUSTICPHOT 296
+#define KW_SHADOWMAPBIAS 297
+#define KW_TREEMAXDEPTH 298
+#define KW_TREEMAXTRIANGLES 299
+#define KW_RESOLUTION 300
+#define KW_ANTIALIAS 301
+#define KW_EYEPOINT 302
+#define KW_ANISTART 303
+#define KW_ANIFRAMES 304
+#define KW_FRAMESKIP 305
+#define KW_LOOKAT 306
+#define KW_UPVEC 307
+#define KW_FOVY 308
+#define KW_ASPECT 309
+#define KW_AMBIENCE 310
+#define KW_BACKGROUND 311
+#define KW_DEBUGPIXEL 312
+#define KW_TESTMODE 313
+#define KW_OPENGLATTR 314
+#define KW_BLENDERATTR 315
+#define KW_ATTRIBUTE 316
+#define KW_OBJATTR 317
+#define KW_EQUALS 318
+#define KW_DEFINEATTR 319
+#define KW_ATTREND 320
+#define KW_GEOMETRY 321
+#define KW_TYPE 322
+#define KW_GEOTYPE_BOX 323
+#define KW_GEOTYPE_FLUID 324
+#define KW_GEOTYPE_OBJMODEL 325
+#define KW_GEOTYPE_SPHERE 326
+#define KW_CASTSHADOWS 327
+#define KW_RECEIVESHADOWS 328
+#define KW_VISIBLE 329
+#define KW_BOX_END 330
+#define KW_BOX_START 331
+#define KW_POLY 332
+#define KW_NUMVERTICES 333
+#define KW_VERTEX 334
+#define KW_NUMPOLYGONS 335
+#define KW_ISOSURF 336
+#define KW_FILEMODE 337
+#define KW_INVERT 338
+#define KW_MATERIAL 339
+#define KW_MATTYPE_PHONG 340
+#define KW_MATTYPE_BLINN 341
+#define KW_NAME 342
+#define KW_AMBIENT 343
+#define KW_DIFFUSE 344
+#define KW_SPECULAR 345
+#define KW_MIRROR 346
+#define KW_TRANSPARENCE 347
+#define KW_REFRACINDEX 348
+#define KW_TRANSADDITIVE 349
+#define KW_TRANSATTCOL 350
+#define KW_FRESNEL 351
+#define KW_LIGHT 352
+#define KW_ACTIVE 353
+#define KW_COLOUR 354
+#define KW_POSITION 355
+#define KW_LIGHT_OMNI 356
+#define KW_CAUSTICPHOTONS 357
+#define KW_CAUSTICSTRENGTH 358
+#define KW_SHADOWMAP 359
+#define KW_CAUSTICSMAP 360
#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-#line 85 "src/cfgparser.yy"
+#line 87 "src/cfgparser.yy"
typedef union YYSTYPE {
int intValue;
float floatValue;
char *charValue;
} YYSTYPE;
-/* Line 1285 of yacc.c. */
-#line 251 "bld-std-gcc40/src/cfgparser.hpp"
+/* Line 1318 of yacc.c. */
+#line 253 "bld-std-gcc40/src/cfgparser.hpp"
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
# define YYSTYPE_IS_TRIVIAL 1
diff --git a/intern/elbeem/intern/elbeem.cpp b/intern/elbeem/intern/elbeem.cpp
index 140c571fa8b..b9806a6a142 100644
--- a/intern/elbeem/intern/elbeem.cpp
+++ b/intern/elbeem/intern/elbeem.cpp
@@ -9,9 +9,6 @@
*
*/
-//#include "globals.h"
-
-
/*****************************************************************************/
// region of interest global vars
// currently used by e.g. fsgr solver
@@ -48,4 +45,3 @@ char* usageString =
-o : single frame output to given file\n\
\n ";
-
diff --git a/intern/elbeem/intern/isosurface.cpp b/intern/elbeem/intern/isosurface.cpp
index 92ed8c63eab..6322ed76fab 100644
--- a/intern/elbeem/intern/isosurface.cpp
+++ b/intern/elbeem/intern/isosurface.cpp
@@ -7,15 +7,12 @@
*
*****************************************************************************/
-// IMPL ----------------------------------------------------------------------------------------
#include "isosurface.h"
#include "mcubes_tables.h"
#include "ntl_scene.h"
#include <algorithm>
#include <stdio.h>
-#define MCUBES_MAXPOLNUM 10000
-#define MCUBES_MAXVERTNUM 30000
@@ -33,7 +30,7 @@ IsoSurface::IsoSurface(double iso, double blend) :
mStart(0.0), mEnd(0.0), mDomainExtent(0.0),
mInitDone(false),
- mLoopSubdivs(0), mSmoothSurface(0.0), mSmoothNormals(0.0),
+ mSmoothSurface(0.0), mSmoothNormals(0.0),
mAcrossEdge(), mAdjacentFaces()
{
}
@@ -325,14 +322,11 @@ void IsoSurface::triangulate( void )
// if(mSmoothNormals<=0.0) { smoothNormals(mSmoothSurface*0.5); }
smoothSurface(mSmoothSurface);
}
- for(int i=0; i<mLoopSubdivs; i++) {
- subdivide();
- }
if(mSmoothNormals>0.0) {
smoothNormals(mSmoothNormals);
}
myTime_t tritimeend = getTime();
- debMsgStd("IsoSurface::triangulate",DM_MSG,"Took "<< ((tritimeend-tritimestart)/(double)1000.0)<<"s) " , 10 );
+ debMsgStd("IsoSurface::triangulate",DM_MSG,"took "<< ((tritimeend-tritimestart)/(double)1000.0)<<"s, ss="<<mSmoothSurface<<" sm="<<mSmoothNormals , 10 );
}
@@ -422,15 +416,7 @@ void IsoSurface::getTriangles( vector<ntlTriangle> *triangles,
inline ntlVec3Gfx IsoSurface::getNormal(int i, int j,int k) {
- // WARNING - this assumes a security boundary layer...
- /*
- if(i<=0) i=1;
- if(j<=0) j=1;
- if(k<=0) k=1;
- if(i>=(mSizex-1)) i=mSizex-2;
- if(j>=(mSizex-1)) j=mSizex-2;
- if(k>=(mSizex-1)) k=mSizex-2; // */
-
+ // WARNING - this requires a security boundary layer...
ntlVec3Gfx ret(0.0);
ret[0] = *getData(i-1,j ,k ) -
*getData(i+1,j ,k );
@@ -441,282 +427,6 @@ inline ntlVec3Gfx IsoSurface::getNormal(int i, int j,int k) {
return ret;
}
-#define RECALCNORMALS 0
-
-// Subdivide a mesh allways loop
-void IsoSurface::subdivide()
-{
- mAdjacentFaces.clear();
- mAcrossEdge.clear();
-
- //void TriMesh::need_adjacentfaces()
- {
- vector<int> numadjacentfaces(mPoints.size());
- //errMsg("SUBDIV ADJFA1", " "<<mPoints.size()<<" - "<<numadjacentfaces.size() );
- for (int i = 0; i < (int)mIndices.size()/3; i++) {
- numadjacentfaces[mIndices[i*3 + 0]]++;
- numadjacentfaces[mIndices[i*3 + 1]]++;
- numadjacentfaces[mIndices[i*3 + 2]]++;
- }
-
- mAdjacentFaces.resize(mPoints.size());
- for (int i = 0; i < (int)mPoints.size(); i++)
- mAdjacentFaces[i].reserve(numadjacentfaces[i]);
-
- for (int i = 0; i < (int)mIndices.size()/3; i++) {
- for (int j = 0; j < 3; j++)
- mAdjacentFaces[mIndices[i*3 + j]].push_back(i);
- }
-
- }
-
- // Find the face across each edge from each other face (-1 on boundary)
- // If topology is bad, not necessarily what one would expect...
- //void TriMesh::need_across_edge()
- {
- mAcrossEdge.resize(mIndices.size(), -1);
-
- for (int i = 0; i < (int)mIndices.size()/3; i++) {
- for (int j = 0; j < 3; j++) {
- if (mAcrossEdge[i*3 + j] != -1)
- continue;
- int v1 = mIndices[i*3 + ((j+1)%3)];
- int v2 = mIndices[i*3 + ((j+2)%3)];
- const vector<int> &a1 = mAdjacentFaces[v1];
- const vector<int> &a2 = mAdjacentFaces[v2];
- for (int k1 = 0; k1 < (int)a1.size(); k1++) {
- int other = a1[k1];
- if (other == i)
- continue;
- vector<int>::const_iterator it =
- std::find(a2.begin(), a2.end(), other);
- if (it == a2.end())
- continue;
-
- //int ind = (faces[other].indexof(v1)+1)%3;
- int ind = -1;
- if( mIndices[other*3+0] == (unsigned int)v1 ) ind = 0;
- else if( mIndices[other*3+1] == (unsigned int)v1 ) ind = 1;
- else if( mIndices[other*3+2] == (unsigned int)v1 ) ind = 2;
- ind = (ind+1)%3;
-
- if ( (int)mIndices[other*3 + ((ind+1)%3)] != v2)
- continue;
- mAcrossEdge[i*3 + j] = other;
- mAcrossEdge[other*3 + ind] = i;
- break;
- }
- }
- }
-
- //errMsg("SUBDIV ACREDG", "Done.\n");
- }
-
- //errMsg("SUBDIV","start");
- // Introduce new vertices
- int nf = (int)mIndices.size() / 3;
-
- //vector<TriMesh::Face> newverts(nf, TriMesh::Face(-1,-1,-1));
- vector<int> newverts(nf*3); //, TriMesh::Face(-1,-1,-1));
- for(int j=0; j<(int)newverts.size(); j++) newverts[j] = -1;
-
- int old_nv = (int)mPoints.size();
- mPoints.reserve(4 * old_nv);
- vector<int> newvert_count(old_nv + 3*nf); // wichtig...?
- //errMsg("NC", newvert_count.size() );
-
- for (int i = 0; i < nf; i++) {
- for (int j = 0; j < 3; j++) {
- int ae = mAcrossEdge[i*3 + j];
- if (newverts[i*3 + j] == -1 && ae != -1) {
- if (mAcrossEdge[ae*3 + 0] == i)
- newverts[i*3 + j] = newverts[ae*3 + 0];
- else if (mAcrossEdge[ae*3 + 1] == i)
- newverts[i*3 + j] = newverts[ae*3 + 1];
- else if (mAcrossEdge[ae*3 + 2] == i)
- newverts[i*3 + j] = newverts[ae*3 + 2];
- }
- if (newverts[i*3 + j] == -1) {
- IsoLevelVertex ilv;
- ilv.v = ntlVec3Gfx(0.0);
- ilv.n = ntlVec3Gfx(0.0);
- mPoints.push_back(ilv);
- newverts[i*3 + j] = (int)mPoints.size() - 1;
- if (ae != -1) {
- if (mAcrossEdge[ae*3 + 0] == i)
- newverts[ae*3 + 0] = newverts[i*3 + j];
- else if (mAcrossEdge[ae*3 + 1] == i)
- newverts[ae*3 + 1] = newverts[i*3 + j];
- else if (mAcrossEdge[ae*3 + 2] == i)
- newverts[ae*3 + 2] = newverts[i*3 + j];
- }
- }
- if(ae != -1) {
- mPoints[newverts[i*3 + j]].v +=
- mPoints[ mIndices[i*3 + ( j )] ].v * 0.25f + // j = 0,1,2?
- mPoints[ mIndices[i*3 + ((j+1)%3)] ].v * 0.375f +
- mPoints[ mIndices[i*3 + ((j+2)%3)] ].v * 0.375f;
-#if RECALCNORMALS==0
- mPoints[newverts[i*3 + j]].n +=
- mPoints[ mIndices[i*3 + ( j )] ].n * 0.25f + // j = 0,1,2?
- mPoints[ mIndices[i*3 + ((j+1)%3)] ].n * 0.375f +
- mPoints[ mIndices[i*3 + ((j+2)%3)] ].n * 0.375f;
-#endif // RECALCNORMALS==0
- } else {
- mPoints[newverts[i*3 + j]].v +=
- mPoints[ mIndices[i*3 + ((j+1)%3)] ].v * 0.5f +
- mPoints[ mIndices[i*3 + ((j+2)%3)] ].v * 0.5f ;
-#if RECALCNORMALS==0
- mPoints[newverts[i*3 + j]].n +=
- mPoints[ mIndices[i*3 + ((j+1)%3)] ].n * 0.5f +
- mPoints[ mIndices[i*3 + ((j+2)%3)] ].n * 0.5f ;
-#endif // RECALCNORMALS==0
- }
-
- newvert_count[newverts[i*3 + j]]++;
- }
- }
- for (int i = old_nv; i < (int)mPoints.size(); i++) {
- if (!newvert_count[i])
- continue;
- float scale = 1.0f / newvert_count[i];
- mPoints[i].v *= scale;
-
-#if RECALCNORMALS==0
- //mPoints[i].n *= scale;
- //normalize( mPoints[i].n );
-#endif // RECALCNORMALS==0
- }
-
- // Update old vertices
- for (int i = 0; i < old_nv; i++) {
- ntlVec3Gfx bdyavg(0.0), nbdyavg(0.0);
- ntlVec3Gfx norm_bdyavg(0.0), norm_nbdyavg(0.0); // N
- int nbdy = 0, nnbdy = 0;
- int naf = (int)mAdjacentFaces[i].size();
- if (!naf)
- continue;
- for (int j = 0; j < naf; j++) {
- int af = mAdjacentFaces[i][j];
-
- int afi = -1;
- if( mIndices[af*3+0] == (unsigned int)i ) afi = 0;
- else if( mIndices[af*3+1] == (unsigned int)i ) afi = 1;
- else if( mIndices[af*3+2] == (unsigned int)i ) afi = 2;
-
- int n1 = (afi+1) % 3;
- int n2 = (afi+2) % 3;
- if (mAcrossEdge[af*3 + n1] == -1) {
- bdyavg += mPoints[newverts[af*3 + n1]].v;
-#if RECALCNORMALS==0
- //norm_bdyavg += mPoints[newverts[af*3 + n1]].n;
-#endif // RECALCNORMALS==0
- nbdy++;
- } else {
- nbdyavg += mPoints[newverts[af*3 + n1]].v;
-#if RECALCNORMALS==0
- //norm_nbdyavg += mPoints[newverts[af*3 + n1]].n;
-#endif // RECALCNORMALS==0
- nnbdy++;
- }
- if (mAcrossEdge[af*3 + n2] == -1) {
- bdyavg += mPoints[newverts[af*3 + n2]].v;
-#if RECALCNORMALS==0
- //norm_bdyavg += mPoints[newverts[af*3 + n2]].n;
-#endif // RECALCNORMALS==0
- nbdy++;
- } else {
- nbdyavg += mPoints[newverts[af*3 + n2]].v;
-#if RECALCNORMALS==0
- //norm_nbdyavg += mPoints[newverts[af*3 + n2]].n;
-#endif // RECALCNORMALS==0
- nnbdy++;
- }
- }
-
- float alpha;
- ntlVec3Gfx newpt;
- if (nbdy) {
- newpt = bdyavg / (float) nbdy;
- alpha = 0.5f;
- } else if (nnbdy) {
- newpt = nbdyavg / (float) nnbdy;
- if (nnbdy == 6)
- alpha = 1.05;
- else if (nnbdy == 8)
- alpha = 0.86;
- else if (nnbdy == 10)
- alpha = 0.7;
- else
- alpha = 0.6;
- } else {
- continue;
- }
- mPoints[i].v *= 1.0f - alpha;
- mPoints[i].v += newpt * alpha;
-
-#if RECALCNORMALS==0
- //mPoints[i].n *= 1.0f - alpha;
- //mPoints[i].n += newpt * alpha;
-#endif // RECALCNORMALS==0
- }
-
- // Insert new faces
- mIndices.reserve(4*nf);
- for (int i = 0; i < nf; i++) {
- mIndices.push_back( mIndices[i*3 + 0]);
- mIndices.push_back( newverts[i*3 + 2]);
- mIndices.push_back( newverts[i*3 + 1]);
-
- mIndices.push_back( mIndices[i*3 + 1]);
- mIndices.push_back( newverts[i*3 + 0]);
- mIndices.push_back( newverts[i*3 + 2]);
-
- mIndices.push_back( mIndices[i*3 + 2]);
- mIndices.push_back( newverts[i*3 + 1]);
- mIndices.push_back( newverts[i*3 + 0]);
-
- mIndices[i*3+0] = newverts[i*3+0];
- mIndices[i*3+1] = newverts[i*3+1];
- mIndices[i*3+2] = newverts[i*3+2];
- }
-
- // recalc normals
-#if RECALCNORMALS==1
- {
- int nf = (int)mIndices.size()/3, nv = (int)mPoints.size();
- for (int i = 0; i < nv; i++) {
- mPoints[i].n = ntlVec3Gfx(0.0);
- }
- for (int i = 0; i < nf; i++) {
- const ntlVec3Gfx &p0 = mPoints[mIndices[i*3+0]].v;
- const ntlVec3Gfx &p1 = mPoints[mIndices[i*3+1]].v;
- const ntlVec3Gfx &p2 = mPoints[mIndices[i*3+2]].v;
- ntlVec3Gfx a = p0-p1, b = p1-p2, c = p2-p0;
- float l2a = normNoSqrt(a), l2b = normNoSqrt(b), l2c = normNoSqrt(c);
-
- ntlVec3Gfx facenormal = cross(a, b);
-
- mPoints[mIndices[i*3+0]].n += facenormal * (1.0f / (l2a * l2c));
- mPoints[mIndices[i*3+1]].n += facenormal * (1.0f / (l2b * l2a));
- mPoints[mIndices[i*3+2]].n += facenormal * (1.0f / (l2c * l2b));
- }
-
- for (int i = 0; i < nv; i++) {
- normalize(mPoints[i].n);
- }
- }
-#else // RECALCNORMALS==1
- for (int i = 0; i < (int)mPoints.size(); i++) {
- normalize(mPoints[i].n);
- }
-#endif // RECALCNORMALS==1
-
- //errMsg("SUBDIV","done nv:"<<mPoints.size()<<" nf:"<<mIndices.size() );
-}
-
-
-
@@ -732,8 +442,6 @@ void IsoSurface::subdivide()
*
*****************************************************************************/
-
-
// Diffuse a vector field at 1 vertex, weighted by
// a gaussian of width 1/sqrt(invsigma2)
void IsoSurface::diffuseVertexField(ntlVec3Gfx *field, const int pointerScale, int v, float invsigma2, ntlVec3Gfx &flt)
@@ -777,8 +485,6 @@ void IsoSurface::diffuseVertexField(ntlVec3Gfx *field, const int pointerScale, i
flt /= sum_w;
}
-
-
void IsoSurface::smoothSurface(float sigma)
{
int nv = mPoints.size();
diff --git a/intern/elbeem/intern/isosurface.h b/intern/elbeem/intern/isosurface.h
index 53ea324a2c2..047f12250af 100644
--- a/intern/elbeem/intern/isosurface.h
+++ b/intern/elbeem/intern/isosurface.h
@@ -11,12 +11,9 @@
#include "ntl_geometryobject.h"
#include "ntl_bsptree.h"
-//class LbmSolver3D;
-
/* access some 3d array */
-//#define ISOLEVEL_INDEX(ii,ij,ik) ((S::mSizex*S::mSizey*(ik))+(S::mSizex*(ij))+((ii)))
#define ISOLEVEL_INDEX(ii,ij,ik) ((mSizex*mSizey*(ik))+(mSizex*(ij))+((ii)))
/* struct for a small cube in the scalar field */
@@ -34,7 +31,6 @@ typedef struct {
//! class to triangulate a scalar field, e.g. for
// the fluid surface, templated by scalar field access object
-//template<class S>
class IsoSurface :
public ntlGeometryObject //, public S
{
@@ -89,8 +85,6 @@ class IsoSurface :
//! initialized?
bool mInitDone;
- //! no. of refinement steps
- int mLoopSubdivs;
//! amount of surface smoothing
float mSmoothSurface;
//! amount of normal smoothing
@@ -116,7 +110,6 @@ class IsoSurface :
//! set iso level value for surface reconstruction
inline void setIsolevel(double set) { mIsoValue = set; };
//! set loop subdiv num
- inline void setLoopSubdivs(int set) { mLoopSubdivs = set; };
inline void setSmoothSurface(float set) { mSmoothSurface = set; };
inline void setSmoothNormals(float set) { mSmoothNormals = set; };
@@ -161,118 +154,6 @@ class IsoSurface :
-class TriMesh {
-public:
- // Types
- struct Face {
- int v[3];
-
- Face() {}
- Face(const int &v0, const int &v1, const int &v2)
- { v[0] = v0; v[1] = v1; v[2] = v2; }
- Face(const int *v_)
- { v[0] = v_[0]; v[1] = v_[1]; v[2] = v_[2]; }
- int &operator[] (int i) { return v[i]; }
- const int &operator[] (int i) const { return v[i]; }
- operator const int * () const { return &(v[0]); }
- operator const int * () { return &(v[0]); }
- operator int * () { return &(v[0]); }
- int indexof(int v_) const
- {
- return (v[0] == v_) ? 0 :
- (v[1] == v_) ? 1 :
- (v[2] == v_) ? 2 : -1;
- }
- };
-
- struct BBox {
- public:
- BBox() {};
- ntlVec3Gfx min, max;
- ntlVec3Gfx center() const { return (min+max)*0.5f; }
- ntlVec3Gfx size() const { return max - min; }
- };
-
- struct BSphere {
- ntlVec3Gfx center;
- float r;
- };
-
- // Enums
- enum tstrip_rep { TSTRIP_LENGTH, TSTRIP_TERM };
-
- // The basics: vertices and faces
- vector<ntlVec3Gfx> vertices;
- vector<Face> faces;
-
- // Triangle strips
- vector<int> tstrips;
-
- // Other per-vertex properties
- //vector<Color> colors;
- vector<float> confidences;
- vector<unsigned> flags;
- unsigned flag_curr;
-
- // Computed per-vertex properties
- vector<ntlVec3Gfx> normals;
- vector<ntlVec3Gfx> pdir1, pdir2;
- vector<float> curv1, curv2;
- //vector< Vec<4,float> > dcurv;
- vector<ntlVec3Gfx> cornerareas;
- vector<float> pointareas;
-
- // Bounding structures
- BBox bbox;
- BSphere bsphere;
-
- // Connectivity structures:
- // For each vertex, all neighboring vertices
- vector< vector<int> > neighbors;
- // For each vertex, all neighboring faces
- vector< vector<int> > adjacentfaces;
- // For each face, the three faces attached to its edges
- // (for example, across_edge[3][2] is the number of the face
- // that's touching the edge opposite vertex 2 of face 3)
- vector<Face> across_edge;
-
- // Compute all this stuff...
- void need_tstrips();
- void convert_strips(tstrip_rep rep);
- void need_faces();
- void need_normals();
- void need_pointareas();
- void need_curvatures();
- void need_dcurv();
- void need_bbox();
- void need_bsphere();
- void need_neighbors();
- void need_adjacentfaces();
- void need_across_edge();
-
- // Input and output
- static TriMesh *read(const char *filename);
- void write(const char *filename);
-
- // Statistics
- // XXX - Add stuff here
- float feature_size();
-
- // Useful queries
- // XXX - Add stuff here
- bool is_bdy(int v)
- {
- if (neighbors.empty()) need_neighbors();
- if (adjacentfaces.empty()) need_adjacentfaces();
- return neighbors[v].size() != adjacentfaces[v].size();
- }
-
- // Debugging printout, controllable by a "verbose"ness parameter
- static int verbose;
- static void set_verbose(int);
- static int dprintf(const char *format, ...);
-};
-
#define ISOSURFACE_H
#endif
diff --git a/intern/elbeem/intern/lbmdimensions.h b/intern/elbeem/intern/lbmdimensions.h
index cf5077a07a0..ca87e807500 100644
--- a/intern/elbeem/intern/lbmdimensions.h
+++ b/intern/elbeem/intern/lbmdimensions.h
@@ -249,7 +249,7 @@ class LbmModelLBGK : public DQ , public LbmSolverInterface {
// virtual destructor
virtual ~LbmModelLBGK() {};
//! id string of solver
- std::string getIdString() { return DQ::getIdString() + std::string("lbgk]"); }
+ string getIdString() { return DQ::getIdString() + string("lbgk]"); }
/*! calculate length of velocity vector */
static inline LbmFloat getVelVecLen(int l, LbmFloat ux,LbmFloat uy,LbmFloat uz) {
diff --git a/intern/elbeem/intern/lbmfsgrsolver.h b/intern/elbeem/intern/lbmfsgrsolver.h
index c94a2e06efe..22f1f361644 100644
--- a/intern/elbeem/intern/lbmfsgrsolver.h
+++ b/intern/elbeem/intern/lbmfsgrsolver.h
@@ -12,7 +12,6 @@
#ifndef LBMFSGRSOLVER_H
#include "utilities.h"
-#include "arrays.h"
#include "lbmdimensions.h"
#include "lbmfunctions.h"
#include "ntl_scene.h"
@@ -56,10 +55,11 @@ ERROR - define model first!
#define USE_LES 1
//! order of interpolation (1/2)
-#define INTORDER 1
+#define INTORDER 2
//! order of interpolation (0=always current/1=interpolate/2=always other)
-#define TIMEINTORDER 0
+//#define TIMEINTORDER 0
+// TODO remove interpol t param, also interTime
//! refinement border method (1 = small border / 2 = larger)
#define REFINEMENTBORDER 1
@@ -86,7 +86,6 @@ ERROR - define model first!
#define COMPRESSGRIDS 0
#endif
-
//! threshold for level set fluid generation/isosurface
#define LS_FLUIDTHRESHOLD 0.5
@@ -366,7 +365,6 @@ class LbmFsgrSolver :
//! Mcubes object for surface reconstruction
IsoSurface *mpPreviewSurface;
- int mLoopSubdivs;
float mSmoothSurface;
float mSmoothNormals;
@@ -453,8 +451,6 @@ class LbmFsgrSolver :
/*! LES C_smago paramter for finest grid */
float mInitialCsmago;
- /*! LES C_smago paramter for coarser grids */
- float mInitialCsmagoCoarse;
/*! LES stats for non OPT3D */
LbmFloat mDebugOmegaRet;
@@ -1194,7 +1190,7 @@ class LbmFsgrSolver :
if(RFLAG_NB(lev, i,j,k,SRCS(lev),l)&CFBnd) { errMsg("???", "bnd-err-nobndfl"); D::mPanic=1; \
} else { m[l] = QCELL_NBINV(lev, i, j, k, SRCS(lev), l, l); } \
} \
-f__printf(stderr,"QSDM at %d,%d,%d lcsmqo=%25.15f, lcsmomega=%f \n", i,j,k, lcsmqo,lcsmomega ); \
+errMsg("T","QSDM at %d,%d,%d lcsmqo=%25.15f, lcsmomega=%f \n", i,j,k, lcsmqo,lcsmomega ); \
rho=m[0]; ux = mLevel[lev].gravity[0]; uy = mLevel[lev].gravity[1]; uz = mLevel[lev].gravity[2]; \
ux = mLevel[lev].gravity[0]; uy = mLevel[lev].gravity[1]; uz = mLevel[lev].gravity[2]; \
D::collideArrays( m, rho,ux,uy,uz, OMEGA(lev), mLevel[lev].lcsmago , &mDebugOmegaRet ); \
@@ -1242,7 +1238,7 @@ LbmFsgrSolver<D>::LbmFsgrSolver() :
mNumProblems(0),
mAvgMLSUPS(0.0), mAvgMLSUPSCnt(0.0),
mpPreviewSurface(NULL),
- mLoopSubdivs(0), mSmoothSurface(0.0), mSmoothNormals(0.0),
+ mSmoothSurface(0.0), mSmoothNormals(0.0),
mTimeAdap(false),
mOutputSurfacePreview(0), mPreviewFactor(0.25),
mFVHeight(0.0), mFVArea(1.0), mUpdateFVHeight(false),
@@ -1258,7 +1254,7 @@ LbmFsgrSolver<D>::LbmFsgrSolver() :
mIsoWeightMethod(2),
mMaxRefine(1),
mDfScaleUp(-1.0), mDfScaleDown(-1.0),
- mInitialCsmago(0.04), mInitialCsmagoCoarse(1.0), mDebugOmegaRet(0.0),
+ mInitialCsmago(0.04), mDebugOmegaRet(0.0),
mNumInvIfTotal(0), mNumFsgrChanges(0),
mDisableStandingFluidInit(0),
mForceTadapRefine(-1)
@@ -1371,12 +1367,18 @@ LbmFsgrSolver<D>::parseAttrList()
mIsoWeightMethod= D::mpAttrs->readInt("isoweightmethod", mIsoWeightMethod, "SimulationLbm","mIsoWeightMethod", false );
mInitSurfaceSmoothing = D::mpAttrs->readInt("initsurfsmooth", mInitSurfaceSmoothing, "SimulationLbm","mInitSurfaceSmoothing", false );
- mLoopSubdivs = D::mpAttrs->readInt("loopsubdivs", mLoopSubdivs, "SimulationLbm","mLoopSubdivs", false );
mSmoothSurface = D::mpAttrs->readFloat("smoothsurface", mSmoothSurface, "SimulationLbm","mSmoothSurface", false );
mSmoothNormals = D::mpAttrs->readFloat("smoothnormals", mSmoothNormals, "SimulationLbm","mSmoothNormals", false );
mInitialCsmago = D::mpAttrs->readFloat("csmago", mInitialCsmago, "SimulationLbm","mInitialCsmago", false );
+ // deprecated!
+ float mInitialCsmagoCoarse = 0.0;
mInitialCsmagoCoarse = D::mpAttrs->readFloat("csmago_coarse", mInitialCsmagoCoarse, "SimulationLbm","mInitialCsmagoCoarse", false );
+#if USE_LES==1
+#else // USE_LES==1
+ debMsgStd("LbmFsgrSolver", DM_WARNING, "LES model switched off!",2);
+ mInitialCsmago = 0.0;
+#endif // USE_LES==1
// refinement
mMaxRefine = D::mpAttrs->readInt("maxrefine", mMaxRefine ,"LbmFsgrSolver", "mMaxRefine", true);
@@ -1440,7 +1442,7 @@ LbmFsgrSolver<D>::initLevelOmegas()
// if(strstr(D::getName().c_str(),"Debug")) mLevel[i].lcsmago = mLevel[mMaxRefine].lcsmago * (LbmFloat)(mMaxRefine-i)*0.5+1.0;
//if(strstr(D::getName().c_str(),"Debug")) mLevel[i].lcsmago = mLevel[mMaxRefine].lcsmago * ((LbmFloat)(mMaxRefine-i)*1.0 + 1.0 );
//if(strstr(D::getName().c_str(),"Debug")) mLevel[i].lcsmago = 0.99;
- mLevel[i].lcsmago = mInitialCsmagoCoarse;
+ mLevel[i].lcsmago = mInitialCsmago;
mLevel[i].lcsmago_sqr = mLevel[i].lcsmago*mLevel[i].lcsmago;
mLevel[i].lcnu = (2.0* (1.0/mLevel[i].omega)-1.0) * (1.0/6.0);
}
@@ -1529,7 +1531,6 @@ LbmFsgrSolver<D>::initialize( ntlTree* /*tree*/, vector<ntlGeometryObject*>* /*o
<<"LBM_EPSILON="<<LBM_EPSILON <<" "
<<"FSGR_STRICT_DEBUG="<<FSGR_STRICT_DEBUG <<" "
<<"INTORDER="<<INTORDER <<" "
- <<"TIMEINTORDER="<<TIMEINTORDER <<" "
<<"REFINEMENTBORDER="<<REFINEMENTBORDER <<" "
<<"OPT3D="<<OPT3D <<" "
<<"COMPRESSGRIDS="<<COMPRESSGRIDS<<" "
@@ -1683,7 +1684,6 @@ LbmFsgrSolver<D>::initialize( ntlTree* /*tree*/, vector<ntlGeometryObject*>* /*o
// init isosurf
D::mpIso->setIsolevel( D::mIsoValue );
- D::mpIso->setLoopSubdivs( mLoopSubdivs );
// approximate feature size with mesh resolution
float featureSize = mLevel[ mMaxRefine ].nodeSize*0.5;
D::mpIso->setSmoothSurface( mSmoothSurface * featureSize );
@@ -1856,11 +1856,6 @@ LbmFsgrSolver<D>::initialize( ntlTree* /*tree*/, vector<ntlGeometryObject*>* /*o
performRefinement(lev);
performCoarsening(lev);
coarseRestrictFromFine(lev);
-
- //while( performRefinement(lev) | performCoarsening(lev)){
- //coarseRestrictFromFine(lev);
- //debMsgStd("LbmFsgrSolver::initialize",DM_MSG,"Coarsening level "<<lev<<".",8);
- //}
}
D::markedClearList();
myTime_t fsgrtend = getTime();
@@ -2659,29 +2654,16 @@ LbmFsgrSolver<D>::stepMain()
if(lev==mMaxRefine) {
// always advance fine level...
fineAdvance();
- //performRefinement(lev-1); // TEST here?
} else {
- performRefinement(lev); // TEST here?
- performCoarsening(lev); // TEST here?
+ performRefinement(lev);
+ performCoarsening(lev);
coarseRestrictFromFine(lev);
coarseAdvance(lev);
- //performRefinement(lev-1); // TEST here?
}
#if FSGR_OMEGA_DEBUG==1
errMsg("LbmFsgrSolver::step","LES stats l="<<lev<<" omega="<<mLevel[lev].omega<<" avgOmega="<< (mLevel[lev].avgOmega/mLevel[lev].avgOmegaCnt) );
mLevel[lev].avgOmega = 0.0; mLevel[lev].avgOmegaCnt = 0.0;
#endif // FSGR_OMEGA_DEBUG==1
-
- LbmFloat interTime = -10.0;
-#if TIMEINTORDER==1
- interTime = 0.5;
- if( D::mStepCnt & (1<<(mMaxRefine-lev)) ) interTime = 0.0;
- // TEST influence... interTime = 0.0;
-#elif TIMEINTORDER==2
- interTime = 1.0;
-#else // TIMEINTORDER==0
- interTime = 0.0;
-#endif // TIMEINTORDER==1
levsteps++;
}
mCurrentMass += mLevel[lev].lmass;
@@ -2857,7 +2839,7 @@ LbmFsgrSolver<D>::stepMain()
uz += (D::dfDvecZ[l]*m);
}
//errMsg("DEBUG"," "<<PRINT_IJK <<" rho="<<rho<<" vel="<<PRINT_VEC(ux,uy,uz) );
- f__printf(stdout,"D %d,%d rho=%+'.5f vel=[%+'.5f,%+'.5f] \n", i,j, rho, ux,uy );
+ errMsg(stdout,"D %d,%d rho=%+'.5f vel=[%+'.5f,%+'.5f] \n", i,j, rho, ux,uy );
}
} // DEBUG */
@@ -3525,7 +3507,7 @@ LbmFsgrSolver<D>::mainLoop(int lev)
#if COMPRESSGRIDS==1
#if PARALLEL==1
- //fprintf(stderr," (id=%d k=%d) ",id,k);
+ //frintf(stderr," (id=%d k=%d) ",id,k);
# pragma omp barrier
#endif // PARALLEL==1
#else // COMPRESSGRIDS==1
@@ -3795,7 +3777,7 @@ LbmFsgrSolver<D>::coarseRestrictFromFine(int lev)
const LbmFloat alpha = 1.0;
const LbmFloat gw = sqrt(2.0*D::cDimension);
#ifndef ELBEEM_BLENDER
-errMsg("coarseRestrictFromFine", "TCRFF_DFDEBUG2 test df/dir num!");
+ errMsg("coarseRestrictFromFine", "TCRFF_DFDEBUG2 test df/dir num!");
#endif
for(int n=0;(n<D::cDirNum); n++) { mGaussw[n] = 0.0; }
//for(int n=0;(n<D::cDirNum); n++) {
@@ -3809,13 +3791,6 @@ errMsg("coarseRestrictFromFine", "TCRFF_DFDEBUG2 test df/dir num!");
for(int n=0;(n<D::cDirNum); n++) {
mGaussw[n] = mGaussw[n]/totGaussw;
}
- //totGaussw = 1.0/totGaussw;
-
- //if(!D::mInitDone) {
-//errMsg("coarseRestrictFromFine", "TCRFF_DFDEBUG2 test pre init");
- //mGaussw[0] = 1.0;
- //for(int n=1;(n<D::cDirNum); n++) { mGaussw[n] = 0.0; }
- //}
//restrict
for(int k= getForZMin1(); k< getForZMax1(lev); ++k) {
@@ -3978,7 +3953,7 @@ LbmFsgrSolver<D>::performRefinement(int lev) {
if((lev<0) || ((lev+1)>mMaxRefine)) return false;
bool change = false;
//bool nbsok;
- // TIMEINTORDER ?
+ // FIXME remove TIMEINTORDER ?
LbmFloat interTime = 0.0;
// update curr from other, as streaming afterwards works on curr
// thus read only from srcSet, modify other
diff --git a/intern/elbeem/intern/lbminterface.cpp b/intern/elbeem/intern/lbminterface.cpp
index f64132d755b..db7705de0a8 100644
--- a/intern/elbeem/intern/lbminterface.cpp
+++ b/intern/elbeem/intern/lbminterface.cpp
@@ -614,7 +614,7 @@ void LbmSolverInterface::markedClearList() {
// 32k
-std::string convertSingleFlag2String(CellFlagType cflag) {
+string convertSingleFlag2String(CellFlagType cflag) {
CellFlagType flag = cflag;
if(flag == CFUnused ) return string("cCFUnused");
if(flag == CFEmpty ) return string("cCFEmpty");
@@ -649,7 +649,7 @@ std::string convertSingleFlag2String(CellFlagType cflag) {
}
//! helper function to convert flag to string (for debuggin)
-std::string convertCellFlagType2String( CellFlagType cflag ) {
+string convertCellFlagType2String( CellFlagType cflag ) {
int flag = cflag;
const int jmax = sizeof(CellFlagType)*8;
diff --git a/intern/elbeem/intern/lbminterface.h b/intern/elbeem/intern/lbminterface.h
index 9b7c07ebc02..294d6a76627 100644
--- a/intern/elbeem/intern/lbminterface.h
+++ b/intern/elbeem/intern/lbminterface.h
@@ -224,7 +224,7 @@ class CellIdentifierInterface {
virtual ~CellIdentifierInterface() {};
//! return node as string (with some basic info)
- virtual std::string getAsString() = 0;
+ virtual string getAsString() = 0;
//! compare cids
virtual bool equal(CellIdentifierInterface* other) = 0;
@@ -504,13 +504,13 @@ class LbmSolverInterface
ntlRenderGlobals *mpGlob;
// list for marked cells
- std::vector<CellIdentifierInterface *> mMarkedCells;
+ vector<CellIdentifierInterface *> mMarkedCells;
int mMarkedCellIndex;
};
//! helper function to convert flag to string (for debuggin)
-std::string convertCellFlagType2String( CellFlagType flag );
-std::string convertSingleFlag2String(CellFlagType cflag);
+string convertCellFlagType2String( CellFlagType flag );
+string convertSingleFlag2String(CellFlagType cflag);
#endif // LBMINTERFACE_H
diff --git a/intern/elbeem/intern/ntl_geometrybox.cpp b/intern/elbeem/intern/ntl_geometrybox.cpp
deleted file mode 100644
index 449e2801cde..00000000000
--- a/intern/elbeem/intern/ntl_geometrybox.cpp
+++ /dev/null
@@ -1,302 +0,0 @@
-/******************************************************************************
- *
- * El'Beem - Free Surface Fluid Simulation with the Lattice Boltzmann Method
- * Copyright 2003,2004 Nils Thuerey
- *
- * A simple box object
- *
- *****************************************************************************/
-
-#include "ntl_geometrybox.h"
-#include "ntl_ray.h"
-#include "ntl_scene.h"
-
-
-/******************************************************************************
- * Default Constructor
- *****************************************************************************/
-ntlGeometryBox::ntlGeometryBox( void ) :
- ntlGeometryObject(),
- mvStart( 0.0 ),
- mvEnd( 1.0 ),
- mRefinement(0)
-{
-}
-
-/******************************************************************************
- * Init Constructor
- *****************************************************************************/
-/*ntlGeometryBox::ntlGeometryBox( ntlVec3Gfx start, ntlVec3Gfx end ) :
- ntlGeometryObject(),
- mvStart( start ),
- mvEnd( end ),
- mRefinement(0)
-{
-}*/
-
-/*****************************************************************************/
-/* Init refinement attribute */
-/*****************************************************************************/
-void ntlGeometryBox::initialize(ntlRenderGlobals *glob) {
- ntlGeometryObject::initialize(glob);
- //READATTR(ntlGeometryBox, mRefinement, refine, Int, false);
- mRefinement = mpAttrs->readInt("refine", mRefinement,"ntlGeometryBox", "mRefinement", false);
-
- checkBoundingBox(mvStart,mvEnd, "ntlGeometryBox::initialize");
-}
-
-
-/******************************************************************************
- *
- *****************************************************************************/
-void
-ntlGeometryBox::getTriangles( vector<ntlTriangle> *triangles,
- vector<ntlVec3Gfx> *vertices,
- vector<ntlVec3Gfx> *normals, int objectId )
-{
- int doBack = 1;
- int doFront = 1;
- int doTop = 1;
- int doBottom = 1;
- int doLeft = 1;
- int doRight = 1;
-
- /*int mRefinement = 0;
- string refineAttr("refine");
- if(mpAttrs->exists(refineAttr)) {
- mRefinement = mpAttrs->find(refineAttr)->getAsInt();
- //debugOut("GeoBox Ref set to '"<< mpAttrs->find(refineAttr)->getCompleteString() <<"' " , 3);
- mpAttrs->find(refineAttr)->setUsed(true);
- }*/
-
- if(mRefinement==0) {
- gfxReal s0 = mvStart[0];
- gfxReal s1 = mvStart[1];
- gfxReal s2 = mvStart[2];
- gfxReal e0 = mvEnd[0];
- gfxReal e1 = mvEnd[1];
- gfxReal e2 = mvEnd[2];
- ntlVec3Gfx p1,p2,p3;
- ntlVec3Gfx n1,n2,n3;
-
- /* front plane */
- if(doFront) {
- n1 = n2 = n3 = ntlVec3Gfx( 0.0, 0.0, -1.0 );
- p1 = ntlVec3Gfx( s0, s1, s2 );
- p3 = ntlVec3Gfx( e0, s1, s2 );
- p2 = ntlVec3Gfx( s0, e1, s2 );
- sceneAddTriangle( p1,p2,p3, n1,n2,n3, ntlVec3Gfx(0.0), 1 );
- p1 = ntlVec3Gfx( e0, e1, s2 );
- p3 = ntlVec3Gfx( s0, e1, s2 );
- p2 = ntlVec3Gfx( e0, s1, s2 );
- sceneAddTriangle( p1,p2,p3, n1,n2,n3, ntlVec3Gfx(0.0), 1 );
- }
-
- /* back plane k */
- if(doBack) {
- n1 = n2 = n3 = ntlVec3Gfx( 0.0, 0.0, 1.0 );
- p1 = ntlVec3Gfx( s0, s1, e2 );
- p3 = ntlVec3Gfx( s0, e1, e2 );
- p2 = ntlVec3Gfx( e0, s1, e2 );
- sceneAddTriangle( p1,p2,p3, n1,n2,n3, ntlVec3Gfx(0.0), 1 );
- p1 = ntlVec3Gfx( s0, e1, e2 );
- p3 = ntlVec3Gfx( e0, e1, e2 );
- p2 = ntlVec3Gfx( e0, s1, e2 );
- sceneAddTriangle( p1,p2,p3, n1,n2,n3, ntlVec3Gfx(0.0), 1 );
- }
-
- /* bottom plane k */
- if(doBottom) {
- n1 = n2 = n3 = ntlVec3Gfx( 0.0, -1.0, 0.0 );
- p1 = ntlVec3Gfx( e0, s1, s2 );
- p3 = ntlVec3Gfx( s0, s1, s2 );
- p2 = ntlVec3Gfx( s0, s1, e2 );
- sceneAddTriangle( p1,p2,p3, n1,n2,n3, ntlVec3Gfx(0.0), 1 );
- p1 = ntlVec3Gfx( s0, s1, e2 );
- p3 = ntlVec3Gfx( e0, s1, e2 );
- p2 = ntlVec3Gfx( e0, s1, s2 );
- sceneAddTriangle( p1,p2,p3, n1,n2,n3, ntlVec3Gfx(0.0), 1 );
- }
-
- /* top plane k */
- if(doTop) {
- n1 = n2 = n3 = ntlVec3Gfx( 0.0, 1.0, 0.0 );
- p1 = ntlVec3Gfx( e0, e1, e2 );
- p2 = ntlVec3Gfx( e0, e1, s2 );
- p3 = ntlVec3Gfx( s0, e1, e2 );
- sceneAddTriangle( p1,p2,p3, n1,n2,n3, ntlVec3Gfx(0.0), 1 );
- p1 = ntlVec3Gfx( s0, e1, s2 );
- p2 = ntlVec3Gfx( s0, e1, e2 );
- p3 = ntlVec3Gfx( e0, e1, s2 );
- sceneAddTriangle( p1,p2,p3, n1,n2,n3, ntlVec3Gfx(0.0), 1 );
- }
-
- /* left plane k */
- if(doLeft) {
- n1 = n2 = n3 = ntlVec3Gfx( -1.0, 0.0, 0.0 );
- p1 = ntlVec3Gfx( s0, s1, e2 );
- p3 = ntlVec3Gfx( s0, s1, s2 );
- p2 = ntlVec3Gfx( s0, e1, s2 );
- sceneAddTriangle( p1,p2,p3, n1,n2,n3, ntlVec3Gfx(0.0), 1 );
- p1 = ntlVec3Gfx( s0, e1, s2 );
- p3 = ntlVec3Gfx( s0, e1, e2 );
- p2 = ntlVec3Gfx( s0, s1, e2 );
- sceneAddTriangle( p1,p2,p3, n1,n2,n3, ntlVec3Gfx(0.0), 1 );
- }
-
- /* right plane k */
- if(doRight) {
- n1 = n2 = n3 = ntlVec3Gfx( 1.0, 0.0, 0.0 );
- p1 = ntlVec3Gfx( e0, e1, e2 );
- p3 = ntlVec3Gfx( e0, e1, s2 );
- p2 = ntlVec3Gfx( e0, s1, e2 );
- sceneAddTriangle( p1,p2,p3, n1,n2,n3, ntlVec3Gfx(0.0), 1 );
- p1 = ntlVec3Gfx( e0, e1, s2 );
- p3 = ntlVec3Gfx( e0, s1, s2 );
- p2 = ntlVec3Gfx( e0, s1, e2 );
- sceneAddTriangle( p1,p2,p3, n1,n2,n3, ntlVec3Gfx(0.0), 1 );
- }
-
- } else {
- // refined box
- gfxReal S0 = mvStart[0];
- gfxReal S1 = mvStart[1];
- gfxReal S2 = mvStart[2];
- gfxReal v0 = (mvEnd[0]-mvStart[0])/(gfxReal)(mRefinement+1);
- gfxReal v1 = (mvEnd[1]-mvStart[1])/(gfxReal)(mRefinement+1);
- gfxReal v2 = (mvEnd[2]-mvStart[2])/(gfxReal)(mRefinement+1);
- ntlVec3Gfx p1,p2,p3;
- ntlVec3Gfx n1,n2,n3;
-
- for(int i=0; i<=mRefinement; i++)
- for(int j=0; j<=mRefinement; j++) {
- gfxReal s0 = S0 + i*v0;
- gfxReal s1 = S1 + j*v1;
- gfxReal s2 = S2;
- gfxReal e0 = S0 + (i+1.0)*v0;
- gfxReal e1 = S1 + (j+1.0)*v1;
- /* front plane */
- if(doFront) {
- n1 = n2 = n3 = ntlVec3Gfx( 0.0, 0.0, -1.0 );
- p1 = ntlVec3Gfx( s0, s1, s2 );
- p3 = ntlVec3Gfx( e0, s1, s2 );
- p2 = ntlVec3Gfx( s0, e1, s2 );
- sceneAddTriangle( p1,p2,p3, n1,n2,n3, ntlVec3Gfx(0.0), 1 );
- p1 = ntlVec3Gfx( e0, e1, s2 );
- p3 = ntlVec3Gfx( s0, e1, s2 );
- p2 = ntlVec3Gfx( e0, s1, s2 );
- sceneAddTriangle( p1,p2,p3, n1,n2,n3, ntlVec3Gfx(0.0), 1 );
- }
- } // i,j
- for(int i=0; i<=mRefinement; i++)
- for(int j=0; j<=mRefinement; j++) {
- gfxReal s0 = S0 + i*v0;
- gfxReal s1 = S1 + j*v1;
- gfxReal e0 = S0 + (i+1.0)*v0;
- gfxReal e1 = S1 + (j+1.0)*v1;
- gfxReal e2 = S2 + (mRefinement+1.0)*v2;
- /* back plane k */
- if(doBack) {
- n1 = n2 = n3 = ntlVec3Gfx( 0.0, 0.0, 1.0 );
- p1 = ntlVec3Gfx( s0, s1, e2 );
- p3 = ntlVec3Gfx( s0, e1, e2 );
- p2 = ntlVec3Gfx( e0, s1, e2 );
- sceneAddTriangle( p1,p2,p3, n1,n2,n3, ntlVec3Gfx(0.0), 1 );
- p1 = ntlVec3Gfx( s0, e1, e2 );
- p3 = ntlVec3Gfx( e0, e1, e2 );
- p2 = ntlVec3Gfx( e0, s1, e2 );
- sceneAddTriangle( p1,p2,p3, n1,n2,n3, ntlVec3Gfx(0.0), 1 );
- }
- }
-
- for(int i=0; i<=mRefinement; i++)
- for(int j=0; j<=mRefinement; j++) {
-
- gfxReal s0 = S0 + i*v0;
- gfxReal s1 = S1;
- gfxReal s2 = S2 + j*v2;
- gfxReal e0 = S0 + (i+1.0)*v0;
- gfxReal e2 = S2 + (j+1.0)*v2;
- /* bottom plane k */
- if(doBottom) {
- n1 = n2 = n3 = ntlVec3Gfx( 0.0, -1.0, 0.0 );
- p1 = ntlVec3Gfx( e0, s1, s2 );
- p3 = ntlVec3Gfx( s0, s1, s2 );
- p2 = ntlVec3Gfx( s0, s1, e2 );
- sceneAddTriangle( p1,p2,p3, n1,n2,n3, ntlVec3Gfx(0.0), 1 );
- p1 = ntlVec3Gfx( s0, s1, e2 );
- p3 = ntlVec3Gfx( e0, s1, e2 );
- p2 = ntlVec3Gfx( e0, s1, s2 );
- sceneAddTriangle( p1,p2,p3, n1,n2,n3, ntlVec3Gfx(0.0), 1 );
- }
- }
-
- for(int i=0; i<=mRefinement; i++)
- for(int j=0; j<=mRefinement; j++) {
-
- gfxReal s0 = S0 + i*v0;
- gfxReal s2 = S2 + j*v2;
- gfxReal e0 = S0 + (i+1.0)*v0;
- gfxReal e1 = S1 + (mRefinement+1.0)*v1;
- gfxReal e2 = S2 + (j+1.0)*v2;
- /* top plane k */
- if(doTop) {
- n1 = n2 = n3 = ntlVec3Gfx( 0.0, 1.0, 0.0 );
- p1 = ntlVec3Gfx( e0, e1, e2 );
- p2 = ntlVec3Gfx( e0, e1, s2 );
- p3 = ntlVec3Gfx( s0, e1, e2 );
- sceneAddTriangle( p1,p2,p3, n1,n2,n3, ntlVec3Gfx(0.0), 1 );
- p1 = ntlVec3Gfx( s0, e1, s2 );
- p2 = ntlVec3Gfx( s0, e1, e2 );
- p3 = ntlVec3Gfx( e0, e1, s2 );
- sceneAddTriangle( p1,p2,p3, n1,n2,n3, ntlVec3Gfx(0.0), 1 );
- }
- }
-
- for(int i=0; i<=mRefinement; i++)
- for(int j=0; j<=mRefinement; j++) {
- gfxReal s0 = S0;
- gfxReal s1 = S1 + i*v1;
- gfxReal s2 = S2 + j*v2;
- gfxReal e1 = S1 + (i+1.0)*v1;
- gfxReal e2 = S2 + (j+1.0)*v2;
- /* left plane k */
- if(doLeft) {
- n1 = n2 = n3 = ntlVec3Gfx( -1.0, 0.0, 0.0 );
- p1 = ntlVec3Gfx( s0, s1, e2 );
- p3 = ntlVec3Gfx( s0, s1, s2 );
- p2 = ntlVec3Gfx( s0, e1, s2 );
- sceneAddTriangle( p1,p2,p3, n1,n2,n3, ntlVec3Gfx(0.0), 1 );
- p1 = ntlVec3Gfx( s0, e1, s2 );
- p3 = ntlVec3Gfx( s0, e1, e2 );
- p2 = ntlVec3Gfx( s0, s1, e2 );
- sceneAddTriangle( p1,p2,p3, n1,n2,n3, ntlVec3Gfx(0.0), 1 );
- }
- }
-
- for(int i=0; i<=mRefinement; i++)
- for(int j=0; j<=mRefinement; j++) {
- gfxReal s1 = S1 + i*v1;
- gfxReal s2 = S2 + j*v2;
- gfxReal e0 = S0 + (mRefinement+1.0)*v0;
- gfxReal e1 = S1 + (i+1.0)*v1;
- gfxReal e2 = S2 + (j+1.0)*v2;
- /* right plane k */
- if(doRight) {
- n1 = n2 = n3 = ntlVec3Gfx( 1.0, 0.0, 0.0 );
- p1 = ntlVec3Gfx( e0, e1, e2 );
- p3 = ntlVec3Gfx( e0, e1, s2 );
- p2 = ntlVec3Gfx( e0, s1, e2 );
- sceneAddTriangle( p1,p2,p3, n1,n2,n3, ntlVec3Gfx(0.0), 1 );
- p1 = ntlVec3Gfx( e0, e1, s2 );
- p3 = ntlVec3Gfx( e0, s1, s2 );
- p2 = ntlVec3Gfx( e0, s1, e2 );
- sceneAddTriangle( p1,p2,p3, n1,n2,n3, ntlVec3Gfx(0.0), 1 );
- }
- }
-
- } // do ref
-
-}
-
-
diff --git a/intern/elbeem/intern/ntl_geometrybox.h b/intern/elbeem/intern/ntl_geometrybox.h
deleted file mode 100644
index 114c253a106..00000000000
--- a/intern/elbeem/intern/ntl_geometrybox.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/******************************************************************************
- *
- * El'Beem - Free Surface Fluid Simulation with the Lattice Boltzmann Method
- * Copyright 2003,2004 Nils Thuerey
- *
- * A simple box object
- *
- *****************************************************************************/
-
-#ifndef NTL_GEOBOX_HH
-#define NTL_GEOBOX_HH
-
-#include "ntl_geometryobject.h"
-
-
-/*! A simple box object generatedd by 12 triangles */
-class ntlGeometryBox : public ntlGeometryObject
-{
-
- public:
- /* Init constructor */
- ntlGeometryBox( void );
- /* Init constructor */
- //ntlGeometryBox( ntlVec3Gfx start, ntlVec3Gfx end );
-
- //! Return type id
- virtual int getTypeId() { return GEOCLASSTID_BOX; }
-
- virtual void getTriangles( vector<ntlTriangle> *triangles,
- vector<ntlVec3Gfx> *vertices,
- vector<ntlVec3Gfx> *normals, int objectId );
-
- /*! for easy GUI detection get start of axis aligned bounding box, return NULL of no BB */
- virtual inline ntlVec3Gfx *getBBStart() { return &mvStart; }
- virtual inline ntlVec3Gfx *getBBEnd() { return &mvEnd; }
-
- /*! Init refinement attribute */
- virtual void initialize(ntlRenderGlobals *glob);
-
- private:
-
- /*! Start and end points of box */
- ntlVec3Gfx mvStart, mvEnd;
-
- /*! refinement factor */
- int mRefinement;
-
-
- public:
-
- /* Access methods */
- /*! Access start vector */
- inline ntlVec3Gfx getStart( void ){ return mvStart; }
- inline void setStart( const ntlVec3Gfx &set ){ mvStart = set; }
- /*! Access end vector */
- inline ntlVec3Gfx getEnd( void ){ return mvEnd; }
- inline void setEnd( const ntlVec3Gfx &set ){ mvEnd = set; }
-
-};
-
-
-
-#endif
diff --git a/intern/elbeem/intern/ntl_geometryshader.h b/intern/elbeem/intern/ntl_geometryshader.h
index 12cd5e7c0bc..06a11838149 100644
--- a/intern/elbeem/intern/ntl_geometryshader.h
+++ b/intern/elbeem/intern/ntl_geometryshader.h
@@ -35,14 +35,14 @@ class ntlGeometryShader :
virtual int postGeoConstrInit(ntlRenderGlobals *glob) { glob=NULL; /*unused*/ return 0; };
/*! Get start iterator for all objects */
- virtual std::vector<ntlGeometryObject *>::iterator getObjectsBegin() { return mObjects.begin(); }
+ virtual vector<ntlGeometryObject *>::iterator getObjectsBegin() { return mObjects.begin(); }
/*! Get end iterator for all objects */
- virtual std::vector<ntlGeometryObject *>::iterator getObjectsEnd() { return mObjects.end(); }
+ virtual vector<ntlGeometryObject *>::iterator getObjectsEnd() { return mObjects.end(); }
protected:
//! vector for the objects
- std::vector<ntlGeometryObject *> mObjects;
+ vector<ntlGeometryObject *> mObjects;
};
diff --git a/intern/elbeem/intern/ntl_geometrysphere.cpp b/intern/elbeem/intern/ntl_geometrysphere.cpp
deleted file mode 100644
index 66d9625d1f8..00000000000
--- a/intern/elbeem/intern/ntl_geometrysphere.cpp
+++ /dev/null
@@ -1,229 +0,0 @@
-/******************************************************************************
- *
- * El'Beem - Free Surface Fluid Simulation with the Lattice Boltzmann Method
- * Copyright 2003,2004 Nils Thuerey
- *
- * A simple sphere object
- *
- *****************************************************************************/
-
-#include "ntl_geometrysphere.h"
-#include "ntl_ray.h"
-#include "ntl_scene.h"
-
-
-/******************************************************************************
- * Default Constructor
- *****************************************************************************/
-ntlGeometrySphere::ntlGeometrySphere() :
- ntlGeometryObject(),
- mvCenter( 0.0 ),
- mRadius( 1.0 ),
- mRefPolar(5), mRefAzim(5)
-{
-}
-
-
-/*****************************************************************************/
-/* Init attributes */
-/*****************************************************************************/
-void ntlGeometrySphere::initialize(ntlRenderGlobals *glob) {
- ntlGeometryObject::initialize(glob);
-
- mvCenter = vec2G(mpAttrs->readVec3d("center", vec2D(mvCenter) ,"ntlGeometrySphere", "mvCenter", false));
- mRadius = mpAttrs->readFloat("radius", mRadius ,"ntlGeometrySphere", "mRadius", false);
- mRefPolar = mpAttrs->readInt ("refpolar", mRefPolar,"ntlGeometrySphere", "mRefPolar", false);
- mRefAzim = mpAttrs->readInt ("refazim", mRefAzim ,"ntlGeometrySphere", "mRefAzim", false);
- if(mRefPolar<1) mRefPolar = 1;
- if(mRefAzim<1) mRefAzim = 1;
- mRefAzim *= 4;
-
- mvBBStart = mvCenter - ntlVec3Gfx(mRadius);
- mvBBEnd = mvCenter + ntlVec3Gfx(mRadius);
-}
-
-
-/******************************************************************************
- *
- *****************************************************************************/
-
-ntlVec3Gfx getSphereCoord(gfxReal radius, gfxReal phi, gfxReal theta) {
- return ntlVec3Gfx(
- radius * cos(theta) * sin(phi),
- radius * sin(theta) * sin(phi),
- radius * cos(phi)
- );
-};
-
-void
-ntlGeometrySphere::getTriangles( vector<ntlTriangle> *triangles,
- vector<ntlVec3Gfx> *vertices,
- vector<ntlVec3Gfx> *normals, int objectId )
-{
-
- gfxReal phiD = 0.5* M_PI/ (gfxReal)mRefPolar;
- gfxReal thetaD = 2.0* M_PI/ (gfxReal)mRefAzim;
- gfxReal phi = 0.0;
- for(int i=0; i<mRefPolar; i++) {
- gfxReal theta = 0.0;
- for(int j=0; j<mRefAzim; j++) {
- ntlVec3Gfx p1,p2,p3;
- ntlVec3Gfx n1,n2,n3;
-
- p1 = getSphereCoord(mRadius, phi , theta );
- p2 = getSphereCoord(mRadius, phi+phiD, theta );
- p3 = getSphereCoord(mRadius, phi+phiD, theta+thetaD );
- n1 = getNormalized(p1);
- n2 = getNormalized(p2);
- n3 = getNormalized(p3);
- //n3 = n2 = n1;
- p1 += mvCenter;
- p2 += mvCenter;
- p3 += mvCenter;
- sceneAddTriangle( p1,p2,p3, n1,n2,n3, ntlVec3Gfx(0.0), 1 );
-
- n1[2] *= -1.0;
- n2[2] *= -1.0;
- n3[2] *= -1.0;
- p1[2] -= mvCenter[2];
- p2[2] -= mvCenter[2];
- p3[2] -= mvCenter[2];
- p1[2] *= -1.0;
- p2[2] *= -1.0;
- p3[2] *= -1.0;
- p1[2] += mvCenter[2];
- p2[2] += mvCenter[2];
- p3[2] += mvCenter[2];
- sceneAddTriangle( p1,p3,p2, n1,n3,n2, ntlVec3Gfx(0.0), 1 );
-
- p1 = getSphereCoord(mRadius, phi , theta );
- p3 = getSphereCoord(mRadius, phi , theta+thetaD );
- p2 = getSphereCoord(mRadius, phi+phiD, theta+thetaD );
- n1 = getNormalized(p1);
- n2 = getNormalized(p2);
- n3 = getNormalized(p3);
- //n3 = n2 = n1;
- p1 += mvCenter;
- p2 += mvCenter;
- p3 += mvCenter;
- sceneAddTriangle( p1,p2,p3, n1,n2,n3, ntlVec3Gfx(0.0), 1 );
-
- n1[2] *= -1.0;
- n2[2] *= -1.0;
- n3[2] *= -1.0;
- p1[2] -= mvCenter[2];
- p2[2] -= mvCenter[2];
- p3[2] -= mvCenter[2];
- p1[2] *= -1.0;
- p2[2] *= -1.0;
- p3[2] *= -1.0;
- p1[2] += mvCenter[2];
- p2[2] += mvCenter[2];
- p3[2] += mvCenter[2];
- sceneAddTriangle( p1,p3,p2, n1,n3,n2, ntlVec3Gfx(0.0), 1 );
-
- theta += thetaD;
- }
- phi += phiD;
- }
-
- int doBack = 0;
- int doFront = 0;
- int doTop = 0;
- int doBottom = 0;
- int doLeft = 0;
- int doRight = 0;
- ntlVec3Gfx mvStart = mvBBStart;
- ntlVec3Gfx mvEnd = mvBBEnd;
-
- gfxReal s0 = mvStart[0];
- gfxReal s1 = mvStart[1];
- gfxReal s2 = mvStart[2];
- gfxReal e0 = mvEnd[0];
- gfxReal e1 = mvEnd[1];
- gfxReal e2 = mvEnd[2];
- ntlVec3Gfx p1,p2,p3;
- ntlVec3Gfx n1,n2,n3;
-
- /* front plane */
- if(doFront) {
- n1 = n2 = n3 = ntlVec3Gfx( 0.0, 0.0, -1.0 );
- p1 = ntlVec3Gfx( s0, s1, s2 );
- p3 = ntlVec3Gfx( e0, s1, s2 );
- p2 = ntlVec3Gfx( s0, e1, s2 );
- sceneAddTriangle( p1,p2,p3, n1,n2,n3, ntlVec3Gfx(0.0), 1 );
- p1 = ntlVec3Gfx( e0, e1, s2 );
- p3 = ntlVec3Gfx( s0, e1, s2 );
- p2 = ntlVec3Gfx( e0, s1, s2 );
- sceneAddTriangle( p1,p2,p3, n1,n2,n3, ntlVec3Gfx(0.0), 1 );
- }
-
- /* back plane k */
- if(doBack) {
- n1 = n2 = n3 = ntlVec3Gfx( 0.0, 0.0, 1.0 );
- p1 = ntlVec3Gfx( s0, s1, e2 );
- p3 = ntlVec3Gfx( s0, e1, e2 );
- p2 = ntlVec3Gfx( e0, s1, e2 );
- sceneAddTriangle( p1,p2,p3, n1,n2,n3, ntlVec3Gfx(0.0), 1 );
- p1 = ntlVec3Gfx( s0, e1, e2 );
- p3 = ntlVec3Gfx( e0, e1, e2 );
- p2 = ntlVec3Gfx( e0, s1, e2 );
- sceneAddTriangle( p1,p2,p3, n1,n2,n3, ntlVec3Gfx(0.0), 1 );
- }
-
- /* bottom plane k */
- if(doBottom) {
- n1 = n2 = n3 = ntlVec3Gfx( 0.0, -1.0, 0.0 );
- p1 = ntlVec3Gfx( e0, s1, s2 );
- p3 = ntlVec3Gfx( s0, s1, s2 );
- p2 = ntlVec3Gfx( s0, s1, e2 );
- sceneAddTriangle( p1,p2,p3, n1,n2,n3, ntlVec3Gfx(0.0), 1 );
- p1 = ntlVec3Gfx( s0, s1, e2 );
- p3 = ntlVec3Gfx( e0, s1, e2 );
- p2 = ntlVec3Gfx( e0, s1, s2 );
- sceneAddTriangle( p1,p2,p3, n1,n2,n3, ntlVec3Gfx(0.0), 1 );
- }
-
- /* top plane k */
- if(doTop) {
- n1 = n2 = n3 = ntlVec3Gfx( 0.0, 1.0, 0.0 );
- p1 = ntlVec3Gfx( e0, e1, e2 );
- p2 = ntlVec3Gfx( e0, e1, s2 );
- p3 = ntlVec3Gfx( s0, e1, e2 );
- sceneAddTriangle( p1,p2,p3, n1,n2,n3, ntlVec3Gfx(0.0), 1 );
- p1 = ntlVec3Gfx( s0, e1, s2 );
- p2 = ntlVec3Gfx( s0, e1, e2 );
- p3 = ntlVec3Gfx( e0, e1, s2 );
- sceneAddTriangle( p1,p2,p3, n1,n2,n3, ntlVec3Gfx(0.0), 1 );
- }
-
- /* left plane k */
- if(doLeft) {
- n1 = n2 = n3 = ntlVec3Gfx( -1.0, 0.0, 0.0 );
- p1 = ntlVec3Gfx( s0, s1, e2 );
- p3 = ntlVec3Gfx( s0, s1, s2 );
- p2 = ntlVec3Gfx( s0, e1, s2 );
- sceneAddTriangle( p1,p2,p3, n1,n2,n3, ntlVec3Gfx(0.0), 1 );
- p1 = ntlVec3Gfx( s0, e1, s2 );
- p3 = ntlVec3Gfx( s0, e1, e2 );
- p2 = ntlVec3Gfx( s0, s1, e2 );
- sceneAddTriangle( p1,p2,p3, n1,n2,n3, ntlVec3Gfx(0.0), 1 );
- }
-
- /* right plane k */
- if(doRight) {
- n1 = n2 = n3 = ntlVec3Gfx( 1.0, 0.0, 0.0 );
- p1 = ntlVec3Gfx( e0, e1, e2 );
- p3 = ntlVec3Gfx( e0, e1, s2 );
- p2 = ntlVec3Gfx( e0, s1, e2 );
- sceneAddTriangle( p1,p2,p3, n1,n2,n3, ntlVec3Gfx(0.0), 1 );
- p1 = ntlVec3Gfx( e0, e1, s2 );
- p3 = ntlVec3Gfx( e0, s1, s2 );
- p2 = ntlVec3Gfx( e0, s1, e2 );
- sceneAddTriangle( p1,p2,p3, n1,n2,n3, ntlVec3Gfx(0.0), 1 );
- }
-
-
-}
-
-
diff --git a/intern/elbeem/intern/ntl_geometrysphere.h b/intern/elbeem/intern/ntl_geometrysphere.h
deleted file mode 100644
index 6d19e7366fd..00000000000
--- a/intern/elbeem/intern/ntl_geometrysphere.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/******************************************************************************
- *
- * El'Beem - Free Surface Fluid Simulation with the Lattice Boltzmann Method
- * Copyright 2003,2004 Nils Thuerey
- *
- * A simple sphere object
- *
- *****************************************************************************/
-
-#ifndef NTL_GEOSPHERE_H
-
-#include "ntl_geometryobject.h"
-
-
-/*! A simple box object generatedd by 12 triangles */
-class ntlGeometrySphere : public ntlGeometryObject
-{
-
- public:
- /* Init constructor */
- ntlGeometrySphere( void );
-
- //! Return type id
- virtual int getTypeId() { return GEOCLASSTID_SPHERE; }
-
- virtual void getTriangles( vector<ntlTriangle> *triangles,
- vector<ntlVec3Gfx> *vertices,
- vector<ntlVec3Gfx> *normals, int objectId );
-
- /*! for easy GUI detection get start of axis aligned bounding box, return NULL of no BB */
- virtual inline ntlVec3Gfx *getBBStart() { return &mvBBStart; }
- virtual inline ntlVec3Gfx *getBBEnd() { return &mvBBEnd; }
-
- /*! Init refinement attribute */
- virtual void initialize(ntlRenderGlobals *glob);
-
- private:
-
- /*! Center of the sphere */
- ntlVec3Gfx mvCenter;
-
- /*! radius */
- gfxReal mRadius;
-
- /*! refinement factor along polar angle */
- int mRefPolar;
- /*! refinement factor per segment (azimuthal angle) */
- int mRefAzim;
-
- /*! Start and end points of bounding box */
- ntlVec3Gfx mvBBStart, mvBBEnd;
-
- public:
-
- /* Access methods */
- /*! Access start vector */
- inline ntlVec3Gfx getCenter( void ){ return mvCenter; }
- inline void setCenter( const ntlVec3Gfx &set ){ mvCenter = set; }
-
-};
-
-
-
-#define NTL_GEOSPHERE_H
-#endif
diff --git a/intern/elbeem/intern/ntl_image.cpp b/intern/elbeem/intern/ntl_image.cpp
deleted file mode 100644
index bf1aa61890a..00000000000
--- a/intern/elbeem/intern/ntl_image.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
-/******************************************************************************
- *
- * El'Beem - Free Surface Fluid Simulation with the Lattice Boltzmann Method
- * Copyright 2003,2004 Nils Thuerey
- *
- * a templated image class
- *
- *****************************************************************************/
-
-#include "ntl_image.h"
-
-
-
diff --git a/intern/elbeem/intern/ntl_image.h b/intern/elbeem/intern/ntl_image.h
deleted file mode 100644
index f6d9093e95c..00000000000
--- a/intern/elbeem/intern/ntl_image.h
+++ /dev/null
@@ -1,167 +0,0 @@
-/******************************************************************************
- *
- * El'Beem - Free Surface Fluid Simulation with the Lattice Boltzmann Method
- * Copyright 2003,2004 Nils Thuerey
- *
- * a templated image class
- *
- *****************************************************************************/
-
-#ifndef NTL_IMAGE_HH
-#define NTL_IMAGE_HH
-
-#include "ntl_vector3dim.h"
-#include "utilities.h"
-
-
-template<class Value>
-class ntlImage
-{
-public:
- /*! Default constructor */
- ntlImage();
- /*! Init constructor */
- ntlImage(int x,int y, Value def);
- /*! Destructor, delete contents */
- ~ntlImage();
-
- /*! Write the image to a ppm file */
- void writePpm(const char* name);
-
- /*! normalize values into range 0..1 */
- void normalize( void );
-
- /*! Get a pixel from the image */
- inline Value get(int x, int y) { return mpC[y*mSizex+x]; }
-
- /*! Set a pixel in the image */
- inline void set(int x, int y, Value setv) { mpC[y*mSizex+x] = setv; }
-
-protected:
-private:
-
- /*! size in x dimension */
- int mSizex;
-
- /*! size in y dimension */
- int mSizey;
-
- /*! Image contents */
- Value *mpC;
-
-};
-
-
-/*! Default constructor */
-template<class Value>
-ntlImage<Value>::ntlImage()
-{
- mSizex = 0;
- mSizey = 0;
- mpC = NULL;
-}
-
-/*! Init constructor */
-template<class Value>
-ntlImage<Value>::ntlImage(int x,int y,Value def)
-{
- mSizex = x;
- mSizey = y;
- mpC = new Value[x*y];
-
- for(int i=0;i<(x*y);i++) mpC[i] = def;
-}
-
-/*! Destructor, delete contents */
-template<class Value>
-ntlImage<Value>::~ntlImage()
-{
- if(mpC != NULL) {
- delete [] mpC;
- }
-}
-
-
-/*! Write the image to a ppm file */
-template<class Value>
-void ntlImage<Value>::writePpm(const char* name)
-{
- /* write file */
- /* open output file */
- FILE *outfile;
- if ( (outfile = fopen(name,"w")) == NULL ) {
- errorOut( "ntlImage::writePpm ERROR: Open out file failed "<<name<<"!\n" );
- return;
- }
-
- int maxColVal = 255;
-
- /* write ppm header */
- fprintf(outfile,"P3\n%d %d\n%d\n",mSizex,mSizey, maxColVal );
-
- /* get min max values */
- Value min = mpC[0];
- Value max = mpC[0];
- for(int j=0;j<(mSizey*mSizex);j++) {
- if(mpC[j]<min) min = mpC[j];
- if(mpC[j]>max) max = mpC[j];
- }
-
- /* check colors for overflow */
- for(int j=0;j<mSizey;j++) {
- for(int i=0;i<mSizex;i++) {
-
- Value grey;
- if(max-min>0) {
- grey = 1.0-(mpC[j*mSizex+i]-min)/(max-min);
- } else { grey = 1.0; }
- //mpC[j*mSizex+i] /= max;
- ntlColor col = ntlColor(grey,grey,grey);
- unsigned int cCol[3];
- for (unsigned int cc=0; cc<3; cc++) {
- if(col[cc] <= 0.0)
- cCol[cc] = 0;
- else if(col[cc] >= 1.0)
- cCol[cc] = maxColVal;
- else
- cCol[cc] = (unsigned int)(maxColVal * col[cc]);
- }
-
- /* write pixel to ppm file */
- fprintf(outfile,"%4d %4d %4d ",cCol[0],cCol[1],cCol[2]);
-
- } /* foreach x */
-
- fprintf(outfile,"\n");
- } /* foreach y */
-
- /* clean up */
- fclose(outfile);
-}
-
-
-
-/*! Write the image to a ppm file */
-template<class Value>
-void ntlImage<Value>::normalize( void )
-{
- /* get min max values */
- Value min = mpC[0];
- Value max = mpC[0];
- for(int j=0;j<(mSizey*mSizex);j++) {
- if(mpC[j]<min) min = mpC[j];
- if(mpC[j]>max) max = mpC[j];
- }
-
- /* check colors for overflow */
- for(int j=0;j<mSizey;j++) {
- for(int i=0;i<mSizex;i++) {
- Value grey = 1.0-(mpC[j*mSizex+i]-min)/(max-min);
- mpC[j*mSizex+i] = grey;
- } /* foreach x */
- } /* foreach y */
-}
-
-
-#endif
-
diff --git a/intern/elbeem/intern/ntl_lightobject.h b/intern/elbeem/intern/ntl_lightobject.h
index 6b753223bce..19dde8829a1 100644
--- a/intern/elbeem/intern/ntl_lightobject.h
+++ b/intern/elbeem/intern/ntl_lightobject.h
@@ -12,7 +12,6 @@
#include "ntl_vector3dim.h"
#include "ntl_material.h"
-#include "ntl_image.h"
class ntlRay;
class ntlRenderGlobals;
class ntlGeometryObject;
@@ -66,10 +65,6 @@ public:
/*! Access the omni light position */
void setPosition(ntlVec3Gfx set) { mvPosition = set; }
ntlVec3Gfx getPosition() const { return mvPosition; }
- /*! Init the shadow map */
- void setShadowMap(int setx, int sety, int sampling) { mUseShadowMap = true; mSMSizeX = setx; mSMSizeY = sety; mSMSampling = sampling; }
- /*! Init the caustics map */
- void setCausticsMap(int setx, int sety ) { mUseCausticsMap = true; mCMSizeX = setx; mCMSizeY = sety; }
protected:
@@ -88,30 +83,6 @@ protected:
/*! light position */
ntlVec3Gfx mvPosition;
- /*! shadow map active? */
- int mUseShadowMap;
-
- /*! shadow map size */
- int mSMSizeX;
- int mSMSizeY;
-
- /*! Sampling value for shadow map filtering */
- int mSMSampling;
-
- /*! Images for shadow map */
- ntlImage<gfxReal> *mpShadowMap[6];
-
-
- /*! caustics map active? */
- int mUseCausticsMap;
-
- /*! caustics map size */
- int mCMSizeX;
- int mCMSizeY;
-
- /*! Images for caustics map */
- ntlImage<char> *mpCausticsMap[6];
-
private:
};
diff --git a/intern/elbeem/intern/ntl_ray.cpp b/intern/elbeem/intern/ntl_ray.cpp
index ef7278248ba..440144a0245 100644
--- a/intern/elbeem/intern/ntl_ray.cpp
+++ b/intern/elbeem/intern/ntl_ray.cpp
@@ -116,6 +116,7 @@ ntlRay::~ntlRay()
#define MIDDLE 2
//! intersect ray with AABB
+#ifndef ELBEEM_BLENDER
void ntlRay::intersectFrontAABB(ntlVec3Gfx mStart, ntlVec3Gfx mEnd, gfxReal &t, ntlVec3Gfx &retnormal,ntlVec3Gfx &retcoord) const
{
char inside = true; /* inside box? */
@@ -203,8 +204,6 @@ void ntlRay::intersectFrontAABB(ntlVec3Gfx mStart, ntlVec3Gfx mEnd, gfxReal &t,
retcoord = coord;
}
-
-
//! intersect ray with AABB
void ntlRay::intersectBackAABB(ntlVec3Gfx mStart, ntlVec3Gfx mEnd, gfxReal &t, ntlVec3Gfx &retnormal,ntlVec3Gfx &retcoord) const
{
@@ -289,10 +288,7 @@ void ntlRay::intersectBackAABB(ntlVec3Gfx mStart, ntlVec3Gfx mEnd, gfxReal &t, n
retnormal = normal;
retcoord = coord;
}
-
-
-
-
+#endif // ELBEEM_BLENDER
//! intersect ray with AABB
void ntlRay::intersectCompleteAABB(ntlVec3Gfx mStart, ntlVec3Gfx mEnd, gfxReal &tmin, gfxReal &tmax) const
@@ -445,6 +441,7 @@ void ntlRay::intersectCompleteAABB(ntlVec3Gfx mStart, ntlVec3Gfx mEnd, gfxReal &
*****************************************************************************/
const ntlColor ntlRay::shade() //const
{
+#ifndef ELBEEM_BLENDER
ntlGeometryObject *closest = NULL;
gfxReal minT = GFX_REAL_MAX;
vector<ntlLightObject*> *lightlist = mpGlob->getLightList();
@@ -456,7 +453,6 @@ const ntlColor ntlRay::shade() //const
if(mContribution <= RAY_MINCONTRIB) {
//return ntlColor(0.0);
}
-
/* find closes object that intersects */
ntlTriangle *tri = NULL;
@@ -468,8 +464,6 @@ const ntlColor ntlRay::shade() //const
/* object hit... */
if (closest != NULL) {
- //return( ntlColor(1.0) );
- //normal = tri->getNormal(); // no normal smoothing
ntlVec3Gfx triangleNormal = tri->getNormal();
if( equal(triangleNormal, ntlVec3Gfx(0.0)) ) errorOut("ntlRaytracer warning: trinagle normal= 0 "); // DEBUG
@@ -485,11 +479,11 @@ const ntlColor ntlRay::shade() //const
/* ... -> do reflection */
ntlVec3Gfx intersectionPosition(mOrigin + (mDirection * (minT)) );
ntlMaterial *clossurf = closest->getMaterial();
- if(mpGlob->getDebugOut() > 5) {
+ /*if(mpGlob->getDebugOut() > 5) {
errorOut("Ray hit: at "<<intersectionPosition<<" n:"<<normal<<" dn:"<<valDN<<" ins:"<<intersectionInside<<" cl:"<<((unsigned int)closest) );
errorOut(" t1:"<<mpGlob->getScene()->getVertex(tri->getPoints()[0])<<" t2:"<<mpGlob->getScene()->getVertex(tri->getPoints()[1])<<" t3:"<<mpGlob->getScene()->getVertex(tri->getPoints()[2]) );
errorOut(" trin:"<<tri->getNormal() );
- }
+ } // debug */
/* current transparence and reflectivity */
gfxReal currTrans = clossurf->getTransparence();
@@ -635,12 +629,10 @@ const ntlColor ntlRay::shade() //const
}
-
/* add highlights (should not be affected by transparence as the diffuse reflections */
currentColor += highlightColor;
/* attentuate as a last step*/
- //if(currTrans > RAY_THRESHOLD) {
/* check if we're on the inside or outside */
if(intersectionInside) {
gfxReal kr,kg,kb; /* attentuation */
@@ -657,6 +649,7 @@ const ntlColor ntlRay::shade() //const
return ntlColor(currentColor);
}
+#endif // ELBEEM_BLENDER
/* no object hit -> ray goes to infinity */
return mpGlob->getBackgroundCol();
}
diff --git a/intern/elbeem/intern/ntl_raytracer.cpp b/intern/elbeem/intern/ntl_raytracer.cpp
index 45a15a714fb..ece36b1560a 100644
--- a/intern/elbeem/intern/ntl_raytracer.cpp
+++ b/intern/elbeem/intern/ntl_raytracer.cpp
@@ -25,11 +25,8 @@
/* external parser functions from cfgparser.cxx */
-//#include "cfgparse_functions.h"
-
/* parse given file as config file */
void parseFile(string filename);
-
/* set pointers for parsing */
void setPointers( ntlRenderGlobals *setglob);
@@ -237,23 +234,14 @@ int ntlRaytracer::renderVisualization( bool multiThreaded )
warnMsg("ntlRaytracer::advanceSims","World state error... stopping" );
setStopRenderVisualization( true );
}
- //? mSimulationTime = (*mpSims)[mFirstSim]->getCurrentTime();
- //debMsgStd("ntlRaytracer::renderVisualization : single step mode ", 10);
- //debMsgStd("", 10 );
}
-#ifndef NOGUI
// save frame
if(mpOpenGLRenderer) mpOpenGLRenderer->saveAnimationFrame( mSimulationTime );
-#endif // NOGUI
// for non-threaded check events
if(!multiThreaded) {
- //if(gpElbeemFrame->ElbeemWindow->visible()) {
- //if (!Fl::check()) break; // returns immediately
- //}
Fl::check();
- //gpElbeemFrame->SceneDisplay->doIdleRedraw();
gpElbeemFrame->SceneDisplay->doOnlyForcedRedraw();
}
@@ -277,12 +265,11 @@ int ntlRaytracer::singleStepVisualization( void )
if(mpOpenGLRenderer) mpOpenGLRenderer->saveAnimationFrame( mSimulationTime );
Fl::check();
gpElbeemFrame->SceneDisplay->doOnlyForcedRedraw();
-#endif // NOGUI
-
mThreadRunning = false;
-#ifndef NOGUI
stopSimulationRestoreGui();
-#endif
+#else
+ mThreadRunning = false;
+#endif // NOGUI
return 0;
}
@@ -294,8 +281,6 @@ int ntlRaytracer::singleStepVisualization( void )
*****************************************************************************/
int ntlRaytracer::advanceSims()
{
- //gfxReal currTime[ mpSims->size() ];
-
bool done = false;
bool allPanic = true;
double targetTime = mSimulationTime + (*mpSims)[mFirstSim]->getFrameTime();
@@ -313,7 +298,6 @@ int ntlRaytracer::advanceSims()
if((*mpSims)[i]->getPanic()) allPanic = true; // do any panic now!?
//debMsgStd("ntlRaytracer::advanceSims",DM_MSG, " sim "<<i<<" c"<<(*mpSims)[i]->getCurrentTime()<<" p"<<(*mpSims)[i]->getPanic()<<" t"<<targetTime, 10); // debug // timedebug
}
- //if((*mpSims)[mFirstSim]->getCurrentTime() < targetTime) done = false;
if( (targetTime - (*mpSims)[mFirstSim]->getCurrentTime()) > LBM_TIME_EPSILON) done=false;
if(allPanic) done = true;
}
@@ -371,6 +355,7 @@ void ntlRaytracer::singleStepSims(double targetTime) {
*****************************************************************************/
int ntlRaytracer::renderScene( void )
{
+#ifndef ELBEEM_BLENDER
char nrStr[5]; /* nr conversion */
//std::ostringstream outfilename(""); /* ppm file */
std::ostringstream outfn_conv(""); /* converted ppm with other suffix */
@@ -723,6 +708,7 @@ int ntlRaytracer::renderScene( void )
debMsgStd("ntlRaytracer::renderScene",DM_NOTIFY, "Single frame mode done...", 1 );
return 1;
}
+#endif // ELBEEM_BLENDER
return 0;
}
diff --git a/intern/elbeem/intern/ntl_scene.cpp b/intern/elbeem/intern/ntl_scene.cpp
index 7a7e47f5d06..4e980944f22 100644
--- a/intern/elbeem/intern/ntl_scene.cpp
+++ b/intern/elbeem/intern/ntl_scene.cpp
@@ -11,10 +11,6 @@
#include "ntl_scene.h"
#include "ntl_geometryobject.h"
#include "ntl_geometryshader.h"
-//#include <sys/times.h>
-
-
-
/******************************************************************************
diff --git a/intern/elbeem/intern/ntl_vector3dim.h b/intern/elbeem/intern/ntl_vector3dim.h
index 3679b689b1b..ca039883919 100644
--- a/intern/elbeem/intern/ntl_vector3dim.h
+++ b/intern/elbeem/intern/ntl_vector3dim.h
@@ -19,13 +19,23 @@
#include <vector>
#include <string>
#include <sstream>
-using std::map;
-using std::vector;
-using std::string;
#include <math.h>
#include <string.h>
#include <stdio.h>
+// hack for crappy MSVC6.0 compiler
+#ifdef _MSC_VER
+#define for if(false); else for
+#define map std::map
+#define vector std::vector
+#define string std::string
+#else // MSVC6
+// for proper compilers...
+using std::map;
+using std::vector;
+using std::string;
+#endif // MSVC6
+
#ifdef __APPLE_CC__
// apple
#else
diff --git a/intern/elbeem/intern/utilities.cpp b/intern/elbeem/intern/utilities.cpp
index 4cfcef9cf0f..b9e97de47fb 100644
--- a/intern/elbeem/intern/utilities.cpp
+++ b/intern/elbeem/intern/utilities.cpp
@@ -72,7 +72,7 @@ int convertString2Int(const char *str, int alt)
//-----------------------------------------------------------------------------
//! helper function that converts a flag field to a readable integer
-std::string convertFlags2String(int flags) {
+string convertFlags2String(int flags) {
std::ostringstream ret;
ret <<"(";
int max = sizeof(int)*8;
@@ -154,33 +154,18 @@ myTime_t getTime()
QueryPerformanceCounter(&liLastTime);
ret = (INT)( ((double)liLastTime.QuadPart / liTimerFrequency.QuadPart)*1000 ); // - mFirstTime;
#else
- //fprintf(stderr, " Tp s%lu us%lu \n", tv.tv_sec, tv.tv_usec );
- //clock_t ct = clock();
- //ret = ct*1000/CLOCKS_PER_SEC;
- //fprintf(stderr, " Tp s%lu cps%lu us%lu \n", ct,CLOCKS_PER_SEC, ret );
-
- /*struct tms tt;
- times(&tt);
- //ret = tt.tms_utime/(CLOCKS_PER_SEC/1000);
- ret = tt.tms_utime*10;
- //fprintf(stderr, " Tp s%lu cps%lu us%lu %d %d \n", tt.tms_cutime,CLOCKS_PER_SEC, ret, sizeof(clock_t), tt.tms_cutime );
- //fprintf(stderr, " Tp s%d cps%d us%d %d %d \n", tt.tms_utime,CLOCKS_PER_SEC, ret, sizeof(clock_t), clock() );
- // */
-
struct timeval tv;
struct timezone tz;
tz.tz_minuteswest = 0;
tz.tz_dsttime = 0;
gettimeofday(&tv,&tz);
ret = (tv.tv_sec*1000)+(tv.tv_usec/1000); //-mFirstTime;
- //fprintf(stderr, " Tp s%lu us%lu \n", tv.tv_sec, tv.tv_usec );
#endif
- //cout << " Tret " << ret <<endl;
return (myTime_t)ret;
}
//-----------------------------------------------------------------------------
// convert time to readable string
-std::string getTimeString(myTime_t usecs) {
+string getTimeString(myTime_t usecs) {
std::ostringstream ret;
//myTime_t us = usecs % 1000;
myTime_t ms = usecs / (60*1000);
@@ -198,7 +183,7 @@ std::string getTimeString(myTime_t usecs) {
}
//! helper to check if a bounding box was specified in the right way
-bool checkBoundingBox(ntlVec3Gfx s, ntlVec3Gfx e, std::string checker) {
+bool checkBoundingBox(ntlVec3Gfx s, ntlVec3Gfx e, string checker) {
if( (s[0]>e[0]) ||
(s[1]>e[1]) ||
(s[2]>e[2]) ) {
@@ -213,22 +198,22 @@ bool checkBoundingBox(ntlVec3Gfx s, ntlVec3Gfx e, std::string checker) {
//-----------------------------------------------------------------------------
// debug message output
-static std::string col_black ( "\033[0;30m");
-static std::string col_dark_gray ( "\033[1;30m");
-static std::string col_bright_gray ( "\033[0;37m");
-static std::string col_red ( "\033[0;31m");
-static std::string col_bright_red ( "\033[1;31m");
-static std::string col_green ( "\033[0;32m");
-static std::string col_bright_green ( "\033[1;32m");
-static std::string col_bright_yellow ( "\033[1;33m");
-static std::string col_yellow ( "\033[0;33m");
-static std::string col_cyan ( "\033[0;36m");
-static std::string col_bright_cyan ( "\033[1;36m");
-static std::string col_purple ( "\033[0;35m");
-static std::string col_bright_purple ( "\033[1;35m");
-static std::string col_neutral ( "\033[0m");
-static std::string col_std = col_bright_gray;
-void messageOutputFunc(std::string from, int id, std::string msg, myTime_t interval) {
+static string col_black ( "\033[0;30m");
+static string col_dark_gray ( "\033[1;30m");
+static string col_bright_gray ( "\033[0;37m");
+static string col_red ( "\033[0;31m");
+static string col_bright_red ( "\033[1;31m");
+static string col_green ( "\033[0;32m");
+static string col_bright_green ( "\033[1;32m");
+static string col_bright_yellow ( "\033[1;33m");
+static string col_yellow ( "\033[0;33m");
+static string col_cyan ( "\033[0;36m");
+static string col_bright_cyan ( "\033[1;36m");
+static string col_purple ( "\033[0;35m");
+static string col_bright_purple ( "\033[1;35m");
+static string col_neutral ( "\033[0m");
+static string col_std = col_bright_gray;
+void messageOutputFunc(string from, int id, string msg, myTime_t interval) {
if(interval>0) {
myTime_t currTime = getTime();
if((currTime - globalIntervalTime)>interval) {
@@ -276,7 +261,6 @@ void messageOutputFunc(std::string from, int id, std::string msg, myTime_t inter
default:
// this shouldnt happen...
sout << col_red << " --- messageOutputFunc error: invalid id ("<<id<<") --- aborting... \n\n" << col_std;
- //xit(1); // unecessary?
break;
}
sout <<" "<< msg << col_std;
@@ -289,30 +273,38 @@ void messageOutputFunc(std::string from, int id, std::string msg, myTime_t inter
sout << "\n"; // add newline for output
}
-#ifdef ELBEEM_BLENDER
- fprintf(GEN_userstream, "%s",sout.str().c_str() );
- if(id!=DM_DIRECT) fflush(GEN_userstream);
-#else
- fprintf(stdout,"%s", sout.str().c_str());
+//#ifdef ELBEEM_BLENDER
+#ifdef WIN32
+ // debug level is >0 anyway, so write to file...
+ // TODO generate some reasonable path?
+ FILE *logf = fopen("elbeem_debug_log.txt","a+");
+ // dont complain anymore here...
+ if(logf) {
+ fprintf(logf, "%s",sout.str().c_str() );
+ fclose(logf);
+ }
+#else // WIN32
+ fprintf(stdout, "%s",sout.str().c_str() );
if(id!=DM_DIRECT) fflush(stdout);
-#endif
+#endif // WIN32
}
-#ifdef DEBUG
-bool debugOutInterTest(myTime_t interval) {
- myTime_t currTime = getTime();
- if((currTime - globalIntervalTime)>interval) {
- globalIntervalTime = getTime();
- return true;
- }
- return false;
+// helper functions from external program using elbeem lib (e.g. Blender)
+/* elbeem debug output function */
+extern "C"
+void elbeemDebugOut(char *msg) {
+ // external messages default to debug level 5...
+ if(gDebugLevel<5) return;
+ // delegate to messageOutputFunc
+ messageOutputFunc("[External]",DM_MSG,msg,0);
}
-#endif
-
-
-//-----------------------------------------------------------------------------
-// save exit function
-
+/* set elbeem debug output level (0=off to 10=full on) */
+extern "C"
+void elbeemSetDebugLevel(int level) {
+ if(level<0) level=0;
+ if(level>10) level=10;
+ gDebugLevel=level;
+}
diff --git a/intern/elbeem/intern/utilities.h b/intern/elbeem/intern/utilities.h
index bb6825fab82..2ef6e503cb1 100644
--- a/intern/elbeem/intern/utilities.h
+++ b/intern/elbeem/intern/utilities.h
@@ -12,24 +12,18 @@
typedef unsigned long myTime_t;
//! helper function that converts a string to integer
-int convertString2Int(const char *string, int alt);
+int convertString2Int(const char *str, int alt);
//! helper function that converts a flag field to a readable integer
-std::string convertFlags2String(int flags);
-
-// output streams
-#ifdef ELBEEM_BLENDER
-extern "C" FILE* GEN_errorstream;
-extern "C" FILE* GEN_userstream;
-#endif // ELBEEM_BLENDER
+string convertFlags2String(int flags);
//! get the current system time
myTime_t getTime();
//! convert time to readable string
-std::string getTimeString(myTime_t usecs);
+string getTimeString(myTime_t usecs);
//! helper to check if a bounding box was specified in the right way
-bool checkBoundingBox(ntlVec3Gfx s, ntlVec3Gfx e, std::string checker);
+bool checkBoundingBox(ntlVec3Gfx s, ntlVec3Gfx e, string checker);
/* debugging outputs , debug level 0 (off) to 10 (max) */
@@ -66,7 +60,7 @@ extern "C" char gWorldStringState[256];
#define DM_ERROR 5
#define DM_DIRECT 6
#define DM_FATAL 7
-void messageOutputFunc(std::string from, int id, std::string msg, myTime_t interval);
+void messageOutputFunc(string from, int id, string msg, myTime_t interval);
/* debugging messages defines */
#ifdef DEBUG