|
Data Structures |
| struct | _SRBVERTEX |
| struct | _SRBEDGE |
| struct | _SRBTRIANGLE |
| struct | _SRBRAY |
| struct | _SRBPYRAMID |
| struct | _SRB |
Defines |
| #define | _SRB_ARRAY_LENGTH(array) ( sizeof( (array) ) / sizeof( (array)[ 0 ] ) ) |
| #define | _SRB_MIN3(a, b, c) ( ( a < b ) ? ( ( a < c ) ? 0 : 2 ) : ( ( b < c ) ? 1 : 2 ) ) |
| #define | _SRB_DISTANCE_SQUARED(x1, y1, z1, x2, y2, z2) |
| #define | _SRB_VERTEX(vertices, at) ( (vertices) + ( 3 * (at) ) ) |
| #define | _SRB_TRIANGLE(triangles, at) ( (triangles) + ( 3 * (at) ) ) |
| #define | _SRB_EDGE_MIDPOINT(E, _x, _y, _z) |
| #define | _SRB_EDGE_FIND_CHILD(P, V1, V2, E) ( (E) = _SRB_IS_EDGE( (P)->E1, (V1), (V2) ) ? (P)->E1 : (P)->E2 ) |
| #define | _SRB_IS_EDGE(E, _V1, _V2) ( ( (E)->V1 == (_V1) && (E)->V2 == (_V2) ) || ( (E)->V1 == (_V2) && (E)->V2 == (_V1) ) ) |
| #define | _SRB_TRIANGLE_CENTER(T, _x, _y, _z) |
Typedefs |
| typedef _SRBVERTEX | SRBVERTEX |
| typedef _SRBEDGE | SRBEDGE |
| typedef _SRBTRIANGLE | SRBTRIANGLE |
| typedef _SRBRAY | SRBRAY |
| typedef _SRBPYRAMID | SRBPYRAMID |
| typedef _SRB | SRB |
Functions |
| static SRBVERTEX * | _srb_vertex_new (SRB *srb, double x, double y, double z) |
| static SRBVERTEX * | _srb_vertex_new_at (SRB *srb, int at, double x, double y, double z) |
| static SRBVERTEX * | _srb_vertex_at (SRB *srb, int at) |
| static SRBEDGE * | _srb_edge_new (SRB *srb, SRBVERTEX *V1, SRBVERTEX *V2) |
| static SRBEDGE * | _srb_edge_new_at_tail (SRB *srb, SRBVERTEX *V1, SRBVERTEX *V2) |
| static SRBEDGE * | _srb_edge_find (SRB *srb, SRBVERTEX *V1, SRBVERTEX *V2) |
| static SRBEDGE * | _srb_edge_new_unique (SRB *srb, SRBVERTEX *V1, SRBVERTEX *V2) |
| static void | _srb_edge_set_triangle (SRBEDGE *E, SRBTRIANGLE *T) |
| static SRBTRIANGLE * | _srb_triangle_new (SRB *srb, SRBEDGE *E1, SRBEDGE *E2, SRBEDGE *E3, SRBVERTEX *V1, SRBVERTEX *V2, SRBVERTEX *V3) |
| static void | _srb_init (SRB *srb, SRBPARAMS *params) |
| static int | _srb_init_2d (SRB *srb, SRBPARAMS *params, double *vertices, int vertex_count) |
| static int | _srb_init_3d (SRB *srb, SRBPARAMS *params, double *vertices, int vertex_count, int *triangles, int triangle_count) |
| static | _srb_finalize (SRB *srb) |
| static void | _srb_set_midpoint_2d (SRBEDGE *E, SRBVERTEX *V, SRBPARAMS *params) |
| static int | _srb_tesselate_2d (SRB *srb, SRBEDGE *E, SRBPARAMS *params) |
| static int | _srb_tesselate_3d (SRB *srb, SRBTRIANGLE *T) |
| static void | _srb_mesh_delete (SRBMESH *mesh) |
| static SRBMESH * | _srb_mesh_new (int vertex_count, int triangle_count) |
| static void | _srb_fan_delete (SRBFAN *fan) |
| static SRBFAN * | _srb_fan_new (int vertex_count) |
| static void | _srb_pyramid_face_area (SRBPYRAMID *triangle) |
| static void | _srb_pyramid_volume_and_surface_area (SRBPYRAMID *pyramid) |
| static SRBMESH * | _srb_to_mesh (SRB *srb, SRBPARAMS *params) |
| static SRBFAN * | _srb_to_fan (SRB *srb, SRBPARAMS *params) |
| double | _srb_interpolate_3d (SRBPARAMS *params, double x, double y, double z) |
| double | _srb_interpolate_2d (SRBPARAMS *params, double x, double y, double z, int dir) |
| void | _srb_cast_ray (SRBRAY *ray, SRBPARAMS *params) |
| static void | _srb_initial_cast (SRB *srb, SRBPARAMS *params) |
| static int | _srb_cast_2d (SRB *srb, SRBPARAMS *params) |
| static int | _srb_cast_3d (SRB *srb, SRBPARAMS *params) |
| static void | _srb_tolerance_cast (SRB *srb, SRBPARAMS *params, double x, double y, double z, double *sum_dm, double *sum_dc_minus_dm) |
| static int | _srb_has_converged (SRB *srb, SRBPARAMS *params, double sum_dm, double sum_dc_minus_dm) |
| static int | _srb_has_converged_3d (SRB *srb, SRBPARAMS *params) |
| static int | _srb_has_converged_2d (SRB *srb, SRBPARAMS *params) |
| SRBMESH * | srb_run_3d (SRBPARAMS *params) |
| SRBFAN * | srb_run_2d (SRBPARAMS *params) |
| void | srb_mesh_destroy (SRBMESH *mesh) |
| void | srb_fan_destroy (SRBFAN *fan) |
Variables |
| static double | ____srb_octahedron_vertices [6 *3] |
| static int | ____srb_octahedron_triangles [8 *3] |
| static double | ____srb_quadrilateral_vertices [4 *3] |