BRL-CAD
Collaboration diagram for Bag Of Triangles:

Files

file  bot.h
 

Data Structures

struct  rt_bot_internal
 
struct  rt_bot_list
 
struct  bot_specific
 

Macros

#define RT_BOT_UNORIENTED   1
 unoriented triangles More...
 
#define RT_BOT_CCW   2
 oriented counter-clockwise More...
 
#define RT_BOT_CW   3
 oriented clockwise More...
 
#define RT_BOT_SURFACE   1
 triangles represent a surface (no volume) More...
 
#define RT_BOT_SOLID   2
 triangles represent the boundary of a solid object More...
 
#define RT_BOT_PLATE   3
 
#define RT_BOT_PLATE_NOCOS   4
 
#define RT_BOT_HAS_SURFACE_NORMALS   0x01
 Has surface normals at each face vertex. More...
 
#define RT_BOT_USE_NORMALS   0x02
 Use the surface normals if they exist. More...
 
#define RT_BOT_USE_FLOATS   0x04
 Use the single precision version of "tri_specific" during prep. More...
 
#define RT_BOT_HAS_TEXTURE_UVS   0x08
 Has uv texture coordinates at each face vertex. More...
 
#define RT_BOT_HAS_UNUSED1   0x10
 TBD. More...
 
#define RT_BOT_HAS_UNUSED2   0x20
 TBD. More...
 
#define RT_BOT_HAS_UNUSED3   0x40
 TBD. More...
 
#define RT_BOT_HAS_UNUSED4   0x80
 WARNING: use this flag to denote more bits in the export serialization. More...
 
#define RT_BOT_CK_MAGIC(_p)   BU_CKMAG(_p, RT_BOT_INTERNAL_MAGIC, "rt_bot_internal")
 

Functions

void rt_bot_prep_pieces (struct bot_specific *bot, struct soltab *stp, size_t ntri, const struct bn_tol *tol)
 
size_t rt_botface (struct soltab *stp, struct bot_specific *bot, fastf_t *ap, fastf_t *bp, fastf_t *cp, size_t face_no, const struct bn_tol *tol)
 
size_t rt_bot_get_edge_list (const struct rt_bot_internal *bot, size_t **edge_list)
 
int rt_bot_edge_in_list (const size_t v1, const size_t v2, const size_t edge_list[], const size_t edge_count0)
 
int rt_bot_plot (struct bu_list *vhead, struct rt_db_internal *ip, const struct bg_tess_tol *ttol, const struct bn_tol *tol, const struct bview *info)
 
int rt_bot_plot_poly (struct bu_list *vhead, struct rt_db_internal *ip, const struct bg_tess_tol *ttol, const struct bn_tol *tol)
 
int rt_bot_find_v_nearest_pt2 (const struct rt_bot_internal *bot, const point_t pt2, const mat_t mat)
 
int rt_bot_find_e_nearest_pt2 (int *vert1, int *vert2, const struct rt_bot_internal *bot, const point_t pt2, const mat_t mat)
 
fastf_t rt_bot_propget (struct rt_bot_internal *bot, const char *property)
 
int rt_bot_vertex_fuse (struct rt_bot_internal *bot, const struct bn_tol *tol)
 
int rt_bot_face_fuse (struct rt_bot_internal *bot)
 
int rt_bot_condense (struct rt_bot_internal *bot)
 
int rt_bot_smooth (struct rt_bot_internal *bot, const char *bot_name, struct db_i *dbip, fastf_t normal_tolerance_angle)
 
int rt_bot_flip (struct rt_bot_internal *bot)
 
int rt_bot_sync (struct rt_bot_internal *bot)
 
struct rt_bot_listrt_bot_split (struct rt_bot_internal *bot)
 
struct rt_bot_listrt_bot_patches (struct rt_bot_internal *bot)
 
void rt_bot_list_free (struct rt_bot_list *headRblp, int fbflag)
 
int rt_bot_same_orientation (const int *a, const int *b)
 
int rt_bot_tess (struct nmgregion **r, struct model *m, struct rt_db_internal *ip, const struct bg_tess_tol *ttol, const struct bn_tol *tol)
 
struct rt_bot_internalrt_bot_merge (size_t num_bots, const struct rt_bot_internal *const *bots)
 
int rt_bot_sort_faces (struct rt_bot_internal *bot, size_t tris_per_piece)
 
int rt_bot_decimate (struct rt_bot_internal *bot, fastf_t max_chord_error, fastf_t max_normal_error, fastf_t min_edge_length)
 
size_t rt_bot_decimate_gct (struct rt_bot_internal *bot, fastf_t feature_size)
 

Variables

size_t rt_bot_minpieces
 
size_t rt_bot_tri_per_piece
 

Detailed Description

Macro Definition Documentation

◆ RT_BOT_UNORIENTED

#define RT_BOT_UNORIENTED   1

unoriented triangles

Definition at line 840 of file geom.h.

◆ RT_BOT_CCW

#define RT_BOT_CCW   2

oriented counter-clockwise

Definition at line 841 of file geom.h.

◆ RT_BOT_CW

#define RT_BOT_CW   3

oriented clockwise

Definition at line 842 of file geom.h.

◆ RT_BOT_SURFACE

#define RT_BOT_SURFACE   1

triangles represent a surface (no volume)

Definition at line 845 of file geom.h.

◆ RT_BOT_SOLID

#define RT_BOT_SOLID   2

triangles represent the boundary of a solid object

Definition at line 846 of file geom.h.

◆ RT_BOT_PLATE

#define RT_BOT_PLATE   3

triangles represent plates. Thicknesses are specified in "thickness" array, and face mode is specified in "face_mode" bit vector. This is the FASTGEN "plate" mode. Orientation is ignored.

Definition at line 853 of file geom.h.

◆ RT_BOT_PLATE_NOCOS

#define RT_BOT_PLATE_NOCOS   4

same as plate mode, but LOS is set equal to face thickness, not the thickness divided by the cosine of the obliquity angle.

Definition at line 859 of file geom.h.

◆ RT_BOT_HAS_SURFACE_NORMALS

#define RT_BOT_HAS_SURFACE_NORMALS   0x01

Has surface normals at each face vertex.

Definition at line 862 of file geom.h.

◆ RT_BOT_USE_NORMALS

#define RT_BOT_USE_NORMALS   0x02

Use the surface normals if they exist.

Definition at line 863 of file geom.h.

◆ RT_BOT_USE_FLOATS

#define RT_BOT_USE_FLOATS   0x04

Use the single precision version of "tri_specific" during prep.

Definition at line 864 of file geom.h.

◆ RT_BOT_HAS_TEXTURE_UVS

#define RT_BOT_HAS_TEXTURE_UVS   0x08

Has uv texture coordinates at each face vertex.

Definition at line 865 of file geom.h.

◆ RT_BOT_HAS_UNUSED1

#define RT_BOT_HAS_UNUSED1   0x10

TBD.

Definition at line 866 of file geom.h.

◆ RT_BOT_HAS_UNUSED2

#define RT_BOT_HAS_UNUSED2   0x20

TBD.

Definition at line 867 of file geom.h.

◆ RT_BOT_HAS_UNUSED3

#define RT_BOT_HAS_UNUSED3   0x40

TBD.

Definition at line 868 of file geom.h.

◆ RT_BOT_HAS_UNUSED4

#define RT_BOT_HAS_UNUSED4   0x80

WARNING: use this flag to denote more bits in the export serialization.

Definition at line 869 of file geom.h.

◆ RT_BOT_CK_MAGIC

#define RT_BOT_CK_MAGIC (   _p)    BU_CKMAG(_p, RT_BOT_INTERNAL_MAGIC, "rt_bot_internal")

Definition at line 871 of file geom.h.

Function Documentation

◆ rt_bot_prep_pieces()

void rt_bot_prep_pieces ( struct bot_specific bot,
struct soltab stp,
size_t  ntri,
const struct bn_tol tol 
)

◆ rt_botface()

size_t rt_botface ( struct soltab stp,
struct bot_specific bot,
fastf_t ap,
fastf_t bp,
fastf_t cp,
size_t  face_no,
const struct bn_tol tol 
)

◆ rt_bot_get_edge_list()

size_t rt_bot_get_edge_list ( const struct rt_bot_internal bot,
size_t **  edge_list 
)

◆ rt_bot_edge_in_list()

int rt_bot_edge_in_list ( const size_t  v1,
const size_t  v2,
const size_t  edge_list[],
const size_t  edge_count0 
)

◆ rt_bot_plot()

int rt_bot_plot ( struct bu_list vhead,
struct rt_db_internal ip,
const struct bg_tess_tol ttol,
const struct bn_tol tol,
const struct bview info 
)

◆ rt_bot_plot_poly()

int rt_bot_plot_poly ( struct bu_list vhead,
struct rt_db_internal ip,
const struct bg_tess_tol ttol,
const struct bn_tol tol 
)

◆ rt_bot_find_v_nearest_pt2()

int rt_bot_find_v_nearest_pt2 ( const struct rt_bot_internal bot,
const point_t  pt2,
const mat_t  mat 
)

◆ rt_bot_find_e_nearest_pt2()

int rt_bot_find_e_nearest_pt2 ( int *  vert1,
int *  vert2,
const struct rt_bot_internal bot,
const point_t  pt2,
const mat_t  mat 
)

◆ rt_bot_propget()

fastf_t rt_bot_propget ( struct rt_bot_internal bot,
const char *  property 
)

◆ rt_bot_vertex_fuse()

int rt_bot_vertex_fuse ( struct rt_bot_internal bot,
const struct bn_tol tol 
)

◆ rt_bot_face_fuse()

int rt_bot_face_fuse ( struct rt_bot_internal bot)

◆ rt_bot_condense()

int rt_bot_condense ( struct rt_bot_internal bot)

◆ rt_bot_smooth()

int rt_bot_smooth ( struct rt_bot_internal bot,
const char *  bot_name,
struct db_i dbip,
fastf_t  normal_tolerance_angle 
)

◆ rt_bot_flip()

int rt_bot_flip ( struct rt_bot_internal bot)

◆ rt_bot_sync()

int rt_bot_sync ( struct rt_bot_internal bot)

◆ rt_bot_split()

struct rt_bot_list * rt_bot_split ( struct rt_bot_internal bot)

◆ rt_bot_patches()

struct rt_bot_list * rt_bot_patches ( struct rt_bot_internal bot)

◆ rt_bot_list_free()

void rt_bot_list_free ( struct rt_bot_list headRblp,
int  fbflag 
)

◆ rt_bot_same_orientation()

int rt_bot_same_orientation ( const int *  a,
const int *  b 
)

◆ rt_bot_tess()

int rt_bot_tess ( struct nmgregion **  r,
struct model m,
struct rt_db_internal ip,
const struct bg_tess_tol ttol,
const struct bn_tol tol 
)

◆ rt_bot_merge()

struct rt_bot_internal * rt_bot_merge ( size_t  num_bots,
const struct rt_bot_internal *const *  bots 
)

◆ rt_bot_sort_faces()

int rt_bot_sort_faces ( struct rt_bot_internal bot,
size_t  tris_per_piece 
)

◆ rt_bot_decimate()

int rt_bot_decimate ( struct rt_bot_internal bot,
fastf_t  max_chord_error,
fastf_t  max_normal_error,
fastf_t  min_edge_length 
)

◆ rt_bot_decimate_gct()

size_t rt_bot_decimate_gct ( struct rt_bot_internal bot,
fastf_t  feature_size 
)

Variable Documentation

◆ rt_bot_minpieces

size_t rt_bot_minpieces
extern

◆ rt_bot_tri_per_piece

size_t rt_bot_tri_per_piece
extern