#include "common.h"
#include <string.h>
#include "bio.h"
#include "vmath.h"
#include "nmg.h"
#include "raytrace.h"
Include dependency graph for nmg_manif.c:

Go to the source code of this file.


#define PAINT_INTERIOR   1
#define PAINT_EXTERIOR   0


int nmg_dangling_face (const struct faceuse *fu, register const char *manifolds)
char * nmg_shell_manifolds (struct shell *sp, char *tbl)
char * nmg_manifolds (struct model *m)

Detailed Description

Routines for assessing the manifold dimension of an object.

Definition in file nmg_manif.c.

Macro Definition Documentation

#define PAINT_INTERIOR   1

Definition at line 38 of file nmg_manif.c.

Referenced by nmg_shell_manifolds().

#define PAINT_EXTERIOR   0

Definition at line 39 of file nmg_manif.c.

Referenced by nmg_shell_manifolds().

#define BU_LIST_LINK_CHECK (   p)
if (BU_LIST_PNEXT_PLAST(bu_list, p) != p || \
bu_log("%s[%d]: linked list integrity check failed\n", \
__FILE__, __LINE__); \
bu_log("%p->forw(%p)->back = %p\n", \
(void *)(p), (void *)(p)->forw, (void *)(p)->forw->back); \
bu_log("%p->back(%p)->forw = %p\n", \
(void *)(p), (void *)(p)->back, (void *)(p)->back->forw); \
bu_bomb("Goodbye\n"); \
ustring back
void bu_log(const char *,...) _BU_ATTR_PRINTF12
Definition: log.c:176
Definition: list.h:118
#define BU_LIST_PNEXT_PLAST(structure, p)
Definition: list.h:432
#define BU_LIST_PLAST_PNEXT(structure, p)
Definition: list.h:434
void bu_bomb(const char *str) _BU_ATTR_NORETURN
Definition: bomb.c:91

Definition at line 41 of file nmg_manif.c.

Referenced by nmg_dangling_face(), nmg_manifolds(), and nmg_shell_manifolds().

Function Documentation

int nmg_dangling_face ( const struct faceuse *  fu,
register const char *  manifolds 

Determine if a face has any "dangling" edges.

Return 1 face has dangling edge 0 face does not have a dangling edge

Definition at line 62 of file nmg_manif.c.

References BN_TOL_MAGIC, BU_LIST_FIRST_MAGIC, BU_LIST_FOR, BU_LIST_LINK_CHECK, bu_log(), bn_tol::dist, bn_tol::dist_sq, lu, bn_tol::magic, NMG_CK_LOOPUSE(), rt_g::NMG_debug, NMG_EDGEUSE_MAGIC, nmg_pr_fu_around_eu(), nmg_radial_face_edge_in_shell(), out, bn_tol::para, bn_tol::perp, and RTG.

Referenced by nmg_shell_manifolds().

Here is the call graph for this function:

char* nmg_shell_manifolds ( struct shell *  sp,
char *  tbl 

Definition at line 259 of file nmg_manif.c.

References bu_bomb(), bu_calloc(), bu_free(), BU_LIST_FOR, BU_LIST_IS_EMPTY, BU_LIST_LINK_CHECK, BU_LIST_NON_EMPTY, bu_log(), eu_p, NMG_CK_SHELL(), nmg_dangling_face(), rt_g::NMG_debug, PAINT_EXTERIOR, PAINT_INTERIOR, and RTG.

Referenced by nmg_manifolds().

Here is the call graph for this function:

char* nmg_manifolds ( struct model *  m)

Definition at line 413 of file nmg_manif.c.

References bu_calloc(), BU_LIST_FOR, BU_LIST_LINK_CHECK, bu_log(), NMG_CK_SHELL(), rt_g::NMG_debug, nmg_shell_manifolds(), and RTG.

Referenced by nmg_class_ray_vs_shell(), and rt_nmg_prep().

Here is the call graph for this function: