Ver Fonte

* don't use inline as it's buggy

peter há 25 anos atrás
pai
commit
2f36898e80
1 ficheiros alterados com 13 adições e 15 exclusões
  1. 13 15
      packages/opengl/examples/morph3d.pp

+ 13 - 15
packages/opengl/examples/morph3d.pp

@@ -34,7 +34,6 @@
 }
 program morph3d;
 {$Mode objfpc}
-{$INLINE ON}
 
 {$MACRO ON}
 
@@ -212,14 +211,10 @@ const
   MaterialWhite   : array[0..3] of glfloat = ( 0.7, 0.7, 0.7, 1.0 );
   MaterialGray    : array[0..3] of glfloat = ( 0.2, 0.2, 0.2, 1.0 );
 
-procedure VectMul(X1,Y1,Z1,X2,Y2,Z2:GLFloat);inline;
-begin
-  glNormal3f((Y1)*(Z2)-(Z1)*(Y2),(Z1)*(X2)-(X1)*(Z2),(X1)*(Y2)-(Y1)*(X2));
-end;
 
 procedure TRIANGLE(Edge,Amp:GLFloat; Divisions: longint; Z:GLFloat);
 var
-  Xf,Yf,Xa,Yb,Xf2,Yf2 : GLfloat;
+  Xf,Yf,Xa,Yb,Xf2,Yf2 : Extended;
   Factor,Factor1,Factor2 : GLfloat;
   VertX,VertY,VertZ,NeiAX,NeiAY,NeiAZ,NeiBX,NeiBY,NeiBZ : GLfloat;
   Ax,Ay,Bx : GLfloat;
@@ -252,7 +247,7 @@ begin
       VertX:=Factor*Xf;        VertY:=Factor*Yf;        VertZ:=Factor*Zf;
       NeiAX:=Factor1*Xa-VertX; NeiAY:=Factor1*Yf-VertY; NeiAZ:=Factor1*Zf-VertZ;
       NeiBX:=Factor2*Xf-VertX; NeiBY:=Factor2*Yb-VertY; NeiBZ:=Factor2*Zf-VertZ;
-      VectMul(NeiAX, NeiAY, NeiAZ, NeiBX, NeiBY, NeiBZ);
+      glNormal3f(NeiAY*NeiBZ-NeiAZ*NeiBY,NeiAZ*NeiBX-NeiAX*NeiBZ,NeiAX*NeiBY-NeiAY*NeiBX);
       glVertex3f(VertX, VertY, VertZ);
 
       Xf:=(Ri-Ti-1)*Ax + Ti*Bx;
@@ -266,7 +261,7 @@ begin
       VertX:=Factor*Xf;        VertY:=Factor*Yf;        VertZ:=Factor*Zf;
       NeiAX:=Factor1*Xa-VertX; NeiAY:=Factor1*Yf-VertY; NeiAZ:=Factor1*Zf-VertZ;
       NeiBX:=Factor2*Xf-VertX; NeiBY:=Factor2*Yb-VertY; NeiBZ:=Factor2*Zf-VertZ;
-      VectMul(NeiAX, NeiAY, NeiAZ, NeiBX, NeiBY, NeiBZ);
+      glNormal3f(NeiAY*NeiBZ-NeiAZ*NeiBY,NeiAZ*NeiBX-NeiAX*NeiBZ,NeiAX*NeiBY-NeiAY*NeiBX);
       glVertex3f(VertX, VertY, VertZ);
      end;
     Xf:=Ri*Bx;
@@ -280,7 +275,7 @@ begin
     VertX:=Factor*Xf;        VertY:=Factor*Yf;        VertZ:=Factor*Zf;
     NeiAX:=Factor1*Xa-VertX; NeiAY:=Factor1*Yf-VertY; NeiAZ:=Factor1*Zf-VertZ;
     NeiBX:=Factor2*Xf-VertX; NeiBY:=Factor2*Yb-VertY; NeiBZ:=Factor2*Zf-VertZ;
-    VectMul(NeiAX, NeiAY, NeiAZ, NeiBX, NeiBY, NeiBZ);
+    glNormal3f(NeiAY*NeiBZ-NeiAZ*NeiBY,NeiAZ*NeiBX-NeiAX*NeiBZ,NeiAX*NeiBY-NeiAY*NeiBX);
     glVertex3f(VertX, VertY, VertZ);
     glEnd();
   end;
@@ -318,7 +313,7 @@ begin
       VertX:=Factor*Xf;        VertY:=Factor*Y;         VertZ:=Factor*Zf;
       NeiAX:=Factor1*Xa-VertX; NeiAY:=Factor1*Y-VertY;  NeiAZ:=Factor1*Zf-VertZ;
       NeiBX:=Factor2*Xf-VertX; NeiBY:=Factor2*Yb-VertY; NeiBZ:=Factor2*Zf-VertZ;
-      VectMul(NeiAX, NeiAY, NeiAZ, NeiBX, NeiBY, NeiBZ);
+      glNormal3f(NeiAY*NeiBZ-NeiAZ*NeiBY,NeiAZ*NeiBX-NeiAX*NeiBZ,NeiAX*NeiBY-NeiAY*NeiBX);
       glVertex3f(VertX, VertY, VertZ);
 
       Xa:=Xf+0.001; Yb:=Yf+0.001;
@@ -328,7 +323,7 @@ begin
       VertX:=Factor*Xf;        VertY:=Factor*Yf;        VertZ:=Factor*Zf;
       NeiAX:=Factor1*Xa-VertX; NeiAY:=Factor1*Yf-VertY; NeiAZ:=Factor1*Zf-VertZ;
       NeiBX:=Factor2*Xf-VertX; NeiBY:=Factor2*Yb-VertY; NeiBZ:=Factor2*Zf-VertZ;
-      VectMul(NeiAX, NeiAY, NeiAZ, NeiBX, NeiBY, NeiBZ);
+      glNormal3f(NeiAY*NeiBZ-NeiAZ*NeiBY,NeiAZ*NeiBX-NeiAX*NeiBZ,NeiAX*NeiBY-NeiAY*NeiBX);
       glVertex3f(VertX, VertY, VertZ);
      end;
     glEnd();
@@ -372,7 +367,7 @@ begin
         VertX:=Factor*Xf;        VertY:=Factor*Yf;        VertZ:=Factor*Zf;
         NeiAX:=Factor1*Xa-VertX; NeiAY:=Factor1*Yf-VertY; NeiAZ:=Factor1*Zf-VertZ;
         NeiBX:=Factor2*Xf-VertX; NeiBY:=Factor2*Yb-VertY; NeiBZ:=Factor2*Zf-VertZ;
-        VectMul(NeiAX, NeiAY, NeiAZ, NeiBX, NeiBY, NeiBZ);
+        glNormal3f(NeiAY*NeiBZ-NeiAZ*NeiBY,NeiAZ*NeiBX-NeiAX*NeiBZ,NeiAX*NeiBY-NeiAY*NeiBX);
         glVertex3f(VertX, VertY, VertZ);
 
         Xf:=(Ri-Ti-1)*x[Fi] + Ti*x[Fi+1];
@@ -386,7 +381,7 @@ begin
         VertX:=Factor*Xf;        VertY:=Factor*Yf;        VertZ:=Factor*Zf;
         NeiAX:=Factor1*Xa-VertX; NeiAY:=Factor1*Yf-VertY; NeiAZ:=Factor1*Zf-VertZ;
         NeiBX:=Factor2*Xf-VertX; NeiBY:=Factor2*Yb-VertY; NeiBZ:=Factor2*Zf-VertZ;
-        VectMul(NeiAX, NeiAY, NeiAZ, NeiBX, NeiBY, NeiBZ);
+        glNormal3f(NeiAY*NeiBZ-NeiAZ*NeiBY,NeiAZ*NeiBX-NeiAX*NeiBZ,NeiAX*NeiBY-NeiAY*NeiBX);
         glVertex3f(VertX, VertY, VertZ);
        end;
       Xf:=Ri*x[Fi+1];
@@ -400,7 +395,7 @@ begin
       VertX:=Factor*Xf;        VertY:=Factor*Yf;        VertZ:=Factor*Zf;
       NeiAX:=Factor1*Xa-VertX; NeiAY:=Factor1*Yf-VertY; NeiAZ:=Factor1*Zf-VertZ;
       NeiBX:=Factor2*Xf-VertX; NeiBY:=Factor2*Yb-VertY; NeiBZ:=Factor2*Zf-VertZ;
-      VectMul(NeiAX, NeiAY, NeiAZ, NeiBX, NeiBY, NeiBZ);
+      glNormal3f(NeiAY*NeiBZ-NeiAZ*NeiBY,NeiAZ*NeiBX-NeiAX*NeiBZ,NeiAX*NeiBY-NeiAY*NeiBX);
       glVertex3f(VertX, VertY, VertZ);
       glEnd();
      end;
@@ -940,7 +935,10 @@ begin
 end.
 {
   $Log$
-  Revision 1.2  2000-09-03 22:17:17  peter
+  Revision 1.3  2000-09-04 19:37:54  peter
+    * don't use inline as it's buggy
+
+  Revision 1.2  2000/09/03 22:17:17  peter
     * merged
 
   Revision 1.1.2.1  2000/09/03 22:10:47  peter