PK_FACE_install_surfs_isocline   


PK_ERROR_code_t   PK_FACE_install_surfs_isocline
(
--- received arguments ---
int               n_faces,          --- number of target faces (>0)
const PK_FACE_t   faces[],          --- faces to be drafted
const PK_ENTITY_t references[],     --- reference entities
PK_VECTOR1_t      direction,        --- isocline direction
double            angle,            --- isocline angle
double            tolerance,        --- max tol for applying surfs
PK_LOGICAL_t      face_face_check   --- do face face checks
)


This function replaces the surfaces of given faces with isocline surfaces.


Specific Errors:
    PK_ERROR_cant_get_point         (SERIOUS)can not produce vertex geometry
    PK_ERROR_cant_get_curve         (SERIOUS)can not produce curve geometry
    PK_ERROR_cant_get_surf          (SERIOUS)can not produce isocline surface
    PK_ERROR_edge_didnt_vanish      (SERIOUS)an edge should have disappeared
    PK_ERROR_general_body           (MILD)general bodies not supported


The isocline is specified by a direction and an angle.
For each face in faces an isocline surface is defined by a reference
entity.

The reference entity may be of classes:

   o PK_CLASS_edge: An isocline surface is defined through the curve of the
     edge between the vertices of the edge (if it has any).

   o PK_CLASS_face: The isocline surface(s) to be used for the face in
     faces is to be that (those) defined for this reference face.

   o PK_CLASS_surf: An isocline surface is defined through the curve of
     intersection between the face's surface and the reference surface.
     A reference surface can also be used in association with reference
     edges to produce step drafting.

A face may appear more than once in faces.  The effect of this is that
the face will be split so as to satisfy the separate constraints.

In the case of step drafting, no face-splitting occurs; the reference edges
which lie on the reference surface will produce the face's draft surface, the
other face-related reference edges will, each of them, produce a step
tapered face. These new step faces are connected to the main draft face and
their draft angle is greater or equal to the specified isocline angle.

If a face appears in references then it must also appear in faces.

The function may, at times, have to use approximate geometry.
For such cases, tolerance specifies an upper bound on the distance by which
a point on the actual geometry may deviate from its ideal position.
While the function will usually satisfy this constraint, it is not guaranteed.

When an error occurs, the function will, where possible, make extra
information regarding the error available to the application
by means of a GROUP.
This GROUP is accessible from the standard form of the error.  Note that,
while the members of the GROUP will be objects which existed before the
call (and so will survive rollback), the GROUP itself will be destroyed by
rollback.  The members of the GROUP will be as follows:

    PK_ERROR_cant_get_point         1 VERTEX   Failed to find new geometry for
                                               existing vertex
                                    n FACEs    Failed to find geometry for
                                               new vertex.

    PK_ERROR_cant_get_curve         1 EDGE     Failed to find new geometry for
                                               existing edge
                                    n FACEs    Failed to find geometry for
                                               new edge

    PK_ERROR_cant_get_surf          n FACEs    Unable to produce isocline
                                               surfaces for these faces.
                                               No surface replacement is
                                               performed.

    PK_ERROR_edge_didnt_vanish      1 EDGE     An existing edge should have
                                               disappeared
                                    n FACEs    A transient edge should have
                                               disappeared

    PK_ERROR_face_check_fails       1 FACE     Face which failed check

    PK_ERROR_face_face_check_fails  2 FACEs    Pair of faces where
                                               inconsistency found.