home *** CD-ROM | disk | FTP | other *** search
- 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 }
- .
-