Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

BMESH Class Reference

#include <bmesh.H>

Inheritance diagram for BMESH:

Inheritance graph
[legend]
Collaboration diagram for BMESH:

Collaboration graph
[legend]
List of all members.

Public Types

enum  mesh_type_t {
  EMPTY_MESH = 0, POINTS = 1, POLYLINES = 2, OPEN_SURFACE = 4,
  CLOSED_SURFACE = 8
}
 various types of meshes: More...
enum  change_t {
  TOPOLOGY_CHANGED = 0, PATCHES_CHANGED, TRIANGULATION_CHANGED, VERT_POSITIONS_CHANGED,
  VERT_COLORS_CHANGED, CREASES_CHANGED, RENDERING_CHANGED, NO_CHANGE
}
 various ways a mesh can change: More...
enum  ref_img_t {
  REF_IMG_NONE = 0, REF_IMG_ID = 1, REF_IMG_COLOR = 2, REF_IMG_COLOR_2 = 4,
  REF_IMG_ID_PRE1 = 8, REF_IMG_ID_PRE2 = 16, REF_IMG_ID_PRE3 = 32, REF_IMG_ID_PRE4 = 64,
  REF_IMG_TEX_MEM = 128
}

Public Member Functions

 BMESH (int num_v=0, int num_e=0, int num_f=0)
 BMESH (CBMESH &m)
virtual ~BMESH ()
 DEFINE_RTTI_METHODS3 ("BMESH", BMESH *, BODY, CDATA_ITEM *)
virtual BMESHoperator= (CBMESH &m)
virtual BMESHoperator= (BODY &b)
CBvert_listverts () const
 Vertices of this mesh.
CBedge_listedges () const
 Edges in this mesh.
CBface_listfaces () const
 Triangular faces in this mesh.
virtual CBvert_listcur_verts () const
 Vertices ofthe current subdivision mesh, if any.
virtual CBedge_listcur_edges () const
 Edges ofthe current subdivision mesh, if any.
virtual CBface_listcur_faces () const
 Faces ofthe current subdivision mesh, if any.
void begin_index ()
 Turn on indexing in vert, edge and face lists.
void end_index ()
 Turn off indexing in vert, edge and face lists.
int nverts () const
 Number of vertices.
int nedges () const
 Number of edges.
int nfaces () const
 Number of faces.
int npatches () const
 Number of patches.
bool empty () const
 Is the vertex list empty?
Bvertbv (int k) const
 Shorthand for accessing kth vertex.
Bedgebe (int k) const
 Shorthand for accessing kth edge.
Bfacebf (int k) const
 Shorthand for accessing kth face.
Patchpatch (int k) const
 Shorthand for accessing kth patch.
Bedgelookup_edge (const Point2i &p)
Bfacelookup_face (const Point3i &p)
CPatch_listpatches () const
 List of patches.
BMESHdrawable_arraydrawables ()
GEOMgeom () const
virtual void set_geom (GEOM *geom)
CWtransfxform () const
 Transformation from object to world coordinates for this mesh.
CWtransfinv_xform () const
 Transformation from world to object coordinates for this mesh.
CWtransfobj_to_ndc () const
CWpteye_local () const
 Camera (eye) position in this object's coordinate system.
void enable_draw ()
void disable_draw ()
bool draw_enabled () const
virtual void changed (change_t)
virtual void changed ()
virtual void set_render_style (Cstr_ptr &s)
virtual void push_render_style (Cstr_ptr &s)
virtual void pop_render_style ()
virtual Cstr_ptr & render_style () const
void toggle_render_style (Cstr_ptr &s)
int tex_already_exists (Cstr_ptr &name) const
 Does a Patch with a current GTexture named name already exist in this mesh?
bool has_vert_colors () const
 Do the vertices have colors?
int get_sil_strips ()
 extracts silhouette edge strips
int build_sil_strips ()
 distributes them to patches
EdgeStrip sil_strip ()
 extract silhouette edge strip and return a copy of it:
int get_zcross_strips ()
int build_zcross_strips ()
int build_polyline_strips ()
int build_vert_strips ()
virtual void clear_creases ()
void compute_creases ()
EdgeStrip get_edge_strip (CSimplexFilter &edge_filter) const
EdgeStripnew_edge_strip (CSimplexFilter &edge_filter)
EdgeStripget_crease_strip () const
EdgeStripget_border_strip () const
Bedge_list get_edges (CSimplexFilter &edge_filter) const
CBedge_listget_creases () const
CBedge_listget_borders () const
virtual Bvertnew_vert (CWpt &p=mlib::Wpt::Origin()) const
 Convert the given world-space point to a vertex.
virtual Bedgenew_edge (Bvert *u, Bvert *v) const
 NB: caller should first check u,v doesn't have an edge already.
virtual Bfacenew_face (Bvert *u, Bvert *v, Bvert *w, Bedge *e, Bedge *f, Bedge *g) const
 NB: caller should first check requested face doesn't exist already.
virtual TriStripnew_tri_strip () const
virtual EdgeStripnew_edge_strip () const
virtual VertStripnew_vert_strip () const
virtual Patchnew_patch ()
bool unlist (Patch *p)
 Remove the Patch from the patch list; returns 1 on success.
void make_patch_if_needed ()
virtual Bvertadd_vertex (Bvert *v)
 Include the given vertex in this mesh and set the vertex's mesh to this one.
virtual Bvertadd_vertex (CWpt &loc=mlib::Wpt::Origin())
 Include the given world-space point as a vertex in this mesh and set the vertex's mesh to this one.
virtual Bedgeadd_edge (Bedge *e)
 Add the given edge to this mesh's edge-list, setting the edge's mesh to this one.
virtual Bedgeadd_edge (Bvert *u, Bvert *v)
 Add the edge between the two given vertices to this mesh's list, checking error conditions and setting the edge's mesh to this one.
virtual Bedgeadd_edge (int i, int j)
 Add edge between the ith and jth vertices, checking for error conditions, and set the edge's mesh to this one.
virtual Bfaceadd_face (Bface *f, Patch *p=0)
 Add the given face to the face-list in this mesh, and set the face's mesh to this one. Set the face to use the given patch (if any).
virtual Bfaceadd_face (Bvert *u, Bvert *v, Bvert *w, Patch *p=0)
virtual Bfaceadd_face (int i, int j, int k, Patch *p=0)
Bvert_list add_verts (CWpt_list &pts)
 Add the given list of world-space points, as vertices, to this mesh, set their mesh to this one. Return this list as a vertex-list.
Bfaceadd_face (Bvert *u, Bvert *v, Bvert *w, CUVpt &a, mlib::CUVpt &b, mlib::CUVpt &c, Patch *p=0)
Bfaceadd_face (int i, int j, int k, CUVpt &a, mlib::CUVpt &b, mlib::CUVpt &c, Patch *p=0)
Bfaceadd_quad (Bvert *u, Bvert *v, Bvert *w, Bvert *x, Patch *p=0)
 Creates the quad from the given vertices and patch, if possible, and returns the quad rep, or nil.
Bfaceadd_quad (Bvert *u, Bvert *v, Bvert *w, Bvert *x, CUVpt &a, mlib::CUVpt &b, mlib::CUVpt &c, mlib::CUVpt &d, Patch *p=0)
 Creates the quad if possible, and returns the quad rep, or nil:.
Bfaceadd_quad (int i, int j, int k, int l, Patch *p=0)
 Creates the quad from the ith, jth, kth and lth vertices in this mesh's vertex list, if possible, and returns the quad rep, or nil.
Bfaceadd_quad (int i, int j, int k, int l, CUVpt &a, mlib::CUVpt &b, mlib::CUVpt &c, mlib::CUVpt &d, Patch *p=0)
 Creates the quad if possible, and returns the quad rep, or nil:.
virtual void delete_vert (Bvert *v) const
 Simply releases memory allocated to the vertex by calling delete.
virtual void delete_edge (Bedge *e) const
 Simply releases memory allocated to the edge by calling delete.
virtual void delete_face (Bface *f) const
 Simply releases memory allocated to the face by calling delete.
virtual void delete_elements ()
virtual void delete_patches ()
virtual int remove_face (Bface *f)
 Removes the given face from this mesh's face-list, and releases memory allocated to it.
virtual int remove_edge (Bedge *e)
 Removes the given edge from this mesh's edge-list, and releases memory allocated to it.
virtual int remove_vertex (Bvert *v)
 Removes the given vertex from this mesh's vertex-list, and releases memory allocated to it.
virtual int remove_faces (CBface_list &faces)
 Remove each face in the list given and release memory allocated to it.
virtual int remove_edges (CBedge_list &edges)
 Remove each edge in the list given and release memory allocated to it.
virtual int remove_verts (CBvert_list &verts)
 Remove each vertex in the list given and release memory allocated to it.
virtual void Cube (CWpt &=mlib::Wpt(0, 0, 0), mlib::CWpt &=mlib::Wpt(1, 1, 1), Patch *p=0)
 Create a cube with the two given points as the body diagonal, and apply the patch if given (default if not).
virtual void Octahedron (CWpt &=mlib::Wpt(0,-M_SQRT2, 0), CWpt &=mlib::Wpt(1, 0, 1), CWpt &=mlib::Wpt(1, 0,-1), CWpt &=mlib::Wpt(-1, 0,-1), CWpt &=mlib::Wpt(-1, 0, 1), CWpt &=mlib::Wpt(0, M_SQRT2, 0), Patch *p=0)
 Create an octahedron with the given points, and apply the patch if given (default if not).
virtual void Icosahedron (Patch *p=0)
 Create a canonical icosahedron and apply the patch if given (default if not).
virtual void Sphere (Patch *p=0)
virtual double volume () const
 Sum up the volume using the divergence theorem.
virtual double area () const
 Sum of areas of all faces.
double pix_size () const
 Approximate pixel extent based on bounding box.
void compute_pix_size ()
void recenter ()
double avg_len () const
double z_span (double &zmin, double &zmax) const
double z_span () const
int type () const
bool is_points () const
bool is_polylines () const
bool is_open_surface () const
bool is_closed_surface () const
bool is_surface () const
bool fix_orientation ()
void reverse ()
 Reverse orientation of all the faces.
void get_enclosed_verts (CXYpt_list &boundary, Bface *startface, ARRAY< Bvert * > &ret)
void remove_duplicate_vertices (bool keep_vert=1)
ARRAY< Bface_listget_components () const
 Returns separate Bface_lists, one for each connected component of the mesh:.
virtual ARRAY< BMESH * > split_components ()
 split mesh into connected components:
virtual void kill_component (Bvert *start_vert)
 wipe out a connected component containing the start vertex:
int try_swap_edge (Bedge *edge, bool favor_deg_6=0)
int try_collapse_edge (Bedge *e, Bvert *v)
void merge_vertex (Bvert *v, Bvert *u, bool keep_vert=0)
Bvertsplit_edge (Bedge *edge, CWpt &new_pt)
Bvertsplit_edge (Bedge *edge)
Bvertsplit_face (Bface *face, CWpt &pt)
int split_faces (CXYpt_list &, ARRAY< Bvert * > &, Bface *=0)
void split_tris (Bface *start_face, Wplane plane, ARRAY< Bvert * > &nv)
virtual int subdiv_level () const
 The level of this mesh in the hierarchy (0 == control mesh, next level is 1, etc.):.
virtual int cur_level () const
 Level of "current" mesh in the hierarchy:.
virtual int edit_level () const
 Level of "active" mesh in the hierarchy:.
int rel_cur_level () const
 Same as above, but relative to the level of this mesh:.
int rel_edit_level () const
virtual void inc_edit_level ()
virtual void dec_edit_level ()
Bfacepick_face (CWline &world_ray, mlib::Wpt &world_hit) const
virtual int size () const
 Return the approximate memory used for this mesh.
virtual void print () const
int set_crease (int i, int j) const
int set_weak_edge (int i, int j) const
int set_patch_boundary (int i, int j) const
bool valid_vert_indices (int i, int j) const
bool valid_vert_indices (int i, int j, int k) const
bool valid_vert_indices (int i, int j, int k, int l) const
bool read_file (char *filename)
virtual int read_update_file (char *filename)
virtual int read_update_stream (istream &is)
virtual int read_stream (istream &is)
virtual int read_blocks (istream &is)
virtual int read_header (istream &is)
virtual int read_vertices (istream &is)
virtual int read_faces (istream &is)
virtual int read_creases (istream &is)
virtual int read_polylines (istream &is)
virtual int read_weak_edges (istream &is, str_list &leftover)
virtual int read_colors (istream &is, str_list &leftover)
virtual int read_texcoords2 (istream &is, str_list &leftover)
virtual int read_patch (istream &is, str_list &leftover)
virtual int read_include (istream &is, str_list &leftover)
virtual int write_file (char *filename)
virtual int write_stream (ostream &os)
virtual int write_vertices (ostream &os) const
virtual int write_faces (ostream &os) const
virtual int write_creases (ostream &os) const
virtual int write_weak_edges (ostream &os) const
virtual int write_polylines (ostream &os) const
virtual int write_colors (ostream &os) const
virtual int write_texcoords2 (ostream &os) const
virtual int write_patches (ostream &os) const
virtual ref_img_t use_ref_image ()
virtual int draw_vis_ref ()
virtual int draw_ref_img (ref_img_t)
virtual int draw_final (CVIEWptr &v)
virtual BODYptr copy (int make_new=1) const
virtual int intersect (RAYhit &, CWtransf &, mlib::Wpt &, mlib::Wvec &, double &d, double &, XYpt &) const
virtual int draw (CVIEWptr &)
virtual void transform (CWtransf &xform, CMOD &m=MOD())
virtual BODYsubtract (BODYptr &)
virtual BODYcombine (BODYptr &)
virtual BODYintersect (BODYptr &)
virtual void set_vertices (CWpt_list &)
virtual CWpt_listvertices ()
virtual CEDGElist & body_edges ()
virtual CBBOX & get_bb ()
virtual void triangulate (Wpt_list &verts, FACElist &faces)
virtual CTAGlist & tags () const
virtual void put_vertices (TAGformat &) const
virtual void put_faces (TAGformat &) const
virtual void put_uvfaces (TAGformat &) const
virtual void put_creases (TAGformat &) const
virtual void put_polylines (TAGformat &) const
virtual void put_weak_edges (TAGformat &) const
virtual void put_sec_faces (TAGformat &) const
virtual void put_colors (TAGformat &) const
virtual void put_texcoords2 (TAGformat &) const
virtual void put_render_style (TAGformat &) const
virtual void put_patches (TAGformat &) const
virtual void get_vertices (TAGformat &)
virtual void get_faces (TAGformat &)
virtual void get_uvfaces (TAGformat &)
virtual void get_creases (TAGformat &)
virtual void get_polylines (TAGformat &)
virtual void get_weak_edges (TAGformat &)
virtual void get_sec_faces (TAGformat &)
virtual void get_colors (TAGformat &)
virtual void get_texcoords2 (TAGformat &)
virtual void get_render_style (TAGformat &)
virtual void get_patches (TAGformat &)
virtual DATA_ITEMdup () const
virtual STDdstreamformat (STDdstream &d) const
virtual STDdstreamdecode (STDdstream &d)
BMESHcurvature_datacurvature () const
uint version () const
Bedgenearest_edge (CWpt &)
Bvertnearest_vert (CWpt &)
virtual double nearest (mlib::CWtransf &, mlib::CWpt &, double)
virtual int intersect (RAYhit &r, mlib::CWtransf &xf, mlib::Wpt &near, mlib::Wvec &n, double &d, double &d2d, mlib::XYpt &uvc) const =0
int intersect (RAYhit &r, mlib::CWtransf &xf) const
int intersect (RAYhit &r) const
virtual void transform (mlib::CWtransf &xform, CMOD &)=0
virtual void set_vertices (mlib::CWpt_list &)=0
virtual int uv_able () const
 METHS: Texture stuff.
virtual int can_set_uv () const
virtual void set_texcoords (mlib::CXYpt_list &)
virtual mlib::CXYpt_listget_texcoords ()
virtual BODYptr body_copy (int y=1)
bool bb_valid () const
 DEFINE_RTTI_METHODS2 ("BODY", DATA_ITEM, CDATA_ITEM *)
void Own () const
void Free () const
int Lock ()
void Unlock ()
int Unique () const
virtual void add_tags () const
virtual void recompute ()
virtual STAT_STR_RET class_name () const =0
virtual int is_of_type (Cstr_ptr &t) const
virtual int draw_id_ref ()
virtual int draw_id_ref_pre1 ()
virtual int draw_id_ref_pre2 ()
virtual int draw_id_ref_pre3 ()
virtual int draw_id_ref_pre4 ()
virtual int draw_color_ref ()
virtual int draw_color_ref_2 ()
virtual int draw_tex_mem_ref ()
virtual int draw_ref_img (ref_img_t t)

Static Public Member Functions

static BMESHptr merge (BMESHptr m1, BMESHptr m2)
static void toggle_freeze_sils ()
static void toggle_random_sils ()
static void set_center_of_interest (BMESH *m)
static BMESHcenter_of_interest ()
static bool is_center_of_interest (BMESH *m)
static BMESHptr read_jot_stream (istream &is, BMESHptr ret=0)
static BMESHptr read_jot_file (char *filename, BMESHptr ret=0)
static void grow_oriented_face_lists (Bface *, ARRAY< Bface * > &, ARRAY< Bface * > &)
static bool show_secondary_faces ()
static void toggle_show_secondary_faces ()
static BODYptr cube ()
 METHS: Static factory methods.
static BODYptr cone ()
static BODYptr cylinder ()
static BODYptr sphere ()
static BODYptr torus (double radius)
static BODYptr trunc_cone (double radius)
static BODYptr revolve (mlib::CWpt_list &profile, BODYptr &ob)
static BODYptr extrusion (mlib::CWpt_list &profile, BODYptr &ob)
static BODYptr extrusion (mlib::CWpt_list &profile, mlib::CWpt_list &path, BODYptr &ob)
static BODYptr trunc_pyr (CMVEC2 &taper, CMVEC2 &shear)
static int set_factory (BODY *b)
static str_ptr base_name ()
static STAT_STR_RET static_name ()
static STAT_STR_RET static_name ()
static int add_decoder (Cstr_ptr &d, DATA_ITEM *di, int copy=-1)
static void set_default_decoder (DATA_ITEM *(*d)(STDdstream &, Cstr_ptr &, DATA_ITEM *))
static DATA_ITEMDecode (STDdstream &d, int DelayDecoding=0)
static DATA_ITEMlookup (Cstr_ptr &d)
static HASHdi_hash ()

Static Public Attributes

static bool _freeze_sils = false
static bool _random_sils = !Config::get_var_bool("NO_RANDOM_SILS",false)

Protected Member Functions

int check_type ()
 recalculate the mesh type
void clean_patches ()
bool remove_patch (int k)
virtual void _merge (BMESH *mesh)
 internal version of merge(), after error checking:
virtual void send_update_notification ()
void grow_mesh_equivalence_class (Bvert *, ARRAY< Bface * > &, ARRAY< Bedge * > &, ARRAY< Bvert * > &)
virtual BODYptr create_cube ()
virtual BODYptr create_cone ()
virtual BODYptr create_cylinder ()
virtual BODYptr create_sphere ()
virtual BODYptr create_torus (double)
virtual BODYptr create_trunc_cone (double)
virtual BODYptr create_revolve (mlib::CWpt_list &, BODYptr &)
virtual BODYptr create_extrusion (mlib::CWpt_list &, BODYptr &)
virtual BODYptr create_extrusion (mlib::CWpt_list &, mlib::CWpt_list &, BODYptr &)
virtual BODYptr create_trunc_pyr (CMVEC2 &, CMVEC2 &)

Protected Attributes

Bvert_list _verts
 list of vertices
Bedge_list _edges
 list of edges
Bface_list _faces
 list of faces
Patch_list _patches
 list of patches
uint _version
 increment to invalidate display lists
ThreadMutex _patch_mutex
ZcrossPath _zx_sils
 zero-cross sil-strip class
EdgeStrip _sils
 silhouette edge strips
EdgeStrip_creases
 crease edge strips
EdgeStrip_borders
 border edge strips
EdgeStrip_polylines
 pointer to allow subclasses
VertStrip_lone_verts
 pointer to allow subclasses
uint _sil_stamp
uint _zx_stamp
BMESHdrawable_array _drawables
 list of drawable things
LIST< str_ptr_render_style
 name of render style to use (if any)
bool _draw_enabled
 flag to enable/disable drawing
double _pix_size
 approx pix size
uint _pix_size_stamp
 for caching per-frame
int _type
 type of surface from enum above
bool _type_valid
 true if _type has been set
Wpt_list _vert_locs
BODYptr _body
GEOM_geom
Wtransf _pm
 object space to NDCZ space transform
uint _pm_stamp
 frame number last updated.
Wpt _eye_local
 camera location in local coordinates
uint _eye_local_stamp
 frame number last updated.
Wtransf _obj_to_world
Wtransf _world_to_obj
BMESHcurvature_data_curv_data
double _avg_edge_len
bool _avg_edge_len_valid
int _edit_level
int _tris
BBOX _bb
int _copy
TAGlist _DEFINERtags

Static Protected Attributes

static TAGlist_bmesh_tags = NULL
 Full set of tags.
static TAGlist_bmesh_update_tags = NULL
 Partial set of tags used for loading frames of animation (e.g. just the vertices change position).
static BMESH_center_of_interest = 0
static bool _show_secondary_faces = false
static BODY_factory = 0
static str_ptr _base_name = BMESH::static_name()
static TAGlist _body_tags

Detailed Description

Definition at line 68 of file bmesh.H.


Member Enumeration Documentation

enum BMESH::change_t
 

various ways a mesh can change:

Enumerator:
TOPOLOGY_CHANGED 
PATCHES_CHANGED 
TRIANGULATION_CHANGED 
VERT_POSITIONS_CHANGED 
VERT_COLORS_CHANGED 
CREASES_CHANGED 
RENDERING_CHANGED 
NO_CHANGE 

Definition at line 83 of file bmesh.H.

enum BMESH::mesh_type_t
 

various types of meshes:

Enumerator:
EMPTY_MESH 
POINTS 
POLYLINES 
OPEN_SURFACE 
CLOSED_SURFACE 

Definition at line 74 of file bmesh.H.

enum RefImageClient::ref_img_t [inherited]
 

Enumerator:
REF_IMG_NONE 
REF_IMG_ID 
REF_IMG_COLOR 
REF_IMG_COLOR_2 
REF_IMG_ID_PRE1 
REF_IMG_ID_PRE2 
REF_IMG_ID_PRE3 
REF_IMG_ID_PRE4 
REF_IMG_TEX_MEM 

Definition at line 25 of file ref_img_client.H.


Constructor & Destructor Documentation

BMESH::BMESH int  num_v = 0,
int  num_e = 0,
int  num_f = 0
 

Definition at line 61 of file bmesh.C.

References _drawables, begin_index(), and ARRAY< T >::set_unique().

Referenced by copy(), and dup().

BMESH::BMESH CBMESH m  ) 
 

Definition at line 89 of file bmesh.C.

References _drawables, begin_index(), and ARRAY< T >::set_unique().

BMESH::~BMESH  )  [virtual]
 

Definition at line 114 of file bmesh.C.

References BMESHobs::broadcast_delete(), debug, delete_elements(), end_index(), err_msg(), Config::get_var_bool(), is_center_of_interest(), and set_center_of_interest().


Member Function Documentation

void BMESH::_merge BMESH mesh  )  [protected, virtual]
 

internal version of merge(), after error checking:

Reimplemented in LMESH.

Definition at line 4088 of file bmesh.C.

References BODY::_bb, _body, _drawables, BODY::_edges, _edges, _faces, _patches, _type, _type_valid, _version, _vert_locs, _verts, SimplexArray< L, T >::append(), BMESHobs::broadcast_merge(), changed(), mlib::Pointlist< L, P, V, S >::clear(), ARRAY< T >::clear(), CLOSED_SURFACE, ARRAY< T >::empty(), ARRAY< T >::last(), OPEN_SURFACE, ARRAY< T >::pop(), BBOX::reset(), mlib::EDGElist::reset(), Patch::set_mesh(), and TOPOLOGY_CHANGED.

Referenced by LMESH::_merge().

int DATA_ITEM::add_decoder Cstr_ptr &  d,
DATA_ITEM di,
int  copy = -1
[static, inherited]
 

Definition at line 41 of file data_item.C.

References DATA_ITEM::_hash, and HASH::add().

Referenced by JOTvar< OBJ, TYPE >::check_inst_name(), FUNC_ITEM::FUNC_ITEM(), hashdist::hashdist(), JOTvar< OBJ, TYPE >::JOTvar(), and DISTRIB::notify_exist().

Bedge * BMESH::add_edge int  i,
int  j
[virtual]
 

Add edge between the ith and jth vertices, checking for error conditions, and set the edge's mesh to this one.

Definition at line 204 of file bmesh.C.

References _verts, add_edge(), err_msg(), and valid_vert_indices().

Bedge * BMESH::add_edge Bvert u,
Bvert v
[virtual]
 

Add the edge between the two given vertices to this mesh's list, checking error conditions and setting the edge's mesh to this one.

Definition at line 188 of file bmesh.C.

References add_edge(), err_msg(), Bvert::lookup_edge(), Bsimplex::mesh(), and new_edge().

Bedge * BMESH::add_edge Bedge e  )  [virtual]
 

Add the given edge to this mesh's edge-list, setting the edge's mesh to this one.

Definition at line 177 of file bmesh.C.

References _edges, err_msg(), and Bsimplex::set_mesh().

Referenced by add_edge(), add_face(), Ledge::allocate_subdiv_elements(), get_polylines(), operator=(), read_polylines(), split_components(), split_edge(), and split_face().

Bface * BMESH::add_face int  i,
int  j,
int  k,
CUVpt a,
mlib::CUVpt b,
mlib::CUVpt c,
Patch p = 0
 

Definition at line 306 of file bmesh.C.

References _verts, add_face(), and UVdata::set().

Bface * BMESH::add_face Bvert u,
Bvert v,
Bvert w,
CUVpt a,
mlib::CUVpt b,
mlib::CUVpt c,
Patch p = 0
 

Definition at line 296 of file bmesh.C.

References add_face(), and UVdata::set().

Bface * BMESH::add_face int  i,
int  j,
int  k,
Patch p = 0
[virtual]
 

Add the triangular face defined by the ith, jth and kth vertices in this mesh's vertex-list, creating the necessary edges and checking for error conditions.

Definition at line 285 of file bmesh.C.

References _verts, add_face(), err_msg(), and valid_vert_indices().

Bface * BMESH::add_face Bvert u,
Bvert v,
Bvert w,
Patch p = 0
[virtual]
 

Add the triangular face defined by the given vertices and patch (if any), creating the necessary edges and checking for error conditions.

Definition at line 251 of file bmesh.C.

References add_edge(), add_face(), err_msg(), lookup_face(), Bsimplex::mesh(), and new_face().

Bface * BMESH::add_face Bface f,
Patch p = 0
[virtual]
 

Add the given face to the face-list in this mesh, and set the face's mesh to this one. Set the face to use the given patch (if any).

Definition at line 225 of file bmesh.C.

References _faces, Patch::add(), err_msg(), Patch::mesh(), and Bsimplex::set_mesh().

Referenced by add_face(), add_quad(), OBJReaderImpl::add_tri(), add_tri(), Lface::gen_child_face(), get_faces(), get_uvfaces(), Icosahedron(), Octahedron(), operator=(), read_faces(), Sphere(), split_components(), split_edge(), and split_face().

Bface * BMESH::add_quad int  i,
int  j,
int  k,
int  l,
CUVpt a,
mlib::CUVpt b,
mlib::CUVpt c,
mlib::CUVpt d,
Patch p = 0
 

Creates the quad if possible, and returns the quad rep, or nil:.

Definition at line 374 of file bmesh.C.

References _verts, add_quad(), and valid_vert_indices().

Bface * BMESH::add_quad int  i,
int  j,
int  k,
int  l,
Patch p = 0
 

Creates the quad from the ith, jth, kth and lth vertices in this mesh's vertex list, if possible, and returns the quad rep, or nil.

Definition at line 365 of file bmesh.C.

References _verts, add_quad(), and valid_vert_indices().

Bface * BMESH::add_quad Bvert u,
Bvert v,
Bvert w,
Bvert x,
CUVpt a,
mlib::CUVpt b,
mlib::CUVpt c,
mlib::CUVpt d,
Patch p = 0
 

Creates the quad if possible, and returns the quad rep, or nil:.

Definition at line 351 of file bmesh.C.

References add_quad(), err_msg(), and UVdata::set().

Bface * BMESH::add_quad Bvert u,
Bvert v,
Bvert w,
Bvert x,
Patch p = 0
 

Creates the quad from the given vertices and patch, if possible, and returns the quad rep, or nil.

Create the quad defined as follows:

x -------- w | / | | / | | / | | / | | / | u -------- v

u,v,w,x should form a cycle, i.e., (u,v), (v,w), (w,x) and (x,u) should the edges. {u,v,w} and {w,x,u} are the faces created and added.

Definition at line 331 of file bmesh.C.

References add_face(), err_msg(), Bface::is_quad(), Bvert::lookup_edge(), Bface::quad_rep(), Bsimplex::set_bit(), and Bedge::WEAK_BIT.

Referenced by add_quad(), get_faces(), get_uvfaces(), and Sphere().

virtual void DATA_ITEM::add_tags  )  const [inline, virtual, inherited]
 

Definition at line 205 of file data_item.H.

Bvert * BMESH::add_vertex CWpt loc = mlib::Wpt::Origin()  )  [virtual]
 

Include the given world-space point as a vertex in this mesh and set the vertex's mesh to this one.

Reimplemented in LMESH.

Definition at line 162 of file bmesh.C.

References add_vertex(), and new_vert().

Bvert * BMESH::add_vertex Bvert v  )  [virtual]
 

Include the given vertex in this mesh and set the vertex's mesh to this one.

Reimplemented in LMESH.

Definition at line 151 of file bmesh.C.

References _verts, err_msg(), and Bsimplex::set_mesh().

Referenced by LMESH::add_vertex(), add_vertex(), OBJReaderImpl::add_vertices(), add_verts(), get_vertices(), Icosahedron(), Octahedron(), operator=(), read_vertices(), Sphere(), split_components(), split_edge(), and split_face().

Bvert_list BMESH::add_verts CWpt_list pts  ) 
 

Add the given list of world-space points, as vertices, to this mesh, set their mesh to this one. Return this list as a vertex-list.

Definition at line 168 of file bmesh.C.

References add_vertex().

double BMESH::area  )  const [virtual]
 

Sum of areas of all faces.

Reimplemented in LMESH.

Definition at line 628 of file bmesh.C.

References _faces, and ARRAY< T >::num().

double BMESH::avg_len  )  const
 

Definition at line 4016 of file bmesh.C.

References _avg_edge_len, _avg_edge_len_valid, _edges, ARRAY< T >::empty(), and ARRAY< T >::num().

Referenced by LineDrawingGLSLMode::setup_for_drawing_inside_dl(), LineDrawingVprogFprogNoSSDMode::setup_for_drawing_outside_dl(), and CurvatureARBvpARBfpMultiTextureMode::setup_for_drawing_outside_dl().

static str_ptr BODY::base_name  )  [inline, static, inherited]
 

Definition at line 141 of file body.H.

References BODY::_base_name.

bool BODY::bb_valid  )  const [inline, inherited]
 

Definition at line 137 of file body.H.

References BODY::_bb, and BBOX::valid().

Bedge* BMESH::be int  k  )  const [inline]
 

Shorthand for accessing kth edge.

Definition at line 150 of file bmesh.H.

References _edges.

Referenced by OBJReaderImpl::add_creases(), check_type(), clear_creases(), compute_creases(), get_sec_faces(), operator=(), put_creases(), put_polylines(), put_weak_edges(), recreate_creases(), write_creases(), write_polylines(), and write_weak_edges().

void BMESH::begin_index  ) 
 

Turn on indexing in vert, edge and face lists.

Definition at line 134 of file bmesh.C.

References _edges, _faces, _verts, and ARRAY< T >::begin_index().

Referenced by BMESH().

Bface* BMESH::bf int  k  )  const [inline]
 

Shorthand for accessing kth face.

Definition at line 152 of file bmesh.H.

References _faces.

Referenced by avg_bface_pix_area(), BMESHcurvature_data::compute_corner_areas(), compute_edge_vectors(), BMESHcurvature_data::compute_face_curvatures(), BMESHcurvature_data::compute_face_dcurv(), compute_initial_vertex_coord_sys(), BMESHcurvature_data::compute_vertex_areas(), BMESHcurvature_data::compute_vertex_curvatures(), BMESHcurvature_data::compute_vertex_dcurv(), ZCrossExtractor< ScalarField, Confidence, FaceGenerator >::extract(), get_components(), Patch::get_faces(), get_texcoords2(), make_patch_if_needed(), operator=(), pick_face(), put_faces(), put_sec_faces(), put_texcoords2(), put_uvfaces(), Patch::read_stream(), read_texcoords2(), Patch::recompute(), reverse(), triangulate(), write_faces(), write_faces(), and write_texcoords2().

virtual BODYptr BODY::body_copy int  y = 1  )  [inline, virtual, inherited]
 

Definition at line 133 of file body.H.

References BODY::copy().

virtual CEDGElist& BMESH::body_edges  )  [inline, virtual]
 

Implements BODY.

Definition at line 622 of file bmesh.H.

References BODY::_edges.

int BMESH::build_polyline_strips  ) 
 

Definition at line 851 of file bmesh.C.

References _edges, _patches, _polylines, ARRAY< T >::add(), EdgeStrip::build(), EdgeStrip::edges(), err_msg(), Bvert::is_polyline_end(), make_patch_if_needed(), new_edge_strip(), EdgeStrip::num(), ARRAY< T >::num(), EdgeStrip::reset(), Bedge::v1(), and Bedge::v2().

Referenced by get_polylines(), and read_polylines().

int BMESH::build_sil_strips  ) 
 

distributes them to patches

Definition at line 1120 of file bmesh.C.

References _freeze_sils, _patches, _sil_stamp, _sils, EdgeStrip::add(), EdgeStrip::edge(), Bedge::frontfacing_face(), Bedge::get_face(), get_sil_strips(), EdgeStrip::num(), ARRAY< T >::num(), Bface::patch(), Patch::sils(), VIEW::stamp(), and EdgeStrip::vert().

Referenced by Patch::build_sils(), and sil_strip().

int BMESH::build_vert_strips  ) 
 

Definition at line 910 of file bmesh.C.

References _lone_verts, _patches, _verts, VertStrip::add(), ARRAY< T >::add(), bv(), ARRAY< T >::empty(), new_patch(), new_vert_strip(), VertStrip::num(), ARRAY< T >::num(), and VertStrip::reset().

Referenced by decode(), and read_stream().

int BMESH::build_zcross_strips  ) 
 

Definition at line 939 of file bmesh.C.

References _freeze_sils, _patches, _zx_sils, _zx_stamp, ZcrossPath::add_seg(), ZXseg::bc(), debug, ZcrossPath::empty(), err_msg(), ZXseg::f(), ZXseg::g(), Config::get_var_bool(), get_zcross_strips(), nfaces(), ZcrossPath::num(), ARRAY< T >::num(), ZXseg::p(), Bface::patch(), ZcrossPath::seg(), ZcrossPath::segs(), VIEW::stamp(), ZXseg::v(), and Patch::zx_sils().

Referenced by Patch::build_zx_sils(), and ZcrossTexture::draw().

Bvert* BMESH::bv int  k  )  const [inline]
 

Shorthand for accessing kth vertex.

Definition at line 148 of file bmesh.H.

References _verts.

Referenced by OBJReaderImpl::add_face(), add_poly(), build_vert_strips(), check_type(), compute_initial_vertex_coord_sys(), BMESHcurvature_data::diagonalize_vertex_curvatures(), get_bb(), get_enclosed_verts(), has_vert_colors(), lookup_edge(), lookup_face(), operator=(), put_colors(), put_vertices(), read_colors(), set_crease(), set_patch_boundary(), OBJReaderImpl::set_vert_normals(), set_weak_edge(), split_face(), triangulate(), write_colors(), write_vertices(), and write_verts().

virtual int BODY::can_set_uv  )  const [inline, virtual, inherited]
 

Definition at line 110 of file body.H.

static BMESH* BMESH::center_of_interest  )  [inline, static]
 

Definition at line 528 of file bmesh.H.

References _center_of_interest.

Referenced by find_mesh().

virtual void BMESH::changed  )  [inline, virtual]
 

Implements BODY.

Reimplemented in LMESH.

Definition at line 187 of file bmesh.H.

References TOPOLOGY_CHANGED.

Referenced by _merge(), LMESH::changed(), clear_creases(), compute_creases(), fix_orientation(), get_colors(), get_creases(), get_faces(), get_patches(), get_uvfaces(), get_vertices(), Icosahedron(), kill_component(), Octahedron(), operator=(), pop_render_style(), push_render_style(), read_stream(), read_update_stream(), recenter(), remove_duplicate_vertices(), set_render_style(), Sphere(), split_components(), split_faces(), and transform().

void BMESH::changed change_t   )  [virtual]
 

Definition at line 3091 of file bmesh.C.

References _avg_edge_len_valid, BODY::_bb, _body, _borders, _creases, _curv_data, BODY::_edges, _patches, _sil_stamp, _sils, _type_valid, _version, _vert_locs, _zx_sils, _zx_stamp, BMESHobs::broadcast_change(), mlib::Pointlist< L, P, V, S >::clear(), Patch_list::creases_changed(), CREASES_CHANGED, NO_CHANGE, PATCHES_CHANGED, BBOX::reset(), mlib::EDGElist::reset(), ZcrossPath::reset(), EdgeStrip::reset(), TOPOLOGY_CHANGED, Patch_list::triangulation_changed(), TRIANGULATION_CHANGED, and VERT_POSITIONS_CHANGED.

Referenced by _merge(), FlatShadeTexture::draw(), OBJReaderImpl::get_mesh(), Patch::Patch(), Bface_list::push_layer(), recreate_creases(), split_components(), toggle_crease(), and Bface_list::unpush_layer().

int BMESH::check_type  )  [protected]
 

recalculate the mesh type

Definition at line 2270 of file bmesh.C.

References _edges, _faces, _type, _type_valid, _verts, be(), bv(), CLOSED_SURFACE, EMPTY_MESH, err_msg(), fix_orientation(), Config::get_var_bool(), nfaces(), ARRAY< T >::num(), OPEN_SURFACE, POINTS, and POLYLINES.

virtual STAT_STR_RET DATA_ITEM::class_name  )  const [pure virtual, inherited]
 

Implemented in hashdist, JOTvar< OBJ, TYPE >, TDI< T >, and FUNC_ITEM.

Referenced by DATA_ITEM::decode(), DATA_ITEM::Decode(), GLSLShader::draw(), DATA_ITEM::format(), GLSLShader::get_uniform_loc(), GLSLShader::init(), DISTRIB::interpret(), BaseJOTappConfig::load(), next_texture(), GEOM::print(), DEFINER::print(), print(), print_gel(), Patch::put_textures(), read_jot_stream(), GTexture::type(), SolidColorTexture::write_stream(), and GTexture::write_stream().

void BMESH::clean_patches  )  [protected]
 

Definition at line 1329 of file bmesh.C.

References _patches, debug, err_msg(), Config::get_var_bool(), ARRAY< T >::num(), and remove_patch().

Referenced by read_stream(), and split_components().

void BMESH::clear_creases  )  [virtual]
 

Reimplemented in LMESH.

Definition at line 825 of file bmesh.C.

References _edges, be(), changed(), CREASES_CHANGED, ARRAY< T >::num(), and Bedge::set_crease().

Referenced by clear_creases(), and LMESH::clear_creases().

virtual BODY* BMESH::combine BODYptr &   )  [inline, virtual]
 

Implements BODY.

Reimplemented in LMESH.

Definition at line 617 of file bmesh.H.

void BMESH::compute_creases  ) 
 

Definition at line 840 of file bmesh.C.

References _edges, be(), changed(), Bedge::compute_crease(), CREASES_CHANGED, Config::get_var_dbl(), and ARRAY< T >::num().

void BMESH::compute_pix_size  ) 
 

Definition at line 4427 of file bmesh.C.

References _pix_size, _pix_size_stamp, BBOX::center(), BBOX::dim(), get_bb(), mlib::Vec3< V >::is_null(), mlib::Vec3< V >::length(), VIEW::peek_cam(), size(), VIEW::stamp(), and xform().

static BODYptr BODY::cone  )  [inline, static, inherited]
 

Definition at line 116 of file body.H.

References BODY::_factory, and BODY::create_cone().

virtual BODYptr BMESH::copy int  make_new = 1  )  const [inline, virtual]
 

Implements BODY.

Definition at line 603 of file bmesh.H.

References BMESH().

virtual BODYptr BODY::create_cone  )  [inline, protected, virtual, inherited]
 

Definition at line 41 of file body.H.

Referenced by BODY::cone().

virtual BODYptr BODY::create_cube  )  [inline, protected, virtual, inherited]
 

Definition at line 40 of file body.H.

Referenced by BODY::cube().

virtual BODYptr BODY::create_cylinder  )  [inline, protected, virtual, inherited]
 

Definition at line 42 of file body.H.

Referenced by BODY::cylinder().

virtual BODYptr BODY::create_extrusion mlib::CWpt_list ,
mlib::CWpt_list ,
BODYptr & 
[inline, protected, virtual, inherited]
 

Definition at line 53 of file body.H.

virtual BODYptr BODY::create_extrusion mlib::CWpt_list ,
BODYptr & 
[inline, protected, virtual, inherited]
 

Definition at line 50 of file body.H.

Referenced by BODY::extrusion().

virtual BODYptr BODY::create_revolve mlib::CWpt_list ,
BODYptr & 
[inline, protected, virtual, inherited]
 

Definition at line 47 of file body.H.

Referenced by BODY::revolve().

virtual BODYptr BODY::create_sphere  )  [inline, protected, virtual, inherited]
 

Definition at line 43 of file body.H.

Referenced by BODY::sphere().

virtual BODYptr BODY::create_torus double   )  [inline, protected, virtual, inherited]
 

Definition at line 45 of file body.H.

Referenced by BODY::torus().

virtual BODYptr BODY::create_trunc_cone double   )  [inline, protected, virtual, inherited]
 

Definition at line 46 of file body.H.

Referenced by BODY::trunc_cone().

virtual BODYptr BODY::create_trunc_pyr CMVEC2 &  ,
CMVEC2 & 
[inline, protected, virtual, inherited]
 

Definition at line 57 of file body.H.

Referenced by BODY::trunc_pyr().

static BODYptr BODY::cube  )  [inline, static, inherited]
 

METHS: Static factory methods.

Definition at line 115 of file body.H.

References BODY::_factory, and BODY::create_cube().

virtual void BMESH::Cube CWpt = mlib::Wpt(0, 0, 0),
mlib::CWpt = mlib::Wpt(1, 1, 1),
Patch p = 0
[virtual]
 

Create a cube with the two given points as the body diagonal, and apply the patch if given (default if not).

virtual CBedge_list& BMESH::cur_edges  )  const [inline, virtual]
 

Edges ofthe current subdivision mesh, if any.

Reimplemented in LMESH.

Definition at line 124 of file bmesh.H.

References _edges.

virtual CBface_list& BMESH::cur_faces  )  const [inline, virtual]
 

Faces ofthe current subdivision mesh, if any.

Reimplemented in LMESH.

Definition at line 126 of file bmesh.H.

References _faces.

virtual int BMESH::cur_level  )  const [inline, virtual]
 

Level of "current" mesh in the hierarchy:.

Reimplemented in LMESH.

Definition at line 493 of file bmesh.H.

Referenced by rel_cur_level().

virtual CBvert_list& BMESH::cur_verts  )  const [inline, virtual]
 

Vertices ofthe current subdivision mesh, if any.

Reimplemented in LMESH.

Definition at line 122 of file bmesh.H.

References _verts.

BMESHcurvature_data* BMESH::curvature  )  const [inline]
 

Definition at line 659 of file bmesh.H.

References _curv_data.

Referenced by Bvert::curv_tensor(), Bvert::dcurv_tensor(), Bvert::diag_curv(), Bvert::k1(), Bvert::k2(), Bvert::pdir1(), Bvert::pdir2(), and XToonTexture::update_cam().

static BODYptr BODY::cylinder  )  [inline, static, inherited]
 

Definition at line 117 of file body.H.

References BODY::_factory, and BODY::create_cylinder().

virtual void BMESH::dec_edit_level  )  [inline, virtual]
 

Reimplemented in LMESH.

Definition at line 503 of file bmesh.H.

References _edit_level, and max().

DATA_ITEM * DATA_ITEM::Decode STDdstream d,
int  DelayDecoding = 0
[static, inherited]
 

Definition at line 57 of file data_item.C.

References DATA_ITEM::_copy, DATA_ITEM::_decode_unknown, DATA_ITEM::class_name(), DATA_ITEM::decode(), DATA_ITEM::dup(), Config::get_var_bool(), and DATA_ITEM::lookup().

Referenced by JOThash::get(), DISTRIB::interpret(), and operator>>().

STDdstream & BMESH::decode STDdstream d  )  [virtual]
 

Reimplemented from DATA_ITEM.

Definition at line 3966 of file bmesh.C.

References build_vert_strips(), DATA_ITEM::decode(), Config::get_var_bool(), is_points(), and make_patch_if_needed().

BODY::DEFINE_RTTI_METHODS2 "BODY"  ,
DATA_ITEM  ,
CDATA_ITEM * 
[inherited]
 

BMESH::DEFINE_RTTI_METHODS3 "BMESH"  ,
BMESH ,
BODY  ,
CDATA_ITEM * 
 

virtual void BMESH::delete_edge Bedge e  )  const [inline, virtual]
 

Simply releases memory allocated to the edge by calling delete.

Definition at line 363 of file bmesh.H.

Referenced by kill_component(), and remove_edge().

void BMESH::delete_elements  )  [virtual]
 

Reimplemented in LMESH.

Definition at line 2156 of file bmesh.C.

References _drawables, _edges, _faces, _patches, _type, _type_valid, _verts, ARRAY< T >::clear(), SimplexArray< L, T >::delete_all(), Patch_list::delete_all(), and EMPTY_MESH.

Referenced by LMESH::delete_elements(), OBJReaderImpl::get_mesh(), operator=(), read_stream(), and ~BMESH().

virtual void BMESH::delete_face Bface f  )  const [inline, virtual]
 

Simply releases memory allocated to the face by calling delete.

Definition at line 365 of file bmesh.H.

Referenced by kill_component(), and remove_face().

void BMESH::delete_patches  )  [virtual]
 

Definition at line 2264 of file bmesh.C.

References _patches, and Patch_list::delete_all().

virtual void BMESH::delete_vert Bvert v  )  const [inline, virtual]
 

Simply releases memory allocated to the vertex by calling delete.

Definition at line 361 of file bmesh.H.

Referenced by kill_component(), and remove_vertex().

static HASH* DATA_ITEM::di_hash  )  [inline, static, inherited]
 

Definition at line 225 of file data_item.H.

References DATA_ITEM::_hash.

void BMESH::disable_draw  )  [inline]
 

Definition at line 183 of file bmesh.H.

References _draw_enabled.

int BMESH::draw CVIEWptr &   )  [virtual]
 

Implements RefImageClient.

Reimplemented in LMESH.

Definition at line 1383 of file bmesh.C.

References _drawables, BMD_array< T >::draw(), draw_enabled(), empty(), err_msg(), and send_update_notification().

Referenced by LMESH::draw().

virtual int RefImageClient::draw_color_ref  )  [inline, virtual, inherited]
 

Reimplemented in GELset.

Definition at line 55 of file ref_img_client.H.

Referenced by RefImageClient::draw_ref_img(), and RefImageClient::draw_tex_mem_ref().

virtual int RefImageClient::draw_color_ref_2  )  [inline, virtual, inherited]
 

Reimplemented in GELset.

Definition at line 56 of file ref_img_client.H.

Referenced by RefImageClient::draw_ref_img().

bool BMESH::draw_enabled  )  const [inline]
 

Definition at line 184 of file bmesh.H.

References _draw_enabled, and empty().

Referenced by draw(), draw_ref_img(), draw_vis_ref(), and use_ref_image().

virtual int BMESH::draw_final CVIEWptr &  v  )  [inline, virtual]
 

Reimplemented from RefImageClient.

Definition at line 600 of file bmesh.H.

References _drawables, and RIC_array< T >::draw_final().

virtual int RefImageClient::draw_id_ref  )  [inline, virtual, inherited]
 

Reimplemented in GELset, and OGLTexture.

Definition at line 50 of file ref_img_client.H.

Referenced by RefImageClient::draw_ref_img().

virtual int RefImageClient::draw_id_ref_pre1  )  [inline, virtual, inherited]
 

Reimplemented in GELset.

Definition at line 51 of file ref_img_client.H.

Referenced by RefImageClient::draw_ref_img().

virtual int RefImageClient::draw_id_ref_pre2  )  [inline, virtual, inherited]
 

Reimplemented in GELset.

Definition at line 52 of file ref_img_client.H.

Referenced by RefImageClient::draw_ref_img().

virtual int RefImageClient::draw_id_ref_pre3  )  [inline, virtual, inherited]
 

Reimplemented in GELset.

Definition at line 53 of file ref_img_client.H.

Referenced by RefImageClient::draw_ref_img().

virtual int RefImageClient::draw_id_ref_pre4  )  [inline, virtual, inherited]
 

Reimplemented in GELset.

Definition at line 54 of file ref_img_client.H.

Referenced by RefImageClient::draw_ref_img().

virtual int RefImageClient::draw_ref_img ref_img_t  t  )  [inline, virtual, inherited]
 

Definition at line 82 of file ref_img_client.H.

References brcase, brdefault, RefImageClient::draw_color_ref(), RefImageClient::draw_color_ref_2(), RefImageClient::draw_id_ref(), RefImageClient::draw_id_ref_pre1(), RefImageClient::draw_id_ref_pre2(), RefImageClient::draw_id_ref_pre3(), RefImageClient::draw_id_ref_pre4(), RefImageClient::draw_tex_mem_ref(), RefImageClient::REF_IMG_COLOR, RefImageClient::REF_IMG_COLOR_2, RefImageClient::REF_IMG_ID, RefImageClient::REF_IMG_ID_PRE1, RefImageClient::REF_IMG_ID_PRE2, RefImageClient::REF_IMG_ID_PRE3, RefImageClient::REF_IMG_ID_PRE4, and RefImageClient::REF_IMG_TEX_MEM.

Referenced by Patch::draw_ref_img().

int BMESH::draw_ref_img ref_img_t   )  [virtual]
 

Definition at line 1372 of file bmesh.C.

References _drawables, draw_enabled(), RIC_array< T >::draw_ref_img(), and send_update_notification().

virtual int RefImageClient::draw_tex_mem_ref  )  [inline, virtual, inherited]
 

Reimplemented in DotsShader, DotsShader_EX, GLSLHatching, HalftoneShader, HalftoneShaderEx, and MSLDShader.

Definition at line 57 of file ref_img_client.H.

References RefImageClient::draw_color_ref().

Referenced by RefImageClient::draw_ref_img().

int BMESH::draw_vis_ref  )  [virtual]
 

Reimplemented from RefImageClient.

Definition at line 1361 of file bmesh.C.

References _drawables, draw_enabled(), RIC_array< T >::draw_vis_ref(), and send_update_notification().

BMESHdrawable_array& BMESH::drawables  )  [inline]
 

Definition at line 165 of file bmesh.H.

References _drawables.

virtual DATA_ITEM* BMESH::dup  )  const [inline, virtual]
 

Implements BODY.

Reimplemented in LMESH.

Definition at line 653 of file bmesh.H.

References BMESH().

Referenced by split_components().

CBedge_list& BMESH::edges  )  const [inline]
 

Edges in this mesh.

Definition at line 116 of file bmesh.H.

References _edges.

Referenced by Lpatch::cur_edges(), LMESH::cur_edges(), Patch::edges(), get_border_strip(), get_crease_strip(), get_edge_strip(), get_edges(), Bedge::index(), kill_component(), and split_components().

virtual int BMESH::edit_level  )  const [inline, virtual]
 

Level of "active" mesh in the hierarchy:.

Reimplemented in LMESH.

Definition at line 496 of file bmesh.H.

References _edit_level.

Referenced by Lface::bc_to_edit_level(), Patch::rel_edit_level(), and rel_edit_level().

bool BMESH::empty  )  const [inline]
 

Is the vertex list empty?

Definition at line 144 of file bmesh.H.

References _verts, and ARRAY< T >::empty().

Referenced by BaseJOTapp::create_mesh(), draw(), and draw_enabled().

void BMESH::enable_draw  )  [inline]
 

Definition at line 182 of file bmesh.H.

References _draw_enabled.

void BMESH::end_index  ) 
 

Turn off indexing in vert, edge and face lists.

Definition at line 143 of file bmesh.C.

References _edges, _faces, _verts, and ARRAY< T >::end_index().

Referenced by ~BMESH().

static BODYptr BODY::extrusion mlib::CWpt_list profile,
mlib::CWpt_list path,
BODYptr &  ob
[inline, static, inherited]
 

Definition at line 128 of file body.H.

References BODY::_factory, and BODY::create_extrusion().

static BODYptr BODY::extrusion mlib::CWpt_list profile,
BODYptr &  ob
[inline, static, inherited]
 

Definition at line 126 of file body.H.

References BODY::_factory, and BODY::create_extrusion().

CWpt & BMESH::eye_local  )  const
 

Camera (eye) position in this object's coordinate system.

Definition at line 1276 of file bmesh.C.

References _eye_local, _eye_local_stamp, inv_xform(), VIEW::peek_cam(), and VIEW::stamp().

Referenced by Patch::eye_local(), Bvert::eye_local(), Bface::front_facing(), and get_zcross_strips().

CBface_list& BMESH::faces  )  const [inline]
 

Triangular faces in this mesh.

Definition at line 118 of file bmesh.H.

References _faces.

Referenced by UVMapping::compute_limits(), UVMapping::compute_mapping(), UVMapping::compute_wrapping(), LMESH::cur_faces(), get_faces(), LMESH::get_subdiv_inputs(), Bface::index(), kill_component(), put_faces(), Bface_list::reachable_faces(), split_components(), and split_tris().

bool BMESH::fix_orientation  ) 
 

Definition at line 2344 of file bmesh.C.

References _edges, _faces, changed(), ARRAY< T >::clear(), SimplexArray< L, T >::clear_flags(), debug, err_msg(), Config::get_var_bool(), grow_oriented_face_lists(), j, ARRAY< T >::num(), reverse_faces(), and TRIANGULATION_CHANGED.

Referenced by check_type(), and remove_duplicate_vertices().

STDdstream & BMESH::format STDdstream d  )  const [virtual]
 

Reimplemented from DATA_ITEM.

Definition at line 3958 of file bmesh.C.

References DATA_ITEM::format().

Referenced by write_file(), and write_stream().

void REFcounter::Free  )  const [inline, inherited]
 

Definition at line 76 of file ref.H.

References REFcounter::_mutex, REFcounter::_u, and REF_ME.

GEOM* BMESH::geom  )  const [inline]
 

Definition at line 168 of file bmesh.H.

References _geom.

Referenced by bmesh_to_gel(), bmesh_to_geom(), get_name(), and get_zcross_strips().

const BBOX & BMESH::get_bb  )  [virtual]
 

Implements BODY.

Reimplemented in LMESH.

Definition at line 3179 of file bmesh.C.

References BODY::_bb, bv(), nverts(), BBOX::update(), and BBOX::valid().

Referenced by compute_pix_size(), XToonTexture::draw(), ToonTexture_1D::draw(), ToonTexCB::faceCB(), XToonStripCB::faceCB(), recenter(), and z_span().

EdgeStrip* BMESH::get_border_strip  )  const [inline]
 

Definition at line 261 of file bmesh.H.

References _borders, EdgeStrip::build_with_tips(), edges(), and new_edge_strip().

Referenced by get_borders().

CBedge_list& BMESH::get_borders  )  const [inline]
 

Definition at line 285 of file bmesh.H.

References EdgeStrip::edges(), and get_border_strip().

Referenced by get_zcross_strips().

void BMESH::get_colors TAGformat  )  [virtual]
 

Definition at line 3922 of file bmesh.C.

References _verts, changed(), err_msg(), nverts(), and VERT_COLORS_CHANGED.

Referenced by tags().

ARRAY< Bface_list > BMESH::get_components  )  const
 

Returns separate Bface_lists, one for each connected component of the mesh:.

Definition at line 4263 of file bmesh.C.

References _faces, bf(), ARRAY< T >::empty(), Bsimplex::flag(), Bface_list::grow_connected(), ARRAY< T >::num(), and SimplexArray< L, T >::set_flags().

EdgeStrip* BMESH::get_crease_strip  )  const [inline]
 

Specialzed for crease and border strips: these strips are cached, so it's a lightweight operation after the first time

Definition at line 254 of file bmesh.H.

References _creases, EdgeStrip::build_with_tips(), edges(), and new_edge_strip().

Referenced by get_creases().

void BMESH::get_creases TAGformat  )  [virtual]
 

Definition at line 3792 of file bmesh.C.

References changed(), CREASES_CHANGED, and set_crease().

CBedge_list& BMESH::get_creases  )  const [inline]
 

Definition at line 284 of file bmesh.H.

References EdgeStrip::edges(), and get_crease_strip().

Referenced by get_zcross_strips(), and tags().

EdgeStrip BMESH::get_edge_strip CSimplexFilter edge_filter  )  const [inline]
 

Given a filter that accepts a particular kind of edges (e.g. crease edges), returns an edge strip consisting of chains of edges of the given kind.

Definition at line 234 of file bmesh.H.

References EdgeStrip::build_with_tips(), and edges().

Referenced by new_edge_strip().

Bedge_list BMESH::get_edges CSimplexFilter edge_filter  )  const [inline]
 

Given a filter that accepts a particular kind of edges (e.g. crease edges), returns an edge list consisting of edges of the given kind.

For crease and border edges, see get_creases() and get_borders(), below.

Definition at line 276 of file bmesh.H.

References edges(), and SimplexArray< L, T >::filter().

void BMESH::get_enclosed_verts CXYpt_list boundary,
Bface startface,
ARRAY< Bvert * > &  ret
 

Definition at line 2444 of file bmesh.C.

References bv(), ARRAY< T >::clear(), Bsimplex::clear_flag(), ARRAY< T >::empty(), err_msg(), Bsimplex::flag(), mlib::NDCZpt::in_frustum(), j, Bsimplex::mesh(), Bvert::nbr(), Bvert::ndc(), nverts(), ARRAY< T >::pop(), Bsimplex::set_flag(), Bface::v1(), Bface::v2(), and Bface::v3().

void BMESH::get_faces TAGformat  )  [virtual]
 

Definition at line 3746 of file bmesh.C.

References _faces, add_face(), add_quad(), changed(), err_msg(), faces(), nfaces(), ARRAY< T >::realloc(), and TOPOLOGY_CHANGED.

Referenced by tags().

void BMESH::get_patches TAGformat  )  [virtual]
 

Definition at line 3940 of file bmesh.C.

References changed(), DATA_ITEM::decode(), new_patch(), patch(), and PATCHES_CHANGED.

Referenced by tags().

void BMESH::get_polylines TAGformat  )  [virtual]
 

Definition at line 3804 of file bmesh.C.

References add_edge(), build_polyline_strips(), and Config::get_var_bool().

Referenced by tags().

void BMESH::get_render_style TAGformat  )  [virtual]
 

Definition at line 3907 of file bmesh.C.

Referenced by tags().

void BMESH::get_sec_faces TAGformat  )  [virtual]
 

Definition at line 3835 of file bmesh.C.

References be(), ARRAY< T >::empty(), Bedge::fix_multi(), lookup_face(), nedges(), and Bface_list::push_layer().

Referenced by tags().

int BMESH::get_sil_strips  ) 
 

extracts silhouette edge strips

Definition at line 1154 of file bmesh.C.

References _edges, _random_sils, _sil_stamp, _sils, all_edges, brute_secs, brute_sils, EdgeStrip::build(), EdgeStrip::edges(), stop_watch::elapsed_time(), ARRAY< T >::empty(), Config::get_var_int(), int(), j, min(), nedges(), EdgeStrip::num(), ARRAY< T >::num(), rand_secs, rand_sils, EdgeStrip::reset(), show_secondary_faces(), and VIEW::stamp().

Referenced by build_sil_strips().

virtual mlib::CXYpt_list& BODY::get_texcoords  )  [inline, virtual, inherited]
 

Definition at line 112 of file body.H.

References BODY::_dummy.

void BMESH::get_texcoords2 TAGformat  )  [virtual]
 

Definition at line 3865 of file bmesh.C.

References _faces, bf(), err_msg(), Config::get_var_dbl(), j, UVdata::set(), and ARRAY< T >::valid_index().

Referenced by tags().

void BMESH::get_uvfaces TAGformat  )  [virtual]
 

Definition at line 3458 of file bmesh.C.

References UVforIO2::_face, UVforIO2::_uvs, add_face(), add_quad(), changed(), err_msg(), UVforIO2::is_good(), UVforIO2::num(), and TOPOLOGY_CHANGED.

Referenced by tags().

void BMESH::get_vertices TAGformat  )  [virtual]
 

Definition at line 3706 of file bmesh.C.

References _edges, _verts, add_vertex(), changed(), err_msg(), new_vert(), nverts(), ARRAY< T >::realloc(), and VERT_POSITIONS_CHANGED.

Referenced by tags().

void BMESH::get_weak_edges TAGformat  )  [virtual]
 

Definition at line 3818 of file bmesh.C.

References debug, err_adv(), Config::get_var_bool(), and set_weak_edge().

Referenced by tags().

int BMESH::get_zcross_strips  ) 
 

finds "strips" for zero-set definition of silhouettes (as in WYSIWYG NPR, Siggraph 2002):

Definition at line 1022 of file bmesh.C.

References _faces, _random_sils, _zx_sils, _zx_stamp, stop_watch::elapsed_time(), ARRAY< T >::empty(), eye_local(), Bedge::f(), geom(), get_borders(), get_creases(), Config::get_var_bool(), Config::get_var_int(), inv_xform(), j, min(), ZcrossPath::num(), ARRAY< T >::num(), VIEW::peek(), ZcrossPath::reset(), ZcrossPath::segs(), ZcrossPath::set_eye(), VIEW::stamp(), ZcrossPath::start_sil(), zx_secs, and zx_sils.

Referenced by build_zcross_strips().

void BMESH::grow_mesh_equivalence_class Bvert ,
ARRAY< Bface * > &  ,
ARRAY< Bedge * > &  ,
ARRAY< Bvert * > & 
[protected]
 

Definition at line 4148 of file bmesh.C.

References Bvert::e(), Bedge::f(), Bsimplex::flag(), j, Bvert::nbr(), and Bsimplex::set_flag().

Referenced by kill_component(), and split_components().

void BMESH::grow_oriented_face_lists Bface ,
ARRAY< Bface * > &  ,
ARRAY< Bface * > & 
[static]
 

Definition at line 2384 of file bmesh.C.

References Bedge::consistent_orientation(), Bface::e(), Bsimplex::flag(), Bface::nbr(), and Bsimplex::set_flag().

Referenced by fix_orientation().

bool BMESH::has_vert_colors  )  const [inline]
 

Do the vertices have colors?

Definition at line 208 of file bmesh.H.

References bv(), and nverts().

void BMESH::Icosahedron Patch p = 0  )  [virtual]
 

Create a canonical icosahedron and apply the patch if given (default if not).

Definition at line 575 of file bmesh.C.

References add_face(), add_vertex(), changed(), err_msg(), Patch::mesh(), new_patch(), and TOPOLOGY_CHANGED.

virtual void BMESH::inc_edit_level  )  [inline, virtual]
 

Reimplemented in LMESH.

Definition at line 502 of file bmesh.H.

References _edit_level.

int BODY::intersect RAYhit r  )  const [inline, inherited]
 

Definition at line 84 of file body.H.

References BODY::intersect().

int BODY::intersect RAYhit r,
mlib::CWtransf xf
const [inline, inherited]
 

Definition at line 77 of file body.H.

References BODY::intersect().

virtual int BODY::intersect RAYhit r,
mlib::CWtransf xf,
mlib::Wpt near,
mlib::Wvec n,
double &  d,
double &  d2d,
mlib::XYpt uvc
const [pure virtual, inherited]
 

Referenced by BODY::intersect().

virtual BODY* BMESH::intersect BODYptr &   )  [inline, virtual]
 

Implements BODY.

Reimplemented in LMESH.

Definition at line 618 of file bmesh.H.

int BMESH::intersect RAYhit ,
CWtransf ,
mlib::Wpt ,
mlib::Wvec ,
double &  d,
double &  ,
XYpt
const [virtual]
 

Reimplemented in LMESH.

Definition at line 762 of file bmesh.C.

References _geom, RAYhit::check(), mlib::Point3< P, V >::dist(), RAYhit::from_camera(), get_ctrl_patch(), Config::get_var_bool(), inv_xform(), RAYhit::line(), BaseVisRefImage::lookup(), Bsimplex::mesh(), Bface::norm(), mlib::Vec3< V >::normalized(), Bface::patch(), VIEW::peek(), pick_face(), RAYhit::point(), RAYhit::screen_point(), BMESHray::set_simplex(), RAYhit::test(), Bsimplex::view_intersect(), BaseVisRefImage::vis_simplex(), and BaseVisRefImage::vis_update().

CWtransf & BMESH::inv_xform  )  const
 

Transformation from world to object coordinates for this mesh.

Definition at line 1259 of file bmesh.C.

References _geom, _world_to_obj, mlib::Identity, and GEOM::world_to_obj().

Referenced by eye_local(), Bface::find_intersect_sim(), get_zcross_strips(), intersect(), Patch::inv_xform(), pick_face(), split_faces(), Bvert::view_intersect(), Bface::view_intersect(), Bedge::view_intersect(), Bvert::wnorm(), and write_xformed().

static bool BMESH::is_center_of_interest BMESH m  )  [inline, static]
 

Definition at line 529 of file bmesh.H.

References _center_of_interest.

Referenced by LMESH::set_cur_mesh(), and ~BMESH().

bool BMESH::is_closed_surface  )  const [inline]
 

Definition at line 432 of file bmesh.H.

References CLOSED_SURFACE, and type().

Referenced by is_surface(), print(), and OGLTexture::set_face_culling().

virtual int DATA_ITEM::is_of_type Cstr_ptr &  t  )  const [inline, virtual, inherited]
 

Definition at line 214 of file data_item.H.

References IS.

Referenced by operator=().

bool BMESH::is_open_surface  )  const [inline]
 

Definition at line 431 of file bmesh.H.

References OPEN_SURFACE, and type().

Referenced by is_surface(), and print().

bool BMESH::is_points  )  const [inline]
 

Definition at line 429 of file bmesh.H.

References POINTS, and type().

Referenced by Lpatch::cur_verts(), decode(), print(), read_stream(), and Patch::verts().

bool BMESH::is_polylines  )  const [inline]
 

Definition at line 430 of file bmesh.H.

References POLYLINES, and type().

Referenced by Lpatch::cur_edges(), Lpatch::cur_verts(), Patch::edges(), print(), and Patch::verts().

bool BMESH::is_surface  )  const [inline]
 

Definition at line 433 of file bmesh.H.

References is_closed_surface(), and is_open_surface().

void BMESH::kill_component Bvert start_vert  )  [virtual]
 

wipe out a connected component containing the start vertex:

Definition at line 4341 of file bmesh.C.

References _edges, _faces, _verts, changed(), delete_edge(), delete_face(), delete_vert(), edges(), faces(), grow_mesh_equivalence_class(), nedges(), nfaces(), ARRAY< T >::num(), nverts(), Bsimplex::set_flag(), TOPOLOGY_CHANGED, and verts().

int REFcounter::Lock  )  [inline, inherited]
 

Definition at line 105 of file ref.H.

References REFcounter::_mutex, and REFcounter::_u.

Referenced by REFlock::REFlock().

static DATA_ITEM* DATA_ITEM::lookup Cstr_ptr &  d  )  [inline, static, inherited]
 

Definition at line 222 of file data_item.H.

References DATA_ITEM::_hash, and HASH::find().

Referenced by DATA_ITEM::Decode(), FUNC_ITEM::FUNC_ITEM(), Patch::get_tex(), and read_jot_stream().

Bedge * BMESH::lookup_edge const Point2i p  ) 
 

Definition at line 215 of file bmesh.C.

References _verts, bv(), and ARRAY< T >::valid_index().

Referenced by set_crease(), set_patch_boundary(), and set_weak_edge().

Bface * BMESH::lookup_face const Point3i p  ) 
 

Definition at line 384 of file bmesh.C.

References _verts, bv(), and ARRAY< T >::valid_index().

Referenced by add_face(), and get_sec_faces().

void BMESH::make_patch_if_needed  ) 
 

Definition at line 1297 of file bmesh.C.

References _faces, Patch::add(), bf(), new_patch(), ARRAY< T >::num(), and patch().

Referenced by build_polyline_strips(), decode(), and read_stream().

BMESHptr BMESH::merge BMESHptr  m1,
BMESHptr  m2
[static]
 

Merging two meshes: Merge the two meshes together if it's legal to do so. The result is that one mesh ends up an empty husk, with its elements and patches sucked into the other mesh. The smaller mesh is the one that gets sucked dry; the other one is returned. If the meshes are different types the operation fails and a null pointer is returned. (In that case the meshes are not changed).

Definition at line 4031 of file bmesh.C.

References err_msg().

Referenced by main(), and LMESH::merge().

void BMESH::merge_vertex Bvert v,
Bvert u,
bool  keep_vert = 0
 

Definition at line 2574 of file bmesh.C.

References Bvert::get_adj(), Bvert::get_all_faces(), ARRAY< T >::num(), remove_edge(), remove_face(), and remove_vertex().

Referenced by remove_duplicate_vertices(), and try_collapse_edge().

virtual double BODY::nearest mlib::CWtransf ,
mlib::CWpt ,
double 
[inline, virtual, inherited]
 

Definition at line 70 of file body.H.

Bedge * BMESH::nearest_edge CWpt  ) 
 

Definition at line 2405 of file bmesh.C.

References _edges, ARRAY< T >::empty(), and ARRAY< T >::num().

Bvert * BMESH::nearest_vert CWpt  ) 
 

Definition at line 2425 of file bmesh.C.

References _verts, ARRAY< T >::empty(), and ARRAY< T >::num().

int BMESH::nedges  )  const [inline]
 

Number of edges.

Definition at line 138 of file bmesh.H.

References _edges, and ARRAY< T >::num().

Referenced by OBJReaderImpl::add_creases(), LMESH::allocate_subdiv_mesh(), LMESH::delete_subdiv_mesh(), get_sec_faces(), get_sil_strips(), kill_component(), LMESH::mark_all_dirty(), operator=(), put_creases(), put_polylines(), put_weak_edges(), recreate_creases(), remove_duplicate_vertices(), LMESH::size(), size(), write_creases(), write_polylines(), and write_weak_edges().

virtual Bedge* BMESH::new_edge Bvert u,
Bvert v
const [inline, virtual]
 

NB: caller should first check u,v doesn't have an edge already.

Reimplemented in LMESH.

Definition at line 294 of file bmesh.H.

Referenced by add_edge().

virtual EdgeStrip* BMESH::new_edge_strip  )  const [inline, virtual]
 

Reimplemented in LMESH.

Definition at line 309 of file bmesh.H.

Referenced by build_polyline_strips(), get_border_strip(), get_crease_strip(), and new_edge_strip().

EdgeStrip* BMESH::new_edge_strip CSimplexFilter edge_filter  )  [inline]
 

Like get_edge_strip(), but allocates the returned EdgeStrip. So for an LMESH this returns an LedgeStrip. (The caller is responsible to delete the strip).

Definition at line 243 of file bmesh.H.

References get_edge_strip(), and new_edge_strip().

Referenced by Patch::build_borders(), Patch::build_creases(), ControlFrameTexture::build_strip(), and ControlFrameTexture::draw().

virtual Bface* BMESH::new_face Bvert u,
Bvert v,
Bvert w,
Bedge e,
Bedge f,
Bedge g
const [inline, virtual]
 

NB: caller should first check requested face doesn't exist already.

Reimplemented in LMESH.

Definition at line 299 of file bmesh.H.

Referenced by add_face().

Patch * BMESH::new_patch  )  [virtual]
 

Reimplemented in LMESH.

Definition at line 3071 of file bmesh.C.

References _drawables, _patches, ARRAY< T >::last(), and subdiv_level().

Referenced by OBJReaderImpl::add_patches(), build_vert_strips(), get_patches(), Icosahedron(), make_patch_if_needed(), Octahedron(), operator=(), read_patch(), Sphere(), and split_components().

virtual TriStrip* BMESH::new_tri_strip  )  const [inline, virtual]
 

Reimplemented in LMESH.

Definition at line 308 of file bmesh.H.

Referenced by TriStrip::get_strips().

virtual Bvert* BMESH::new_vert CWpt p = mlib::Wpt::Origin()  )  const [inline, virtual]
 

Convert the given world-space point to a vertex.

Reimplemented in LMESH.

Definition at line 289 of file bmesh.H.

Referenced by add_vertex(), and get_vertices().

virtual VertStrip* BMESH::new_vert_strip  )  const [inline, virtual]
 

Reimplemented in LMESH.

Definition at line 310 of file bmesh.H.

Referenced by build_vert_strips().

int BMESH::nfaces  )  const [inline]
 

Number of faces.

Definition at line 140 of file bmesh.H.

References _faces, and ARRAY< T >::num().

Referenced by LMESH::allocate_subdiv_mesh(), build_zcross_strips(), check_type(), BMESHcurvature_data::compute_corner_areas(), BMESHcurvature_data::compute_face_curvatures(), BMESHcurvature_data::compute_face_dcurv(), compute_initial_vertex_coord_sys(), BMESHcurvature_data::compute_vertex_areas(), BMESHcurvature_data::compute_vertex_curvatures(), BMESHcurvature_data::compute_vertex_dcurv(), Lpatch::cur_edges(), Lpatch::cur_verts(), LMESH::delete_subdiv_mesh(), Patch::edges(), ZCrossExtractor< ScalarField, Confidence, FaceGenerator >::extract(), Patch::get_faces(), get_faces(), kill_component(), ZCrossRandFaceGenerator::operator()(), ZCrossAllFaceGenerator::operator()(), operator=(), pick_face(), put_faces(), put_sec_faces(), put_texcoords2(), put_uvfaces(), Patch::read_stream(), reverse(), LMESH::size(), size(), triangulate(), Patch::verts(), write_faces(), write_faces(), Patch::write_stream(), and write_texcoords2().

int BMESH::npatches  )  const [inline]
 

Number of patches.

Definition at line 142 of file bmesh.H.

References _patches, and ARRAY< T >::num().

Referenced by Lpatch::put_parent_patch(), LMESH::size(), and size().

int BMESH::nverts  )  const [inline]
 

Number of vertices.

Definition at line 136 of file bmesh.H.

References _verts, and ARRAY< T >::num().

Referenced by LMESH::allocate_subdiv_mesh(), LMESH::clear_creases(), BMESHcurvature_data::compute_feature_size(), compute_initial_vertex_coord_sys(), BMESHcurvature_data::compute_vertex_areas(), BMESHcurvature_data::compute_vertex_curvatures(), BMESHcurvature_data::compute_vertex_dcurv(), LMESH::delete_subdiv_mesh(), BMESHcurvature_data::diagonalize_vertex_curvatures(), get_bb(), get_colors(), get_enclosed_verts(), get_vertices(), has_vert_colors(), kill_component(), LMESH::mark_all_dirty(), LMESH::operator=(), operator=(), put_colors(), put_vertices(), read_colors(), recenter(), OBJReaderImpl::set_vert_normals(), LMESH::size(), size(), transform(), triangulate(), try_collapse_edge(), vertices(), write_colors(), write_vertices(), and write_verts().

CWtransf & BMESH::obj_to_ndc  )  const
 

Definition at line 1266 of file bmesh.C.

References _pm, _pm_stamp, VIEW::peek_cam(), VIEW::stamp(), and xform().

Referenced by Bvert::ndc(), Patch::obj_to_ndc(), and z_span().

void BMESH::Octahedron CWpt = mlib::Wpt(0,-M_SQRT2, 0),
CWpt = mlib::Wpt(1, 0, 1),
CWpt = mlib::Wpt(1, 0,-1),
CWpt = mlib::Wpt(-1, 0,-1),
CWpt = mlib::Wpt(-1, 0, 1),
CWpt = mlib::Wpt(0, M_SQRT2, 0),
Patch p = 0
[virtual]
 

Create an octahedron with the given points, and apply the patch if given (default if not).

Definition at line 441 of file bmesh.C.

References add_face(), add_vertex(), changed(), err_msg(), Patch::mesh(), new_patch(), and TOPOLOGY_CHANGED.

BMESH & BMESH::operator= BODY b  )  [virtual]
 

Reimplemented in LMESH.

Definition at line 2228 of file bmesh.C.

References _edges, _faces, _verts, add_face(), add_vertex(), be(), changed(), Bedge::compute_crease(), delete_elements(), Config::get_var_bool(), DATA_ITEM::is_of_type(), nedges(), new_patch(), ARRAY< T >::num(), ARRAY< T >::realloc(), RefImageClient::static_name(), TOPOLOGY_CHANGED, BODY::triangulate(), and tris.

BMESH & BMESH::operator= CBMESH m  )  [virtual]
 

Reimplemented in LMESH.

Definition at line 2174 of file bmesh.C.

References _edges, _faces, _type, _type_valid, _verts, add_edge(), add_face(), add_vertex(), be(), bf(), bv(), changed(), Bvert::color(), Bedge::crease_val(), delete_elements(), Bvert::has_color(), Bvert::index(), Bedge::is_crease(), Bedge::is_patch_boundary(), Bface::is_secondary(), Bedge::is_weak(), Bvert::loc(), Bface::make_secondary(), nedges(), new_patch(), nfaces(), ARRAY< T >::num(), nverts(), ARRAY< T >::realloc(), Bsimplex::set_bit(), Bvert::set_color(), Bedge::set_crease(), Bedge::set_patch_boundary(), TRIANGULATION_CHANGED, Bface::v1(), Bedge::v1(), Bface::v2(), Bedge::v2(), Bface::v3(), and Bedge::WEAK_BIT.

Referenced by LMESH::operator=().

void REFcounter::Own  )  const [inline, inherited]
 

Definition at line 59 of file ref.H.

References REFcounter::_mutex, REFcounter::_u, and REF_ME.

Patch* BMESH::patch int  k  )  const [inline]
 

Shorthand for accessing kth patch.

Definition at line 154 of file bmesh.H.

References _patches.

Referenced by get_patches(), and make_patch_if_needed().

CPatch_list& BMESH::patches  )  const [inline]
 

List of patches.

Definition at line 160 of file bmesh.H.

References _patches.

Referenced by init_strips(), Patch::Patch(), tex_already_exists(), write_normals(), and write_strips().

Bface * BMESH::pick_face CWline world_ray,
mlib::Wpt world_hit
const
 

Brute force intersection: Given ray in world space, return intersected face (if any) and intersection point in world space:

Definition at line 732 of file bmesh.C.

References bf(), debug, err_msg(), Config::get_var_bool(), inv_xform(), nfaces(), and xform().

Referenced by intersect().

double BMESH::pix_size  )  const [inline]
 

Approximate pixel extent based on bounding box.

Definition at line 410 of file bmesh.H.

References _pix_size, _pix_size_stamp, and VIEW::stamp().

Referenced by Patch::pix_size().

void BMESH::pop_render_style  )  [virtual]
 

Reimplemented in LMESH.

Definition at line 4467 of file bmesh.C.

References _render_style, changed(), ARRAY< T >::empty(), ARRAY< T >::pop(), and RENDERING_CHANGED.

Referenced by toggle_render_style().

void BMESH::print  )  const [virtual]
 

Print info about this mesh to the error text stream

Reimplemented in LMESH.

Definition at line 678 of file bmesh.C.

References _edges, _faces, _verts, DATA_ITEM::class_name(), err_msg(), Config::get_var_bool(), is_closed_surface(), is_open_surface(), is_points(), is_polylines(), ARRAY< T >::num(), and size().

Referenced by LMESH::print(), print_mesh(), and write().

void BMESH::push_render_style Cstr_ptr &  s  )  [virtual]
 

Reimplemented in LMESH.

Definition at line 4460 of file bmesh.C.

References _render_style, changed(), and RENDERING_CHANGED.

Referenced by set_render_style(), and toggle_render_style().

void BMESH::put_colors TAGformat  )  const [virtual]
 

Definition at line 3669 of file bmesh.C.

References _verts, bv(), Bvert::color(), TAGformat::end_id(), TAGformat::id(), and nverts().

Referenced by tags().

void BMESH::put_creases TAGformat  )  const [virtual]
 

Definition at line 3497 of file bmesh.C.

References be(), TAGformat::end_id(), TAGformat::id(), Bvert::index(), Bedge::is_crease(), nedges(), ARRAY< T >::num(), and Bedge::v().

Referenced by tags().

void BMESH::put_faces TAGformat  )  const [virtual]
 

Definition at line 3289 of file bmesh.C.

References bf(), TAGformat::end_id(), faces(), UVdata::has_uv(), TAGformat::id(), Bvert::index(), nfaces(), ARRAY< T >::num(), use_new_bface_io, Bface::v1(), Bface::v2(), and Bface::v3().

Referenced by tags().

void BMESH::put_patches TAGformat  )  const [virtual]
 

Definition at line 3689 of file bmesh.C.

References _patches, ARRAY< T >::empty(), TAGformat::end_id(), TAGformat::id(), and ARRAY< T >::num().

Referenced by tags().

void BMESH::put_polylines TAGformat  )  const [virtual]
 

Definition at line 3519 of file bmesh.C.

References be(), TAGformat::end_id(), TAGformat::id(), Bvert::index(), Bedge::is_polyline(), nedges(), ARRAY< T >::num(), and Bedge::v().

Referenced by tags().

void BMESH::put_render_style TAGformat  )  const [virtual]
 

Definition at line 3648 of file bmesh.C.

Referenced by tags().

void BMESH::put_sec_faces TAGformat  )  const [virtual]
 

Definition at line 3562 of file bmesh.C.

References bf(), ARRAY< T >::empty(), TAGformat::end_id(), TAGformat::id(), Bvert::index(), Bface::is_secondary(), nfaces(), Bface::v1(), Bface::v2(), and Bface::v3().

Referenced by tags().

void BMESH::put_texcoords2 TAGformat  )  const [virtual]
 

Definition at line 3622 of file bmesh.C.

References bf(), TAGformat::end_id(), TAGformat::id(), UVdata::lookup(), nfaces(), ARRAY< T >::num(), use_new_bface_io, and UVdata::uv().

Referenced by tags().

void BMESH::put_uvfaces TAGformat  )  const [virtual]
 

Definition at line 3432 of file bmesh.C.

References bf(), ARRAY< T >::empty(), TAGformat::end_id(), TAGformat::id(), UVforIO2::is_good(), nfaces(), and use_new_bface_io.

Referenced by tags().

void BMESH::put_vertices TAGformat  )  const [virtual]
 

Definition at line 3257 of file bmesh.C.

References bv(), TAGformat::end_id(), Config::get_var_bool(), TAGformat::id(), Bvert::loc(), ARRAY< T >::num(), nverts(), verts(), and Bvert::wloc().

Referenced by tags().

void BMESH::put_weak_edges TAGformat  )  const [virtual]
 

Definition at line 3540 of file bmesh.C.

References be(), ARRAY< T >::empty(), TAGformat::end_id(), TAGformat::id(), Bvert::index(), Bedge::is_weak(), nedges(), use_new_bface_io, and Bedge::v().

Referenced by tags().

int BMESH::read_blocks istream &  is  )  [virtual]
 

Definition at line 1677 of file bmesh.C.

References IOBlock::consume(), Config::get_var_bool(), IOBlockList, str_ptr::len(), ARRAY< T >::num(), read_colors(), read_include(), read_patch(), read_texcoords2(), and read_weak_edges().

Referenced by read_include(), and read_stream().

int BMESH::read_colors istream &  is,
str_list leftover
[virtual]
 

Definition at line 1886 of file bmesh.C.

References bv(), ARRAY< T >::clear(), nverts(), and Bvert::set_color().

Referenced by read_blocks().

int BMESH::read_creases istream &  is  )  [virtual]
 

Definition at line 1812 of file bmesh.C.

References err_ret(), j, and set_crease().

Referenced by read_stream().

int BMESH::read_faces istream &  is  )  [virtual]
 

Definition at line 1786 of file bmesh.C.

References _faces, add_face(), j, and ARRAY< T >::realloc().

Referenced by read_stream().

bool BMESH::read_file char *  filename  ) 
 

Definition at line 1550 of file bmesh.C.

References read_jot_file().

int BMESH::read_header istream &  is  )  [virtual]
 

Definition at line 1731 of file bmesh.C.

References err_msg().

Referenced by read_stream(), and read_update_stream().

int BMESH::read_include istream &  is,
str_list leftover
[virtual]
 

Definition at line 1716 of file bmesh.C.

References err_ret(), and read_blocks().

Referenced by read_blocks().

BMESHptr BMESH::read_jot_file char *  filename,
BMESHptr  ret = 0
[static]
 

Definition at line 1447 of file bmesh.C.

References ERR_LEV_WARN, err_mesg(), err_msg(), and read_jot_stream().

Referenced by main(), read_file(), and LMESH::read_jot_file().

BMESHptr BMESH::read_jot_stream istream &  is,
BMESHptr  ret = 0
[static]
 

Definition at line 1473 of file bmesh.C.

References DATA_ITEM::class_name(), DATA_ITEM::dup(), ERR_LEV_INFO, err_mesg(), err_msg(), and DATA_ITEM::lookup().

Referenced by main(), read_jot_file(), and LMESH::read_jot_stream().

int BMESH::read_patch istream &  is,
str_list leftover
[virtual]
 

Definition at line 1936 of file bmesh.C.

References new_patch(), and Patch::read_stream().

Referenced by read_blocks().

int BMESH::read_polylines istream &  is  )  [virtual]
 

Definition at line 1858 of file bmesh.C.

References add_edge(), build_polyline_strips(), err_ret(), Config::get_var_bool(), and j.

Referenced by read_stream().

int BMESH::read_stream istream &  is  )  [virtual]
 

Definition at line 1617 of file bmesh.C.

References build_vert_strips(), changed(), clean_patches(), delete_elements(), Config::get_var_bool(), is_points(), make_patch_if_needed(), read_blocks(), read_creases(), read_faces(), read_header(), read_polylines(), read_vertices(), and TOPOLOGY_CHANGED.

int BMESH::read_texcoords2 istream &  is,
str_list leftover
[virtual]
 

Definition at line 1900 of file bmesh.C.

References _faces, bf(), ARRAY< T >::clear(), err_msg(), Config::get_var_dbl(), j, UVdata::set(), and ARRAY< T >::valid_index().

Referenced by read_blocks().

int BMESH::read_update_file char *  filename  )  [virtual]
 

Definition at line 1570 of file bmesh.C.

References err_msg(), err_ret(), and read_update_stream().

int BMESH::read_update_stream istream &  is  )  [virtual]
 

Definition at line 1596 of file bmesh.C.

References changed(), read_header(), read_vertices(), and VERT_POSITIONS_CHANGED.

Referenced by read_update_file().

int BMESH::read_vertices istream &  is  )  [virtual]
 

Definition at line 1761 of file bmesh.C.

References _edges, _verts, add_vertex(), ARRAY< T >::num(), and ARRAY< T >::realloc().

Referenced by read_stream(), and read_update_stream().

int BMESH::read_weak_edges istream &  is,
str_list leftover
[virtual]
 

Definition at line 1836 of file bmesh.C.

References ARRAY< T >::clear(), err_ret(), j, and set_weak_edge().

Referenced by read_blocks().

void BMESH::recenter  ) 
 

Definition at line 3984 of file bmesh.C.

References center(), changed(), err_msg(), get_bb(), Config::get_var_dbl(), max(), nverts(), points, MOD::tick(), transform(), and VERT_POSITIONS_CHANGED.

Referenced by BaseJOTapp::create_mesh().

virtual void DATA_ITEM::recompute  )  [inline, virtual, inherited]
 

Reimplemented in Patch.

Definition at line 208 of file data_item.H.

Referenced by DATA_ITEM::decode().

int BMESH::rel_cur_level  )  const [inline]
 

Same as above, but relative to the level of this mesh:.

Definition at line 499 of file bmesh.H.

References cur_level(), and subdiv_level().

Referenced by LvertStrip::cur_level(), Lvert::cur_subdiv_vert(), get_cur_sub_edges(), get_cur_sub_faces(), get_cur_sub_vert(), and LedgeStrip::rel_cur_level().

int BMESH::rel_edit_level  )  const [inline]
 

Definition at line 500 of file bmesh.H.

References edit_level(), and subdiv_level().

void BMESH::remove_duplicate_vertices bool  keep_vert = 1  ) 
 

Definition at line 2623 of file bmesh.C.

References _edges, _verts, changed(), compare_locs_lexicographically(), err_msg(), fix_orientation(), j, Bvert::loc(), merge_vertex(), nedges(), ARRAY< T >::num(), remove_edge(), ARRAY< T >::sort(), TRIANGULATION_CHANGED, and verts().

int BMESH::remove_edge Bedge e  )  [virtual]
 

Removes the given edge from this mesh's edge-list, and releases memory allocated to it.

Reimplemented in LMESH.

Definition at line 2508 of file bmesh.C.

References _edges, and delete_edge().

Referenced by merge_vertex(), remove_duplicate_vertices(), LMESH::remove_edge(), remove_edges(), Bvert::~Bvert(), and Lvert::~Lvert().

int BMESH::remove_edges CBedge_list edges  )  [virtual]
 

Remove each edge in the list given and release memory allocated to it.

Definition at line 2542 of file bmesh.C.

References ARRAY< T >::empty(), SimplexArray< L, T >::mesh(), ARRAY< T >::num(), and remove_edge().

int BMESH::remove_face Bface f  )  [virtual]
 

Removes the given face from this mesh's face-list, and releases memory allocated to it.

Reimplemented in LMESH.

Definition at line 2499 of file bmesh.C.

References _faces, and delete_face().

Referenced by merge_vertex(), LMESH::remove_face(), remove_faces(), Bedge::~Bedge(), and Ledge::~Ledge().

int BMESH::remove_faces CBface_list faces  )  [virtual]
 

Remove each face in the list given and release memory allocated to it.

Definition at line 2526 of file bmesh.C.

References ARRAY< T >::empty(), SimplexArray< L, T >::mesh(), ARRAY< T >::num(), and remove_face().

bool BMESH::remove_patch int  k  )  [protected]
 

Definition at line 1312 of file bmesh.C.

References _drawables, _patches, err_msg(), Patch::num_faces(), ARRAY< T >::remove(), and ARRAY< T >::valid_index().

Referenced by clean_patches().

int BMESH::remove_vertex Bvert v  )  [virtual]
 

Removes the given vertex from this mesh's vertex-list, and releases memory allocated to it.

Reimplemented in LMESH.

Definition at line 2517 of file bmesh.C.

References _verts, and delete_vert().

Referenced by Ledge::delete_subdiv_elements(), Lvert::delete_subdiv_vert(), merge_vertex(), LMESH::remove_vertex(), and remove_verts().

int BMESH::remove_verts CBvert_list verts  )  [virtual]
 

Remove each vertex in the list given and release memory allocated to it.

Definition at line 2558 of file bmesh.C.

References ARRAY< T >::empty(), SimplexArray< L, T >::mesh(), ARRAY< T >::num(), and remove_vertex().

Cstr_ptr & BMESH::render_style  )  const [virtual]
 

Reimplemented in LMESH.

Definition at line 4475 of file bmesh.C.

References _render_style, ARRAY< T >::empty(), ARRAY< T >::last(), and str_ptr::null_str().

Referenced by Patch::cur_tex(), and toggle_render_style().

void BMESH::reverse  )  [inline]
 

Reverse orientation of all the faces.

Definition at line 440 of file bmesh.H.

References bf(), nfaces(), and Bface::reverse().

static BODYptr BODY::revolve mlib::CWpt_list profile,
BODYptr &  ob
[inline, static, inherited]
 

Definition at line 124 of file body.H.

References BODY::_factory, and BODY::create_revolve().

void BMESH::send_update_notification  )  [protected, virtual]
 

In BMESH, just calls BMESHobs::broadcast_update_request(this), but in LMESH also updates subdivision meshes:

Reimplemented in LMESH.

Definition at line 1345 of file bmesh.C.

References BMESHobs::broadcast_update_request().

Referenced by draw(), draw_ref_img(), draw_vis_ref(), and LMESH::send_update_notification().

static void BMESH::set_center_of_interest BMESH m  )  [inline, static]
 

Center of interest: Typically the mesh that the user has been lately interacting with in some way.

Definition at line 527 of file bmesh.H.

References _center_of_interest.

Referenced by BaseJOTapp::create_mesh(), MeshGlobal::select(), LMESH::set_cur_mesh(), Cam_int::up(), Cam_int_fp::up(), and ~BMESH().

int BMESH::set_crease int  i,
int  j
const
 

Definition at line 699 of file bmesh.C.

References bv(), err_msg(), lookup_edge(), Bedge::set_crease(), and valid_vert_indices().

Referenced by get_creases(), and read_creases().

static void DATA_ITEM::set_default_decoder DATA_ITEM *(*)(STDdstream &, Cstr_ptr &, DATA_ITEM *)  d  )  [inline, static, inherited]
 

Definition at line 218 of file data_item.H.

References DATA_ITEM::_decode_unknown.

static int BODY::set_factory BODY b  )  [inline, static, inherited]
 

Definition at line 134 of file body.H.

References BODY::_factory.

void BMESH::set_geom GEOM geom  )  [virtual]
 

Reimplemented from BODY.

Reimplemented in LMESH.

Definition at line 1242 of file bmesh.C.

References _geom, and err_msg().

Referenced by LMESH::set_geom().

int BMESH::set_patch_boundary int  i,
int  j
const
 

Definition at line 721 of file bmesh.C.

References bv(), err_msg(), lookup_edge(), Bedge::set_patch_boundary(), and valid_vert_indices().

void BMESH::set_render_style Cstr_ptr &  s  )  [virtual]
 

Reimplemented in LMESH.

Definition at line 4450 of file bmesh.C.

References _render_style, changed(), ARRAY< T >::empty(), ARRAY< T >::last(), push_render_style(), and RENDERING_CHANGED.

virtual void BODY::set_texcoords mlib::CXYpt_list  )  [inline, virtual, inherited]
 

Definition at line 111 of file body.H.

virtual void BODY::set_vertices mlib::CWpt_list  )  [pure virtual, inherited]
 

virtual void BMESH::set_vertices CWpt_list  )  [inline, virtual]
 

Definition at line 620 of file bmesh.H.

int BMESH::set_weak_edge int  i,
int  j
const
 

Definition at line 710 of file bmesh.C.

References bv(), err_msg(), lookup_edge(), Bsimplex::set_bit(), valid_vert_indices(), and Bedge::WEAK_BIT.

Referenced by get_weak_edges(), and read_weak_edges().

static bool BMESH::show_secondary_faces  )  [inline, static]
 

Definition at line 758 of file bmesh.H.

References _show_secondary_faces.

Referenced by EdgeStripFilter::accept(), ControlFrameTexture::build_strip(), Patch::build_tri_strips(), do_solid(), WireframeTexture::draw(), TriStrip::draw(), FlatShadeTexture::draw(), and get_sil_strips().

EdgeStrip BMESH::sil_strip  ) 
 

extract silhouette edge strip and return a copy of it:

Definition at line 1234 of file bmesh.C.

References _sils, and build_sil_strips().

int BMESH::size  )  const [virtual]
 

Return the approximate memory used for this mesh.

The extra 4 bytes per vertex, edge, etc. is for the pointer in the corresponding list (_verts, _edges, etc.). For each Bvert we also count the expected number of Bedge* pointers in the adjacency list.

Reimplemented in LMESH.

Definition at line 664 of file bmesh.C.

References nedges(), nfaces(), npatches(), and nverts().

Referenced by compute_pix_size(), and print().

static BODYptr BODY::sphere  )  [inline, static, inherited]
 

Definition at line 118 of file body.H.

References BODY::_factory, and BODY::create_sphere().

void BMESH::Sphere Patch p = 0  )  [virtual]
 

Definition at line 480 of file bmesh.C.

References add_face(), add_quad(), add_vertex(), changed(), err_msg(), j, Patch::mesh(), new_patch(), TOPOLOGY_CHANGED, and TWO_PI.

ARRAY< BMESH * > BMESH::split_components  )  [virtual]
 

split mesh into connected components:

Definition at line 4185 of file bmesh.C.

References _edges, _faces, _verts, add_edge(), add_face(), add_vertex(), BMESHobs::broadcast_split(), changed(), clean_patches(), SimplexArray< L, T >::clear_flags(), dup(), edges(), faces(), Bsimplex::flag(), grow_mesh_equivalence_class(), new_patch(), ARRAY< T >::num(), Bsimplex::set_flag(), TOPOLOGY_CHANGED, and verts().

Bvert* BMESH::split_edge Bedge edge  )  [inline]
 

Definition at line 477 of file bmesh.H.

References Bedge::mid_pt(), and split_edge().

Bvert * BMESH::split_edge Bedge edge,
CWpt new_pt
 

Definition at line 2677 of file bmesh.C.

References add_edge(), add_face(), add_vertex(), ccw_face(), Bface::detach(), UVdata::lookup(), Bsimplex::notify_split(), Bedge::notify_split(), Bedge::other_face(), Bface::other_vertex(), Bface::patch(), Bface::redefine(), Bedge::redefine(), UVdata::set(), UVdata::uv(), Bedge::v1(), and Bedge::v2().

Referenced by split_edge(), split_faces(), and split_tris().

Bvert * BMESH::split_face Bface face,
CWpt pt
 

Definition at line 2781 of file bmesh.C.

References add_edge(), add_face(), add_vertex(), UVdata::bc2uv(), bv(), Bface::detach(), UVdata::lookup(), Bsimplex::notify_split(), Bface::patch(), Bface::project_barycentric(), Bface::redefine(), UVdata::set(), UVdata::uv1(), UVdata::uv2(), UVdata::uv3(), Bface::v1(), Bface::v2(), and Bface::v3().

Referenced by split_faces().

int BMESH::split_faces CXYpt_list ,
ARRAY< Bvert * > &  ,
Bface = 0
 

Definition at line 2844 of file bmesh.C.

References changed(), ARRAY< T >::clear(), Bvert::degree(), err_msg(), Bvert::get_faces(), inv_xform(), j, ARRAY< T >::last(), Bvert::loc(), BaseVisRefImage::lookup(), Bsimplex::mesh(), Bvert::nbr(), ARRAY< T >::num(), VIEW::peek(), Bface::plane_intersect(), split_edge(), split_face(), TRIANGULATION_CHANGED, BaseVisRefImage::vis_intersect(), BaseVisRefImage::vis_update(), and xform().

void BMESH::split_tris Bface start_face,
Wplane  plane,
ARRAY< Bvert * > &  nv
 

Definition at line 4287 of file bmesh.C.

References Bface::e(), ARRAY< T >::empty(), faces(), Bvert::get_faces(), Bvert::loc(), Bvert::lookup_edge(), ARRAY< T >::num(), split_edge(), Bedge::v1(), Bedge::v2(), and Bedge::which_side().

static STAT_STR_RET RefImageClient::static_name  )  [inline, static, inherited]
 

Definition at line 44 of file ref_img_client.H.

References RET_STAT_STR.

Referenced by operator=().

STAT_STR_RET DATA_ITEM::static_name  )  [static, inherited]
 

Definition at line 31 of file data_item.C.

References RET_STAT_STR.

Referenced by BALLwidget_anchor::BALLwidget_anchor(), CAMwidget_anchor::CAMwidget_anchor(), Patch::cur_tex(), OGLTexture::draw_id_ref(), OGLTexture::draw_id_triangles(), OGLTexture::draw_vis_ref(), VIEW::get_view_animator(), GRIDwidget_anchor::GRIDwidget_anchor(), and toggle_sil_frame().

virtual int BMESH::subdiv_level  )  const [inline, virtual]
 

The level of this mesh in the hierarchy (0 == control mesh, next level is 1, etc.):.

Reimplemented in LMESH.

Definition at line 490 of file bmesh.H.

Referenced by new_patch(), rel_cur_level(), rel_edit_level(), Ledge::rel_level(), Patch::subdiv_level(), and SimpleUVCalc::subdiv_val().

virtual BODY* BMESH::subtract BODYptr &   )  [inline, virtual]
 

Implements BODY.

Reimplemented in LMESH.

Definition at line 616 of file bmesh.H.

CTAGlist & BMESH::tags  )  const [virtual]
 

Reimplemented from BODY.

Reimplemented in LMESH.

Definition at line 3191 of file bmesh.C.

References _bmesh_tags, _bmesh_update_tags, get_colors(), get_creases(), get_faces(), get_patches(), get_polylines(), get_render_style(), get_sec_faces(), get_texcoords2(), get_uvfaces(), get_vertices(), get_weak_edges(), put_colors(), put_creases(), put_faces(), put_patches(), put_polylines(), put_render_style(), put_sec_faces(), put_texcoords2(), put_uvfaces(), put_vertices(), put_weak_edges(), IOManager::state(), IOManager::STATE_PARTIAL_LOAD, IOManager::STATE_PARTIAL_SAVE, and BODY::tags().

Referenced by LMESH::tags().

int BMESH::tex_already_exists Cstr_ptr &  name  )  const
 

Does a Patch with a current GTexture named name already exist in this mesh?

Definition at line 4380 of file bmesh.C.

References patches().

static void BMESH::toggle_freeze_sils  )  [inline, static]
 

Definition at line 519 of file bmesh.H.

References _freeze_sils.

static void BMESH::toggle_random_sils  )  [inline, static]
 

Definition at line 520 of file bmesh.H.

References _random_sils.

Referenced by toggle_random_sils().

void BMESH::toggle_render_style Cstr_ptr &  s  )  [inline]
 

Definition at line 200 of file bmesh.H.

References pop_render_style(), push_render_style(), and render_style().

Referenced by toggle_sil_frame().

static void BMESH::toggle_show_secondary_faces  )  [inline, static]
 

Definition at line 759 of file bmesh.H.

References _show_secondary_faces.

static BODYptr BODY::torus double  radius  )  [inline, static, inherited]
 

Definition at line 120 of file body.H.

References BODY::_factory, and BODY::create_torus().

virtual void BODY::transform mlib::CWtransf xform,
CMOD & 
[pure virtual, inherited]
 

void BMESH::transform CWtransf xform,
CMOD &  m = MOD()
[virtual]
 

Reimplemented in LMESH.

Definition at line 1403 of file bmesh.C.

References _verts, BMESHobs::broadcast_xform(), changed(), nverts(), Bvert_list::transform(), and VERT_POSITIONS_CHANGED.

Referenced by recenter(), LMESH::transform(), and write_xformed().

void BMESH::triangulate Wpt_list verts,
FACElist faces
[virtual]
 

Reimplemented from BODY.

Definition at line 1428 of file bmesh.C.

References _faces, _verts, bf(), bv(), ARRAY< T >::clear(), mlib::Pointlist< L, P, V, S >::clear(), Bvert::loc(), nfaces(), ARRAY< T >::num(), nverts(), and ARRAY< T >::realloc().

static BODYptr BODY::trunc_cone double  radius  )  [inline, static, inherited]
 

Definition at line 122 of file body.H.

References BODY::_factory, and BODY::create_trunc_cone().

static BODYptr BODY::trunc_pyr CMVEC2 &  taper,
CMVEC2 &  shear
[inline, static, inherited]
 

Definition at line 131 of file body.H.

References BODY::_factory, and BODY::create_trunc_pyr().

int BMESH::try_collapse_edge Bedge e,
Bvert v
 

Definition at line 3015 of file bmesh.C.

References debug, Bvert::degree(), Bedge::f1(), Bedge::f2(), Config::get_var_bool(), Bvert::is_adjacent(), Bedge::is_border(), Bvert::is_border(), merge_vertex(), Bvert::nbr(), nverts(), Bedge::opposite_vert1(), Bedge::opposite_vert2(), Bedge::other_vertex(), and Bedge::v().

int BMESH::try_swap_edge Bedge edge,
bool  favor_deg_6 = 0
 

Definition at line 2972 of file bmesh.C.

References Bface::detach(), Bface::redefine(), Bedge::set_new_vertices(), and Bedge::swapable().

int BMESH::type  )  const [inline]
 

Definition at line 424 of file bmesh.H.

References _type, and _type_valid.

Referenced by is_closed_surface(), is_open_surface(), is_points(), and is_polylines().

int REFcounter::Unique  )  const [inline, inherited]
 

Definition at line 115 of file ref.H.

References REFcounter::_mutex, and REFcounter::_u.

bool BMESH::unlist Patch p  ) 
 

Remove the Patch from the patch list; returns 1 on success.

Definition at line 3081 of file bmesh.C.

References _patches, and Patch::mesh().

Referenced by Patch::~Patch().

void REFcounter::Unlock  )  [inline, inherited]
 

Definition at line 111 of file ref.H.

References REFcounter::_mutex, and REFcounter::_u.

Referenced by REFlock::~REFlock().

RefImageClient::ref_img_t BMESH::use_ref_image  )  [virtual]
 

Reimplemented from RefImageClient.

Definition at line 1354 of file bmesh.C.

References _drawables, draw_enabled(), RefImageClient::REF_IMG_NONE, and RIC_array< T >::use_ref_image().

virtual int BODY::uv_able  )  const [inline, virtual, inherited]
 

METHS: Texture stuff.

Definition at line 109 of file body.H.

bool BMESH::valid_vert_indices int  i,
int  j,
int  k,
int  l
const [inline]
 

Definition at line 543 of file bmesh.H.

References _verts, ARRAY< T >::valid_index(), and valid_vert_indices().

bool BMESH::valid_vert_indices int  i,
int  j,
int  k
const [inline]
 

Definition at line 540 of file bmesh.H.

References _verts, ARRAY< T >::valid_index(), and valid_vert_indices().

bool BMESH::valid_vert_indices int  i,
int  j
const [inline]
 

Definition at line 537 of file bmesh.H.

References _verts, and ARRAY< T >::valid_index().

Referenced by add_edge(), add_face(), add_quad(), set_crease(), set_patch_boundary(), set_weak_edge(), and valid_vert_indices().

uint BMESH::version  )  const [inline]
 

Definition at line 667 of file bmesh.H.

References _version.

Referenced by Patch::stamp().

CWpt_list & BMESH::vertices  )  [virtual]
 

Implements BODY.

Definition at line 1416 of file bmesh.C.

References _vert_locs, _verts, ARRAY< T >::empty(), nverts(), and ARRAY< T >::realloc().

CBvert_list& BMESH::verts  )  const [inline]
 

Vertices of this mesh.

Definition at line 114 of file bmesh.H.

References _verts.

Referenced by add_tri(), Lpatch::cur_verts(), LMESH::cur_verts(), Bvert::index(), kill_component(), put_vertices(), remove_duplicate_vertices(), split_components(), and Patch::verts().

double BMESH::volume  )  const [virtual]
 

Sum up the volume using the divergence theorem.

Reimplemented in LMESH.

Definition at line 643 of file bmesh.C.

References _faces, and ARRAY< T >::num().

int BMESH::write_colors ostream &  os  )  const [virtual]
 

Definition at line 1993 of file bmesh.C.

References _verts, bv(), Bvert::color(), ARRAY< T >::empty(), Bvert::has_color(), and nverts().

int BMESH::write_creases ostream &  os  )  const [virtual]
 

Definition at line 2065 of file bmesh.C.

References be(), ARRAY< T >::clear(), ARRAY< T >::empty(), nedges(), ARRAY< T >::num(), and ARRAY< T >::pop().

int BMESH::write_faces ostream &  os  )  const [virtual]
 

Definition at line 2052 of file bmesh.C.

References bf(), and nfaces().

int BMESH::write_file char *  filename  )  [virtual]
 

Definition at line 1942 of file bmesh.C.

References err_msg(), and format().

Referenced by write(), and write_xformed().

int BMESH::write_patches ostream &  os  )  const [virtual]
 

Reimplemented in LMESH.

Definition at line 2115 of file bmesh.C.

References _patches, ARRAY< T >::empty(), Config::get_var_bool(), and Patch_list::write_stream().

int BMESH::write_polylines ostream &  os  )  const [virtual]
 

Definition at line 2131 of file bmesh.C.

References be(), ARRAY< T >::clear(), ARRAY< T >::empty(), nedges(), ARRAY< T >::num(), and ARRAY< T >::pop().

int BMESH::write_stream ostream &  os  )  [virtual]
 

Definition at line 1960 of file bmesh.C.

References format().

int BMESH::write_texcoords2 ostream &  os  )  const [virtual]
 

Definition at line 2016 of file bmesh.C.

References bf(), UVdata::lookup(), nfaces(), and UVdata::uv().

int BMESH::write_vertices ostream &  os  )  const [virtual]
 

Definition at line 1972 of file bmesh.C.

References bv(), Config::get_var_bool(), Bvert::loc(), nverts(), and Bvert::wloc().

int BMESH::write_weak_edges ostream &  os  )  const [virtual]
 

Definition at line 2089 of file bmesh.C.

References be(), ARRAY< T >::empty(), nedges(), ARRAY< T >::num(), and ARRAY< T >::pop().

CWtransf & BMESH::xform  )  const
 

Transformation from object to world coordinates for this mesh.

Definition at line 1252 of file bmesh.C.

References _geom, _obj_to_world, mlib::Identity, and GEOM::obj_to_world().

Referenced by compute_pix_size(), obj_to_ndc(), pick_face(), split_faces(), Bface::view_intersect(), Bvert::wloc(), write_xformed(), and Patch::xform().

double BMESH::z_span  )  const
 

Definition at line 4392 of file bmesh.C.

double BMESH::z_span double &  zmin,
double &  zmax
const
 

Definition at line 4399 of file bmesh.C.

References get_bb(), max(), min(), ARRAY< T >::num(), obj_to_ndc(), points, and mlib::Point3list< L, M, P, V, S >::xform().


Member Data Documentation

double BMESH::_avg_edge_len [protected]
 

Definition at line 747 of file bmesh.H.

Referenced by avg_len().

bool BMESH::_avg_edge_len_valid [protected]
 

Definition at line 748 of file bmesh.H.

Referenced by avg_len(), and changed().

str_ptr BODY::_base_name = BMESH::static_name() [static, protected, inherited]
 

Definition at line 61 of file body.H.

Referenced by BODY::base_name().

BBOX BODY::_bb [protected, inherited]
 

Definition at line 37 of file body.H.

Referenced by _merge(), BODY::bb_valid(), changed(), and get_bb().

TAGlist * BMESH::_bmesh_tags = NULL [static, protected]
 

Full set of tags.

Definition at line 742 of file bmesh.H.

Referenced by tags().

TAGlist * BMESH::_bmesh_update_tags = NULL [static, protected]
 

Partial set of tags used for loading frames of animation (e.g. just the vertices change position).

Definition at line 744 of file bmesh.H.

Referenced by tags().

BODYptr BMESH::_body [protected]
 

Definition at line 723 of file bmesh.H.

Referenced by _merge(), and changed().

TAGlist BODY::_body_tags [static, protected, inherited]
 

Definition at line 62 of file body.H.

Referenced by BODY::tags().

EdgeStrip* BMESH::_borders [protected]
 

border edge strips

Definition at line 700 of file bmesh.H.

Referenced by changed(), and get_border_strip().

BMESH * BMESH::_center_of_interest = 0 [static, protected]
 

Definition at line 753 of file bmesh.H.

Referenced by center_of_interest(), is_center_of_interest(), and set_center_of_interest().

int DATA_ITEM::_copy [protected, inherited]
 

Definition at line 197 of file data_item.H.

Referenced by DATA_ITEM::Decode().

EdgeStrip* BMESH::_creases [protected]
 

crease edge strips

Definition at line 699 of file bmesh.H.

Referenced by changed(), and get_crease_strip().

BMESHcurvature_data* BMESH::_curv_data [mutable, protected]
 

Definition at line 738 of file bmesh.H.

Referenced by changed(), and curvature().

TAGlist DATA_ITEM::_DEFINERtags [protected, inherited]
 

Definition at line 198 of file data_item.H.

Referenced by DATA_ITEM::tags().

bool BMESH::_draw_enabled [protected]
 

flag to enable/disable drawing

Definition at line 713 of file bmesh.H.

Referenced by disable_draw(), draw_enabled(), and enable_draw().

BMESHdrawable_array BMESH::_drawables [protected]
 

list of drawable things

Definition at line 711 of file bmesh.H.

Referenced by _merge(), BMESH(), delete_elements(), draw(), draw_final(), draw_ref_img(), draw_vis_ref(), drawables(), LMESH::new_patch(), new_patch(), remove_patch(), and use_ref_image().

Bedge_list BMESH::_edges [protected]
 

list of edges

Reimplemented from BODY.

Definition at line 688 of file bmesh.H.

Referenced by _merge(), add_edge(), avg_len(), be(), begin_index(), build_polyline_strips(), check_type(), clear_creases(), compute_creases(), cur_edges(), delete_elements(), edges(), end_index(), fix_orientation(), get_sil_strips(), get_vertices(), kill_component(), LMESH::le(), nearest_edge(), nedges(), operator=(), print(), read_vertices(), remove_duplicate_vertices(), remove_edge(), and split_components().

int BMESH::_edit_level [protected]
 

Definition at line 751 of file bmesh.H.

Referenced by dec_edit_level(), edit_level(), and inc_edit_level().

Wpt BMESH::_eye_local [protected]
 

camera location in local coordinates

Definition at line 731 of file bmesh.H.

Referenced by eye_local().

uint BMESH::_eye_local_stamp [protected]
 

frame number last updated.

Todo:
XXX - fix

Definition at line 732 of file bmesh.H.

Referenced by eye_local().

Bface_list BMESH::_faces [protected]
 

list of faces

Definition at line 689 of file bmesh.H.

Referenced by _merge(), add_face(), area(), begin_index(), bf(), check_type(), cur_faces(), delete_elements(), end_index(), faces(), fix_orientation(), get_components(), get_faces(), get_texcoords2(), get_zcross_strips(), kill_component(), LMESH::lf(), make_patch_if_needed(), nfaces(), operator=(), print(), read_faces(), read_texcoords2(), remove_face(), split_components(), triangulate(), LMESH::update_subdivision(), and volume().

BODY * BODY::_factory = 0 [static, protected, inherited]
 

Definition at line 60 of file body.H.

Referenced by BODY::cone(), BODY::cube(), BODY::cylinder(), BODY::extrusion(), BODY::revolve(), BODY::set_factory(), BODY::sphere(), BODY::torus(), BODY::trunc_cone(), and BODY::trunc_pyr().

bool BMESH::_freeze_sils = false [static]
 

Definition at line 678 of file bmesh.H.

Referenced by build_sil_strips(), build_zcross_strips(), freeze_sils(), and toggle_freeze_sils().

GEOM* BMESH::_geom [protected]
 

Definition at line 726 of file bmesh.H.

Referenced by LMESH::allocate_subdiv_mesh(), geom(), intersect(), inv_xform(), set_geom(), and xform().

VertStrip* BMESH::_lone_verts [protected]
 

pointer to allow subclasses

Definition at line 703 of file bmesh.H.

Referenced by build_vert_strips().

Wtransf BMESH::_obj_to_world [protected]
 

Definition at line 734 of file bmesh.H.

Referenced by xform().

ThreadMutex BMESH::_patch_mutex [protected]
 

Definition at line 694 of file bmesh.H.

Patch_list BMESH::_patches [protected]
 

list of patches

Definition at line 692 of file bmesh.H.

Referenced by _merge(), build_polyline_strips(), build_sil_strips(), build_vert_strips(), build_zcross_strips(), changed(), clean_patches(), delete_elements(), delete_patches(), LMESH::delete_subdiv_mesh(), LMESH::new_patch(), new_patch(), npatches(), patch(), patches(), put_patches(), remove_patch(), unlist(), and write_patches().

double BMESH::_pix_size [protected]
 

approx pix size

Definition at line 714 of file bmesh.H.

Referenced by compute_pix_size(), and pix_size().

uint BMESH::_pix_size_stamp [protected]
 

for caching per-frame

Definition at line 715 of file bmesh.H.

Referenced by compute_pix_size(), and pix_size().

Wtransf BMESH::_pm [protected]
 

object space to NDCZ space transform

Definition at line 728 of file bmesh.H.

Referenced by obj_to_ndc().

uint BMESH::_pm_stamp [protected]
 

frame number last updated.

Todo:
XXX - fix

Definition at line 730 of file bmesh.H.

Referenced by obj_to_ndc().

EdgeStrip* BMESH::_polylines [protected]
 

pointer to allow subclasses

Definition at line 702 of file bmesh.H.

Referenced by build_polyline_strips().

bool BMESH::_random_sils = !Config::get_var_bool("NO_RANDOM_SILS",false) [static]
 

Definition at line 679 of file bmesh.H.

Referenced by get_sil_strips(), get_zcross_strips(), toggle_random_sils(), and toggle_random_sils().

LIST<str_ptr> BMESH::_render_style [protected]
 

name of render style to use (if any)

Definition at line 712 of file bmesh.H.

Referenced by pop_render_style(), push_render_style(), render_style(), and set_render_style().

bool BMESH::_show_secondary_faces = false [static, protected]
 

Definition at line 756 of file bmesh.H.

Referenced by show_secondary_faces(), and toggle_show_secondary_faces().

uint BMESH::_sil_stamp [protected]
 

Definition at line 707 of file bmesh.H.

Referenced by build_sil_strips(), changed(), and get_sil_strips().

EdgeStrip BMESH::_sils [protected]
 

silhouette edge strips

Definition at line 698 of file bmesh.H.

Referenced by build_sil_strips(), changed(), get_sil_strips(), and sil_strip().

int BODY::_tris [protected, inherited]
 

Definition at line 36 of file body.H.

int BMESH::_type [protected]
 

type of surface from enum above

Definition at line 718 of file bmesh.H.

Referenced by _merge(), LMESH::allocate_subdiv_mesh(), check_type(), delete_elements(), operator=(), and type().

bool BMESH::_type_valid [protected]
 

true if _type has been set

Definition at line 719 of file bmesh.H.

Referenced by _merge(), changed(), check_type(), delete_elements(), operator=(), and type().

uint BMESH::_version [protected]
 

increment to invalidate display lists

Definition at line 693 of file bmesh.H.

Referenced by _merge(), changed(), and version().

Wpt_list BMESH::_vert_locs [protected]
 

Definition at line 722 of file bmesh.H.

Referenced by _merge(), changed(), and vertices().

Bvert_list BMESH::_verts [protected]
 

list of vertices

Definition at line 687 of file bmesh.H.

Referenced by _merge(), add_edge(), add_face(), add_quad(), add_vertex(), begin_index(), build_vert_strips(), bv(), check_type(), cur_verts(), delete_elements(), empty(), end_index(), get_colors(), get_vertices(), kill_component(), lookup_edge(), lookup_face(), LMESH::lv(), nearest_vert(), nverts(), operator=(), print(), put_colors(), read_vertices(), remove_duplicate_vertices(), remove_vertex(), split_components(), transform(), triangulate(), LMESH::update_subdivision(), valid_vert_indices(), vertices(), verts(), and write_colors().

Wtransf BMESH::_world_to_obj [protected]
 

Definition at line 735 of file bmesh.H.

Referenced by inv_xform().

ZcrossPath BMESH::_zx_sils [protected]
 

zero-cross sil-strip class

Definition at line 697 of file bmesh.H.

Referenced by build_zcross_strips(), changed(), and get_zcross_strips().

uint BMESH::_zx_stamp [protected]
 

Definition at line 708 of file bmesh.H.

Referenced by build_zcross_strips(), changed(), and get_zcross_strips().


The documentation for this class was generated from the following files:
Generated on Mon Sep 18 11:44:32 2006 for jot by  doxygen 1.4.4