mirror of
https://git.sr.ht/~rabbits/macintosh_cookbook
synced 2024-05-29 06:41:28 +00:00
Cleanup in scene
This commit is contained in:
parent
75d3045f31
commit
37feadd9dc
|
@ -12,7 +12,7 @@ interface
|
|||
type
|
||||
Point3DPtr = ^Point3D;
|
||||
|
||||
Link3D = record
|
||||
Edge3D = record
|
||||
a: Point3DPtr;
|
||||
b: Point3DPtr;
|
||||
end;
|
||||
|
@ -25,9 +25,11 @@ interface
|
|||
|
||||
Shape3D = record
|
||||
origin: Point3D;
|
||||
verticesLength, edgesLength, facesLength: Integer;
|
||||
verticesLength:Integer;
|
||||
edgesLength:Integer;
|
||||
facesLength: Integer;
|
||||
vertices: array[1..LIMIT_VERTICES] of Point3D;
|
||||
edges: array[1..LIMIT_EDGES] of Link3D;
|
||||
edges: array[1..LIMIT_EDGES] of Edge3D;
|
||||
faces: array[1..LIMIT_FACES] of Face3D;
|
||||
end;
|
||||
|
||||
|
@ -54,24 +56,24 @@ interface
|
|||
|
||||
procedure InitWindow;
|
||||
{scene}
|
||||
procedure AddShape3D (var scene: scene3D; shape: Shape3DPtr);
|
||||
procedure SetScene3D (var scene: Scene3D);
|
||||
procedure SetLk3D (var lk3D: Link3D; a, b: Point3DPtr);
|
||||
procedure SetFc3D (var fc3D: Face3D; a, b, c: Point3DPtr);
|
||||
procedure SetEdge3D (var edge: Edge3D; a, b: Point3DPtr);
|
||||
procedure SetFace3D (var face: Face3D; a, b, c: Point3DPtr);
|
||||
{ basics }
|
||||
procedure AddVertice3D (var shape: Shape3D; x, y, z: Fixed);
|
||||
procedure AddEdge3D (var shape: Shape3D; a, b: Integer);
|
||||
procedure AddFace3D (var shape: Shape3D; a, b, c: Integer);
|
||||
{ transforms }
|
||||
procedure AddShape3D (var scene: scene3D; shape: Shape3DPtr);
|
||||
procedure MoveShape3D (shape: Shape3DPtr; x, y, z: Fixed);
|
||||
procedure ScaleShape3D (shape: Shape3DPtr; x, y, z: LongInt);
|
||||
procedure TurnXShape3D (shape: Shape3DPtr);
|
||||
procedure TurnYShape3D (shape: Shape3DPtr);
|
||||
procedure TurnZShape3D (shape: Shape3DPtr);
|
||||
{ draw }
|
||||
procedure DrawLink3D (link: Link3D);
|
||||
procedure DrawEdge3D (edge: Edge3D);
|
||||
procedure DrawShape3D (shape: Shape3DPtr);
|
||||
procedure DrawScene3D (scene: Scene3D);
|
||||
{ basics }
|
||||
procedure AddVertice3D (var shape: Shape3D; x, y, z: Fixed);
|
||||
procedure AddEdge3D (var shape: Shape3D; a, b: Integer);
|
||||
procedure AddFace3D (var shape: Shape3D; a, b, c: Integer);
|
||||
|
||||
implementation
|
||||
|
||||
|
@ -132,17 +134,17 @@ implementation
|
|||
SetPt3D(shape^.vertices[i], shape^.vertices[i].y, shape^.vertices[i].x, shape^.vertices[i].z);
|
||||
end;
|
||||
|
||||
procedure SetLk3D (var lk3D: Link3D; a, b: Point3DPtr);
|
||||
procedure SetEdge3D (var edge: Edge3D; a, b: Point3DPtr);
|
||||
begin
|
||||
lk3D.a := a;
|
||||
lk3D.b := b;
|
||||
edge.a := a;
|
||||
edge.b := b;
|
||||
end;
|
||||
|
||||
procedure SetFc3D (var fc3D: Face3D; a, b, c: Point3DPtr);
|
||||
procedure SetFc3D (var face: Face3D; a, b, c: Point3DPtr);
|
||||
begin
|
||||
fc3D.a := a;
|
||||
fc3D.b := b;
|
||||
fc3D.c := c;
|
||||
face.a := a;
|
||||
face.b := b;
|
||||
face.c := c;
|
||||
end;
|
||||
|
||||
procedure SetScene3D (var scene: Scene3D);
|
||||
|
@ -163,7 +165,7 @@ implementation
|
|||
if shape.EdgesLength > LIMIT_EDGES - 1 then
|
||||
SceneError('Edges limit reached');
|
||||
shape.EdgesLength := shape.EdgesLength + 1;
|
||||
SetLk3D(shape.edges[shape.EdgesLength], @shape.vertices[a], @shape.vertices[b]);
|
||||
SetEdge3D(shape.edges[shape.EdgesLength], @shape.vertices[a], @shape.vertices[b]);
|
||||
end;
|
||||
|
||||
procedure AddFace3D (var shape: Shape3D; a, b, c: Integer);
|
||||
|
@ -174,10 +176,10 @@ implementation
|
|||
SetFc3D(shape.faces[shape.facesLength], @shape.vertices[a], @shape.vertices[b], @shape.vertices[c]);
|
||||
end;
|
||||
|
||||
procedure DrawLink3D (link: Link3D);
|
||||
procedure DrawEdge3D (edge: Edge3D);
|
||||
begin
|
||||
MoveTo3D(link.a^.x, link.a^.y, link.a^.z);
|
||||
LineTo3D(link.b^.x, link.b^.y, link.b^.z);
|
||||
MoveTo3D(edge.a^.x, edge.a^.y, edge.a^.z);
|
||||
LineTo3D(edge.b^.x, edge.b^.y, edge.b^.z);
|
||||
end;
|
||||
|
||||
procedure DrawFace3D (face: Face3D);
|
||||
|
@ -202,7 +204,7 @@ implementation
|
|||
for i := 1 to shape^.facesLength do
|
||||
DrawFace3D(shape^.faces[i]);
|
||||
for i := 1 to shape^.EdgesLength do
|
||||
DrawLink3D(shape^.edges[i]);
|
||||
DrawEdge3D(shape^.edges[i]);
|
||||
end;
|
||||
|
||||
procedure DrawWidget (size: Integer);
|
||||
|
|
Loading…
Reference in New Issue
Block a user