mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-07 06:28:55 +02:00
* don't use inline as it's buggy
This commit is contained in:
parent
14d80c46e2
commit
2f36898e80
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user