#include "common.h"
#include "rtlist.h"
#include "bu.h"
#include "machine.h"
#include "vmath.h"
Include dependency graph for nmg.h:
This graph shows which files directly or indirectly include this file:
Go to the source code of this file.
Data Structures | |
struct | knot_vector |
Definition of a knot vector. More... | |
struct | model |
struct | nmgregion |
struct | nmgregion_a |
struct | shell |
struct | shell_a |
struct | face |
struct | face_g_plane |
struct | face_g_snurb |
struct | faceuse |
struct | loop |
struct | loop_g |
struct | loopuse |
struct | edge |
struct | edge_g_lseg |
struct | edge_g_cnurb |
struct | edgeuse |
struct | vertex |
struct | vertex_g |
struct | vertexuse |
struct | vertexuse_a_plane |
struct | vertexuse_a_cnurb |
struct | nmg_boolstruct |
struct | nmg_struct_counts |
struct | nmg_visit_handlers |
Defines | |
#define | NMG_H seen |
#define | NMG_EXTERN(type_and_name, args) RT_EXTERN(type_and_name,args) |
#define | DEBUG_PL_ANIM 0x00000001 |
1 mged: animated evaluation | |
#define | DEBUG_PL_SLOW 0x00000002 |
2 mged: add delays to animation | |
#define | DEBUG_GRAPHCL 0x00000004 |
3 mged: graphic classification | |
#define | DEBUG_PL_LOOP 0x00000008 |
4 loop class (needs GRAPHCL) | |
#define | DEBUG_PLOTEM 0x00000010 |
5 make plots in debugged routines (needs other flags set too) | |
#define | DEBUG_POLYSECT 0x00000020 |
6 nmg_inter: face intersection | |
#define | DEBUG_VERIFY 0x00000040 |
7 nmg_vshell() frequently, verify health | |
#define | DEBUG_BOOL 0x00000080 |
8 nmg_bool: | |
#define | DEBUG_CLASSIFY 0x00000100 |
9 nmg_class: | |
#define | DEBUG_BOOLEVAL 0x00000200 |
10 nmg_eval: what to retain | |
#define | DEBUG_BASIC 0x00000400 |
013 nmg_mk.c and nmg_mod.c routines | |
#define | DEBUG_MESH 0x00000800 |
12 nmg_mesh: describe edge search | |
#define | DEBUG_MESH_EU 0x00001000 |
13 nmg_mesh: list edges meshed | |
#define | DEBUG_POLYTO 0x00002000 |
14 nmg_misc: polytonmg | |
#define | DEBUG_LABEL_PTS 0x00004000 |
15 label points in plot files | |
#define | DEBUG_NMGRT 0x00010000 |
17 ray tracing | |
#define | DEBUG_FINDEU 0x00020000 |
18 nmg_mod: nmg_findeu() | |
#define | DEBUG_CMFACE 0x00040000 |
19 nmg_mod: nmg_cmface() | |
#define | DEBUG_CUTLOOP 0x00080000 |
024 nmg_mod: nmg_cut_loop | |
#define | DEBUG_VU_SORT 0x00100000 |
025 nmg_fcut: coincident vu sort | |
#define | DEBUG_FCUT 0x00200000 |
026 nmg_fcut: face cutter | |
#define | DEBUG_RT_SEGS 0x00400000 |
027 nmg_rt_segs: | |
#define | DEBUG_RT_ISECT 0x00800000 |
028 nmg_rt_isect: | |
#define | DEBUG_TRI 0x01000000 |
029 nmg_tri | |
#define | DEBUG_PT_FU 0x02000000 |
029 nmg_pt_fu | |
#define | DEBUG_MANIF 0x04000000 |
029 nmg_manif | |
#define | NMG_DEBUG_FORMAT "\020\033MANIF\032PTFU\031TRIANG\030RT_ISECT\\027RT_SEGS\026FCUT\025VU_SORT\024CUTLOOP\023CMFACE\022FINDEU\021RT_ISECT\020(FREE)\\017LABEL_PTS\016POLYTO\015MESH_EU\014MESH\013BASIC\012BOOLEVAL\011CLASSIFY\\010BOOL\7VERIFY\6POLYSECT\5PLOTEM\4PL_LOOP\3GRAPHCL\2PL_SLOW\1PL_ANIM" |
#define | NMG_ARGS(args) () |
#define | NMG_BOOL_SUB 1 |
subtraction | |
#define | NMG_BOOL_ADD 2 |
addition/union | |
#define | NMG_BOOL_ISECT 4 |
intsersection | |
#define | NMG_CLASS_Unknown -1 |
#define | NMG_CLASS_AinB 0 |
#define | NMG_CLASS_AonBshared 1 |
#define | NMG_CLASS_AonBanti 2 |
#define | NMG_CLASS_AoutB 3 |
#define | NMG_CLASS_BinA 4 |
#define | NMG_CLASS_BonAshared 5 |
#define | NMG_CLASS_BonAanti 6 |
#define | NMG_CLASS_BoutA 7 |
#define | OT_NONE 0 |
no orientation (error) | |
#define | OT_SAME 1 |
orientation same | |
#define | OT_OPPOSITE 2 |
orientation opposite | |
#define | OT_UNSPEC 3 |
orientation unspecified | |
#define | OT_BOOLPLACE 4 |
object is intermediate data for boolean ops | |
#define | NMG_MODEL_MAGIC 0x12121212 |
#define | NMG_REGION_MAGIC 0x23232323 |
#define | NMG_REGION_A_MAGIC 0x696e6720 |
#define | NMG_SHELL_MAGIC 0x71077345 |
shell oil | |
#define | NMG_SHELL_A_MAGIC 0x65207761 |
#define | NMG_FACE_MAGIC 0x45454545 |
#define | NMG_FACE_G_PLANE_MAGIC 0x726b6e65 |
#define | NMG_FACE_G_SNURB_MAGIC 0x736e7262 |
was RT_SNURB_MAGIC | |
#define | NMG_FACEUSE_MAGIC 0x56565656 |
#define | NMG_LOOP_MAGIC 0x67676767 |
#define | NMG_LOOP_G_MAGIC 0x6420224c |
#define | NMG_LOOPUSE_MAGIC 0x78787878 |
#define | NMG_EDGE_MAGIC 0x33333333 |
#define | NMG_EDGE_G_LSEG_MAGIC 0x6c696768 |
#define | NMG_EDGE_G_CNURB_MAGIC 0x636e7262 |
was RT_CNURB_MAGIC | |
#define | NMG_EDGEUSE_MAGIC 0x90909090 |
#define | NMG_EDGEUSE2_MAGIC 0x91919191 |
used in eu->l2.magic | |
#define | NMG_VERTEX_MAGIC 0x00123123 |
#define | NMG_VERTEX_G_MAGIC 0x72737707 |
#define | NMG_VERTEXUSE_MAGIC 0x12341234 |
#define | NMG_VERTEXUSE_A_PLANE_MAGIC 0x69676874 |
#define | NMG_VERTEXUSE_A_CNURB_MAGIC 0x20416e64 |
#define | NMG_KNOT_VECTOR_MAGIC 0x6b6e6f74 |
aka RT_KNOT_VECTOR_MAGIC | |
#define | NMG_CKMAG(_ptr, _magic, _str) BU_CKMAG(_ptr,_magic,_str) |
#define | NMG_CK2MAG(_ptr, _magic1, _magic2, _str) |
#define | NMG_CK_MODEL(_p) NMG_CKMAG(_p, NMG_MODEL_MAGIC, "model") |
#define | NMG_CK_REGION(_p) NMG_CKMAG(_p, NMG_REGION_MAGIC, "region") |
#define | NMG_CK_REGION_A(_p) NMG_CKMAG(_p, NMG_REGION_A_MAGIC, "region_a") |
#define | NMG_CK_SHELL(_p) NMG_CKMAG(_p, NMG_SHELL_MAGIC, "shell") |
#define | NMG_CK_SHELL_A(_p) NMG_CKMAG(_p, NMG_SHELL_A_MAGIC, "shell_a") |
#define | NMG_CK_FACE(_p) NMG_CKMAG(_p, NMG_FACE_MAGIC, "face") |
#define | NMG_CK_FACE_G_PLANE(_p) NMG_CKMAG(_p, NMG_FACE_G_PLANE_MAGIC, "face_g_plane") |
#define | NMG_CK_FACE_G_SNURB(_p) NMG_CKMAG(_p, NMG_FACE_G_SNURB_MAGIC, "face_g_snurb") |
#define | NMG_CK_FACE_G_EITHER(_p) NMG_CK2MAG(_p, NMG_FACE_G_PLANE_MAGIC, NMG_FACE_G_SNURB_MAGIC, "face_g_plane|face_g_snurb") |
#define | NMG_CK_FACEUSE(_p) NMG_CKMAG(_p, NMG_FACEUSE_MAGIC, "faceuse") |
#define | NMG_CK_LOOP(_p) NMG_CKMAG(_p, NMG_LOOP_MAGIC, "loop") |
#define | NMG_CK_LOOP_G(_p) NMG_CKMAG(_p, NMG_LOOP_G_MAGIC, "loop_g") |
#define | NMG_CK_LOOPUSE(_p) NMG_CKMAG(_p, NMG_LOOPUSE_MAGIC, "loopuse") |
#define | NMG_CK_EDGE(_p) NMG_CKMAG(_p, NMG_EDGE_MAGIC, "edge") |
#define | NMG_CK_EDGE_G_LSEG(_p) NMG_CKMAG(_p, NMG_EDGE_G_LSEG_MAGIC, "edge_g_lseg") |
#define | NMG_CK_EDGE_G_CNURB(_p) NMG_CKMAG(_p, NMG_EDGE_G_CNURB_MAGIC, "edge_g_cnurb") |
#define | NMG_CK_EDGE_G_EITHER(_p) NMG_CK2MAG(_p, NMG_EDGE_G_LSEG_MAGIC, NMG_EDGE_G_CNURB_MAGIC, "edge_g_lseg|edge_g_cnurb") |
#define | NMG_CK_EDGEUSE(_p) NMG_CKMAG(_p, NMG_EDGEUSE_MAGIC, "edgeuse") |
#define | NMG_CK_VERTEX(_p) NMG_CKMAG(_p, NMG_VERTEX_MAGIC, "vertex") |
#define | NMG_CK_VERTEX_G(_p) NMG_CKMAG(_p, NMG_VERTEX_G_MAGIC, "vertex_g") |
#define | NMG_CK_VERTEXUSE(_p) NMG_CKMAG(_p, NMG_VERTEXUSE_MAGIC, "vertexuse") |
#define | NMG_CK_VERTEXUSE_A_PLANE(_p) NMG_CKMAG(_p, NMG_VERTEXUSE_A_PLANE_MAGIC, "vertexuse_a_plane") |
#define | NMG_CK_VERTEXUSE_A_CNURB(_p) NMG_CKMAG(_p, NMG_VERTEXUSE_A_CNURB_MAGIC, "vertexuse_a_cnurb") |
#define | NMG_CK_VERTEXUSE_A_EITHER(_p) NMG_CK2MAG(_p, NMG_VERTEXUSE_A_PLANE_MAGIC, NMG_VERTEXUSE_A_CNURB_MAGIC, "vertexuse_a_plane|vertexuse_a_cnurb") |
#define | NMG_CK_LIST(_p) BU_CKMAG(_p, BU_LIST_HEAD_MAGIC, "bu_list") |
#define | NMG_TEST_EDGEUSE(_p) |
#define | RT_KNOT_VECTOR_MAGIC NMG_KNOT_VECTOR_MAGIC |
nurb.h compat | |
#define | NMG_GET_FU_NORMAL(_N, _fu) |
#define | NMG_GET_FU_PLANE(_N, _fu) |
#define | RT_LIST_SET_DOWN_TO_VERT(_hp, _vu) |
#define | NMG_GETSTRUCT(p, str) BU_GETSTRUCT(p,str) |
#define | NMG_FREESTRUCT(ptr, str) |
#define | NMG_INCR_INDEX(_p, _m) NMG_CK_MODEL(_m); (_p)->index = ((_m)->maxindex)++ |
#define | GET_REGION(p, m) {NMG_GETSTRUCT(p, nmgregion); NMG_INCR_INDEX(p,m);} |
#define | GET_REGION_A(p, m) {NMG_GETSTRUCT(p, nmgregion_a); NMG_INCR_INDEX(p,m);} |
#define | GET_SHELL(p, m) {NMG_GETSTRUCT(p, shell); NMG_INCR_INDEX(p,m);} |
#define | GET_SHELL_A(p, m) {NMG_GETSTRUCT(p, shell_a); NMG_INCR_INDEX(p,m);} |
#define | GET_FACE(p, m) {NMG_GETSTRUCT(p, face); NMG_INCR_INDEX(p,m);} |
#define | GET_FACE_G_PLANE(p, m) {NMG_GETSTRUCT(p, face_g_plane); NMG_INCR_INDEX(p,m);} |
#define | GET_FACE_G_SNURB(p, m) {NMG_GETSTRUCT(p, face_g_snurb); NMG_INCR_INDEX(p,m);} |
#define | GET_FACEUSE(p, m) {NMG_GETSTRUCT(p, faceuse); NMG_INCR_INDEX(p,m);} |
#define | GET_LOOP(p, m) {NMG_GETSTRUCT(p, loop); NMG_INCR_INDEX(p,m);} |
#define | GET_LOOP_G(p, m) {NMG_GETSTRUCT(p, loop_g); NMG_INCR_INDEX(p,m);} |
#define | GET_LOOPUSE(p, m) {NMG_GETSTRUCT(p, loopuse); NMG_INCR_INDEX(p,m);} |
#define | GET_EDGE(p, m) {NMG_GETSTRUCT(p, edge); NMG_INCR_INDEX(p,m);} |
#define | GET_EDGE_G_LSEG(p, m) {NMG_GETSTRUCT(p, edge_g_lseg); NMG_INCR_INDEX(p,m);} |
#define | GET_EDGE_G_CNURB(p, m) {NMG_GETSTRUCT(p, edge_g_cnurb); NMG_INCR_INDEX(p,m);} |
#define | GET_EDGEUSE(p, m) {NMG_GETSTRUCT(p, edgeuse); NMG_INCR_INDEX(p,m);} |
#define | GET_VERTEX(p, m) {NMG_GETSTRUCT(p, vertex); NMG_INCR_INDEX(p,m);} |
#define | GET_VERTEX_G(p, m) {NMG_GETSTRUCT(p, vertex_g); NMG_INCR_INDEX(p,m);} |
#define | GET_VERTEXUSE(p, m) {NMG_GETSTRUCT(p, vertexuse); NMG_INCR_INDEX(p,m);} |
#define | GET_VERTEXUSE_A_PLANE(p, m) {NMG_GETSTRUCT(p, vertexuse_a_plane); NMG_INCR_INDEX(p,m);} |
#define | GET_VERTEXUSE_A_CNURB(p, m) {NMG_GETSTRUCT(p, vertexuse_a_cnurb); NMG_INCR_INDEX(p,m);} |
#define | FREE_MODEL(p) NMG_FREESTRUCT(p, model) |
#define | FREE_REGION(p) NMG_FREESTRUCT(p, nmgregion) |
#define | FREE_REGION_A(p) NMG_FREESTRUCT(p, nmgregion_a) |
#define | FREE_SHELL(p) NMG_FREESTRUCT(p, shell) |
#define | FREE_SHELL_A(p) NMG_FREESTRUCT(p, shell_a) |
#define | FREE_FACE(p) NMG_FREESTRUCT(p, face) |
#define | FREE_FACE_G_PLANE(p) NMG_FREESTRUCT(p, face_g_plane) |
#define | FREE_FACE_G_SNURB(p) NMG_FREESTRUCT(p, face_g_snurb) |
#define | FREE_FACEUSE(p) NMG_FREESTRUCT(p, faceuse) |
#define | FREE_LOOP(p) NMG_FREESTRUCT(p, loop) |
#define | FREE_LOOP_G(p) NMG_FREESTRUCT(p, loop_g) |
#define | FREE_LOOPUSE(p) NMG_FREESTRUCT(p, loopuse) |
#define | FREE_LOOPUSE_A(p) NMG_FREESTRUCT(p, loopuse_a) |
#define | FREE_EDGE(p) NMG_FREESTRUCT(p, edge) |
#define | FREE_EDGE_G_LSEG(p) NMG_FREESTRUCT(p, edge_g_lseg) |
#define | FREE_EDGE_G_CNURB(p) NMG_FREESTRUCT(p, edge_g_cnurb) |
#define | FREE_EDGEUSE(p) NMG_FREESTRUCT(p, edgeuse) |
#define | FREE_VERTEX(p) NMG_FREESTRUCT(p, vertex) |
#define | FREE_VERTEX_G(p) NMG_FREESTRUCT(p, vertex_g) |
#define | FREE_VERTEXUSE(p) NMG_FREESTRUCT(p, vertexuse) |
#define | FREE_VERTEXUSE_A_PLANE(p) NMG_FREESTRUCT(p, vertexuse_a_plane) |
#define | FREE_VERTEXUSE_A_CNURB(p) NMG_FREESTRUCT(p, vertexuse_a_cnurb) |
#define | NMG_ARE_EUS_ADJACENT(_eu1, _eu2) |
#define | EDGESADJ(_e1, _e2) NMG_ARE_EUS_ADJACENT(_e1,_e2) |
#define | PLPRINT(_s, _pl) |
#define | NMG_FPI_FIRST 0 |
return after finding first touch | |
#define | NMG_FPI_PERGEOM 1 |
find all touches, call user funcs once for each geometry element touched | |
#define | NMG_FPI_PERUSE 2 |
find all touches, call user funcs once for each use of geom elements touched | |
#define | PREEXIST 1 |
#define | NEWEXIST 2 |
#define | VU_PREEXISTS(_bs, _vu) |
#define | VU_NEW(_bs, _vu) |
#define | NMG_INDEX_VALUE(_tab, _index) ((_tab)[_index]) |
#define | NMG_INDEX_TEST(_tab, _p) ( (_tab)[(_p)->index] ) |
#define | NMG_INDEX_SET(_tab, _p) {(_tab)[(_p)->index] = 1;} |
#define | NMG_INDEX_CLEAR(_tab, _p) {(_tab)[(_p)->index] = 0;} |
#define | NMG_INDEX_TEST_AND_SET(_tab, _p) ( (_tab)[(_p)->index] == 0 ? ((_tab)[(_p)->index] = 1) : 0 ) |
#define | NMG_INDEX_IS_SET(_tab, _p) NMG_INDEX_TEST(_tab,_p) |
#define | NMG_INDEX_FIRST_TIME(_tab, _p) NMG_INDEX_TEST_AND_SET(_tab,_p) |
#define | NMG_INDEX_ASSIGN(_tab, _p, _val) {(_tab)[(_p)->index] = _val;} |
#define | NMG_INDEX_GET(_tab, _p) ((_tab)[(_p)->index]) |
#define | NMG_INDEX_GETP(_ty, _tab, _p) ((struct _ty *)((_tab)[(_p)->index])) |
#define | NMG_INDEX_OR(_tab, _p, _val) {(_tab)[(_p)->index] |= _val;} |
#define | NMG_INDEX_AND(_tab, _p, _val) {(_tab)[(_p)->index] &= _val;} |
#define | NMG_INDEX_RETURN_IF_SET_ELSE_SET(_tab, _index) |
#define | NMG_3MANIFOLD 16 |
#define | NMG_2MANIFOLD 4 |
#define | NMG_1MANIFOLD 2 |
#define | NMG_0MANIFOLD 1 |
#define | NMG_SET_MANIFOLD(_t, _p, _v) NMG_INDEX_OR(_t, _p, _v) |
#define | NMG_MANIFOLDS(_t, _p) NMG_INDEX_VALUE(_t, (_p)->index) |
#define | NMG_CP_MANIFOLD(_t, _p, _q) (_t)[(_p)->index] = (_t)[(_q)->index] |
#define | NMG_VLIST_STYLE_VECTOR 0 |
#define | NMG_VLIST_STYLE_POLYGON 1 |
#define | NMG_VLIST_STYLE_VISUALIZE_NORMALS 2 |
#define | NMG_VLIST_STYLE_USE_VU_NORMALS 4 |
#define | NMG_VLIST_STYLE_NO_SURFACES 8 |
Michael John Muuss
Definition in file nmg.h.