rocedure TObjectConstructor.Quadrangle(x1,y1,z1,
x2,y2,z2,
x3,y3,z3,
x4,y4,z4:Single);
begin
glTexCoord2f(0,0);
glVertex3f(x1,y1,z1);
glTexCoord2f(0,1);
glVertex3f(x2,y2,z2);
glTexCoord2f(1,0);
glVertex3f(x3,y3,z3);
glTexCoord2f(1,1);
glVertex3f(x4,y4,z4);
end;
procedure TObjectConstructor.DrawBox(x,y,z,xWidth,yWidth,zWidth:Single);
begin
glBegin(GL_QUADS);
glNormal3f(-1,0,0);
Quadrangle(x,y,z+zWidth,x,y+yWidth,z+zWidth,x,y+yWidth,z,x,y,z);
glNormal3f(1,0,0);
Quadrangle(x+xWidth,y,z+zWidth,x+xWidth,y+yWidth,z+zWidth,
x+xWidth,y+yWidth,z,x+xWidth,y,z);
glNormal3f(0,0,-1);
Quadrangle(x,y,z,x,y+yWidth,z,x+xWidth,y+yWidth,z,x+xWidth,y,z);
glNormal3f(0,0,1);
Quadrangle(x,y,z+zWidth,x,y+yWidth,z+zWidth,x+xWidth,y+yWidth,
z+zWidth,x+xWidth,y,z+zWidth);
glNormal3f(0,-1,0);
Quadrangle(x,y,z,x,y,z+zWidth,x+xWidth,y,z+zWidth,x+xWidth,y,z);
glNormal3f(0,1,0);
Quadrangle(x,y+yWidth,z,x,y+yWidth,z+zWidth,x+xWidth,y+yWidth,
z+zWidth,x+xWidth,y+yWidth,z);
glEnd;
end;
procedure TObjectConstructor.DrawGrids(GridAmp:integer;a,b,c:Boolean);
var
i:Integer;
begin
if a then
begin
for i:=-GridAmp to GridAmp do
begin
if i<>0 then
glColor3f(0.7,0.7,0.7)
else
glColor3f(1,0,0);
glBegin(GL_LINES);
glVertex3f(-GridAmp,i,0);
glVertex3f(GridAmp,i,0);
glEnd;
if i<>0 then
glColor3f(0.7,0.7,0.7)
else
glColor3f(0,1,0);
glBegin(GL_LINES);
glVertex3f(i,-GridAmp,0);
glVertex3f(i,GridAmp,0);
glEnd;
end;
end;
if b then
begin
for i:=-GridAmp to GridAmp do
begin
if i<>0 then
glColor3f(0.7,0.7,0.7)
else
glColor3f(0,1,0);
glBegin(GL_LINES);
glVertex3f(0,-GridAmp,i);
glVertex3f(0,GridAmp,i);
glEnd;
if i<>0 then
glColor3f(0.7,0.7,0.7)
else
glColor3f(0,0,1);
glBegin(GL_LINES);
glVertex3f(0,i,-GridAmp);
glVertex3f(0,i,GridAmp);
glEnd;
end;
end;
if c then
begin
glBegin(GL_LINES);
for i:=-GridAmp to GridAmp do
begin
if i<>0 then
glColor3f(0.7,0.7,0.7)
else
glColor3f(1,0,0);
glBegin(GL_LINES);
glVertex3f(-GridAmp,0,i);
glVertex3f(GridAmp,0,i);
glEnd;
if i<>0 then
glColor3f(0.7,0.7,0.7)
else
glColor3f(0,0,1);
glBegin(GL_LINES);
glVertex3f(i,0,-GridAmp);
glVertex3f(i,0,GridAmp);
glEnd;
end;
end;
end;
procedure TObjectConstructor.DrawAxis(GridAmp:integer;a,b,c:Boolean);
begin
if a then
begin
glColor3f(1,0,0);
glBegin(GL_LINES);
glVertex3f(-GridAmp,0,0);
glVertex3f(GridAmp,0,0);
glEnd;
end;
if b then
begin
glColor3f(0,1,0);
glBegin(GL_LINES);
glVertex3f(0,-GridAmp,0);
glVertex3f(0,GridAmp,0);
glEnd;
end;
if c then
begin
glColor3f(0,0,1);
glBegin(GL_LINES);
glVertex3f(0,0,-GridAmp);
glVertex3f(0,0,GridAmp);
glEnd;
end;
end;