BRL-CAD
space_partition.h File Reference
#include "common.h"
#include "vmath.h"
#include "bn/tol.h"
#include "rt/defines.h"
#include "rt/application.h"
#include "rt/soltab.h"
Include dependency graph for space_partition.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  cutnode
 
struct  boxnode
 
union  cutter
 

Macros

#define CUT_CUTNODE   1
 
#define CUT_BOXNODE   2
 
#define CUT_MAXIMUM   2
 
#define CUTTER_NULL   ((union cutter *)0)
 

Functions

void rt_pr_cut (const union cutter *cutp, int lvl)
 
void rt_pr_cut_info (const struct rt_i *rtip, const char *str)
 
void remove_from_bsp (struct soltab *stp, union cutter *cutp, struct bn_tol *tol)
 
void insert_in_bsp (struct soltab *stp, union cutter *cutp)
 
void fill_out_bsp (struct rt_i *rtip, union cutter *cutp, struct resource *resp, fastf_t bb[6])
 
struct bvh_build_node * hlbvh_create (long max_prims_in_node, struct bu_pool *pool, const fastf_t *centroids_prims, const fastf_t *bounds_prims, long *total_nodes, const long n_primitives, long **ordered_prims)
 
void rt_cut_extend (union cutter *cutp, struct soltab *stp, const struct rt_i *rtip)
 
const union cutterrt_cell_n_on_ray (struct application *ap, int n)
 
void rt_cut_clean (struct rt_i *rtip)
 

Macro Definition Documentation

◆ CUT_CUTNODE

#define CUT_CUTNODE   1

Definition at line 68 of file space_partition.h.

◆ CUT_BOXNODE

#define CUT_BOXNODE   2

Definition at line 69 of file space_partition.h.

◆ CUT_MAXIMUM

#define CUT_MAXIMUM   2

Definition at line 70 of file space_partition.h.

◆ CUTTER_NULL

#define CUTTER_NULL   ((union cutter *)0)

Definition at line 79 of file space_partition.h.

Function Documentation

◆ rt_pr_cut()

void rt_pr_cut ( const union cutter cutp,
int  lvl 
)

Print out a cut tree.

lvl is recursion level.

◆ rt_pr_cut_info()

void rt_pr_cut_info ( const struct rt_i rtip,
const char *  str 
)

◆ remove_from_bsp()

void remove_from_bsp ( struct soltab stp,
union cutter cutp,
struct bn_tol tol 
)

◆ insert_in_bsp()

void insert_in_bsp ( struct soltab stp,
union cutter cutp 
)

◆ fill_out_bsp()

void fill_out_bsp ( struct rt_i rtip,
union cutter cutp,
struct resource resp,
fastf_t  bb[6] 
)

◆ hlbvh_create()

struct bvh_build_node * hlbvh_create ( long  max_prims_in_node,
struct bu_pool pool,
const fastf_t centroids_prims,
const fastf_t bounds_prims,
long *  total_nodes,
const long  n_primitives,
long **  ordered_prims 
)

◆ rt_cut_extend()

void rt_cut_extend ( union cutter cutp,
struct soltab stp,
const struct rt_i rtip 
)

Add a solid into a given boxnode, extending the lists there. This is used only for building the root node, which will then be subdivided.

Solids with pieces go onto a special list.

◆ rt_cell_n_on_ray()

const union cutter * rt_cell_n_on_ray ( struct application ap,
int  n 
)

Return pointer to cell 'n' along a given ray. Used for debugging of how space partitioning interacts with shootray. Intended to mirror the operation of rt_shootray(). The first cell is 0.

◆ rt_cut_clean()

void rt_cut_clean ( struct rt_i rtip)