BRL-CAD
#include "common.h"
#include "bu/bitv.h"
#include "bu/color.h"
#include "bu/list.h"
#include "bu/mapped_file.h"
#include "bu/vls.h"
#include "vmath.h"
#include "rt/defines.h"
#include "../nmg.h"
#include "brep.h"
Include dependency graph for geom.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  rt_tor_internal
 
struct  rt_tgc_internal
 
struct  rt_ell_internal
 
struct  rt_superell_internal
 
struct  rt_metaball_internal
 
struct  wdb_metaball_pnt
 
struct  rt_arb_internal
 
struct  rt_ars_internal
 
struct  rt_half_internal
 
struct  rt_grip_internal
 
struct  rt_joint_internal
 
struct  rt_pg_face_internal
 has npoly elements More...
 
struct  rt_pg_internal
 
struct  rt_nurb_internal
 
struct  rt_brep_internal
 
struct  rt_ebm_internal
 
struct  rt_vol_internal
 
struct  rt_hf_internal
 
struct  rt_arbn_internal
 
struct  rt_pipe_internal
 
struct  wdb_pipe_pnt
 
struct  rt_part_internal
 
struct  rt_rpc_internal
 
struct  rt_rhc_internal
 
struct  rt_epa_internal
 
struct  rt_ehy_internal
 
struct  rt_hyp_internal
 
struct  rt_eto_internal
 
struct  rt_dsp_internal
 
struct  rt_curve
 
struct  line_seg
 line segment More...
 
struct  carc_seg
 circular arc segment More...
 
struct  nurb_seg
 NURB curve segment. More...
 
struct  bezier_seg
 Bezier curve segment. More...
 
struct  rt_sketch_internal
 
struct  rt_submodel_internal
 
struct  rt_extrude_internal
 
struct  rt_revolve_internal
 
struct  rt_cline_internal
 
struct  rt_bot_internal
 
struct  rt_bot_list
 
struct  pnt
 
struct  pnt_color
 
struct  pnt_scale
 
struct  pnt_normal
 
struct  pnt_color_scale
 
struct  pnt_color_normal
 
struct  pnt_scale_normal
 
struct  pnt_color_scale_normal
 
struct  rt_pnts_internal
 
struct  rt_ant
 
struct  txt_seg
 
struct  rt_annot_internal
 
struct  rt_datum_internal
 
struct  rt_hrt_internal
 
struct  rt_script_internal
 

Macros

#define NAMELEN   16 /* NAMESIZE from db.h (can't call it NAMESIZE!!!!!) */
 
#define RT_TOR_CK_MAGIC(_p)   BU_CKMAG(_p, RT_TOR_INTERNAL_MAGIC, "rt_tor_internal")
 
#define RT_TGC_CK_MAGIC(_p)   BU_CKMAG(_p, RT_TGC_INTERNAL_MAGIC, "rt_tgc_internal")
 
#define RT_ELL_CK_MAGIC(_p)   BU_CKMAG(_p, RT_ELL_INTERNAL_MAGIC, "rt_ell_internal")
 
#define RT_SUPERELL_CK_MAGIC(_p)   BU_CKMAG(_p, RT_SUPERELL_INTERNAL_MAGIC, "rt_superell_internal")
 
#define METABALL_METABALL   0
 
#define METABALL_ISOPOTENTIAL   1
 
#define METABALL_BLOB   2
 
#define RT_METABALL_CK_MAGIC(_p)   BU_CKMAG(_p, RT_METABALL_INTERNAL_MAGIC, "rt_metaball_internal")
 
#define WDB_METABALLPT_TYPE_POINT   0x0
 
#define WDB_METABALLPT_TYPE_LINE   0x1
 
#define WDB_METABALL_PNT_NULL   ((struct wdb_metaball_pnt *)0)
 
#define RT_ARB_CK_MAGIC(_p)   BU_CKMAG(_p, RT_ARB_INTERNAL_MAGIC, "rt_arb_internal")
 
#define RT_ARS_CK_MAGIC(_p)   BU_CKMAG(_p, RT_ARS_INTERNAL_MAGIC, "rt_ars_internal")
 
#define RT_HALF_CK_MAGIC(_p)   BU_CKMAG(_p, RT_HALF_INTERNAL_MAGIC, "rt_half_internal")
 
#define RT_GRIP_CK_MAGIC(_p)   BU_CKMAG(_p, RT_GRIP_INTERNAL_MAGIC, "rt_grip_internal")
 
#define RT_JOINT_CK_MAGIC(_p)   BU_CKMAG(_p, RT_JOINT_INTERNAL_MAGIC, "rt_joint_internal")
 
#define RT_PG_CK_MAGIC(_p)   BU_CKMAG(_p, RT_PG_INTERNAL_MAGIC, "rt_pg_internal")
 
#define RT_NURB_CK_MAGIC(_p)   BU_CKMAG(_p, RT_NURB_INTERNAL_MAGIC, "rt_nurb_internal");
 
#define RT_NURB_GET_CONTROL_POINT(_s, _u, _v)
 
#define RT_BREP_CK_MAGIC(_p)   BU_CKMAG(_p, RT_BREP_INTERNAL_MAGIC, "rt_brep_internal");
 
#define RT_BREP_TEST_MAGIC(_p)   ((_p) && (*((uint32_t *)(_p)) == (uint32_t)(RT_BREP_INTERNAL_MAGIC)))
 
#define RT_EBM_NAME_LEN   256
 
#define RT_EBM_SRC_FILE   'f'
 
#define RT_EBM_SRC_OBJ   'o'
 
#define RT_EBM_CK_MAGIC(_p)   BU_CKMAG(_p, RT_EBM_INTERNAL_MAGIC, "rt_ebm_internal")
 
#define RT_VOL_NAME_LEN   128
 
#define RT_VOL_SRC_FILE   'f'
 
#define RT_VOL_SRC_OBJ   'o'
 
#define RT_VOL_CK_MAGIC(_p)   BU_CKMAG(_p, RT_VOL_INTERNAL_MAGIC, "rt_vol_internal")
 
#define RT_HF_CK_MAGIC(_p)   BU_CKMAG(_p, RT_HF_INTERNAL_MAGIC, "rt_hf_internal")
 
#define RT_ARBN_CK_MAGIC(_p)   BU_CKMAG(_p, RT_ARBN_INTERNAL_MAGIC, "rt_arbn_internal")
 
#define RT_PIPE_CK_MAGIC(_p)   BU_CKMAG(_p, RT_PIPE_INTERNAL_MAGIC, "rt_pipe_internal")
 
#define RT_PART_CK_MAGIC(_p)   BU_CKMAG(_p, RT_PART_INTERNAL_MAGIC, "rt_part_internal")
 
#define RT_PARTICLE_TYPE_SPHERE   1
 
#define RT_PARTICLE_TYPE_CYLINDER   2
 
#define RT_PARTICLE_TYPE_CONE   3
 
#define RT_RPC_CK_MAGIC(_p)   BU_CKMAG(_p, RT_RPC_INTERNAL_MAGIC, "rt_rpc_internal")
 
#define RT_RHC_CK_MAGIC(_p)   BU_CKMAG(_p, RT_RHC_INTERNAL_MAGIC, "rt_rhc_internal")
 
#define RT_EPA_CK_MAGIC(_p)   BU_CKMAG(_p, RT_EPA_INTERNAL_MAGIC, "rt_epa_internal")
 
#define RT_EHY_CK_MAGIC(_p)   BU_CKMAG(_p, RT_EHY_INTERNAL_MAGIC, "rt_ehy_internal")
 
#define RT_HYP_CK_MAGIC(_p)   BU_CKMAG(_p, RT_HYP_INTERNAL_MAGIC, "rt_hyp_internal")
 
#define RT_ETO_CK_MAGIC(_p)   BU_CKMAG(_p, RT_ETO_INTERNAL_MAGIC, "rt_eto_internal")
 
#define DSP_NAME_LEN   128
 
#define dsp_file   dsp_name
 for backwards compatibility More...
 
#define DSP_CUT_DIR_ADAPT   'a'
 
#define DSP_CUT_DIR_llUR   'l'
 
#define DSP_CUT_DIR_ULlr   'L'
 
#define RT_DSP_SRC_V4_FILE   '4'
 
#define RT_DSP_SRC_FILE   'f'
 
#define RT_DSP_SRC_OBJ   'o'
 
#define RT_DSP_CK_MAGIC(_p)   BU_CKMAG(_p, RT_DSP_INTERNAL_MAGIC, "rt_dsp_internal")
 
#define SKETCH_NAME_LEN   16
 
#define RT_SKETCH_CK_MAGIC(_p)   BU_CKMAG(_p, RT_SKETCH_INTERNAL_MAGIC, "rt_sketch_internal")
 
#define RT_SUBMODEL_CK_MAGIC(_p)   BU_CKMAG(_p, RT_SUBMODEL_INTERNAL_MAGIC, "rt_submodel_internal")
 
#define RT_EXTRUDE_CK_MAGIC(_p)   BU_CKMAG(_p, RT_EXTRUDE_INTERNAL_MAGIC, "rt_extrude_internal")
 
#define RT_REVOLVE_CK_MAGIC(_p)   BU_CKMAG(_p, RT_REVOLVE_INTERNAL_MAGIC, "rt_revolve_internal")
 
#define RT_CLINE_CK_MAGIC(_p)   BU_CKMAG(_p, RT_CLINE_INTERNAL_MAGIC, "rt_cline_internal")
 
#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")
 
#define RT_PNTS_CK_MAGIC(_p)   BU_CKMAG(_p, RT_PNTS_INTERNAL_MAGIC, "rt_pnts_internal")
 
#define RT_TXT_POS_BL   1
 
#define RT_TXT_POS_BC   2
 
#define RT_TXT_POS_BR   3
 
#define RT_TXT_POS_ML   4
 
#define RT_TXT_POS_MC   5
 
#define RT_TXT_POS_MR   6
 
#define RT_TXT_POS_TL   7
 
#define RT_TXT_POS_TC   8
 
#define RT_TXT_POS_TR   9
 
#define RT_ANNOT_CK_MAGIC(_p)   BU_CKMAG(_p, RT_ANNOT_INTERNAL_MAGIC, "rt_annot_internal")
 
#define RT_DATUM_CK_MAGIC(_p)   BU_CKMAG(_p, RT_DATUM_INTERNAL_MAGIC, "rt_datum_internal")
 
#define RT_HRT_CK_MAGIC(_p)   BU_CKMAG(_p, RT_HRT_INTERNAL_MAGIC, "rt_hrt_internal")
 
#define RT_SCRIPT_CK_MAGIC(_p)   BU_CKMAG(_p, RT_SCRIPT_INTERNAL_MAGIC, "rt_script_internal")
 

Enumerations

enum  rt_pnt_type {
  RT_PNT_TYPE_PNT = 0 , RT_PNT_TYPE_COL = 0+1 , RT_PNT_TYPE_SCA = 0+2 , RT_PNT_TYPE_NRM = 0+4 ,
  RT_PNT_TYPE_COL_SCA = 0+1+2 , RT_PNT_TYPE_COL_NRM = 0+1+4 , RT_PNT_TYPE_SCA_NRM = 0+2+4 , RT_PNT_TYPE_COL_SCA_NRM = 0+1+2+4 ,
  RT_PNT_UNKNOWN = 8
}
 

Functions

int rt_txt_pos_flag (int *pos_flag, int horizontal, int vertical)
 

Macro Definition Documentation

◆ NAMELEN

#define NAMELEN   16 /* NAMESIZE from db.h (can't call it NAMESIZE!!!!!) */

Definition at line 53 of file geom.h.

◆ METABALL_METABALL

#define METABALL_METABALL   0

Definition at line 159 of file geom.h.

◆ METABALL_ISOPOTENTIAL

#define METABALL_ISOPOTENTIAL   1

Definition at line 160 of file geom.h.

◆ METABALL_BLOB

#define METABALL_BLOB   2

Definition at line 161 of file geom.h.

◆ RT_EBM_SRC_FILE

#define RT_EBM_SRC_FILE   'f'

Definition at line 337 of file geom.h.

◆ RT_EBM_SRC_OBJ

#define RT_EBM_SRC_OBJ   'o'

Definition at line 338 of file geom.h.

◆ RT_VOL_SRC_FILE

#define RT_VOL_SRC_FILE   'f'

Definition at line 364 of file geom.h.

◆ RT_VOL_SRC_OBJ

#define RT_VOL_SRC_OBJ   'o'

Definition at line 365 of file geom.h.

◆ dsp_file

#define dsp_file   dsp_name

for backwards compatibility

Definition at line 563 of file geom.h.

◆ DSP_CUT_DIR_ADAPT

#define DSP_CUT_DIR_ADAPT   'a'

Definition at line 572 of file geom.h.

◆ DSP_CUT_DIR_llUR

#define DSP_CUT_DIR_llUR   'l'

Definition at line 573 of file geom.h.

◆ DSP_CUT_DIR_ULlr

#define DSP_CUT_DIR_ULlr   'L'

Definition at line 574 of file geom.h.

◆ RT_DSP_SRC_V4_FILE

#define RT_DSP_SRC_V4_FILE   '4'

Definition at line 584 of file geom.h.

◆ RT_DSP_SRC_FILE

#define RT_DSP_SRC_FILE   'f'

Definition at line 585 of file geom.h.

◆ RT_DSP_SRC_OBJ

#define RT_DSP_SRC_OBJ   'o'

Definition at line 586 of file geom.h.

◆ RT_DATUM_CK_MAGIC

#define RT_DATUM_CK_MAGIC (   _p)    BU_CKMAG(_p, RT_DATUM_INTERNAL_MAGIC, "rt_datum_internal")

validation macro to make sure an rt_datum_internal has the proper magic identifier.

Definition at line 1077 of file geom.h.