BRL-CAD
soup.h File Reference
#include "common.h"
Include dependency graph for soup.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  face_s
 
struct  soup_s
 

Macros

#define INSIDE   0x01
 
#define OUTSIDE   0x02
 
#define SAME   0x04
 
#define OPPOSITE   0x08
 
#define INVERTED   0x10
 
#define SOUP_MAGIC   0x534F5550 /* SOUP, 32b */
 
#define SOUP_CKMAG(_ptr)   BU_CKMAG(_ptr, SOUP_MAGIC, "soup")
 

Functions

int soup_add_face (struct soup_s *s, point_t a, point_t b, point_t c, const struct bn_tol *tol)
 
int split_face_single (struct soup_s *s, unsigned long int fid, point_t isectpt[2], struct face_s *opp_face, const struct bn_tol *tol)
 
int split_face (struct soup_s *left, unsigned long int left_face, struct soup_s *right, unsigned long int right_face, const struct bn_tol *tol)
 
int gcv_tri_tri_intersect_with_isectline (struct soup_s *left, struct soup_s *right, struct face_s *lf, struct face_s *rf, int *coplanar, point_t *isectpt, const struct bn_tol *tol)
 
union treecompose (union tree *left_tree, union tree *right_tree, unsigned long int face_status1, unsigned long int face_status2, unsigned long int face_status3)
 
union treeinvert (union tree *tree)
 
union treeevaluate (union tree *tr, const struct rt_tess_tol *ttol, const struct bn_tol *tol)
 

Detailed Description

BoT soup stuff

Definition in file soup.h.

Macro Definition Documentation

#define INSIDE   0x01

Definition at line 34 of file soup.h.

#define OUTSIDE   0x02

Definition at line 35 of file soup.h.

#define SAME   0x04

Definition at line 36 of file soup.h.

Referenced by evaluate().

#define OPPOSITE   0x08

Definition at line 37 of file soup.h.

Referenced by evaluate().

#define INVERTED   0x10

Definition at line 38 of file soup.h.

Referenced by invert().

#define SOUP_MAGIC   0x534F5550 /* SOUP, 32b */

Definition at line 40 of file soup.h.

Referenced by bot2soup(), and test_face_splits().

#define SOUP_CKMAG (   _ptr)    BU_CKMAG(_ptr, SOUP_MAGIC, "soup")

Definition at line 41 of file soup.h.

Referenced by evaluate(), invert(), and split_faces().

Function Documentation

int soup_add_face ( struct soup_s s,
point_t  a,
point_t  b,
point_t  c,
const struct bn_tol tol 
)

Definition at line 101 of file bottess.c.

References bn_mk_plane_3pts(), OUTSIDE, and soup_add_face_precomputed().

Referenced by bot2soup(), test_compose(), and test_face_splits().

Here is the call graph for this function:

int split_face_single ( struct soup_s s,
unsigned long int  fid,
point_t  isectpt[2],
struct face_s opp_face,
const struct bn_tol tol 
)

Definition at line 115 of file bottess.c.

References ALL_INT, bn_isect_pt_lseg(), bu_bomb(), bu_log(), FACE_INT, soup_s::faces, INSIDE, LINE_INT, OUTSIDE, face_s::plane, soup_add_face_precomputed(), soup_rm_face(), face_s::vert, and VERT_INT.

Referenced by split_face().

Here is the call graph for this function:

int split_face ( struct soup_s left,
unsigned long int  left_face,
struct soup_s right,
unsigned long int  right_face,
const struct bn_tol tol 
)

Definition at line 248 of file bottess.c.

References bn_tol::dist, soup_s::faces, gcv_tri_tri_intersect_with_isectline(), split_face_single(), splitty, and splitz.

Referenced by split_faces(), and test_face_splits().

Here is the call graph for this function:

int gcv_tri_tri_intersect_with_isectline ( struct soup_s left,
struct soup_s right,
struct face_s lf,
struct face_s rf,
int *  coplanar,
point_t *  isectpt,
const struct bn_tol tol 
)

Definition at line 201 of file tri_intersect.c.

Referenced by split_face(), and test_intersection().

union tree* compose ( union tree left_tree,
union tree right_tree,
unsigned long int  face_status1,
unsigned long int  face_status2,
unsigned long int  face_status3 
)

Definition at line 369 of file bottess.c.

References bu_log(), soup_s::faces, soup_s::nfaces, face_s::plane, RT_CK_TREE, tree::tree_nmgregion::td_r, tree::tr_d, V3ARGS, and face_s::vert.

Referenced by evaluate(), and test_compose().

Here is the call graph for this function:

union tree* invert ( union tree tree)

Definition at line 304 of file bottess.c.

References bu_log(), soup_s::faces, face_s::foo, INVERTED, soup_s::nfaces, OP_NMG_TESS, RT_CK_TREE, s, SOUP_CKMAG, tree::tree_nmgregion::td_r, tree::tr_d, and face_s::vert.

Referenced by evaluate().

Here is the call graph for this function:

union tree* evaluate ( union tree tr,
const struct rt_tess_tol ttol,
const struct bn_tol tol 
)