mirror of
https://github.com/fltk/fltk.git
synced 2026-05-28 11:25:22 +08:00
Issue #109 contd: missed fractals.cxx fixes, also fix parens issue.
Missed mods to fractals.cxx. Also fixed a parens issue Albrecht noticed on the Mac build.
This commit is contained in:
+64
-64
@@ -131,8 +131,8 @@ void triagnormal(float v1[3], float v2[3], float v3[3], float norm[3])
|
|||||||
|
|
||||||
float xzlength(float v1[3], float v2[3])
|
float xzlength(float v1[3], float v2[3])
|
||||||
{
|
{
|
||||||
return sqrt((v1[0] - v2[0])*(v1[0] - v2[0]) +
|
return sqrtf((v1[0] - v2[0])*(v1[0] - v2[0]) +
|
||||||
(v1[2] - v2[2])*(v1[2] - v2[2]));
|
(v1[2] - v2[2])*(v1[2] - v2[2]));
|
||||||
}
|
}
|
||||||
|
|
||||||
float xzslope(float v1[3], float v2[3])
|
float xzslope(float v1[3], float v2[3])
|
||||||
@@ -173,7 +173,7 @@ void InitRandTable(unsigned int seed)
|
|||||||
|
|
||||||
srand48((long) seed);
|
srand48((long) seed);
|
||||||
for (i = 0; i < NUMRANDS; i++)
|
for (i = 0; i < NUMRANDS; i++)
|
||||||
RandTable[i] = drand48() - 0.5;
|
RandTable[i] = drand48() - 0.5f;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* calculate midpoint and displace it if required */
|
/* calculate midpoint and displace it if required */
|
||||||
@@ -234,8 +234,8 @@ void FractalMountain(GLfloat v1[3], GLfloat v2[3], GLfloat v3[3],
|
|||||||
int pegged[3])
|
int pegged[3])
|
||||||
{
|
{
|
||||||
GLfloat lengths[MAXLEVEL];
|
GLfloat lengths[MAXLEVEL];
|
||||||
GLfloat fraction[8] = { 0.3, 0.3, 0.4, 0.2, 0.3, 0.2, 0.4, 0.4 };
|
GLfloat fraction[8] = { 0.3f, 0.3f, 0.4f, 0.2f, 0.3f, 0.2f, 0.4f, 0.4f };
|
||||||
GLfloat bias[8] = { 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1 };
|
GLfloat bias[8] = { 0.1f, 0.1f, 0.1f, 0.1f, 0.1f, 0.1f, 0.1f, 0.1f };
|
||||||
int i;
|
int i;
|
||||||
float avglen = (xzlength(v1, v2) +
|
float avglen = (xzlength(v1, v2) +
|
||||||
xzlength(v2, v3) +
|
xzlength(v2, v3) +
|
||||||
@@ -288,7 +288,7 @@ void CreateMountain(void)
|
|||||||
*/
|
*/
|
||||||
void NewMountain(void)
|
void NewMountain(void)
|
||||||
{
|
{
|
||||||
InitRandTable(time(NULL));
|
InitRandTable((unsigned int)time(NULL));
|
||||||
}
|
}
|
||||||
|
|
||||||
/***************************************************************/
|
/***************************************************************/
|
||||||
@@ -311,28 +311,28 @@ void FractalTree(int level, long level_seed)
|
|||||||
} else {
|
} else {
|
||||||
glCallList(STEM);
|
glCallList(STEM);
|
||||||
glPushMatrix();
|
glPushMatrix();
|
||||||
glRotatef(drand48()*180, 0, 1, 0);
|
glRotatef(drand48()*180.0f, 0.0f, 1.0f, 0.0f);
|
||||||
glTranslatef(0, 1, 0);
|
glTranslatef(0.0f, 1.0f, 0.0f);
|
||||||
glScalef(0.7, 0.7, 0.7);
|
glScalef(0.7f, 0.7f, 0.7f);
|
||||||
|
|
||||||
srand48(level_seed+1);
|
srand48(level_seed+1);
|
||||||
glPushMatrix();
|
glPushMatrix();
|
||||||
glRotatef(110 + drand48()*40, 0, 1, 0);
|
glRotatef(110.0f + drand48()*40.0f, 0.0f, 1.0f, 0.0f);
|
||||||
glRotatef(30 + drand48()*20, 0, 0, 1);
|
glRotatef( 30.0f + drand48()*20.0f, 0.0f, 0.0f, 1.0f);
|
||||||
FractalTree(level + 1, level_seed+4);
|
FractalTree(level + 1, level_seed+4);
|
||||||
glPopMatrix();
|
glPopMatrix();
|
||||||
|
|
||||||
srand48(level_seed+2);
|
srand48(level_seed+2);
|
||||||
glPushMatrix();
|
glPushMatrix();
|
||||||
glRotatef(-130 + drand48()*40, 0, 1, 0);
|
glRotatef(-130.0f + drand48()*40.0f, 0.0f, 1.0f, 0.0f);
|
||||||
glRotatef(30 + drand48()*20, 0, 0, 1);
|
glRotatef( 30.0f + drand48()*20.0f, 0.0f, 0.0f, 1.0f);
|
||||||
FractalTree(level + 1, level_seed+5);
|
FractalTree(level + 1, level_seed+5);
|
||||||
glPopMatrix();
|
glPopMatrix();
|
||||||
|
|
||||||
srand48(level_seed+3);
|
srand48(level_seed+3);
|
||||||
glPushMatrix();
|
glPushMatrix();
|
||||||
glRotatef(-20 + drand48()*40, 0, 1, 0);
|
glRotatef(-20.0f + drand48()*40.0f, 0.0f, 1.0f, 0.0f);
|
||||||
glRotatef(30 + drand48()*20, 0, 0, 1);
|
glRotatef( 30.0f + drand48()*20.0f, 0.0f, 0.0f, 1.0f);
|
||||||
FractalTree(level + 1, level_seed+6);
|
FractalTree(level + 1, level_seed+6);
|
||||||
glPopMatrix();
|
glPopMatrix();
|
||||||
|
|
||||||
@@ -350,22 +350,22 @@ void CreateTreeLists(void)
|
|||||||
|
|
||||||
glNewList(STEM, GL_COMPILE);
|
glNewList(STEM, GL_COMPILE);
|
||||||
glPushMatrix();
|
glPushMatrix();
|
||||||
glRotatef(-90, 1, 0, 0);
|
glRotatef(-90.0f, 1.0f, 0.0f, 0.0f);
|
||||||
gluCylinder(cylquad, 0.1, 0.08, 1, 10, 2 );
|
gluCylinder(cylquad, 0.1, 0.08, 1, 10, 2 );
|
||||||
glPopMatrix();
|
glPopMatrix();
|
||||||
glEndList();
|
glEndList();
|
||||||
|
|
||||||
glNewList(LEAF, GL_COMPILE); /* I think this was jeff allen's leaf idea */
|
glNewList(LEAF, GL_COMPILE); /* I think this was jeff allen's leaf idea */
|
||||||
glBegin(GL_TRIANGLES);
|
glBegin(GL_TRIANGLES);
|
||||||
glNormal3f(-0.1, 0, 0.25); /* not normalized */
|
glNormal3f(-0.1f, 0.00f, 0.25f); /* not normalized */
|
||||||
glVertex3f(0, 0, 0);
|
glVertex3f( 0.0f, 0.00f, 0.00f);
|
||||||
glVertex3f(0.25, 0.25, 0.1);
|
glVertex3f(0.25f, 0.25f, 0.10f);
|
||||||
glVertex3f(0, 0.5, 0);
|
glVertex3f(0.00f, 0.50f, 0.00f);
|
||||||
|
|
||||||
glNormal3f(0.1, 0, 0.25);
|
glNormal3f( 0.10f, 0.00f, 0.25f);
|
||||||
glVertex3f(0, 0, 0);
|
glVertex3f( 0.00f, 0.00f, 0.00f);
|
||||||
glVertex3f(0, 0.5, 0);
|
glVertex3f( 0.00f, 0.50f, 0.00f);
|
||||||
glVertex3f(-0.25, 0.25, 0.1);
|
glVertex3f(-0.25f, 0.25f, 0.10f);
|
||||||
glEnd();
|
glEnd();
|
||||||
glEndList();
|
glEndList();
|
||||||
|
|
||||||
@@ -375,16 +375,16 @@ void CreateTreeLists(void)
|
|||||||
glCallList(STEM);
|
glCallList(STEM);
|
||||||
glCallList(LEAF_MAT);
|
glCallList(LEAF_MAT);
|
||||||
for(i = 0; i < 3; i++) {
|
for(i = 0; i < 3; i++) {
|
||||||
glTranslatef(0, 0.333, 0);
|
glTranslatef(0.0f, 0.333f, 0.0f);
|
||||||
glRotatef(90, 0, 1, 0);
|
glRotatef(90.0f, 0.0f, 1.0f, 0.0f);
|
||||||
glPushMatrix();
|
glPushMatrix();
|
||||||
glRotatef(0, 0, 1, 0);
|
glRotatef( 0.0f, 0.0f, 1.0f, 0.0f);
|
||||||
glRotatef(50, 1, 0, 0);
|
glRotatef(50.0f, 1.0f, 0.0f, 0.0f);
|
||||||
glCallList(LEAF);
|
glCallList(LEAF);
|
||||||
glPopMatrix();
|
glPopMatrix();
|
||||||
glPushMatrix();
|
glPushMatrix();
|
||||||
glRotatef(180, 0, 1, 0);
|
glRotatef(180.0f, 0.0f, 1.0f, 0.0f);
|
||||||
glRotatef(60, 1, 0, 0);
|
glRotatef( 60.0f, 1.0f, 0.0f, 0.0f);
|
||||||
glCallList(LEAF);
|
glCallList(LEAF);
|
||||||
glPopMatrix();
|
glPopMatrix();
|
||||||
}
|
}
|
||||||
@@ -418,7 +418,7 @@ void CreateTree(void)
|
|||||||
*/
|
*/
|
||||||
void NewTree(void)
|
void NewTree(void)
|
||||||
{
|
{
|
||||||
TreeSeed = time(NULL);
|
TreeSeed = long(time(NULL)); // use time() as random seed
|
||||||
}
|
}
|
||||||
|
|
||||||
/***************************************************************/
|
/***************************************************************/
|
||||||
@@ -427,7 +427,7 @@ void NewTree(void)
|
|||||||
|
|
||||||
void CreateIsland(void)
|
void CreateIsland(void)
|
||||||
{
|
{
|
||||||
cutoff = .06;
|
cutoff = .06f;
|
||||||
CreateMountain();
|
CreateMountain();
|
||||||
cutoff = -1;
|
cutoff = -1;
|
||||||
glNewList(ISLAND, GL_COMPILE);
|
glNewList(ISLAND, GL_COMPILE);
|
||||||
@@ -437,39 +437,39 @@ void CreateIsland(void)
|
|||||||
glCallList(WATER_MAT);
|
glCallList(WATER_MAT);
|
||||||
|
|
||||||
glBegin(GL_QUADS);
|
glBegin(GL_QUADS);
|
||||||
glNormal3f(0, 1, 0);
|
glNormal3f( 0.0f, 1.00f, 0.0f);
|
||||||
glVertex3f(10, 0.01, 10);
|
glVertex3f( 10.0f, 0.01f, 10.0f);
|
||||||
glVertex3f(10, 0.01, -10);
|
glVertex3f( 10.0f, 0.01f, -10.0f);
|
||||||
glVertex3f(-10, 0.01, -10);
|
glVertex3f(-10.0f, 0.01f, -10.0f);
|
||||||
glVertex3f(-10, 0.01, 10);
|
glVertex3f(-10.0f, 0.01f, 10.0f);
|
||||||
glEnd();
|
glEnd();
|
||||||
|
|
||||||
glPushMatrix();
|
glPushMatrix();
|
||||||
glTranslatef(0, -0.1, 0);
|
glTranslatef(0.0f, -0.1f, 0.0f);
|
||||||
glCallList(MOUNTAIN);
|
glCallList(MOUNTAIN);
|
||||||
glPopMatrix();
|
glPopMatrix();
|
||||||
|
|
||||||
glPushMatrix();
|
glPushMatrix();
|
||||||
glRotatef(135, 0, 1, 0);
|
glRotatef(135.0f, 0.0f, 1.0f, 0.0f);
|
||||||
glTranslatef(0.2, -0.15, -0.4);
|
glTranslatef(0.2f, -0.15f, -0.4f);
|
||||||
glCallList(MOUNTAIN);
|
glCallList(MOUNTAIN);
|
||||||
glPopMatrix();
|
glPopMatrix();
|
||||||
|
|
||||||
glPushMatrix();
|
glPushMatrix();
|
||||||
glRotatef(-60, 0, 1, 0);
|
glRotatef(-60.0f, 0.0f, 1.0f, 0.0f);
|
||||||
glTranslatef(0.7, -0.07, 0.5);
|
glTranslatef(0.7f, -0.07f, 0.5f);
|
||||||
glCallList(MOUNTAIN);
|
glCallList(MOUNTAIN);
|
||||||
glPopMatrix();
|
glPopMatrix();
|
||||||
|
|
||||||
glPushMatrix();
|
glPushMatrix();
|
||||||
glRotatef(-175, 0, 1, 0);
|
glRotatef(-175.0f, 0.0f, 1.0f, 0.0f);
|
||||||
glTranslatef(-0.7, -0.05, -0.5);
|
glTranslatef(-0.7f, -0.05f, -0.5f);
|
||||||
glCallList(MOUNTAIN);
|
glCallList(MOUNTAIN);
|
||||||
glPopMatrix();
|
glPopMatrix();
|
||||||
|
|
||||||
glPushMatrix();
|
glPushMatrix();
|
||||||
glRotatef(165, 0, 1, 0);
|
glRotatef(165.0f, 0.0f, 1.0f, 0.0f);
|
||||||
glTranslatef(-0.9, -0.12, 0.0);
|
glTranslatef(-0.9f, -0.12f, 0.0f);
|
||||||
glCallList(MOUNTAIN);
|
glCallList(MOUNTAIN);
|
||||||
glPopMatrix();
|
glPopMatrix();
|
||||||
|
|
||||||
@@ -509,21 +509,21 @@ void Create(int fract)
|
|||||||
|
|
||||||
void SetupMaterials(void)
|
void SetupMaterials(void)
|
||||||
{
|
{
|
||||||
GLfloat mtn_ambuse[] = { 0.426, 0.256, 0.108, 1.0 };
|
GLfloat mtn_ambuse[] = { 0.426f, 0.256f, 0.108f, 1.0f };
|
||||||
GLfloat mtn_specular[] = { 0.394, 0.272, 0.167, 1.0 };
|
GLfloat mtn_specular[] = { 0.394f, 0.272f, 0.167f, 1.0f };
|
||||||
GLfloat mtn_shininess[] = { 10 };
|
GLfloat mtn_shininess[] = { 10.0f };
|
||||||
|
|
||||||
GLfloat water_ambuse[] = { 0.0, 0.1, 0.5, 1.0 };
|
GLfloat water_ambuse[] = { 0.0f, 0.1f, 0.5f, 1.0f };
|
||||||
GLfloat water_specular[] = { 0.0, 0.1, 0.5, 1.0 };
|
GLfloat water_specular[] = { 0.0f, 0.1f, 0.5f, 1.0f };
|
||||||
GLfloat water_shininess[] = { 10 };
|
GLfloat water_shininess[] = { 10.0f };
|
||||||
|
|
||||||
GLfloat tree_ambuse[] = { 0.4, 0.25, 0.1, 1.0 };
|
GLfloat tree_ambuse[] = { 0.4f, 0.25f, 0.1f, 1.0f };
|
||||||
GLfloat tree_specular[] = { 0.0, 0.0, 0.0, 1.0 };
|
GLfloat tree_specular[] = { 0.0f, 0.00f, 0.0f, 1.0f };
|
||||||
GLfloat tree_shininess[] = { 0 };
|
GLfloat tree_shininess[] = { 0.0f };
|
||||||
|
|
||||||
GLfloat leaf_ambuse[] = { 0.0, 0.8, 0.0, 1.0 };
|
GLfloat leaf_ambuse[] = { 0.0f, 0.8f, 0.0f, 1.0f };
|
||||||
GLfloat leaf_specular[] = { 0.0, 0.8, 0.0, 1.0 };
|
GLfloat leaf_specular[] = { 0.0f, 0.8f, 0.0f, 1.0f };
|
||||||
GLfloat leaf_shininess[] = { 10 };
|
GLfloat leaf_shininess[] = { 10.0f };
|
||||||
|
|
||||||
glNewList(MOUNTAIN_MAT, GL_COMPILE);
|
glNewList(MOUNTAIN_MAT, GL_COMPILE);
|
||||||
glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, mtn_ambuse);
|
glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, mtn_ambuse);
|
||||||
@@ -552,12 +552,12 @@ void SetupMaterials(void)
|
|||||||
|
|
||||||
void myGLInit(void)
|
void myGLInit(void)
|
||||||
{
|
{
|
||||||
GLfloat light_ambient[] = { 0.0, 0.0, 0.0, 1.0 };
|
GLfloat light_ambient[] = { 0.0f, 0.0f, 0.0f, 1.0f };
|
||||||
GLfloat light_diffuse[] = { 1.0, 1.0, 1.0, 1.0 };
|
GLfloat light_diffuse[] = { 1.0f, 1.0f, 1.0f, 1.0f };
|
||||||
GLfloat light_specular[] = { 1.0, 1.0, 1.0, 1.0 };
|
GLfloat light_specular[] = { 1.0f, 1.0f, 1.0f, 1.0f };
|
||||||
GLfloat light_position[] = { 0.0, 0.3, 0.3, 0.0 };
|
GLfloat light_position[] = { 0.0f, 0.3f, 0.3f, 0.0f };
|
||||||
|
|
||||||
GLfloat lmodel_ambient[] = { 0.4, 0.4, 0.4, 1.0 };
|
GLfloat lmodel_ambient[] = { 0.4f, 0.4f, 0.4f, 1.0f };
|
||||||
|
|
||||||
glLightfv(GL_LIGHT0, GL_AMBIENT, light_ambient);
|
glLightfv(GL_LIGHT0, GL_AMBIENT, light_ambient);
|
||||||
glLightfv(GL_LIGHT0, GL_DIFFUSE, light_diffuse);
|
glLightfv(GL_LIGHT0, GL_DIFFUSE, light_diffuse);
|
||||||
@@ -654,7 +654,7 @@ void display(void)
|
|||||||
curtime = time(NULL);
|
curtime = time(NULL);
|
||||||
if ((curtime - fpstime) >= 2)
|
if ((curtime - fpstime) >= 2)
|
||||||
{
|
{
|
||||||
fps = (fps + fpscount / (curtime - fpstime)) / 2;
|
fps = (fps + fpscount / int(curtime - fpstime)) / 2;
|
||||||
fpstime = curtime;
|
fpstime = curtime;
|
||||||
fpscount = 0;
|
fpscount = 0;
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -247,7 +247,7 @@ void agvMove(void)
|
|||||||
ElSpin = -ElSpin; /* look better when you are kept from going */
|
ElSpin = -ElSpin; /* look better when you are kept from going */
|
||||||
/* upside down while spinning - Isn't great */
|
/* upside down while spinning - Isn't great */
|
||||||
if (fabs(ElSpin) > fabs(AzSpin))
|
if (fabs(ElSpin) > fabs(AzSpin))
|
||||||
AzSpin = fabs(ElSpin) * (AzSpin > 0.0f) ? 1.0f : -1.0f;
|
AzSpin = GLfloat(fabs(ElSpin) * ((AzSpin > 0.0f) ? 1.0f : -1.0f));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user