home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CP/M
/
CPM_CDROM.iso
/
simtel
/
sigm
/
vols000
/
vol069
/
files.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1984-04-29
|
2KB
|
82 lines
External GRAPHICS::FILES(1);
(*$E+ *)
Procedure DefineObject;
var
Pts,PtsObj,PolsObj,PtsPol,I,J : counter;
X,Y,Z,Xpos,Ypos,Zpos : real;
ObjFile : file of char;
begin
write('Name of file: ');readln(Filename); {get file name}
rewrite(Filename,Objfile); {open object file}
write('Number of points: '); readln(PtsObj);
write('Number of polygons: '); readln(PolsObj);
writeln(ObjFile,PtsObj,PolsObj);
writeln('Pnt X,Y,Z');
for I := 1 to PtsObj do
begin
write(I:2);write(' ');readln(X,Y,Z);
writeln(ObjFile,X,Y,Z);
end;
for I := 1 to PolsObj do
begin
write('# of pnts in ',I:2,' polygon: ');readln(PtsPol);
write(ObjFile,PtsPol); { write polygon vertex pointers }
for J := 1 to PtsPol do
begin
read(Pts);
write(ObjFile,Pts)
end;
writeln(ObjFile) { read past end of line }
end
end; { DefineObject }
(*$L+ *)
procedure ReadObject(FileName : $string255);
{ read in object from disk }
var
PtsObj,PolsObj,PtsPol,I,J : counter;
Xpos,Ypos,Zpos : real;
ObjFile : file of char;
begin
write('Position for ',Filename,' X Y Z : ');
readln(Xpos,Ypos,Zpos);
reset(Filename,Objfile); {open object file }
readln(ObjFile,PtsObj,PolsObj);
write('Number of points: '); writeln(PtsObj:4);
write('Number of polygons: '); writeln(PolsObj:4);
for I := 1 to PtsObj do
with Points[I+NumPts] do
begin
readln(ObjFile,X,Y,Z);
X := X+Xpos;
Y := Y+Ypos;
Z := Z+Zpos;
writeln('Point: ',I,' ',X:6:1,Y:6:1,Z:6:1)
end;
for I := 1 to PolsObj do
begin
read(ObjFile,PtsPol); { read polygon vertex pointers }
writeln('Polygon ',I:2,' has ',PtsPol:4,' vertices');
write('They are: ');
for J := 1 to PtsPol do
begin
read(ObjFile,Vertices[J+NumVtces]);
Vertices[J+NumVtces] := Vertices[J+NumVtces]+NumPts;
write(Vertices[J+NumVtces]:3)
end;
readln(ObjFile); { read past end of line }
writeln;
with Polygons[I+NumPols] do
begin
Start := NumVtces;
NumVtx := PtsPol;
end;
NumVtces := NumVtces + PtsPol;
end;
NumPts := NumPts + PtsObj;
NumPols := NumPols + PolsObj;
readln(CmdChar) { leave display until cr }
end; { ReadObject }
.