Annotation of OpenXM_contrib/PHC/Ada/Root_Counts/Dynlift/enumerate_faces_of_polytope.ads, Revision 1.1.1.1
1.1 maekawa 1: with Standard_Integer_Vectors; use Standard_Integer_Vectors;
2: with Standard_Integer_VecVecs; use Standard_Integer_VecVecs;
3: with Lists_of_Integer_Vectors; use Lists_of_Integer_Vectors;
4: with Simplices,Triangulations; use Simplices,Triangulations;
5:
6: package Enumerate_Faces_of_Polytope is
7:
8: -- DESCRIPTION :
9: -- The routines in this package enable the enumeration of all k-faces
10: -- of the lower hull of a polytope, based on a regular triangulation.
11:
12: generic
13: with procedure Process ( face : in VecVec );
14: procedure Enumerate_Faces_in_List
15: ( l : in List; point : in Link_to_Vector; k : in natural );
16: generic
17: with procedure Process ( face : in VecVec );
18: procedure Enumerate_Lower_Faces_in_List
19: ( l : in List; point : in Link_to_Vector; k : in natural );
20:
21: -- DESCRIPTION :
22: -- Enumerates all k-dimensional faces spanned by the list and
23: -- the given point. The _Lower_ indicates that only the faces of the
24: -- lower hull are enumerated.
25:
26: -- ON ENTRY :
27: -- l a list of points;
28: -- point vector not in the list l;
29: -- k dimension of the faces.
30:
31: -- ON RETURN :
32: -- face a (k+1)-dimensional vector: face(0..k), face(0) = point.
33:
34: generic
35: with procedure Process ( face : in VecVec );
36: procedure Enumerate_Faces_in_Simplex
37: ( s : in Simplex; point : in Link_to_Vector; k : in natural );
38: generic
39: with procedure Process ( face : in VecVec );
40: procedure Enumerate_Lower_Faces_in_Simplex
41: ( s : in Simplex; point : in Link_to_Vector; k : in natural );
42:
43: -- DESCRIPTION :
44: -- Enumerates all k-dimensional faces in the simplex s that contain
45: -- the given point. The _Lower_ indicates that only the faces of the
46: -- lower hull are enumerated.
47:
48: -- ON ENTRY :
49: -- s a simplex;
50: -- point vector in the simplex;
51: -- k dimension of the faces.
52:
53: -- ON RETURN :
54: -- face a (k+1)-dimensional vector: face(0..k), face(0) = point.
55:
56: generic
57: with procedure Process ( face : in VecVec );
58: procedure Enumerate_Faces_in_Triangulation
59: ( t : in Triangulation; point : in Link_to_Vector;
60: k : in natural );
61: generic
62: with procedure Process ( face : in VecVec );
63: procedure Enumerate_Lower_Faces_in_Triangulation
64: ( t : in Triangulation; point : in Link_to_Vector;
65: k : in natural );
66:
67: -- DESCRIPTION :
68: -- Enumerates all k-dimensional faces in the simplices of the triangulation
69: -- that contain the given point. The _Lower_ indicates that only the faces
70: -- of the lower hull are enumerated.
71:
72: -- ON ENTRY :
73: -- t a regular triangulation;
74: -- point vector in each simplex of t;
75: -- k dimension of the faces.
76:
77: -- ON RETURN :
78: -- face a (k+1)-dimensional vector: face(0..k), face(0) = point.
79:
80: end Enumerate_Faces_of_Polytope;
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>