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

LMESH Class Reference

#include <lmesh.H>

Inheritance diagram for LMESH:

Inheritance graph
[legend]
Collaboration diagram for LMESH:

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

 LMESH (int num_v=0, int num_e=0, int num_f=0)
virtual ~LMESH ()
 DEFINE_RTTI_METHODS3 ("LMESH", LMESH *, BMESH, CDATA_ITEM *)
void delete_subdiv_mesh ()
void mark_all_dirty ()
CBvert_listdirty_verts () const
Lvertlv (int k) const
Ledgele (int k) const
Lfacelf (int k) const
Lvertdv (int k) const
LMESHcontrol_mesh () const
bool is_control_mesh () const
LMESHsubdiv_mesh () const
LMESHparent_mesh () const
LMESHsubdiv_mesh (int k) const
LMESHparent_mesh (int k) const
bool allocate_subdiv_mesh ()
LMESHcur_mesh () const
bool is_cur_mesh () const
int subdiv_face_scale () const
int subdiv_edge_scale () const
SubdivLocCalcloc_calc () const
SubdivColorCalccolor_calc () const
void set_subdiv_loc_calc (SubdivLocCalc *c)
void set_subdiv_color_calc (SubdivColorCalc *c)
Wpt limit_loc (CBvert *v) const
Wpt subdiv_loc (CBvert *v) const
Wpt subdiv_loc (CBedge *e) const
COLOR subdiv_color (CBvert *v) const
COLOR subdiv_color (CBedge *e) const
void refine ()
void unrefine ()
bool update_subdivision (int level)
void update ()
void subdivide_in_place ()
void add_dirty_vert (Lvert *v)
void rem_dirty_vert (Lvert *v)
virtual int cur_level () const
 Level of "current" mesh in the hierarchy:.
virtual int subdiv_level () const
 The level of this mesh in the hierarchy (0 == control mesh, next level is 1, etc.):.
int max_cur_level () const
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.
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 *, Bvert *, Bvert *, Bedge *, Bedge *, Bedge *) 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 ()
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 int remove_vertex (Bvert *v)
 Removes the given vertex from this mesh's vertex-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_face (Bface *f)
 Removes the given face from this mesh's face-list, and releases memory allocated to it.
virtual double volume () const
 Sum up the volume using the divergence theorem.
virtual double area () const
 Sum of areas of all faces.
virtual void clear_creases ()
virtual void delete_elements ()
virtual BMESHoperator= (CBMESH &m)
virtual BMESHoperator= (CLMESH &m)
virtual BMESHoperator= (BODY &b)
virtual void set_geom (GEOM *geom)
virtual int write_patches (ostream &os) const
virtual int edit_level () const
 Level of "active" mesh in the hierarchy:.
virtual void inc_edit_level ()
virtual void dec_edit_level ()
virtual bool set_edit_level (int level)
virtual void changed (change_t)
virtual void changed ()
virtual int size () const
 Return the approximate memory used for this mesh.
virtual void print () const
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
virtual int draw (CVIEWptr &v)
virtual int intersect (RAYhit &, CWtransf &, mlib::Wpt &, Wvec &, double &, double &, mlib::XYpt &) const
virtual void transform (CWtransf &xform, CMOD &m)
virtual BODYsubtract (BODYptr &subtractor)
virtual BODYcombine (BODYptr &combiner)
virtual BODYintersect (BODYptr &intersector)
virtual CBBOX & get_bb ()
virtual CTAGlist & tags () const
virtual DATA_ITEMdup () const
 DEFINE_RTTI_METHODS3 ("BMESH", BMESH *, BODY, CDATA_ITEM *)
CBvert_listverts () const
 Vertices of this mesh.
CBedge_listedges () const
 Edges in this mesh.
CBface_listfaces () const
 Triangular faces in this mesh.
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
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)
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 ()
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
virtual void get_creases (TAGformat &)
CBedge_listget_borders () const
bool unlist (Patch *p)
 Remove the Patch from the patch list; returns 1 on success.
void make_patch_if_needed ()
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)
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)
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_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_patches ()
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)
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)
int rel_cur_level () const
 Same as above, but relative to the level of this mesh:.
int rel_edit_level () const
Bfacepick_face (CWline &world_ray, mlib::Wpt &world_hit) 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 ref_img_t use_ref_image ()
virtual int draw_vis_ref ()
virtual int draw_ref_img (ref_img_t)
virtual int draw_ref_img (ref_img_t t)
virtual int draw_final (CVIEWptr &v)
virtual BODYptr copy (int make_new=1) const
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 (CWpt_list &)
virtual void set_vertices (mlib::CWpt_list &)=0
virtual CWpt_listvertices ()
virtual CEDGElist & body_edges ()
virtual void triangulate (Wpt_list &verts, FACElist &faces)
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_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 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 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 ()

Static Public Member Functions

static bool update_subdivision (CBface_list &faces, int k=1)
static bool update_subdivision (CBvert_list &verts, int k=1)
static void fit (ARRAY< Lvert * > &verts, bool do_gauss_seidel=1)
static LMESHptr merge (LMESHptr m1, LMESHptr m2)
static Bvert_list get_subdiv_inputs (CBvert_list &verts)
static LMESHptr read_jot_file (char *filename)
static LMESHptr read_jot_stream (istream &is)
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

void set_parent (LMESH *parent)
void set_cur_mesh (LMESH *cur)
int _max_cur_level () const
virtual void send_update_notification ()
virtual void _merge (BMESH *)
 internal version of merge(), after error checking:
int check_type ()
 recalculate the mesh type
void clean_patches ()
bool remove_patch (int k)
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

LMESH_parent_mesh
LMESH_cur_mesh
LMESHptr _subdiv_mesh
int _subdiv_level
Bvert_list _dirty_verts
SubdivLocCalc_loc_calc
SubdivColorCalc_color_calc
TAGlist_lmesh_tags
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 16 of file lmesh.H.


Member Enumeration Documentation

enum BMESH::change_t [inherited]
 

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 [inherited]
 

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

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

Definition at line 28 of file lmesh.C.

References _cur_mesh, and _lmesh_tags.

Referenced by allocate_subdiv_mesh(), and dup().

LMESH::~LMESH  )  [virtual]
 

Definition at line 43 of file lmesh.C.

References _color_calc, _loc_calc, and delete_elements().


Member Function Documentation

int LMESH::_max_cur_level  )  const [inline, protected]
 

Definition at line 320 of file lmesh.H.

References _subdiv_mesh.

Referenced by max_cur_level().

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

internal version of merge(), after error checking:

Reimplemented from BMESH.

Definition at line 400 of file lmesh.C.

References _dirty_verts, BMESH::_merge(), _subdiv_mesh, add_dirty_vert(), SimplexArray< L, T >::clear_bits(), delete_subdiv_mesh(), Lvert::DIRTY_VERT_LIST_BIT, ARRAY< T >::empty(), and ARRAY< T >::pop().

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().

void LMESH::add_dirty_vert Lvert v  )  [inline]
 

Definition at line 142 of file lmesh.H.

References _dirty_verts, Lvert::DIRTY_VERT_LIST_BIT, Bsimplex::is_clear(), and Bsimplex::set_bit().

Referenced by _merge(), add_vertex(), and Lvert::mark_dirty().

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

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 BMESH::_verts, BMESH::add_edge(), err_msg(), and BMESH::valid_vert_indices().

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

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 BMESH::add_edge(), err_msg(), Bvert::lookup_edge(), Bsimplex::mesh(), and BMESH::new_edge().

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

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 BMESH::_edges, err_msg(), and Bsimplex::set_mesh().

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

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

Definition at line 306 of file bmesh.C.

References BMESH::_verts, BMESH::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
[inherited]
 

Definition at line 296 of file bmesh.C.

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

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

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 BMESH::_verts, BMESH::add_face(), err_msg(), and BMESH::valid_vert_indices().

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

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 BMESH::add_edge(), BMESH::add_face(), err_msg(), BMESH::lookup_face(), Bsimplex::mesh(), and BMESH::new_face().

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

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 BMESH::_faces, Patch::add(), err_msg(), Patch::mesh(), and Bsimplex::set_mesh().

Referenced by BMESH::add_face(), BMESH::add_quad(), OBJReaderImpl::add_tri(), add_tri(), Lface::gen_child_face(), BMESH::get_faces(), BMESH::get_uvfaces(), BMESH::Icosahedron(), BMESH::Octahedron(), BMESH::operator=(), BMESH::read_faces(), BMESH::Sphere(), BMESH::split_components(), BMESH::split_edge(), and BMESH::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
[inherited]
 

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

Definition at line 374 of file bmesh.C.

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

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

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 BMESH::_verts, BMESH::add_quad(), and BMESH::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
[inherited]
 

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

Definition at line 351 of file bmesh.C.

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

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

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 BMESH::add_face(), err_msg(), Bface::is_quad(), Bvert::lookup_edge(), Bface::quad_rep(), Bsimplex::set_bit(), and Bedge::WEAK_BIT.

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

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

Definition at line 205 of file data_item.H.

Bvert * LMESH::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 from BMESH.

Definition at line 258 of file lmesh.C.

References BMESH::add_vertex().

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

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

Reimplemented from BMESH.

Definition at line 250 of file lmesh.C.

References add_dirty_vert(), and BMESH::add_vertex().

Referenced by Ledge::allocate_subdiv_elements(), Lvert::allocate_subdiv_vert(), and read_vert().

Bvert_list BMESH::add_verts CWpt_list pts  )  [inherited]
 

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 BMESH::add_vertex().

bool LMESH::allocate_subdiv_mesh  ) 
 

Definition at line 498 of file lmesh.C.

References _color_calc, BMESH::_geom, _loc_calc, _subdiv_mesh, BMESH::_type, BMESHobs::broadcast_subdiv_gen(), SubdivCalc< T >::dup(), err_ret(), LMESH(), BMESH::nedges(), BMESH::nfaces(), and BMESH::nverts().

Referenced by Lface::allocate_subdiv_elements(), and update_subdivision().

double LMESH::area  )  const [virtual]
 

Sum of areas of all faces.

Reimplemented from BMESH.

Definition at line 123 of file lmesh.C.

References _cur_mesh.

double BMESH::avg_len  )  const [inherited]
 

Definition at line 4016 of file bmesh.C.

References BMESH::_avg_edge_len, BMESH::_avg_edge_len_valid, BMESH::_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, inherited]
 

Shorthand for accessing kth edge.

Definition at line 150 of file bmesh.H.

References BMESH::_edges.

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

void BMESH::begin_index  )  [inherited]
 

Turn on indexing in vert, edge and face lists.

Definition at line 134 of file bmesh.C.

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

Referenced by BMESH::BMESH().

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

Shorthand for accessing kth face.

Definition at line 152 of file bmesh.H.

References BMESH::_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(), BMESH::get_components(), Patch::get_faces(), BMESH::get_texcoords2(), BMESH::make_patch_if_needed(), BMESH::operator=(), BMESH::pick_face(), BMESH::put_faces(), BMESH::put_sec_faces(), BMESH::put_texcoords2(), BMESH::put_uvfaces(), Patch::read_stream(), BMESH::read_texcoords2(), Patch::recompute(), BMESH::reverse(), BMESH::triangulate(), write_faces(), BMESH::write_faces(), and BMESH::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, inherited]
 

Implements BODY.

Definition at line 622 of file bmesh.H.

References BODY::_edges.

int BMESH::build_polyline_strips  )  [inherited]
 

Definition at line 851 of file bmesh.C.

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

Referenced by BMESH::get_polylines(), and BMESH::read_polylines().

int BMESH::build_sil_strips  )  [inherited]
 

distributes them to patches

Definition at line 1120 of file bmesh.C.

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

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

int BMESH::build_vert_strips  )  [inherited]
 

Definition at line 910 of file bmesh.C.

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

Referenced by BMESH::decode(), and BMESH::read_stream().

int BMESH::build_zcross_strips  )  [inherited]
 

Definition at line 939 of file bmesh.C.

References BMESH::_freeze_sils, BMESH::_patches, BMESH::_zx_sils, BMESH::_zx_stamp, ZcrossPath::add_seg(), ZXseg::bc(), debug, ZcrossPath::empty(), err_msg(), ZXseg::f(), ZXseg::g(), Config::get_var_bool(), BMESH::get_zcross_strips(), BMESH::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, inherited]
 

Shorthand for accessing kth vertex.

Definition at line 148 of file bmesh.H.

References BMESH::_verts.

Referenced by OBJReaderImpl::add_face(), add_poly(), BMESH::build_vert_strips(), BMESH::check_type(), compute_initial_vertex_coord_sys(), BMESHcurvature_data::diagonalize_vertex_curvatures(), BMESH::get_bb(), BMESH::get_enclosed_verts(), BMESH::has_vert_colors(), BMESH::lookup_edge(), BMESH::lookup_face(), BMESH::operator=(), BMESH::put_colors(), BMESH::put_vertices(), BMESH::read_colors(), BMESH::set_crease(), BMESH::set_patch_boundary(), OBJReaderImpl::set_vert_normals(), BMESH::set_weak_edge(), BMESH::split_face(), BMESH::triangulate(), BMESH::write_colors(), BMESH::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, inherited]
 

Definition at line 528 of file bmesh.H.

References BMESH::_center_of_interest.

Referenced by find_mesh().

void BMESH::changed change_t   )  [virtual, inherited]
 

Definition at line 3091 of file bmesh.C.

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

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

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

Reimplemented from BMESH.

Definition at line 251 of file lmesh.H.

References BMESH::TOPOLOGY_CHANGED.

Referenced by clear_creases(), set_cur_mesh(), set_subdiv_color_calc(), set_subdiv_loc_calc(), and update_subdivision().

void LMESH::changed change_t   )  [virtual]
 

Definition at line 299 of file lmesh.C.

References _subdiv_mesh, BMESH::changed(), control_mesh(), is_control_mesh(), and BMESH::RENDERING_CHANGED.

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

int BMESH::check_type  )  [protected, inherited]
 

recalculate the mesh type

Definition at line 2270 of file bmesh.C.

References BMESH::_edges, BMESH::_faces, BMESH::_type, BMESH::_type_valid, BMESH::_verts, BMESH::be(), BMESH::bv(), BMESH::CLOSED_SURFACE, BMESH::EMPTY_MESH, err_msg(), BMESH::fix_orientation(), Config::get_var_bool(), BMESH::nfaces(), ARRAY< T >::num(), BMESH::OPEN_SURFACE, BMESH::POINTS, and BMESH::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(), BMESH::print(), print_gel(), Patch::put_textures(), BMESH::read_jot_stream(), GTexture::type(), SolidColorTexture::write_stream(), and GTexture::write_stream().

void BMESH::clean_patches  )  [protected, inherited]
 

Definition at line 1329 of file bmesh.C.

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

Referenced by BMESH::read_stream(), and BMESH::split_components().

void LMESH::clear_creases  )  [virtual]
 

Reimplemented from BMESH.

Definition at line 149 of file lmesh.C.

References changed(), BMESH::clear_creases(), err_msg(), lv(), BMESH::nverts(), BMESH::RENDERING_CHANGED, and Lvert::set_corner().

SubdivColorCalc* LMESH::color_calc  )  const [inline]
 

Definition at line 101 of file lmesh.H.

References _color_calc.

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

Reimplemented from BMESH.

Definition at line 285 of file lmesh.H.

void BMESH::compute_creases  )  [inherited]
 

Definition at line 840 of file bmesh.C.

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

void BMESH::compute_pix_size  )  [inherited]
 

Definition at line 4427 of file bmesh.C.

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

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

Definition at line 116 of file body.H.

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

LMESH* LMESH::control_mesh  )  const [inline]
 

Definition at line 48 of file lmesh.H.

References _parent_mesh, and control_mesh().

Referenced by changed(), Lpatch::control_mesh(), control_mesh(), cur_mesh(), dec_edit_level(), edit_level(), inc_edit_level(), max_cur_level(), pop_render_style(), push_render_style(), render_style(), set_edit_level(), set_render_style(), update_subdivision(), and write_patches().

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

Implements BODY.

Definition at line 603 of file bmesh.H.

References BMESH::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, inherited]
 

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

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

Edges ofthe current subdivision mesh, if any.

Reimplemented from BMESH.

Definition at line 192 of file lmesh.H.

References cur_mesh(), and BMESH::edges().

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

Faces ofthe current subdivision mesh, if any.

Reimplemented from BMESH.

Definition at line 193 of file lmesh.H.

References cur_mesh(), and BMESH::faces().

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

Level of "current" mesh in the hierarchy:.

Reimplemented from BMESH.

Definition at line 180 of file lmesh.H.

References _subdiv_level, and cur_mesh().

Referenced by Lpatch::cur_level(), LedgeStrip::cur_level(), inc_edit_level(), subdiv_edge_scale(), subdiv_face_scale(), unrefine(), and update().

LMESH* LMESH::cur_mesh  )  const [inline]
 

Definition at line 87 of file lmesh.H.

References _cur_mesh, and control_mesh().

Referenced by Lpatch::cur_edges(), cur_edges(), cur_faces(), cur_level(), Lpatch::cur_verts(), cur_verts(), is_cur_mesh(), and update_subdivision().

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

Vertices ofthe current subdivision mesh, if any.

Reimplemented from BMESH.

Definition at line 191 of file lmesh.H.

References cur_mesh(), and BMESH::verts().

BMESHcurvature_data* BMESH::curvature  )  const [inline, inherited]
 

Definition at line 659 of file bmesh.H.

References BMESH::_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().

void LMESH::dec_edit_level  )  [virtual]
 

Reimplemented from BMESH.

Definition at line 874 of file lmesh.C.

References changed(), control_mesh(), edit_level(), MeshGlobal::edit_level_changed(), and BMESH::RENDERING_CHANGED.

Referenced by set_edit_level(), and unrefine().

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, inherited]
 

Reimplemented from DATA_ITEM.

Definition at line 3966 of file bmesh.C.

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

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

BMESH::DEFINE_RTTI_METHODS3 "BMESH"  ,
BMESH ,
BODY  ,
CDATA_ITEM * 
[inherited]
 

LMESH::DEFINE_RTTI_METHODS3 "LMESH"  ,
LMESH ,
BMESH  ,
CDATA_ITEM * 
 

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

Simply releases memory allocated to the edge by calling delete.

Definition at line 363 of file bmesh.H.

Referenced by BMESH::kill_component(), and BMESH::remove_edge().

void LMESH::delete_elements  )  [virtual]
 

Reimplemented from BMESH.

Definition at line 806 of file lmesh.C.

References BMESH::delete_elements(), and delete_subdiv_mesh().

Referenced by ~LMESH().

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

Simply releases memory allocated to the face by calling delete.

Definition at line 365 of file bmesh.H.

Referenced by BMESH::kill_component(), and BMESH::remove_face().

void BMESH::delete_patches  )  [virtual, inherited]
 

Definition at line 2264 of file bmesh.C.

References BMESH::_patches, and Patch_list::delete_all().

void LMESH::delete_subdiv_mesh  ) 
 

Definition at line 784 of file lmesh.C.

References BMESH::_patches, _subdiv_mesh, BMESHobs::broadcast_sub_delete(), Ledge::delete_subdiv_elements(), Lface::delete_subdiv_elements(), Lvert::delete_subdiv_vert(), is_control_mesh(), le(), lf(), lv(), BMESH::nedges(), BMESH::nfaces(), ARRAY< T >::num(), BMESH::nverts(), and set_cur_mesh().

Referenced by _merge(), and delete_elements().

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

Simply releases memory allocated to the vertex by calling delete.

Definition at line 361 of file bmesh.H.

Referenced by BMESH::kill_component(), and BMESH::remove_vertex().

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

Definition at line 225 of file data_item.H.

References DATA_ITEM::_hash.

CBvert_list& LMESH::dirty_verts  )  const [inline]
 

Definition at line 36 of file lmesh.H.

References _dirty_verts.

void BMESH::disable_draw  )  [inline, inherited]
 

Definition at line 183 of file bmesh.H.

References BMESH::_draw_enabled.

int LMESH::draw CVIEWptr &  v  )  [virtual]
 

Reimplemented from BMESH.

Definition at line 110 of file lmesh.C.

References BMESH::draw(), is_control_mesh(), and update().

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, inherited]
 

Definition at line 184 of file bmesh.H.

References BMESH::_draw_enabled, and BMESH::empty().

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

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

Reimplemented from RefImageClient.

Definition at line 600 of file bmesh.H.

References BMESH::_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, inherited]
 

Definition at line 1372 of file bmesh.C.

References BMESH::_drawables, BMESH::draw_enabled(), RIC_array< T >::draw_ref_img(), and BMESH::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, inherited]
 

Reimplemented from RefImageClient.

Definition at line 1361 of file bmesh.C.

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

BMESHdrawable_array& BMESH::drawables  )  [inline, inherited]
 

Definition at line 165 of file bmesh.H.

References BMESH::_drawables.

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

Reimplemented from BMESH.

Definition at line 293 of file lmesh.H.

References LMESH().

Lvert* LMESH::dv int  k  )  const [inline]
 

Definition at line 43 of file lmesh.H.

References _dirty_verts.

CBedge_list& BMESH::edges  )  const [inline, inherited]
 

Edges in this mesh.

Definition at line 116 of file bmesh.H.

References BMESH::_edges.

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

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

Level of "active" mesh in the hierarchy:.

Reimplemented from BMESH.

Definition at line 239 of file lmesh.H.

References control_mesh().

Referenced by dec_edit_level(), inc_edit_level(), set_edit_level(), and unrefine().

bool BMESH::empty  )  const [inline, inherited]
 

Is the vertex list empty?

Definition at line 144 of file bmesh.H.

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

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

void BMESH::enable_draw  )  [inline, inherited]
 

Definition at line 182 of file bmesh.H.

References BMESH::_draw_enabled.

void BMESH::end_index  )  [inherited]
 

Turn off indexing in vert, edge and face lists.

Definition at line 143 of file bmesh.C.

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

Referenced by BMESH::~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 [inherited]
 

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

Definition at line 1276 of file bmesh.C.

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

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

CBface_list& BMESH::faces  )  const [inline, inherited]
 

Triangular faces in this mesh.

Definition at line 118 of file bmesh.H.

References BMESH::_faces.

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

void LMESH::fit ARRAY< Lvert * > &  verts,
bool  do_gauss_seidel = 1
[static]
 

Definition at line 914 of file lmesh.C.

References ARRAY< T >::clear(), debug, BBOX::dim(), ARRAY< T >::empty(), err_msg(), Config::get_var_bool(), j, mlib::Vec3< V >::length(), max(), min(), ARRAY< T >::num(), mlib::Wpt::Origin(), mlib::statistics(), and BBOX::update().

bool BMESH::fix_orientation  )  [inherited]
 

Definition at line 2344 of file bmesh.C.

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

Referenced by BMESH::check_type(), and BMESH::remove_duplicate_vertices().

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

Reimplemented from DATA_ITEM.

Definition at line 3958 of file bmesh.C.

References DATA_ITEM::format().

Referenced by BMESH::write_file(), and BMESH::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, inherited]
 

Definition at line 168 of file bmesh.H.

References BMESH::_geom.

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

const BBOX & LMESH::get_bb  )  [virtual]
 

Reimplemented from BMESH.

Definition at line 428 of file lmesh.C.

References _cur_mesh, and update().

EdgeStrip* BMESH::get_border_strip  )  const [inline, inherited]
 

Definition at line 261 of file bmesh.H.

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

Referenced by BMESH::get_borders().

CBedge_list& BMESH::get_borders  )  const [inline, inherited]
 

Definition at line 285 of file bmesh.H.

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

Referenced by BMESH::get_zcross_strips().

void BMESH::get_colors TAGformat  )  [virtual, inherited]
 

Definition at line 3922 of file bmesh.C.

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

Referenced by BMESH::tags().

ARRAY< Bface_list > BMESH::get_components  )  const [inherited]
 

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

Definition at line 4263 of file bmesh.C.

References BMESH::_faces, BMESH::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, inherited]
 

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 BMESH::_creases, EdgeStrip::build_with_tips(), BMESH::edges(), and BMESH::new_edge_strip().

Referenced by BMESH::get_creases().

void BMESH::get_creases TAGformat  )  [virtual, inherited]
 

Definition at line 3792 of file bmesh.C.

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

CBedge_list& BMESH::get_creases  )  const [inline, inherited]
 

Definition at line 284 of file bmesh.H.

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

Referenced by BMESH::get_zcross_strips(), and BMESH::tags().

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

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 BMESH::edges().

Referenced by BMESH::new_edge_strip().

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

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 BMESH::edges(), and SimplexArray< L, T >::filter().

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

Definition at line 2444 of file bmesh.C.

References BMESH::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(), BMESH::nverts(), ARRAY< T >::pop(), Bsimplex::set_flag(), Bface::v1(), Bface::v2(), and Bface::v3().

void BMESH::get_faces TAGformat  )  [virtual, inherited]
 

Definition at line 3746 of file bmesh.C.

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

Referenced by BMESH::tags().

void BMESH::get_patches TAGformat  )  [virtual, inherited]
 

Definition at line 3940 of file bmesh.C.

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

Referenced by BMESH::tags().

void BMESH::get_polylines TAGformat  )  [virtual, inherited]
 

Definition at line 3804 of file bmesh.C.

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

Referenced by BMESH::tags().

void BMESH::get_render_style TAGformat  )  [virtual, inherited]
 

Definition at line 3907 of file bmesh.C.

Referenced by BMESH::tags().

void BMESH::get_sec_faces TAGformat  )  [virtual, inherited]
 

Definition at line 3835 of file bmesh.C.

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

Referenced by BMESH::tags().

int BMESH::get_sil_strips  )  [inherited]
 

extracts silhouette edge strips

Definition at line 1154 of file bmesh.C.

References BMESH::_edges, BMESH::_random_sils, BMESH::_sil_stamp, BMESH::_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(), BMESH::nedges(), EdgeStrip::num(), ARRAY< T >::num(), rand_secs, rand_sils, EdgeStrip::reset(), BMESH::show_secondary_faces(), and VIEW::stamp().

Referenced by BMESH::build_sil_strips().

Bvert_list LMESH::get_subdiv_inputs CBvert_list verts  )  [static]
 

Definition at line 1105 of file lmesh.C.

References clear_face_flags(), Bedge_list::clear_flag02(), debug, err_adv(), BMESH::faces(), get_parents(), Bedge_list::get_primary_faces(), get_q_faces(), Config::get_var_bool(), Bface_list::get_verts(), SimplexArray< L, T >::mesh(), ARRAY< T >::num(), and try_append().

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, inherited]
 

Definition at line 3865 of file bmesh.C.

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

Referenced by BMESH::tags().

void BMESH::get_uvfaces TAGformat  )  [virtual, inherited]
 

Definition at line 3458 of file bmesh.C.

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

Referenced by BMESH::tags().

void BMESH::get_vertices TAGformat  )  [virtual, inherited]
 

Definition at line 3706 of file bmesh.C.

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

Referenced by BMESH::tags().

void BMESH::get_weak_edges TAGformat  )  [virtual, inherited]
 

Definition at line 3818 of file bmesh.C.

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

Referenced by BMESH::tags().

int BMESH::get_zcross_strips  )  [inherited]
 

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

Definition at line 1022 of file bmesh.C.

References BMESH::_faces, BMESH::_random_sils, BMESH::_zx_sils, BMESH::_zx_stamp, stop_watch::elapsed_time(), ARRAY< T >::empty(), BMESH::eye_local(), Bedge::f(), BMESH::geom(), BMESH::get_borders(), BMESH::get_creases(), Config::get_var_bool(), Config::get_var_int(), BMESH::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 BMESH::build_zcross_strips().

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

Definition at line 4148 of file bmesh.C.

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

Referenced by BMESH::kill_component(), and BMESH::split_components().

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

Definition at line 2384 of file bmesh.C.

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

Referenced by BMESH::fix_orientation().

bool BMESH::has_vert_colors  )  const [inline, inherited]
 

Do the vertices have colors?

Definition at line 208 of file bmesh.H.

References BMESH::bv(), and BMESH::nverts().

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

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

Definition at line 575 of file bmesh.C.

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

void LMESH::inc_edit_level  )  [virtual]
 

Reimplemented from BMESH.

Definition at line 858 of file lmesh.C.

References changed(), control_mesh(), cur_level(), edit_level(), MeshGlobal::edit_level_changed(), is_control_mesh(), BMESH::RENDERING_CHANGED, and update_subdivision().

Referenced by set_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* LMESH::intersect BODYptr &  intersector  )  [inline, virtual]
 

Reimplemented from BMESH.

Definition at line 286 of file lmesh.H.

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

Reimplemented from BMESH.

Definition at line 362 of file lmesh.C.

References _cur_mesh.

CWtransf & BMESH::inv_xform  )  const [inherited]
 

Transformation from world to object coordinates for this mesh.

Definition at line 1259 of file bmesh.C.

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

Referenced by BMESH::eye_local(), Bface::find_intersect_sim(), BMESH::get_zcross_strips(), BMESH::intersect(), Patch::inv_xform(), BMESH::pick_face(), BMESH::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, inherited]
 

Definition at line 529 of file bmesh.H.

References BMESH::_center_of_interest.

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

bool BMESH::is_closed_surface  )  const [inline, inherited]
 

Definition at line 432 of file bmesh.H.

References BMESH::CLOSED_SURFACE, and BMESH::type().

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

bool LMESH::is_control_mesh  )  const [inline]
 

Definition at line 52 of file lmesh.H.

References _parent_mesh.

Referenced by changed(), delete_subdiv_mesh(), draw(), inc_edit_level(), new_patch(), refine(), set_cur_mesh(), set_subdiv_color_calc(), set_subdiv_loc_calc(), subdivide_in_place(), unrefine(), and update_subdivision().

bool LMESH::is_cur_mesh  )  const [inline]
 

Definition at line 89 of file lmesh.H.

References cur_mesh().

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 BMESH::operator=().

bool BMESH::is_open_surface  )  const [inline, inherited]
 

Definition at line 431 of file bmesh.H.

References BMESH::OPEN_SURFACE, and BMESH::type().

Referenced by BMESH::is_surface(), and BMESH::print().

bool BMESH::is_points  )  const [inline, inherited]
 

Definition at line 429 of file bmesh.H.

References BMESH::POINTS, and BMESH::type().

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

bool BMESH::is_polylines  )  const [inline, inherited]
 

Definition at line 430 of file bmesh.H.

References BMESH::POLYLINES, and BMESH::type().

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

bool BMESH::is_surface  )  const [inline, inherited]
 

Definition at line 433 of file bmesh.H.

References BMESH::is_closed_surface(), and BMESH::is_open_surface().

void BMESH::kill_component Bvert start_vert  )  [virtual, inherited]
 

wipe out a connected component containing the start vertex:

Definition at line 4341 of file bmesh.C.

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

Ledge* LMESH::le int  k  )  const [inline]
 

Definition at line 40 of file lmesh.H.

References BMESH::_edges.

Referenced by delete_subdiv_mesh(), and mark_all_dirty().

Lface* LMESH::lf int  k  )  const [inline]
 

Definition at line 41 of file lmesh.H.

References BMESH::_faces.

Referenced by delete_subdiv_mesh().

Wpt LMESH::limit_loc CBvert v  )  const [inline]
 

Definition at line 106 of file lmesh.H.

References _loc_calc, and SubdivCalc< T >::limit_val().

SubdivLocCalc* LMESH::loc_calc  )  const [inline]
 

Definition at line 100 of file lmesh.H.

References _loc_calc.

Referenced by refine().

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 BMESH::read_jot_stream().

Bedge * BMESH::lookup_edge const Point2i p  )  [inherited]
 

Definition at line 215 of file bmesh.C.

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

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

Bface * BMESH::lookup_face const Point3i p  )  [inherited]
 

Definition at line 384 of file bmesh.C.

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

Referenced by BMESH::add_face(), and BMESH::get_sec_faces().

Lvert* LMESH::lv int  k  )  const [inline]
 

Definition at line 39 of file lmesh.H.

References BMESH::_verts.

Referenced by clear_creases(), delete_subdiv_mesh(), mark_all_dirty(), and operator=().

void BMESH::make_patch_if_needed  )  [inherited]
 

Definition at line 1297 of file bmesh.C.

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

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

void LMESH::mark_all_dirty  ) 
 

Definition at line 902 of file lmesh.C.

References _subdiv_mesh, Bsimplex::clear_bit(), le(), lv(), Lvert::mark_dirty(), BMESH::nedges(), BMESH::nverts(), Ledge::SUBDIV_LOC_VALID_BIT, and Lvert::SUBDIV_LOC_VALID_BIT.

Referenced by set_subdiv_color_calc(), and set_subdiv_loc_calc().

int LMESH::max_cur_level  )  const [inline]
 

Definition at line 188 of file lmesh.H.

References _max_cur_level(), and control_mesh().

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

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 merge().

static LMESHptr LMESH::merge LMESHptr  m1,
LMESHptr  m2
[inline, static]
 

Definition at line 160 of file lmesh.H.

References BMESH::merge().

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

Definition at line 2574 of file bmesh.C.

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

Referenced by BMESH::remove_duplicate_vertices(), and BMESH::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  )  [inherited]
 

Definition at line 2405 of file bmesh.C.

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

Bvert * BMESH::nearest_vert CWpt  )  [inherited]
 

Definition at line 2425 of file bmesh.C.

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

int BMESH::nedges  )  const [inline, inherited]
 

Number of edges.

Definition at line 138 of file bmesh.H.

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

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

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

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

Reimplemented from BMESH.

Definition at line 182 of file lmesh.C.

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

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 BMESH::get_edge_strip(), and BMESH::new_edge_strip().

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

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

Reimplemented from BMESH.

Definition at line 203 of file lmesh.H.

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

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

Reimplemented from BMESH.

Definition at line 194 of file lmesh.C.

Patch * LMESH::new_patch  )  [virtual]
 

Reimplemented from BMESH.

Definition at line 170 of file lmesh.C.

References BMESH::_drawables, BMESH::_patches, and is_control_mesh().

Referenced by Lpatch::get_child().

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

Reimplemented from BMESH.

Definition at line 201 of file lmesh.H.

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

Convert the given world-space point to a vertex.

Reimplemented from BMESH.

Definition at line 188 of file lmesh.C.

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

Reimplemented from BMESH.

Definition at line 204 of file lmesh.H.

int BMESH::nfaces  )  const [inline, inherited]
 

Number of faces.

Definition at line 140 of file bmesh.H.

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

Referenced by allocate_subdiv_mesh(), BMESH::build_zcross_strips(), BMESH::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(), delete_subdiv_mesh(), Patch::edges(), ZCrossExtractor< ScalarField, Confidence, FaceGenerator >::extract(), Patch::get_faces(), BMESH::get_faces(), BMESH::kill_component(), ZCrossRandFaceGenerator::operator()(), ZCrossAllFaceGenerator::operator()(), BMESH::operator=(), BMESH::pick_face(), BMESH::put_faces(), BMESH::put_sec_faces(), BMESH::put_texcoords2(), BMESH::put_uvfaces(), Patch::read_stream(), BMESH::reverse(), size(), BMESH::size(), BMESH::triangulate(), Patch::verts(), write_faces(), BMESH::write_faces(), Patch::write_stream(), and BMESH::write_texcoords2().

int BMESH::npatches  )  const [inline, inherited]
 

Number of patches.

Definition at line 142 of file bmesh.H.

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

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

int BMESH::nverts  )  const [inline, inherited]
 

Number of vertices.

Definition at line 136 of file bmesh.H.

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

Referenced by allocate_subdiv_mesh(), 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(), delete_subdiv_mesh(), BMESHcurvature_data::diagonalize_vertex_curvatures(), BMESH::get_bb(), BMESH::get_colors(), BMESH::get_enclosed_verts(), BMESH::get_vertices(), BMESH::has_vert_colors(), BMESH::kill_component(), mark_all_dirty(), operator=(), BMESH::operator=(), BMESH::put_colors(), BMESH::put_vertices(), BMESH::read_colors(), BMESH::recenter(), OBJReaderImpl::set_vert_normals(), size(), BMESH::size(), BMESH::transform(), BMESH::triangulate(), BMESH::try_collapse_edge(), BMESH::vertices(), BMESH::write_colors(), BMESH::write_vertices(), and write_verts().

CWtransf & BMESH::obj_to_ndc  )  const [inherited]
 

Definition at line 1266 of file bmesh.C.

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

Referenced by Bvert::ndc(), Patch::obj_to_ndc(), and BMESH::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, inherited]
 

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 BMESH::add_face(), BMESH::add_vertex(), BMESH::changed(), err_msg(), Patch::mesh(), BMESH::new_patch(), and BMESH::TOPOLOGY_CHANGED.

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

Reimplemented from BMESH.

Definition at line 287 of file lmesh.C.

References BMESH::operator=().

BMESH & LMESH::operator= CLMESH &  m  )  [virtual]
 

Definition at line 272 of file lmesh.C.

References lv(), BMESH::nverts(), BMESH::operator=(), and Lvert::set_corner().

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

Reimplemented from BMESH.

Definition at line 266 of file lmesh.C.

References BMESH::operator=().

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

Definition at line 59 of file ref.H.

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

LMESH* LMESH::parent_mesh int  k  )  const [inline]
 

Definition at line 73 of file lmesh.H.

References _parent_mesh, parent_mesh(), and subdiv_mesh().

LMESH* LMESH::parent_mesh  )  const [inline]
 

Definition at line 58 of file lmesh.H.

References _parent_mesh.

Referenced by get_parent_faces(), parent_mesh(), Lpatch::put_parent_patch(), Lvert::smooth_loc_from_parent(), and subdiv_mesh().

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

Shorthand for accessing kth patch.

Definition at line 154 of file bmesh.H.

References BMESH::_patches.

Referenced by BMESH::get_patches(), and BMESH::make_patch_if_needed().

CPatch_list& BMESH::patches  )  const [inline, inherited]
 

List of patches.

Definition at line 160 of file bmesh.H.

References BMESH::_patches.

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

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

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 BMESH::bf(), debug, err_msg(), Config::get_var_bool(), BMESH::inv_xform(), BMESH::nfaces(), and BMESH::xform().

Referenced by BMESH::intersect().

double BMESH::pix_size  )  const [inline, inherited]
 

Approximate pixel extent based on bounding box.

Definition at line 410 of file bmesh.H.

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

Referenced by Patch::pix_size().

virtual void LMESH::pop_render_style  )  [inline, virtual]
 

Reimplemented from BMESH.

Definition at line 271 of file lmesh.H.

References control_mesh().

void LMESH::print  )  const [virtual]
 

Print info about this mesh to the error text stream

Reimplemented from BMESH.

Definition at line 355 of file lmesh.C.

References _subdiv_level, err_msg(), and BMESH::print().

virtual void LMESH::push_render_style Cstr_ptr &  s  )  [inline, virtual]
 

Reimplemented from BMESH.

Definition at line 268 of file lmesh.H.

References control_mesh().

void BMESH::put_colors TAGformat  )  const [virtual, inherited]
 

Definition at line 3669 of file bmesh.C.

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

Referenced by BMESH::tags().

void BMESH::put_creases TAGformat  )  const [virtual, inherited]
 

Definition at line 3497 of file bmesh.C.

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

Referenced by BMESH::tags().

void BMESH::put_faces TAGformat  )  const [virtual, inherited]
 

Definition at line 3289 of file bmesh.C.

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

Referenced by BMESH::tags().

void BMESH::put_patches TAGformat  )  const [virtual, inherited]
 

Definition at line 3689 of file bmesh.C.

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

Referenced by BMESH::tags().

void BMESH::put_polylines TAGformat  )  const [virtual, inherited]
 

Definition at line 3519 of file bmesh.C.

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

Referenced by BMESH::tags().

void BMESH::put_render_style TAGformat  )  const [virtual, inherited]
 

Definition at line 3648 of file bmesh.C.

Referenced by BMESH::tags().

void BMESH::put_sec_faces TAGformat  )  const [virtual, inherited]
 

Definition at line 3562 of file bmesh.C.

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

Referenced by BMESH::tags().

void BMESH::put_texcoords2 TAGformat  )  const [virtual, inherited]
 

Definition at line 3622 of file bmesh.C.

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

Referenced by BMESH::tags().

void BMESH::put_uvfaces TAGformat  )  const [virtual, inherited]
 

Definition at line 3432 of file bmesh.C.

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

Referenced by BMESH::tags().

void BMESH::put_vertices TAGformat  )  const [virtual, inherited]
 

Definition at line 3257 of file bmesh.C.

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

Referenced by BMESH::tags().

void BMESH::put_weak_edges TAGformat  )  const [virtual, inherited]
 

Definition at line 3540 of file bmesh.C.

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

Referenced by BMESH::tags().

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

Definition at line 1677 of file bmesh.C.

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

Referenced by BMESH::read_include(), and BMESH::read_stream().

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

Definition at line 1886 of file bmesh.C.

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

Referenced by BMESH::read_blocks().

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

Definition at line 1812 of file bmesh.C.

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

Referenced by BMESH::read_stream().

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

Definition at line 1786 of file bmesh.C.

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

Referenced by BMESH::read_stream().

bool BMESH::read_file char *  filename  )  [inherited]
 

Definition at line 1550 of file bmesh.C.

References BMESH::read_jot_file().

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

Definition at line 1731 of file bmesh.C.

References err_msg().

Referenced by BMESH::read_stream(), and BMESH::read_update_stream().

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

Definition at line 1716 of file bmesh.C.

References err_ret(), and BMESH::read_blocks().

Referenced by BMESH::read_blocks().

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

Definition at line 1447 of file bmesh.C.

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

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

LMESHptr LMESH::read_jot_file char *  filename  )  [static]
 

Definition at line 1179 of file lmesh.C.

References bmesh_to_lmesh(), and BMESH::read_jot_file().

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

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(), BMESH::read_jot_file(), and read_jot_stream().

LMESHptr LMESH::read_jot_stream istream &  is  )  [static]
 

Definition at line 1170 of file lmesh.C.

References bmesh_to_lmesh(), and BMESH::read_jot_stream().

Referenced by main().

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

Definition at line 1936 of file bmesh.C.

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

Referenced by BMESH::read_blocks().

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

Definition at line 1858 of file bmesh.C.

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

Referenced by BMESH::read_stream().

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

Definition at line 1617 of file bmesh.C.

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

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

Definition at line 1900 of file bmesh.C.

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

Referenced by BMESH::read_blocks().

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

Definition at line 1570 of file bmesh.C.

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

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

Definition at line 1596 of file bmesh.C.

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

Referenced by BMESH::read_update_file().

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

Definition at line 1761 of file bmesh.C.

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

Referenced by BMESH::read_stream(), and BMESH::read_update_stream().

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

Definition at line 1836 of file bmesh.C.

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

Referenced by BMESH::read_blocks().

void BMESH::recenter  )  [inherited]
 

Definition at line 3984 of file bmesh.C.

References center(), BMESH::changed(), err_msg(), BMESH::get_bb(), Config::get_var_dbl(), max(), BMESH::nverts(), points, MOD::tick(), BMESH::transform(), and BMESH::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().

void LMESH::refine  ) 
 

Definition at line 828 of file lmesh.C.

References _cur_mesh, is_control_mesh(), subdiv_level(), and update_subdivision().

Referenced by refine(), and subdivide_in_place().

int BMESH::rel_cur_level  )  const [inline, inherited]
 

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

Definition at line 499 of file bmesh.H.

References BMESH::cur_level(), and BMESH::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, inherited]
 

Definition at line 500 of file bmesh.H.

References BMESH::edit_level(), and BMESH::subdiv_level().

void LMESH::rem_dirty_vert Lvert v  )  [inline]
 

Definition at line 148 of file lmesh.H.

References _dirty_verts, Bsimplex::clear_bit(), Lvert::DIRTY_VERT_LIST_BIT, and Bsimplex::is_set().

Referenced by remove_vertex().

void BMESH::remove_duplicate_vertices bool  keep_vert = 1  )  [inherited]
 

Definition at line 2623 of file bmesh.C.

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

int LMESH::remove_edge Bedge e  )  [virtual]
 

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

Reimplemented from BMESH.

Definition at line 222 of file lmesh.C.

References Ledge::delete_subdiv_elements(), Bsimplex::mesh(), and BMESH::remove_edge().

Referenced by Lface::delete_subdiv_elements().

int BMESH::remove_edges CBedge_list edges  )  [virtual, inherited]
 

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 BMESH::remove_edge().

int LMESH::remove_face Bface f  )  [virtual]
 

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

Reimplemented from BMESH.

Definition at line 236 of file lmesh.C.

References Lface::delete_subdiv_elements(), Bsimplex::mesh(), and BMESH::remove_face().

Referenced by Lface::delete_subdiv_elements().

int BMESH::remove_faces CBface_list faces  )  [virtual, inherited]
 

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 BMESH::remove_face().

bool BMESH::remove_patch int  k  )  [protected, inherited]
 

Definition at line 1312 of file bmesh.C.

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

Referenced by BMESH::clean_patches().

int LMESH::remove_vertex Bvert v  )  [virtual]
 

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

Reimplemented from BMESH.

Definition at line 207 of file lmesh.C.

References Lvert::DEAD_BIT, Bsimplex::mesh(), rem_dirty_vert(), BMESH::remove_vertex(), and Bsimplex::set_bit().

int BMESH::remove_verts CBvert_list verts  )  [virtual, inherited]
 

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 BMESH::remove_vertex().

virtual Cstr_ptr& LMESH::render_style  )  const [inline, virtual]
 

Reimplemented from BMESH.

Definition at line 274 of file lmesh.H.

References control_mesh().

void BMESH::reverse  )  [inline, inherited]
 

Reverse orientation of all the faces.

Definition at line 440 of file bmesh.H.

References BMESH::bf(), BMESH::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 LMESH::send_update_notification  )  [protected, virtual]
 

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

Reimplemented from BMESH.

Definition at line 1142 of file lmesh.C.

References BMESH::send_update_notification(), and update().

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

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 BMESH::_center_of_interest.

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

int BMESH::set_crease int  i,
int  j
const [inherited]
 

Definition at line 699 of file bmesh.C.

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

Referenced by BMESH::get_creases(), and BMESH::read_creases().

void LMESH::set_cur_mesh LMESH cur  )  [protected]
 

Definition at line 813 of file lmesh.C.

References _cur_mesh, changed(), err_msg(), BMESH::is_center_of_interest(), is_control_mesh(), BMESH::RENDERING_CHANGED, and BMESH::set_center_of_interest().

Referenced by delete_subdiv_mesh(), unrefine(), and update_subdivision().

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.

bool LMESH::set_edit_level int  level  )  [virtual]
 

Definition at line 887 of file lmesh.C.

References control_mesh(), dec_edit_level(), edit_level(), and inc_edit_level().

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

Definition at line 134 of file body.H.

References BODY::_factory.

void LMESH::set_geom GEOM geom  )  [virtual]
 

Reimplemented from BMESH.

Definition at line 102 of file lmesh.C.

References _subdiv_mesh, and BMESH::set_geom().

void LMESH::set_parent LMESH parent  )  [inline, protected]
 

Definition at line 311 of file lmesh.H.

References _parent_mesh, _subdiv_level, and subdiv_level().

int BMESH::set_patch_boundary int  i,
int  j
const [inherited]
 

Definition at line 721 of file bmesh.C.

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

virtual void LMESH::set_render_style Cstr_ptr &  s  )  [inline, virtual]
 

Reimplemented from BMESH.

Definition at line 265 of file lmesh.H.

References control_mesh().

void LMESH::set_subdiv_color_calc SubdivColorCalc c  ) 
 

Definition at line 75 of file lmesh.C.

References _color_calc, _subdiv_mesh, changed(), SubdivCalc< T >::dup(), is_control_mesh(), mark_all_dirty(), and BMESH::RENDERING_CHANGED.

void LMESH::set_subdiv_loc_calc SubdivLocCalc c  ) 
 

Definition at line 51 of file lmesh.C.

References _loc_calc, _subdiv_mesh, changed(), SubdivCalc< T >::dup(), is_control_mesh(), mark_all_dirty(), and BMESH::RENDERING_CHANGED.

Referenced by cycle_subdiv_loc_calc().

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, inherited]
 

Definition at line 620 of file bmesh.H.

int BMESH::set_weak_edge int  i,
int  j
const [inherited]
 

Definition at line 710 of file bmesh.C.

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

Referenced by BMESH::get_weak_edges(), and BMESH::read_weak_edges().

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

Definition at line 758 of file bmesh.H.

References BMESH::_show_secondary_faces.

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

EdgeStrip BMESH::sil_strip  )  [inherited]
 

extract silhouette edge strip and return a copy of it:

Definition at line 1234 of file bmesh.C.

References BMESH::_sils, and BMESH::build_sil_strips().

int LMESH::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 from BMESH.

Definition at line 337 of file lmesh.C.

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

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, inherited]
 

Definition at line 480 of file bmesh.C.

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

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

split mesh into connected components:

Definition at line 4185 of file bmesh.C.

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

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

Definition at line 477 of file bmesh.H.

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

Bvert * BMESH::split_edge Bedge edge,
CWpt new_pt
[inherited]
 

Definition at line 2677 of file bmesh.C.

References BMESH::add_edge(), BMESH::add_face(), BMESH::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 BMESH::split_edge(), BMESH::split_faces(), and BMESH::split_tris().

Bvert * BMESH::split_face Bface face,
CWpt pt
[inherited]
 

Definition at line 2781 of file bmesh.C.

References BMESH::add_edge(), BMESH::add_face(), BMESH::add_vertex(), UVdata::bc2uv(), BMESH::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 BMESH::split_faces().

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

Definition at line 2844 of file bmesh.C.

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

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

Definition at line 4287 of file bmesh.C.

References Bface::e(), ARRAY< T >::empty(), BMESH::faces(), Bvert::get_faces(), Bvert::loc(), Bvert::lookup_edge(), ARRAY< T >::num(), BMESH::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 BMESH::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().

COLOR LMESH::subdiv_color CBedge e  )  const [inline]
 

Definition at line 110 of file lmesh.H.

References _color_calc, and SubdivCalc< T >::subdiv_val().

COLOR LMESH::subdiv_color CBvert v  )  const [inline]
 

Definition at line 109 of file lmesh.H.

References _color_calc, and SubdivCalc< T >::subdiv_val().

int LMESH::subdiv_edge_scale  )  const [inline]
 

Definition at line 97 of file lmesh.H.

References cur_level().

int LMESH::subdiv_face_scale  )  const [inline]
 

Definition at line 93 of file lmesh.H.

References cur_level().

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

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

Reimplemented from BMESH.

Definition at line 184 of file lmesh.H.

References _subdiv_level.

Referenced by Lface::bc_to_level(), debug_sel_faces_per_level(), refine(), set_parent(), subdiv_level(), and update_subdivision().

Wpt LMESH::subdiv_loc CBedge e  )  const [inline]
 

Definition at line 108 of file lmesh.H.

References _loc_calc, and SubdivCalc< T >::subdiv_val().

Wpt LMESH::subdiv_loc CBvert v  )  const [inline]
 

Definition at line 107 of file lmesh.H.

References _loc_calc, and SubdivCalc< T >::subdiv_val().

Referenced by Lvert::smooth_loc_from_parent().

LMESH* LMESH::subdiv_mesh int  k  )  const [inline]
 

Definition at line 62 of file lmesh.H.

References _subdiv_mesh, and parent_mesh().

LMESH* LMESH::subdiv_mesh  )  const [inline]
 

Definition at line 55 of file lmesh.H.

References _subdiv_mesh.

Referenced by Lface::allocate_subdiv_elements(), Ledge::allocate_subdiv_elements(), Lvert::allocate_subdiv_vert(), debug_sel_faces_per_level(), Lface::delete_subdiv_elements(), Lpatch::get_child(), get_subdiv_faces(), get_subdiv_mesh(), parent_mesh(), MeshGlobal::selected_edges_all_levels(), MeshGlobal::selected_verts_all_levels(), Lpatch::set_parent(), and update_subdivision().

void LMESH::subdivide_in_place  ) 
 

Definition at line 764 of file lmesh.C.

References _subdiv_mesh, err_msg(), is_control_mesh(), and refine().

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

Reimplemented from BMESH.

Definition at line 284 of file lmesh.H.

CTAGlist & LMESH::tags  )  const [virtual]
 

Reimplemented from BMESH.

Definition at line 1188 of file lmesh.C.

References BMESH::tags().

int BMESH::tex_already_exists Cstr_ptr &  name  )  const [inherited]
 

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

Definition at line 4380 of file bmesh.C.

References BMESH::patches().

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

Definition at line 519 of file bmesh.H.

References BMESH::_freeze_sils.

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

Definition at line 520 of file bmesh.H.

References BMESH::_random_sils.

Referenced by toggle_random_sils().

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

Definition at line 200 of file bmesh.H.

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

Referenced by toggle_sil_frame().

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

Definition at line 759 of file bmesh.H.

References BMESH::_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 LMESH::transform CWtransf xform,
CMOD &  m
[virtual]
 

Reimplemented from BMESH.

Definition at line 383 of file lmesh.C.

References _subdiv_mesh, and BMESH::transform().

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

Reimplemented from BODY.

Definition at line 1428 of file bmesh.C.

References BMESH::_faces, BMESH::_verts, BMESH::bf(), BMESH::bv(), ARRAY< T >::clear(), mlib::Pointlist< L, P, V, S >::clear(), Bvert::loc(), BMESH::nfaces(), ARRAY< T >::num(), BMESH::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
[inherited]
 

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(), BMESH::merge_vertex(), Bvert::nbr(), BMESH::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
[inherited]
 

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, inherited]
 

Definition at line 424 of file bmesh.H.

References BMESH::_type, and BMESH::_type_valid.

Referenced by BMESH::is_closed_surface(), BMESH::is_open_surface(), BMESH::is_points(), and BMESH::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  )  [inherited]
 

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

Definition at line 3081 of file bmesh.C.

References BMESH::_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().

void LMESH::unrefine  ) 
 

Definition at line 848 of file lmesh.C.

References _cur_mesh, _parent_mesh, cur_level(), dec_edit_level(), edit_level(), is_control_mesh(), and set_cur_mesh().

void LMESH::update  )  [inline]
 

Definition at line 132 of file lmesh.H.

References _cur_mesh, cur_level(), and update_subdivision().

Referenced by cycle_subdiv_loc_calc(), draw(), get_bb(), and send_update_notification().

static bool LMESH::update_subdivision CBvert_list verts,
int  k = 1
[inline, static]
 

Definition at line 127 of file lmesh.H.

References Bvert_list::one_ring_faces(), and update_subdivision().

bool LMESH::update_subdivision CBface_list faces,
int  k = 1
[static]
 

Definition at line 719 of file lmesh.C.

References allocate_subdiv_mesh(), BMESHobs::broadcast_update_request(), changed(), debug, ARRAY< T >::empty(), err_adv(), get_subdiv_faces(), Config::get_var_bool(), SimplexArray< L, T >::mesh(), ARRAY< T >::num(), Bface_list::one_ring_faces(), Bface_list::secondary_faces(), subdiv_mesh(), update_faces(), update_subdivision(), and BMESH::VERT_POSITIONS_CHANGED.

bool LMESH::update_subdivision int  level  ) 
 

Definition at line 591 of file lmesh.C.

References _dirty_verts, BMESH::_faces, _loc_calc, _subdiv_level, _subdiv_mesh, BMESH::_verts, allocate_subdiv_mesh(), BMESHobs::broadcast_update_request(), changed(), Bsimplex::clear_bit(), control_mesh(), cur_mesh(), debug, debug_check_verts(), Lvert::DIRTY_VERT_LIST_BIT, ARRAY< T >::empty(), err_adv(), get_name(), Config::get_var_bool(), is_control_mesh(), SubdivCalc< T >::name(), ARRAY< T >::num(), ARRAY< T >::pop(), BMESH::RENDERING_CHANGED, set_cur_mesh(), VIEW::stamp(), subdiv_level(), and update_sub().

Referenced by inc_edit_level(), refine(), update(), update_subdivision(), and update_subdivision().

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

Reimplemented from RefImageClient.

Definition at line 1354 of file bmesh.C.

References BMESH::_drawables, BMESH::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, inherited]
 

Definition at line 543 of file bmesh.H.

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

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

Definition at line 540 of file bmesh.H.

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

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

Definition at line 537 of file bmesh.H.

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

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

uint BMESH::version  )  const [inline, inherited]
 

Definition at line 667 of file bmesh.H.

References BMESH::_version.

Referenced by Patch::stamp().

CWpt_list & BMESH::vertices  )  [virtual, inherited]
 

Implements BODY.

Definition at line 1416 of file bmesh.C.

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

CBvert_list& BMESH::verts  )  const [inline, inherited]
 

Vertices of this mesh.

Definition at line 114 of file bmesh.H.

References BMESH::_verts.

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

double LMESH::volume  )  const [virtual]
 

Sum up the volume using the divergence theorem.

Reimplemented from BMESH.

Definition at line 136 of file lmesh.C.

References _cur_mesh.

Referenced by refine().

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

Definition at line 1993 of file bmesh.C.

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

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

Definition at line 2065 of file bmesh.C.

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

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

Definition at line 2052 of file bmesh.C.

References BMESH::bf(), and BMESH::nfaces().

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

Definition at line 1942 of file bmesh.C.

References err_msg(), and BMESH::format().

Referenced by write(), and write_xformed().

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

Reimplemented from BMESH.

Definition at line 293 of file lmesh.C.

References control_mesh().

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

Definition at line 2131 of file bmesh.C.

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

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

Definition at line 1960 of file bmesh.C.

References BMESH::format().

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

Definition at line 2016 of file bmesh.C.

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

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

Definition at line 1972 of file bmesh.C.

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

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

Definition at line 2089 of file bmesh.C.

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

CWtransf & BMESH::xform  )  const [inherited]
 

Transformation from object to world coordinates for this mesh.

Definition at line 1252 of file bmesh.C.

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

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

double BMESH::z_span  )  const [inherited]
 

Definition at line 4392 of file bmesh.C.

double BMESH::z_span double &  zmin,
double &  zmax
const [inherited]
 

Definition at line 4399 of file bmesh.C.

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


Member Data Documentation

double BMESH::_avg_edge_len [protected, inherited]
 

Definition at line 747 of file bmesh.H.

Referenced by BMESH::avg_len().

bool BMESH::_avg_edge_len_valid [protected, inherited]
 

Definition at line 748 of file bmesh.H.

Referenced by BMESH::avg_len(), and BMESH::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 BMESH::_merge(), BODY::bb_valid(), BMESH::changed(), and BMESH::get_bb().

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

Full set of tags.

Definition at line 742 of file bmesh.H.

Referenced by BMESH::tags().

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

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 BMESH::tags().

BODYptr BMESH::_body [protected, inherited]
 

Definition at line 723 of file bmesh.H.

Referenced by BMESH::_merge(), and BMESH::changed().

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

Definition at line 62 of file body.H.

Referenced by BODY::tags().

EdgeStrip* BMESH::_borders [protected, inherited]
 

border edge strips

Definition at line 700 of file bmesh.H.

Referenced by BMESH::changed(), and BMESH::get_border_strip().

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

Definition at line 753 of file bmesh.H.

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

SubdivColorCalc* LMESH::_color_calc [protected]
 

Definition at line 307 of file lmesh.H.

Referenced by allocate_subdiv_mesh(), color_calc(), set_subdiv_color_calc(), subdiv_color(), and ~LMESH().

int DATA_ITEM::_copy [protected, inherited]
 

Definition at line 197 of file data_item.H.

Referenced by DATA_ITEM::Decode().

EdgeStrip* BMESH::_creases [protected, inherited]
 

crease edge strips

Definition at line 699 of file bmesh.H.

Referenced by BMESH::changed(), and BMESH::get_crease_strip().

LMESH* LMESH::_cur_mesh [protected]
 

Definition at line 300 of file lmesh.H.

Referenced by area(), cur_mesh(), get_bb(), intersect(), LMESH(), refine(), set_cur_mesh(), unrefine(), update(), and volume().

BMESHcurvature_data* BMESH::_curv_data [mutable, protected, inherited]
 

Definition at line 738 of file bmesh.H.

Referenced by BMESH::changed(), and BMESH::curvature().

TAGlist DATA_ITEM::_DEFINERtags [protected, inherited]
 

Definition at line 198 of file data_item.H.

Referenced by DATA_ITEM::tags().

Bvert_list LMESH::_dirty_verts [protected]
 

Definition at line 303 of file lmesh.H.

Referenced by _merge(), add_dirty_vert(), dirty_verts(), dv(), rem_dirty_vert(), and update_subdivision().

bool BMESH::_draw_enabled [protected, inherited]
 

flag to enable/disable drawing

Definition at line 713 of file bmesh.H.

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

BMESHdrawable_array BMESH::_drawables [protected, inherited]
 

list of drawable things

Definition at line 711 of file bmesh.H.

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

Bedge_list BMESH::_edges [protected, inherited]
 

list of edges

Reimplemented from BODY.

Definition at line 688 of file bmesh.H.

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

int BMESH::_edit_level [protected, inherited]
 

Definition at line 751 of file bmesh.H.

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

Wpt BMESH::_eye_local [protected, inherited]
 

camera location in local coordinates

Definition at line 731 of file bmesh.H.

Referenced by BMESH::eye_local().

uint BMESH::_eye_local_stamp [protected, inherited]
 

frame number last updated.

Todo:
XXX - fix

Definition at line 732 of file bmesh.H.

Referenced by BMESH::eye_local().

Bface_list BMESH::_faces [protected, inherited]
 

list of faces

Definition at line 689 of file bmesh.H.

Referenced by BMESH::_merge(), BMESH::add_face(), BMESH::area(), BMESH::begin_index(), BMESH::bf(), BMESH::check_type(), BMESH::cur_faces(), BMESH::delete_elements(), BMESH::end_index(), BMESH::faces(), BMESH::fix_orientation(), BMESH::get_components(), BMESH::get_faces(), BMESH::get_texcoords2(), BMESH::get_zcross_strips(), BMESH::kill_component(), lf(), BMESH::make_patch_if_needed(), BMESH::nfaces(), BMESH::operator=(), BMESH::print(), BMESH::read_faces(), BMESH::read_texcoords2(), BMESH::remove_face(), BMESH::split_components(), BMESH::triangulate(), update_subdivision(), and BMESH::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, inherited]
 

Definition at line 678 of file bmesh.H.

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

GEOM* BMESH::_geom [protected, inherited]
 

Definition at line 726 of file bmesh.H.

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

TAGlist* LMESH::_lmesh_tags [protected]
 

Definition at line 330 of file lmesh.H.

Referenced by LMESH().

SubdivLocCalc* LMESH::_loc_calc [protected]
 

Definition at line 306 of file lmesh.H.

Referenced by allocate_subdiv_mesh(), limit_loc(), loc_calc(), set_subdiv_loc_calc(), subdiv_loc(), update_subdivision(), and ~LMESH().

VertStrip* BMESH::_lone_verts [protected, inherited]
 

pointer to allow subclasses

Definition at line 703 of file bmesh.H.

Referenced by BMESH::build_vert_strips().

Wtransf BMESH::_obj_to_world [protected, inherited]
 

Definition at line 734 of file bmesh.H.

Referenced by BMESH::xform().

LMESH* LMESH::_parent_mesh [protected]
 

Definition at line 299 of file lmesh.H.

Referenced by control_mesh(), is_control_mesh(), parent_mesh(), set_parent(), and unrefine().

ThreadMutex BMESH::_patch_mutex [protected, inherited]
 

Definition at line 694 of file bmesh.H.

Patch_list BMESH::_patches [protected, inherited]
 

list of patches

Definition at line 692 of file bmesh.H.

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

double BMESH::_pix_size [protected, inherited]
 

approx pix size

Definition at line 714 of file bmesh.H.

Referenced by BMESH::compute_pix_size(), and BMESH::pix_size().

uint BMESH::_pix_size_stamp [protected, inherited]
 

for caching per-frame

Definition at line 715 of file bmesh.H.

Referenced by BMESH::compute_pix_size(), and BMESH::pix_size().

Wtransf BMESH::_pm [protected, inherited]
 

object space to NDCZ space transform

Definition at line 728 of file bmesh.H.

Referenced by BMESH::obj_to_ndc().

uint BMESH::_pm_stamp [protected, inherited]
 

frame number last updated.

Todo:
XXX - fix

Definition at line 730 of file bmesh.H.

Referenced by BMESH::obj_to_ndc().

EdgeStrip* BMESH::_polylines [protected, inherited]
 

pointer to allow subclasses

Definition at line 702 of file bmesh.H.

Referenced by BMESH::build_polyline_strips().

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

Definition at line 679 of file bmesh.H.

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

LIST<str_ptr> BMESH::_render_style [protected, inherited]
 

name of render style to use (if any)

Definition at line 712 of file bmesh.H.

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

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

Definition at line 756 of file bmesh.H.

Referenced by BMESH::show_secondary_faces(), and BMESH::toggle_show_secondary_faces().

uint BMESH::_sil_stamp [protected, inherited]
 

Definition at line 707 of file bmesh.H.

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

EdgeStrip BMESH::_sils [protected, inherited]
 

silhouette edge strips

Definition at line 698 of file bmesh.H.

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

int LMESH::_subdiv_level [protected]
 

Definition at line 302 of file lmesh.H.

Referenced by cur_level(), print(), set_parent(), subdiv_level(), and update_subdivision().

LMESHptr LMESH::_subdiv_mesh [protected]
 

Definition at line 301 of file lmesh.H.

Referenced by _max_cur_level(), _merge(), allocate_subdiv_mesh(), changed(), delete_subdiv_mesh(), mark_all_dirty(), set_geom(), set_subdiv_color_calc(), set_subdiv_loc_calc(), subdiv_mesh(), subdivide_in_place(), transform(), and update_subdivision().

int BODY::_tris [protected, inherited]
 

Definition at line 36 of file body.H.

int BMESH::_type [protected, inherited]
 

type of surface from enum above

Definition at line 718 of file bmesh.H.

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

bool BMESH::_type_valid [protected, inherited]
 

true if _type has been set

Definition at line 719 of file bmesh.H.

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

uint BMESH::_version [protected, inherited]
 

increment to invalidate display lists

Definition at line 693 of file bmesh.H.

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

Wpt_list BMESH::_vert_locs [protected, inherited]
 

Definition at line 722 of file bmesh.H.

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

Bvert_list BMESH::_verts [protected, inherited]
 

list of vertices

Definition at line 687 of file bmesh.H.

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

Wtransf BMESH::_world_to_obj [protected, inherited]
 

Definition at line 735 of file bmesh.H.

Referenced by BMESH::inv_xform().

ZcrossPath BMESH::_zx_sils [protected, inherited]
 

zero-cross sil-strip class

Definition at line 697 of file bmesh.H.

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

uint BMESH::_zx_stamp [protected, inherited]
 

Definition at line 708 of file bmesh.H.

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


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