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

Bface Class Reference

#include <bface.H>

Inheritance diagram for Bface:

Inheritance graph
[legend]
Collaboration diagram for Bface:

Collaboration graph
[legend]
List of all members.

Public Types

enum  {
  BAD_BIT = Bsimplex::NEXT_AVAILABLE_BIT, VALID_NORMAL_BIT, FRONT_FACING_BIT, SECONDARY_BIT,
  NEXT_AVAILABLE_BIT
}

Public Member Functions

 Bface (Bvert *, Bvert *, Bvert *, Bedge *, Bedge *, Bedge *)
virtual ~Bface ()
Bvert * v1 () const
Bvert * v2 () const
Bvert * v3 () const
Bvert * v (int i) const
Bedge * e1 () const
Bedge * e2 () const
Bedge * e3 () const
Bedge * e (int i) const
CWvec & norm () const
CWvec & vert_normal (CBvert *v, Wvec &n) const
Wvec vert_normal (CBvert *v) const
int front_facing () const
bool zx_mark () const
bool zx_query () const
Patch * patch () const
void orient_strip (Bvert *a)
Bvert * orient_strip () const
int vindex (CBvert *v) const
bool contains (CBvert *v) const
bool contains (CBedge *e) const
bool contains (CBsimplex *s) const
bool contains (CWpt &pt, double threshold=0) const
Bvert * other_vertex (CBvert *u, CBvert *v) const
Bvert * other_vertex (CBedge *e) const
Bvert * next_vert_ccw (CBvert *u) const
Bvert * leading_vert_ccw (CBedge *e) const
Bedge * next_edge_ccw (CBedge *u) const
Bedge * edge_from_vert (CBvert *u) const
Bedge * edge_before_vert (CBvert *u) const
Bface * next_face_ccw (CBvert *u) const
Bface * nbr (int i) const
Bedge * shared_edge (CBface *f) const
Bedge * opposite_edge (CBvert *a) const
Bface * opposite_face (CBvert *a) const
Bface * next_strip_face () const
Bedge * other_edge (CBvert *v, CBedge *e) const
int orientation (CBedge *e) const
bool is_bad () const
bool is_primary () const
bool is_secondary () const
ushort layer () const
virtual void set_layer (ushort l)
virtual void make_primary ()
virtual void make_secondary ()
double area () const
double volume_el () const
double angle (CBvert *v) const
Wpt centroid () const
NDCZpt ndc_centroid () const
Wplane plane () const
double signed_area (CWpt &a, CWpt &b, CWpt &c) const
double signed_area (CNDCpt &a, CNDCpt &b, CNDCpt &c) const
double ndc_area () const
int num_weak_edges () const
bool is_quad () const
Bedge * weak_edge () const
Bface * quad_partner () const
Bface * quad_rep () const
bool is_quad_rep () const
Bvert * quad_vert () const
Bvert * quad_opposite_vert (CBvert *v) const
Bedge * opposite_quad_edge (CBedge *e) const
Bface * other_quad_face (CBedge *e) const
double quad_area () const
double quad_ndc_area () const
Wpt quad_centroid () const
NDCZpt ndc_quad_centroid () const
Wvec quad_norm () const
Wvec qnorm () const
bool get_quad_verts (Bvert *&a, Bvert *&b, Bvert *&c, Bvert *&d) const
bool get_quad_verts (Bvert_list &verts) const
bool get_quad_pts (Wpt &a, Wpt &b, Wpt &c, Wpt &d) const
bool get_quad_edges (Bedge *&ab, Bedge *&bc, Bedge *&cd, Bedge *&da) const
bool get_quad_edges (Bedge_list &edges) const
Wvec quad_tan1 () const
Wvec quad_tan2 () const
double quad_dim1 () const
double quad_dim2 () const
double quad_avg_dim () const
double quad_max_dim () const
double quad_min_dim () const
UVpt quad_bc_to_uv (CWvec &bc) const
Wpt quad_uv2loc (CUVpt &uv) const
UVpt & tex_coord (int vert_index) const
UVpt & tex_coord (CBvert *v) const
void set_tex_coords (CUVpt &a, CUVpt &b, CUVpt &c)
UVpt * tc_array () const
virtual void project_barycentric (CWpt &p, Wvec &ret) const
void project_barycentric_ndc (CNDCpt &p, Wvec &ret) const
virtual void bc2pos (CWvec &bc, Wpt &pos) const
virtual void bc2norm_blend (CWvec &bc, Wvec &vec) const
virtual Bsimplex * bc2sim (CWvec &bc) const
Bvert * bc2vert (CWvec &bc) const
Bedge * bc2edge (CWvec &bc) const
Wvec bc2norm (CWvec &bc) const
virtual bool view_intersect (CNDCpt &, Wpt &, double &, double &, Wvec &n) const
Wpt near_pt (CNDCpt &ndc, Wvec &hit_bc) const
Wpt near_pt (CNDCpt &ndc) const
bool ray_intersect (CWpt &, CWvec &, Wpt &ret, double &depth) const
bool ray_intersect (CWline &ray, Wpt &ret, double &depth) const
bool ray_intersect (CWline &ray, Wvec &bc) const
Wpt plane_intersect (CWline &line) const
Wpt plane_intersect (CNDCpt &ndc) const
Bsimplex * find_intersect_sim (CNDCpt &target, Wpt &hit_pt) const
bool ndc_contains (CNDCpt &p)
Bface * plane_walk (Bedge *cur_edge, CWplane &plane, Bedge *&next_edge) const
NDCpt nearest_pt_ndc (CNDCpt &p, Wvec &bc, int &is_on_tri) const
NDCpt nearest_pt_ndc (CNDCpt &p, Wvec &bc) const
NDCpt nearest_pt_ndc (CNDCpt &p) const
virtual Wpt nearest_pt (CWpt &p, Wvec &bc, bool &is_on_tri) const
virtual int detach ()
virtual void reverse ()
int redefine (Bvert *v, Bvert *u)
int redefine (Bvert *u, Bvert *nu, Bvert *v, Bvert *nv)
virtual bool redef2 (Bvert *a, Bvert *b)
virtual bool redef2 (Bedge *a, Bedge *b)
bool check () const
virtual void geometry_changed ()
virtual void normal_changed ()
virtual int dim () const
virtual int index () const
virtual Bface * get_face () const
virtual bool on_face (CBface *f) const
virtual Bsimplex_list neighbors () const
bool local_search (Bsimplex *&end, Wvec &final_bc, CWpt &target, Wpt &reached, Bsimplex *repeater=0, int iters=30)
void set_mesh (BMESH *mesh)
BMESH * mesh () const
uint key () const
uint flag () const
void clear_flag ()
void set_flag (uchar b=1)
void inc_flag (uint i)
bool is_set (uint b) const
bool is_clear (uint b) const
void clear_bit (uint b)
void set_bit (uint b, int x=1)
bool is_selected () const
SimplexData * find_data (uint key) const
SimplexData * find_data (Cstr_ptr &s) const
SimplexData * find_data (void *key) const
void add_simplex_data (SimplexData *sd)
void rem_simplex_data (SimplexData *sd)
const SimplexDataList * data_list () const
virtual void notify_split (Bsimplex *new_simp)
virtual void notify_xform (CWtransf &xf)
Wpt bc2pos (mlib::CWvec &bc) const
Wpt & project_to_simplex (mlib::CWpt &pos, mlib::Wpt &ret)
virtual bool near_point (CNDCpt &p, mlib::Wpt &hit) const
Bsimplex * walk_to_target (CWpt &target, CSimplexFilter &filter=SimplexFilter()) const
Bsimplex * walk_to_target (CWpt &target, Wpt &near_pt, Wvec &near_bc, CSimplexFilter &filter=SimplexFilter()) const
double dist (CWpt &p) const
double dist (CWpt &p, mlib::Wvec &bc) const
virtual Wpt nearest_pt (mlib::CWpt &p, mlib::Wvec &bc, bool &is_on_simplex) const =0
virtual Wpt nearest_pt (mlib::CWpt &p, mlib::Wvec &bc) const
virtual Wpt nearest_pt (mlib::CWpt &p) const
virtual bool on_face (const Bface *f) const =0

Static Public Member Functions

static Bsimplex * lookup (uint k)
static void clamp_barycentric (Wvec &bc)

Protected Types

enum  { FLAG_MASK = ((1 << FLAG_BITS) - 1) }

Protected Member Functions

virtual void set_patch (Patch *p)
void set_patch_index (int k)
int patch_index () const
Bsimplex * ndc_walk (CNDCpt &target, CWvec &bc=Wvec(), CNDCpt &nearest=NDCpt(), int is_on_tri=0, bool use_passed_in_params=false) const
void set_normal ()
uint generate_key ()

Static Protected Member Functions

static uint mask (uint b)

Protected Attributes

Bvert * _v1
Bvert * _v2
Bvert * _v3
Bedge * _e1
Bedge * _e2
Bedge * _e3
Wvec _norm
double _area
Patch * _patch
int _patch_index
Bvert * _orient
uint _ff_stamp
uint _zx_stamp
UVpt * _tc
ushort _layer
uint _key
uint _flag
BMESH * _mesh
SimplexDataList * _data_list

Static Protected Attributes

static IDtable _table

Friends

class Patch
ostream & operator<< (ostream &os, CBface &f)
STDdstream & operator<< (STDdstream &d, CBface &f)

Related Functions

(Note that these are not member functions.)

Patch * get_patch (CBface *f)
 Returns the Patch of a Bface.
Patch * get_ctrl_patch (CBface *f)
 Similar to get_patch(CBface*), but returns the control Patch.
Patch * get_patch (CBsimplex *s)
 Returns the Patch of a Bsimplex.
Patch * get_ctrl_patch (CBsimplex *s)
 Similar to get_patch(CBsimplex*), but returns the control Patch.

Detailed Description

Definition at line 28 of file bface.H.


Member Enumeration Documentation

anonymous enum
 

Enumerator:
BAD_BIT 
VALID_NORMAL_BIT 
FRONT_FACING_BIT 
SECONDARY_BIT 
NEXT_AVAILABLE_BIT 

Reimplemented from Bsimplex.

Definition at line 33 of file bface.H.

anonymous enum [protected, inherited]
 

Enumerator:
FLAG_MASK 

Definition at line 265 of file bsimplex.H.


Constructor & Destructor Documentation

Bface::Bface (  Bvert *  ,
Bvert *  ,
Bvert *  ,
Bedge *  ,
Bedge *  ,
Bedge * 
) 
 

Definition at line 11 of file bface.C.

References _e1, _e2, _e3, and geometry_changed().

Bface::~Bface (   )  [virtual]
 

Definition at line 31 of file bface.C.

References _patch, _patch_index, MeshGlobal::deselect(), detach(), Bsimplex::is_selected(), and Patch::remove().


Member Function Documentation

void Bsimplex::add_simplex_data (  SimplexData *  sd  )  [inherited]
 

Definition at line 90 of file bsimplex.C.

References Bsimplex::_data_list, ARRAY< T >::add(), Bsimplex::find_data(), and SimplexData::id().

Referenced by SimplexData::set().

double Bface::angle (  CBvert *  v  )  const [inline]
 

Definition at line 211 of file bface.H.

References contains(), Bvert::loc(), and next_vert_ccw().

double Bface::area (   )  const [inline]
 

Definition at line 198 of file bface.H.

References _area, Bsimplex::is_set(), and VALID_NORMAL_BIT.

Referenced by Bedge::avg_area(), BMESHcurvature_data::compute_corner_areas(), get_area(), project_barycentric(), quad_area(), and weighted_vnorm().

Bedge* Bface::bc2edge (  CWvec &  bc  )  const [inline]
 

Definition at line 450 of file bface.H.

References min(), opposite_edge(), and v().

Wvec Bface::bc2norm (  CWvec &  bc  )  const [inline]
 

Definition at line 461 of file bface.H.

References bc2sim(), is_edge(), is_vert(), and norm().

virtual void Bface::bc2norm_blend (  CWvec &  bc,
Wvec &  vec
)  const [inline, virtual]
 

Definition at line 425 of file bface.H.

References _v1, _v2, _v3, mlib::Vec3< V >::normalized(), v1(), v2(), v3(), and vert_normal().

Wpt Bsimplex::bc2pos (  mlib::CWvec &  bc  )  const [inline, inherited]
 

Definition at line 146 of file bsimplex.H.

References Bsimplex::bc2pos().

virtual void Bface::bc2pos (  CWvec &  bc,
Wpt &  pos
)  const [inline, virtual]
 

Implements Bsimplex.

Definition at line 421 of file bface.H.

References _v1, _v2, _v3, and Bvert::loc().

Referenced by ZcrossTexture::draw(), and nearest_pt().

Bsimplex * Bface::bc2sim (  CWvec &  bc  )  const [virtual]
 

Implements Bsimplex.

Definition at line 443 of file bface.C.

References _e1, _e2, _e3, _v1, _v2, and _v3.

Referenced by bc2norm(), local_search(), and ndc_walk().

Bvert* Bface::bc2vert (  CWvec &  bc  )  const [inline]
 

Definition at line 438 of file bface.H.

References max(), and v().

Wpt Bface::centroid (   )  const [inline]
 

Definition at line 219 of file bface.H.

References _v1, _v2, _v3, and Bvert::loc().

Referenced by map_centroid().

bool Bface::check (   )  const
 

Definition at line 713 of file bface.C.

References _e1, _e2, _e3, _v1, _v2, _v3, and Bvert::lookup_edge().

Referenced by Bedge::do_swap().

static void Bsimplex::clamp_barycentric (  Wvec &  bc  )  [inline, static, inherited]
 

Definition at line 162 of file bsimplex.H.

References max(), and mlib::Vec3< V >::set().

Referenced by Bsimplex::project_to_simplex().

void Bsimplex::clear_bit (  uint  b  )  [inline, inherited]
 

Definition at line 103 of file bsimplex.H.

References Bsimplex::_flag, and Bsimplex::mask().

Referenced by Ledge::crease_changed(), Bvert::crease_changed(), Bvert::degree_changed(), Lface::delete_subdiv_elements(), Ledge::delete_subdiv_elements(), Lvert::delete_subdiv_vert(), MeshGlobal::deselect(), Bedge::faces_changed(), geometry_changed(), make_primary(), LMESH::mark_all_dirty(), Lvert::mark_dirty(), Lvert::mask_changed(), Ledge::mask_changed(), Bvert::normal_changed(), Bedge::normal_changed(), LMESH::rem_dirty_vert(), Bsimplex::set_bit(), Lvert::set_corner(), Ledge::set_crease(), Bvert::star_changed(), Ledge::subdiv_color_changed(), Lvert::subdiv_loc_changed(), Ledge::subdiv_loc_changed(), Lvert::subdiv_vert_deleted(), Ledge::subdiv_vert_deleted(), and LMESH::update_subdivision().

void Bsimplex::clear_flag (   )  [inline, inherited]
 

Definition at line 92 of file bsimplex.H.

References Bsimplex::_flag, and Bsimplex::FLAG_MASK.

Referenced by Bface_list::clear_edge_flags(), Bvert::clear_flag02(), Bedge::clear_flag02(), Bface_list::clear_vert_flags(), Bedge_list::clear_vert_flags(), BMESH::get_enclosed_verts(), get_parent_faces(), and Bsimplex::set_flag().

bool Bface::contains (  CWpt &  pt,
double  threshold = 0
)  const
 

Definition at line 138 of file bface.C.

References mlib::cross(), Bsimplex::dist(), Bvert::loc(), mlib::Vec4::normalized(), plane(), v1(), v2(), and v3().

bool Bface::contains (  CBsimplex *  s  )  const [inline]
 

Definition at line 96 of file bface.H.

References contains(), Bedge::dim(), and Bsimplex::dim().

bool Bface::contains (  CBedge *  e  )  const [inline]
 

Definition at line 95 of file bface.H.

References _e1, _e2, and _e3.

bool Bface::contains (  CBvert *  v  )  const [inline]
 

Definition at line 94 of file bface.H.

References _v1, _v2, and _v3.

Referenced by Bedge::add_multi(), Bedge::add_primary(), angle(), contains(), Bedge::demote(), get_other_face(), UVdata::get_uv(), Bedge::is_multi(), Bedge::lookup_face(), mark_pushed_faces(), Bvert::on_face(), Bedge::operator+=(), orientation(), other_vertex(), Bedge::promote(), quad_bc_to_uv(), quad_opposite_vert(), redef2(), redefine(), rewind_cw(), UVdata::set(), UVdata::set_subdiv_uv(), vert_normal(), and weighted_vnorm().

const SimplexDataList* Bsimplex::data_list (   )  const [inline, inherited]
 

Definition at line 132 of file bsimplex.H.

References Bsimplex::_data_list.

Referenced by num_data().

int Bface::detach (   )  [virtual]
 

Reimplemented in Lface.

Definition at line 667 of file bface.C.

References _e1, _e2, and _e3.

Referenced by Lface::detach(), BMESH::split_edge(), BMESH::split_face(), BMESH::try_swap_edge(), and ~Bface().

virtual int Bface::dim (   )  const [inline, virtual]
 

Implements Bsimplex.

Definition at line 586 of file bface.H.

double Bsimplex::dist (  CWpt &  p,
mlib::Wvec &  bc
)  const [inline, inherited]
 

Definition at line 216 of file bsimplex.H.

References mlib::Point3< P, V >::dist(), and Bsimplex::nearest_pt().

double Bsimplex::dist (  CWpt &  p  )  const [inline, inherited]
 

Definition at line 215 of file bsimplex.H.

References mlib::Point3< P, V >::dist(), and Bsimplex::nearest_pt().

Referenced by contains().

Bedge* Bface::e (  int  i  )  const [inline]
 

Definition at line 56 of file bface.H.

References _e1.

Referenced by Bface_list::clear_edge_flags(), Bface_list::get_edges(), Bface_list::grow_connected(), BMESH::grow_oriented_face_lists(), Lface::le(), local_search(), nbr(), ndc_walk(), next_strip_face(), opposite_face(), plane_walk(), quad_opposite_vert(), UVMapping::recurse(), UVMapping::recurse_wrapping(), BMESH::split_tris(), ZcrossPath::start_sil(), and vert_normal().

Bedge* Bface::e1 (   )  const [inline]
 

Definition at line 53 of file bface.H.

References _e1.

Referenced by avg_edge_len(), avg_strong_edge_len(), demote(), get_quad_edges(), Lface::parent_bc(), promote(), UVMapping::recurse(), UVMapping::recurse_wrapping(), redefine(), and UVdata::UVdata().

Bedge* Bface::e2 (   )  const [inline]
 

Definition at line 54 of file bface.H.

References _e2.

Referenced by avg_edge_len(), avg_strong_edge_len(), demote(), get_quad_edges(), Lface::parent_bc(), promote(), UVMapping::recurse(), UVMapping::recurse_wrapping(), redefine(), and UVdata::UVdata().

Bedge* Bface::e3 (   )  const [inline]
 

Definition at line 55 of file bface.H.

References _e3.

Referenced by avg_edge_len(), avg_strong_edge_len(), demote(), get_quad_edges(), Lface::parent_bc(), promote(), UVMapping::recurse(), UVMapping::recurse_wrapping(), redefine(), and UVdata::UVdata().

Bedge* Bface::edge_before_vert (  CBvert *  u  )  const [inline]
 

Definition at line 131 of file bface.H.

References _e1, _e2, _e3, _v1, _v2, and _v3.

Referenced by Ledge::get_sub_faces(), next_face_ccw(), UVdata::set_subdiv_uv(), vert_normal(), and vert_normal().

Bedge* Bface::edge_from_vert (  CBvert *  u  )  const [inline]
 

Definition at line 128 of file bface.H.

References _e1, _e2, _e3, _v1, _v2, and _v3.

Referenced by TriStrip::backup_strip(), Bedge::ccw_face(), Ledge::get_sub_faces(), rewind_cw(), UVdata::set_subdiv_uv(), and vert_normal().

SimplexData* Bsimplex::find_data (  void *  key  )  const [inline, inherited]
 

Definition at line 123 of file bsimplex.H.

References Bsimplex::find_data().

SimplexData* Bsimplex::find_data (  Cstr_ptr &  s  )  const [inline, inherited]
 

Definition at line 122 of file bsimplex.H.

References Bsimplex::find_data().

SimplexData* Bsimplex::find_data (  uint  key  )  const [inline, inherited]
 

Definition at line 118 of file bsimplex.H.

References Bsimplex::_data_list, and SimplexDataList::get_item().

Referenced by Bsimplex::add_simplex_data(), Bsimplex::find_data(), and UVdata::lookup().

Bsimplex * Bface::find_intersect_sim (  CNDCpt &  target,
Wpt &  hit_pt
)  const
 

Definition at line 119 of file bface.C.

References Bsimplex::_mesh, BMESH::inv_xform(), is_edge(), is_face(), is_vert(), and ndc_walk().

Referenced by IDRefImage::intersect_sim(), and IDRefImage::is_face_visible().

uint Bsimplex::flag (   )  const [inline, inherited]
 

Definition at line 91 of file bsimplex.H.

References Bsimplex::_flag, and Bsimplex::FLAG_MASK.

Referenced by UnreachedSimplexFilter::accept(), SimplexFlagFilter::accept(), add_face(), TriStrip::backup_strip(), both_set(), TriStrip::build(), check_partner(), demote(), BMESH::get_components(), Bface_list::get_edges(), BMESH::get_enclosed_verts(), get_parent_faces(), Bface_list::get_verts(), Bface_list::grow_connected(), BMESH::grow_mesh_equivalence_class(), BMESH::grow_oriented_face_lists(), has_unmarked_face(), Bsimplex::inc_flag(), is_claimed(), is_cleared(), is_marked(), mark_pushed_faces(), promote(), screen(), BMESH::split_components(), try_append(), try_get_edge(), try_get_face(), and try_get_nm_edge().

int Bface::front_facing (   )  const
 

Definition at line 100 of file bface.C.

References _ff_stamp, Bsimplex::_mesh, _v1, BMESH::eye_local(), FRONT_FACING_BIT, Config::get_var_bool(), Bsimplex::is_set(), Bvert::loc(), norm(), VIEW::peek_cam(), and VIEW::stamp().

Referenced by Bedge::frontfacing_face(), is_good(), and Bedge::is_sil().

uint Bsimplex::generate_key (   )  [protected, inherited]
 

Definition at line 20 of file bsimplex.C.

References Bsimplex::_key, Bsimplex::_table, err_msg(), and ARRAY< T >::num().

void Bface::geometry_changed (   )  [virtual]
 

Reimplemented from Bsimplex.

Definition at line 65 of file bface.C.

References _e1, _e2, _e3, _ff_stamp, _v1, _v2, _v3, Bsimplex::clear_bit(), Bsimplex::geometry_changed(), Bedge::normal_changed(), Bvert::normal_changed(), and VALID_NORMAL_BIT.

Referenced by Bface(), make_primary(), make_secondary(), redef2(), redefine(), and reverse().

virtual Bface* Bface::get_face (   )  const [inline, virtual]
 

Implements Bsimplex.

Definition at line 591 of file bface.H.

bool Bface::get_quad_edges (  Bedge_list &  edges  )  const
 

Definition at line 1042 of file bface.C.

References ARRAY< T >::clear(), e1(), e2(), e3(), and get_quad_edges().

bool Bface::get_quad_edges (  Bedge *&  ab,
Bedge *&  bc,
Bedge *&  cd,
Bedge *&  da
)  const
 

Definition at line 1024 of file bface.C.

References get_quad_verts(), Bvert::lookup_edge(), v1(), v2(), and v3().

Referenced by get_quad_edges().

bool Bface::get_quad_pts (  Wpt &  a,
Wpt &  b,
Wpt &  c,
Wpt &  d
)  const
 

Definition at line 1011 of file bface.C.

References get_quad_verts(), Bvert::loc(), v1(), v2(), and v3().

Referenced by quad_dim1(), quad_dim2(), quad_tan1(), and quad_tan2().

bool Bface::get_quad_verts (  Bvert_list &  verts  )  const
 

Definition at line 997 of file bface.C.

References ARRAY< T >::clear(), get_quad_verts(), v1(), v2(), and v3().

bool Bface::get_quad_verts (  Bvert *&  a,
Bvert *&  b,
Bvert *&  c,
Bvert *&  d
)  const
 

Definition at line 966 of file bface.C.

References Bedge::ccw_face(), is_quad(), next_vert_ccw(), quad_vert(), Bedge::v1(), Bedge::v2(), and weak_edge().

Referenced by get_quad_edges(), get_quad_pts(), UVdata::get_quad_uvs(), get_quad_verts(), quad_bc_to_uv(), and quad_uv2loc().

void Bsimplex::inc_flag (  uint  i  )  [inline, inherited]
 

Definition at line 96 of file bsimplex.H.

References Bsimplex::flag(), Bsimplex::FLAG_BITS, and Bsimplex::set_flag().

int Bface::index (   )  const [virtual]
 

Implements Bsimplex.

Definition at line 47 of file bface.C.

References Bsimplex::_mesh, BMESH::faces(), and SimplexArray< L, T >::get_index().

Referenced by OBJReaderImpl::add_creases(), Patch::put_faces(), and ZCrossExtractor< ScalarField, Confidence, FaceGenerator >::walk_line().

bool Bface::is_bad (   )  const [inline]
 

Definition at line 180 of file bface.H.

References BAD_BIT, and Bsimplex::is_set().

bool Bsimplex::is_clear (  uint  b  )  const [inline, inherited]
 

Definition at line 101 of file bsimplex.H.

References Bsimplex::is_set().

Referenced by BitClearSimplexFilter::accept(), LMESH::add_dirty_vert(), is_primary(), Lface::subdiv_dirty(), Lvert::update_subdivision(), and Ledge::update_subdivision().

bool Bface::is_primary (   )  const [inline]
 

Definition at line 184 of file bface.H.

References Bsimplex::is_clear(), and SECONDARY_BIT.

Referenced by face_type(), Bedge::fix_multi(), Bedge::is_primary(), is_secondary(), and Lface::make_primary().

bool Bface::is_quad (   )  const [inline]
 

Definition at line 252 of file bface.H.

References num_weak_edges().

Referenced by BMESH::add_quad(), Lface::allocate_subdiv_elements(), avg_face_edge_len(), Bface_list::Bface_list(), check_partner(), MeshGlobal::deselect(), CatmullClarkCalc< Wpt >::fcentroid(), get_area(), Bvert::get_q_nbrs(), get_quad_faces(), get_quad_verts(), is_quad_rep(), Bedge::is_sil(), is_tri(), lookup_quad(), map_centroid(), Bedge::num_quads(), opposite_quad_edge(), qnorm(), Bvert::qr_centroid(), UVdata::quad_has_uv(), quad_partner(), quad_vert(), MeshGlobal::select(), SimpleUVCalc::subdiv_val(), HybridCalc< Wpt >::subdiv_val(), SimpleCalc< UVpt >::subdiv_val(), and Bedge::swap_is_legal().

bool Bface::is_quad_rep (   )  const [inline]
 

Definition at line 272 of file bface.H.

References is_quad(), and quad_rep().

bool Bface::is_secondary (   )  const [inline]
 

Definition at line 185 of file bface.H.

References is_primary().

Referenced by Bedge::add_primary(), Bedge::can_promote(), Lface::claim_child(), is_sec(), Lface::make_secondary(), Bedge::operator+=(), BMESH::operator=(), and BMESH::put_sec_faces().

bool Bsimplex::is_selected (   )  const [inline, inherited]
 

Definition at line 114 of file bsimplex.H.

References Bsimplex::is_set(), and Bsimplex::SELECTED_BIT.

Referenced by SelectedSimplexFilter::accept(), MeshGlobal::deselect(), MeshGlobal::select(), MeshGlobal::toggle_select(), Bedge::~Bedge(), ~Bface(), and Bvert::~Bvert().

bool Bsimplex::is_set (  uint  b  )  const [inline, inherited]
 

Definition at line 100 of file bsimplex.H.

References Bsimplex::_flag, and Bsimplex::mask().

Referenced by BitSetSimplexFilter::accept(), Lface::allocate_subdiv_elements(), Ledge::allocate_subdiv_elements(), Lvert::allocate_subdiv_vert(), area(), Lface::delete_subdiv_elements(), Ledge::delete_subdiv_elements(), Lvert::delete_subdiv_vert(), Lvert::displaced_loc(), Ledge::do_swap(), front_facing(), Bvert::has_color(), is_bad(), Bsimplex::is_clear(), Bedge::is_convex(), Bvert::is_crease(), Bedge::is_crease(), Bedge::is_patch_boundary(), Bsimplex::is_selected(), Bvert::is_stressed(), Bedge::is_weak(), Lface::make_primary(), Lface::make_secondary(), Lvert::mark_dirty(), Lvert::mask_changed(), Bvert::norm(), norm(), Bvert::order_edges_ccw(), UVMapping::recurse(), UVMapping::recurse_wrapping(), LMESH::rem_dirty_vert(), Lface::reverse(), Lface::set_layer(), Lface::set_subdiv_elements(), Ledge::set_subdiv_elements(), Lvert::set_subdiv_vert(), Lvert::subdiv_mask(), and Ledge::subdiv_mask().

uint Bsimplex::key (   )  const [inline, inherited]
 

Definition at line 72 of file bsimplex.H.

References Bsimplex::_key.

Referenced by ColorIDStripCB::edgeCB(), ColorIDStripCB::faceCB(), and ColorIDStripCB::vertCB().

ushort Bface::layer (   )  const [inline]
 

Definition at line 187 of file bface.H.

References _layer.

Bvert* Bface::leading_vert_ccw (  CBedge *  e  )  const [inline]
 

Definition at line 119 of file bface.H.

References next_vert_ccw(), Bedge::v1(), and Bedge::v2().

Referenced by EdgeStrip::build_ccw_boundaries(), and Ledge::get_sub_faces().

bool Bface::local_search (  Bsimplex *&  end,
Wvec &  final_bc,
CWpt &  target,
Wpt &  reached,
Bsimplex *  repeater = 0,
int  iters = 30
)  [virtual]
 

Implements Bsimplex.

Definition at line 457 of file bface.C.

References bc2sim(), e(), Bedge::is_border(), is_edge(), is_vert(), local_search(), nearest_pt(), ARRAY< T >::num(), and Bedge::other_face().

Referenced by local_search().

static Bsimplex* Bsimplex::lookup (  uint  k  )  [inline, static, inherited]
 

Definition at line 73 of file bsimplex.H.

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

Referenced by VisRefImage::debug(), and IDRefImage::simplex().

void Bface::make_primary (   )  [virtual]
 

Reimplemented in Lface.

Definition at line 699 of file bface.C.

References Bsimplex::clear_bit(), geometry_changed(), and SECONDARY_BIT.

Referenced by Lface::make_primary(), and Bface_list::make_primary().

void Bface::make_secondary (   )  [virtual]
 

Reimplemented in Lface.

Definition at line 706 of file bface.C.

References geometry_changed(), SECONDARY_BIT, and Bsimplex::set_bit().

Referenced by Lface::make_secondary(), Bface_list::make_secondary(), and BMESH::operator=().

static uint Bsimplex::mask (  uint  b  )  [inline, static, protected, inherited]
 

Definition at line 268 of file bsimplex.H.

Referenced by Bsimplex::clear_bit(), Bsimplex::is_set(), and Bsimplex::set_bit().

BMESH* Bsimplex::mesh (   )  const [inline, inherited]
 

Definition at line 68 of file bsimplex.H.

References Bsimplex::_mesh.

Referenced by MeshSimplexFilter::accept(), BMESH::add_edge(), BMESH::add_face(), UVMapping::compute_limits(), UVMapping::compute_mapping(), UVMapping::compute_wrapping(), Ledge::delete_subdiv_elements(), Lvert::delete_subdiv_vert(), Bvert::eye_local(), ToonTexCB::faceCB(), XToonStripCB::faceCB(), get_ctrl_face(), get_cur_sub_edges(), get_cur_sub_faces(), get_cur_sub_vert(), VisRefImage::get_edit_face(), BMESH::get_enclosed_verts(), get_lmesh(), get_mesh(), get_parent_face(), get_parent_simplex(), TriStrip::get_strips(), VisRefImage::get_sub_face(), get_subdiv_chain(), BMESH::intersect(), Lvert::lmesh(), Lface::lmesh(), Ledge::lmesh(), BMESHray::mesh(), normalized_pix_area(), Bface_list::reachable_faces(), Ledge::rel_level(), LMESH::remove_edge(), LMESH::remove_face(), LMESH::remove_vertex(), MeshGlobal::select(), Lvert::set_subdiv_vert(), BMESH::split_faces(), subdiv_level(), SimpleUVCalc::subdiv_val(), and toggle_crease().

Bface* Bface::nbr (  int  i  )  const [inline]
 

Definition at line 139 of file bface.H.

References e(), and Bedge::other_face().

Referenced by BMESH::grow_oriented_face_lists(), ZcrossPath::start_sil(), and ZCrossExtractor< ScalarField, Confidence, FaceGenerator >::walk_line().

double Bface::ndc_area (   )  const [inline]
 

Definition at line 230 of file bface.H.

References _v1, _v2, _v3, Bvert::ndc(), and signed_area().

Referenced by quad_ndc_area().

NDCZpt Bface::ndc_centroid (   )  const [inline]
 

Definition at line 220 of file bface.H.

References _v1, _v2, _v3, and Bvert::ndc().

bool Bface::ndc_contains (  CNDCpt &  p  )  [inline]
 

Definition at line 519 of file bface.H.

References _v1, _v2, _v3, and Bvert::ndc().

NDCZpt Bface::ndc_quad_centroid (   )  const [inline]
 

Definition at line 326 of file bface.H.

References _v1, _v2, _v3, Bvert::ndc(), and quad_vert().

Bsimplex * Bface::ndc_walk (  CNDCpt &  target,
CWvec &  bc = Wvec(),
CNDCpt &  nearest = NDCpt(),
int  is_on_tri = 0,
bool  use_passed_in_params = false
)  const [protected]
 

Definition at line 170 of file bface.C.

References bc2sim(), Bvert::degree(), mlib::Point2< P, V >::dist_sqrd(), e(), is_edge(), Bedge::is_sil(), is_vert(), ndc_walk(), nearest_pt_ndc(), ARRAY< T >::num(), Bedge::other_face(), and v().

Referenced by find_intersect_sim(), and ndc_walk().

virtual bool Bsimplex::near_point (  CNDCpt &  p,
mlib::Wpt &  hit
)  const [inline, virtual, inherited]
 

Definition at line 182 of file bsimplex.H.

References Bsimplex::view_intersect().

Wpt Bface::near_pt (  CNDCpt &  ndc  )  const [inline]
 

Definition at line 489 of file bface.H.

References near_pt().

Wpt Bface::near_pt (  CNDCpt &  ndc,
Wvec &  hit_bc
)  const
 

Definition at line 660 of file bface.C.

References Bsimplex::nearest_pt(), nearest_pt_ndc(), and plane_intersect().

Referenced by VisRefImage::get_face_bc(), and near_pt().

virtual Wpt Bsimplex::nearest_pt (  mlib::CWpt &  p  )  const [inline, virtual, inherited]
 

Definition at line 232 of file bsimplex.H.

References Bsimplex::nearest_pt().

virtual Wpt Bsimplex::nearest_pt (  mlib::CWpt &  p,
mlib::Wvec &  bc
)  const [inline, virtual, inherited]
 

Definition at line 228 of file bsimplex.H.

References Bsimplex::nearest_pt().

virtual Wpt Bsimplex::nearest_pt (  mlib::CWpt &  p,
mlib::Wvec &  bc,
bool &  is_on_simplex
)  const [pure virtual, inherited]
 

Implemented in Bedge, and Bvert.

Referenced by Bsimplex::dist(), near_pt(), Bsimplex::nearest_pt(), and Bsimplex::walk_to_target().

Wpt Bface::nearest_pt (  CWpt &  p,
Wvec &  bc,
bool &  is_on_tri
)  const [virtual]
 

Definition at line 547 of file bface.C.

References _v1, _v2, _v3, bc2pos(), Bvert::loc(), project_barycentric(), pt_near_seg(), mlib::Vec3< V >::set(), and snap().

Referenced by local_search(), and QuadtreeNode::nearest_pt().

NDCpt Bface::nearest_pt_ndc (  CNDCpt &  p  )  const [inline]
 

Definition at line 537 of file bface.H.

References nearest_pt_ndc().

NDCpt Bface::nearest_pt_ndc (  CNDCpt &  p,
Wvec &  bc
)  const [inline]
 

Definition at line 534 of file bface.H.

References nearest_pt_ndc().

NDCpt Bface::nearest_pt_ndc (  CNDCpt &  p,
Wvec &  bc,
int &  is_on_tri
)  const [virtual]
 

Implements Bsimplex.

Definition at line 604 of file bface.C.

References _v1, _v2, _v3, Bvert::ndc(), pt_near_seg_ndc(), mlib::Vec3< V >::set(), signed_area_ndc(), snap(), and v().

Referenced by ndc_walk(), near_pt(), and nearest_pt_ndc().

Bsimplex_list Bface::neighbors (   )  const [virtual]
 

Implements Bsimplex.

Definition at line 419 of file bface.C.

References _e1, _e2, _e3, _v1, _v2, _v3, bfa_to_bsa(), and get_other_face().

Bedge* Bface::next_edge_ccw (  CBedge *  u  )  const [inline]
 

Definition at line 125 of file bface.H.

References _e1, _e2, and _e3.

Bface* Bface::next_face_ccw (  CBvert *  u  )  const [inline]
 

Definition at line 134 of file bface.H.

References edge_before_vert(), and Bedge::other_face().

Bface* Bface::next_strip_face (   )  const [inline]
 

Definition at line 162 of file bface.H.

References e(), Bedge::is_crossable(), opposite_edge(), orient_strip(), and Bedge::other_face().

Referenced by TriStrip::build().

Bvert* Bface::next_vert_ccw (  CBvert *  u  )  const [inline]
 

Definition at line 113 of file bface.H.

References _v1, _v2, and _v3.

Referenced by angle(), TriStrip::backup_strip(), TriStrip::build(), EdgeStrip::build_ccw_boundaries(), get_quad_verts(), Ledge::get_sub_faces(), leading_vert_ccw(), next_vert_ccw(), and orientation().

CWvec& Bface::norm (   )  const [inline]
 

Definition at line 59 of file bface.H.

References _norm, Bsimplex::is_set(), and VALID_NORMAL_BIT.

Referenced by Bface_list::avg_normal(), bc2norm(), Bedge::dot(), StripColorCB::faceCB(), IVNormalIterator::faceCB(), StripTexCoordsCB2::faceCB(), FlatShadeStripCB::faceCB(), StripTexCoordsCB3::faceCB(), front_facing(), BMESH::intersect(), Bedge::is_sil(), Bedge::is_stressed(), Bface_list::max_norm_deviation(), norm_angle(), plane(), qnorm(), quad_norm(), Bedge::set_convex(), signed_area(), ZcrossPath::start_sil(), Bedge::swapable(), view_intersect(), Bedge::view_intersect(), and weighted_vnorm().

void Bface::normal_changed (   )  [virtual]
 

Reimplemented from Bsimplex.

Definition at line 56 of file bface.C.

void Bsimplex::notify_split (  Bsimplex *  new_simp  )  [virtual, inherited]
 

Reimplemented in Bedge.

Definition at line 39 of file bsimplex.C.

References Bsimplex::_data_list, and SimplexDataList::notify_split().

Referenced by Bedge::notify_split(), BMESH::split_edge(), and BMESH::split_face().

void Bsimplex::notify_xform (  CWtransf &  xf  )  [virtual, inherited]
 

Definition at line 52 of file bsimplex.C.

References Bsimplex::_data_list, and SimplexDataList::notify_simplex_xformed().

Referenced by Bvert::transform().

int Bface::num_weak_edges (   )  const [inline]
 

Definition at line 245 of file bface.H.

References _e1, _e2, _e3, and Bedge::is_weak().

Referenced by is_quad().

virtual bool Bsimplex::on_face (  const Bface *  f  )  const [pure virtual, inherited]
 

Referenced by IDRefImage::is_face_visible().

virtual bool Bface::on_face (  CBface *  f  )  const [inline, virtual]
 

Definition at line 592 of file bface.H.

Bedge* Bface::opposite_edge (  CBvert *  a  )  const [inline]
 

Definition at line 152 of file bface.H.

References _e1, _e2, _e3, _v1, _v2, and _v3.

Referenced by bc2edge(), Bvert::get_ccw_edges(), mark_pushed_faces(), next_strip_face(), opposite_face(), Ledge::parallel_sub_edge(), and toggle_crease().

Bface* Bface::opposite_face (  CBvert *  a  )  const [inline]
 

Definition at line 158 of file bface.H.

References e(), opposite_edge(), and Bedge::other_face().

Referenced by TriStrip::build(), and ZcrossPath::sil_walk_search().

Bedge* Bface::opposite_quad_edge (  CBedge *  e  )  const [inline]
 

Definition at line 289 of file bface.H.

References is_quad(), Bvert::lookup_edge(), other_vertex(), quad_vert(), Bedge::v1(), and Bedge::v2().

Referenced by HybridCalc< Wpt >::subdiv_val().

Bvert* Bface::orient_strip (   )  const [inline]
 

Definition at line 85 of file bface.H.

References _orient.

Referenced by next_strip_face().

void Bface::orient_strip (  Bvert *  a  )  [inline]
 

Definition at line 84 of file bface.H.

References _orient.

Referenced by TriStrip::build().

int Bface::orientation (  CBedge *  e  )  const [inline]
 

Definition at line 173 of file bface.H.

References contains(), next_vert_ccw(), Bedge::v1(), and Bedge::v2().

Referenced by Bedge::consistent_orientation(), and Bedge::oriented_ccw().

Bedge* Bface::other_edge (  CBvert *  v,
CBedge *  e
)  const [inline]
 

Definition at line 166 of file bface.H.

References _e1, _e2, _e3, and Bedge::contains().

Referenced by UVdata::set_subdiv_uv().

Bface* Bface::other_quad_face (  CBedge *  e  )  const [inline]
 

Definition at line 300 of file bface.H.

References Bedge::f1(), Bedge::f2(), and Bedge::other_face().

Bvert* Bface::other_vertex (  CBedge *  e  )  const [inline]
 

Definition at line 110 of file bface.H.

References other_vertex(), Bedge::v1(), and Bedge::v2().

Bvert* Bface::other_vertex (  CBvert *  u,
CBvert *  v
)  const [inline]
 

Definition at line 103 of file bface.H.

References _v1, _v2, _v3, and contains().

Referenced by Lface::allocate_subdiv_elements(), TriStrip::backup_strip(), TriStrip::build(), Bedge::do_swap(), opposite_quad_edge(), Bedge::opposite_vert(), other_vertex(), Bedge::set_convex(), ZcrossPath::sil_walk_search(), BMESH::split_edge(), HybridCalc< Wpt >::subdiv_val(), and Bedge::swapable().

Patch* Bface::patch (   )  const [inline]
 

Definition at line 80 of file bface.H.

References _patch.

Referenced by Patch::add(), TriStrip::build(), BMESH::build_sil_strips(), BMESH::build_zcross_strips(), SmoothShadeStripCB::faceCB(), FlatShadeStripCB::faceCB(), UV_attrib::get_attrib(), get_cur_sub_faces(), get_patch(), BMESH::intersect(), Bedge::is_patch_boundary(), Bedge::patch(), Patch::put_faces(), Patch::remove(), BMESH::split_edge(), and BMESH::split_face().

int Bface::patch_index (   )  const [inline, protected]
 

Definition at line 629 of file bface.H.

References _patch_index.

Referenced by Patch::remove().

Wplane Bface::plane (   )  const [inline]
 

Definition at line 221 of file bface.H.

References _v1, Bvert::loc(), and norm().

Referenced by contains(), and plane_intersect().

Wpt Bface::plane_intersect (  CNDCpt &  ndc  )  const [inline]
 

Definition at line 514 of file bface.H.

References plane_intersect().

Wpt Bface::plane_intersect (  CWline &  line  )  const [inline]
 

Definition at line 511 of file bface.H.

References mlib::Plane< PLANE, P, V, L >::intersect(), and plane().

Referenced by near_pt(), plane_intersect(), and BMESH::split_faces().

Bface * Bface::plane_walk (  Bedge *  cur_edge,
CWplane &  plane,
Bedge *&  next_edge
)  const
 

Definition at line 258 of file bface.C.

References e(), Bedge::other_face(), and Bedge::which_side().

virtual void Bface::project_barycentric (  CWpt &  p,
Wvec &  ret
)  const [inline, virtual]
 

Implements Bsimplex.

Definition at line 406 of file bface.H.

References _v1, _v2, _v3, area(), Bvert::loc(), mlib::Vec3< V >::set(), signed_area(), and v().

Referenced by nearest_pt(), ray_intersect(), BMESH::split_face(), and toggle_crease().

void Bface::project_barycentric_ndc (  CNDCpt &  p,
Wvec &  ret
)  const [inline]
 

Definition at line 413 of file bface.H.

References _v1, _v2, _v3, Bvert::ndc(), mlib::Vec3< V >::set(), signed_area(), and v().

Wpt& Bsimplex::project_to_simplex (  mlib::CWpt &  pos,
mlib::Wpt &  ret
)  [inline, inherited]
 

Definition at line 152 of file bsimplex.H.

References Bsimplex::bc2pos(), Bsimplex::clamp_barycentric(), and Bsimplex::project_barycentric().

Wvec Bface::qnorm (   )  const [inline]
 

Definition at line 334 of file bface.H.

References is_quad(), norm(), and quad_norm().

Referenced by Bedge::norm().

double Bface::quad_area (   )  const [inline]
 

Definition at line 316 of file bface.H.

References area(), and quad_partner().

Referenced by get_area().

double Bface::quad_avg_dim (   )  const [inline]
 

Definition at line 370 of file bface.H.

References quad_dim1(), and quad_dim2().

Referenced by avg_face_edge_len().

UVpt Bface::quad_bc_to_uv (  CWvec &  bc  )  const
 

Definition at line 1105 of file bface.C.

References contains(), err_msg(), get_quad_verts(), and vindex().

Wpt Bface::quad_centroid (   )  const [inline]
 

Definition at line 322 of file bface.H.

References _v1, _v2, _v3, Bvert::loc(), and quad_vert().

Referenced by map_centroid().

double Bface::quad_dim1 (   )  const
 

Definition at line 1083 of file bface.C.

References mlib::Point3< P, V >::dist(), and get_quad_pts().

Referenced by quad_avg_dim(), quad_max_dim(), and quad_min_dim().

double Bface::quad_dim2 (   )  const
 

Definition at line 1094 of file bface.C.

References mlib::Point3< P, V >::dist(), and get_quad_pts().

Referenced by quad_avg_dim(), quad_max_dim(), and quad_min_dim().

double Bface::quad_max_dim (   )  const [inline]
 

Definition at line 371 of file bface.H.

References max(), quad_dim1(), and quad_dim2().

double Bface::quad_min_dim (   )  const [inline]
 

Definition at line 372 of file bface.H.

References min(), quad_dim1(), and quad_dim2().

double Bface::quad_ndc_area (   )  const [inline]
 

Definition at line 319 of file bface.H.

References ndc_area(), and quad_partner().

Wvec Bface::quad_norm (   )  const [inline]
 

Definition at line 330 of file bface.H.

References norm(), mlib::Vec3< V >::normalized(), and quad_partner().

Referenced by qnorm(), quad_tan1(), and quad_tan2().

Bvert* Bface::quad_opposite_vert (  CBvert *  v  )  const [inline]
 

Definition at line 277 of file bface.H.

References contains(), Bedge::contains(), e(), Bedge::opposite_vert(), Bedge::other_vertex(), quad_partner(), and weak_edge().

Referenced by Bvert::get_q_nbrs(), and Bvert::qr_centroid().

Bface* Bface::quad_partner (   )  const [inline]
 

Definition at line 261 of file bface.H.

References is_quad(), Bedge::other_face(), and weak_edge().

Referenced by Bface_list::Bface_list(), check_partner(), MeshGlobal::deselect(), get_other_face(), Bedge::is_sil(), quad_area(), quad_ndc_area(), quad_norm(), quad_opposite_vert(), quad_rep(), MeshGlobal::select(), SimpleUVCalc::subdiv_val(), and SimpleCalc< UVpt >::subdiv_val().

Bface* Bface::quad_rep (   )  const [inline]
 

Definition at line 267 of file bface.H.

References min(), and quad_partner().

Referenced by BMESH::add_quad(), get_quad_faces(), and is_quad_rep().

Wvec Bface::quad_tan1 (   )  const
 

Definition at line 1059 of file bface.C.

References get_quad_pts(), mlib::Vec3< V >::normalized(), mlib::Vec3< V >::orthogonalized(), and quad_norm().

Wvec Bface::quad_tan2 (   )  const
 

Definition at line 1071 of file bface.C.

References get_quad_pts(), mlib::Vec3< V >::normalized(), mlib::Vec3< V >::orthogonalized(), and quad_norm().

Wpt Bface::quad_uv2loc (  CUVpt &  uv  )  const
 

Definition at line 1154 of file bface.C.

References err_msg(), get_quad_verts(), Bvert::loc(), and v().

Bvert* Bface::quad_vert (   )  const [inline]
 

Definition at line 274 of file bface.H.

References is_quad(), Bedge::opposite_vert(), and weak_edge().

Referenced by CatmullClarkCalc< Wpt >::fcentroid(), get_quad_verts(), lookup_quad(), ndc_quad_centroid(), opposite_quad_edge(), quad_centroid(), SimpleUVCalc::subdiv_val(), and SimpleCalc< UVpt >::subdiv_val().

bool Bface::ray_intersect (  CWline &  ray,
Wvec &  bc
)  const [inline]
 

Definition at line 501 of file bface.H.

References project_barycentric(), and ray_intersect().

bool Bface::ray_intersect (  CWline &  ray,
Wpt &  ret,
double &  depth
)  const [inline]
 

Definition at line 497 of file bface.H.

References ray_intersect().

bool Bface::ray_intersect (  CWpt &  ,
CWvec &  ,
Wpt &  ret,
double &  depth
)  const
 

Definition at line 277 of file bface.C.

References mlib::cross().

Referenced by ray_intersect(), and view_intersect().

bool Bface::redef2 (  Bedge *  a,
Bedge *  b
)  [virtual]
 

Definition at line 724 of file bface.C.

References _e1, _e2, _e3, contains(), debug, err_adv(), geometry_changed(), and Config::get_var_bool().

bool Bface::redef2 (  Bvert *  a,
Bvert *  b
)  [virtual]
 

Definition at line 760 of file bface.C.

References _orient, _patch, _v1, _v2, _v3, contains(), debug, err_adv(), geometry_changed(), Config::get_var_bool(), and Patch::triangulation_changed().

int Bface::redefine (  Bvert *  u,
Bvert *  nu,
Bvert *  v,
Bvert *  nv
) 
 

Definition at line 862 of file bface.C.

References _e1, _e2, _e3, _orient, _patch, _v1, _v2, _v3, contains(), e1(), e2(), e3(), geometry_changed(), Bvert::lookup_edge(), lookup_face(), and Patch::triangulation_changed().

int Bface::redefine (  Bvert *  v,
Bvert *  u
) 
 

Definition at line 801 of file bface.C.

References _e1, _e2, _e3, _orient, _patch, _v1, _v2, _v3, contains(), debug, e1(), e2(), e3(), err_adv(), geometry_changed(), Config::get_var_bool(), Bvert::lookup_edge(), lookup_face(), and Patch::triangulation_changed().

Referenced by BMESH::split_edge(), BMESH::split_face(), and BMESH::try_swap_edge().

void Bsimplex::rem_simplex_data (  SimplexData *  sd  )  [inline, inherited]
 

Definition at line 126 of file bsimplex.H.

References Bsimplex::_data_list, and ARRAY< T >::rem().

Referenced by SimplexData::set().

void Bface::reverse (   )  [virtual]
 

Reimplemented in Lface.

Definition at line 682 of file bface.C.

References _e1, _e3, _orient, _patch, _tc, _v2, _v3, geometry_changed(), swap(), tex_coord(), and Patch::triangulation_changed().

Referenced by Lface::reverse(), BMESH::reverse(), reverse_face(), and Bface_list::reverse_faces().

void Bsimplex::set_bit (  uint  b,
int  x = 1
)  [inline, inherited]
 

Definition at line 104 of file bsimplex.H.

References Bsimplex::_flag, Bsimplex::clear_bit(), and Bsimplex::mask().

Referenced by LMESH::add_dirty_vert(), OBJReaderImpl::add_face(), add_poly(), BMESH::add_quad(), Lface::allocate_subdiv_elements(), Ledge::allocate_subdiv_elements(), Lvert::allocate_subdiv_vert(), Ledge::claim_child(), Bvert::color_changed(), Lvert::displaced_loc(), make_secondary(), BMESH::operator=(), Bvert::order_edges_ccw(), UVMapping::recurse(), UVMapping::recurse_wrapping(), LMESH::remove_vertex(), MeshGlobal::select(), Bvert::set_color(), Bedge::set_convex(), Lvert::set_mask(), Ledge::set_mask(), Bvert::set_norm(), Bvert::set_normal(), set_normal(), Bedge::set_patch_boundary(), Lface::set_subdiv_elements(), Ledge::set_subdiv_elements(), Lvert::set_subdiv_vert(), BMESH::set_weak_edge(), Lvert::update_subdivision(), and Ledge::update_subdivision().

void Bsimplex::set_flag (  uchar  b = 1  )  [inline, inherited]
 

Definition at line 93 of file bsimplex.H.

References Bsimplex::_flag, and Bsimplex::clear_flag().

Referenced by add_face(), claim_face(), Bface_list::get_edges(), BMESH::get_enclosed_verts(), get_parent_faces(), Bface_list::get_verts(), Bface_list::grow_connected(), BMESH::grow_mesh_equivalence_class(), BMESH::grow_oriented_face_lists(), Bsimplex::inc_flag(), BMESH::kill_component(), mark_face(), mark_pushed_faces(), screen(), BMESH::split_components(), try_append(), try_get_edge(), try_get_face(), and try_get_nm_edge().

virtual void Bface::set_layer (  ushort  l  )  [inline, virtual]
 

Reimplemented in Lface.

Definition at line 188 of file bface.H.

References _layer.

Referenced by Lface::set_layer().

void Bsimplex::set_mesh (  BMESH *  mesh  )  [inline, inherited]
 

Definition at line 67 of file bsimplex.H.

References Bsimplex::_mesh.

Referenced by BMESH::add_edge(), BMESH::add_face(), and BMESH::add_vertex().

void Bface::set_normal (   )  [inline, protected]
 

Definition at line 638 of file bface.H.

References _area, _norm, _v1, _v2, _v3, mlib::cross(), Bvert::loc(), mlib::Vec3< V >::normalized(), Bsimplex::set_bit(), signed_area(), and VALID_NORMAL_BIT.

virtual void Bface::set_patch (  Patch *  p  )  [inline, protected, virtual]
 

Reimplemented in Lface.

Definition at line 627 of file bface.H.

References _patch.

Referenced by Patch::add(), Patch::remove(), and Lface::set_patch().

void Bface::set_patch_index (  int  k  )  [inline, protected]
 

Definition at line 628 of file bface.H.

References _patch_index.

Referenced by Patch::add(), and Patch::remove().

void Bface::set_tex_coords (  CUVpt &  a,
CUVpt &  b,
CUVpt &  c
)  [inline]
 

Definition at line 398 of file bface.H.

References tex_coord().

Referenced by outputMesh().

Bedge* Bface::shared_edge (  CBface *  f  )  const [inline]
 

Definition at line 145 of file bface.H.

References _e1, _e2, _e3, and Bedge::other_face().

Referenced by ZcrossPath::sil_walk_search().

double Bface::signed_area (  CNDCpt &  a,
CNDCpt &  b,
CNDCpt &  c
)  const [inline]
 

Definition at line 226 of file bface.H.

double Bface::signed_area (  CWpt &  a,
CWpt &  b,
CWpt &  c
)  const [inline]
 

Definition at line 223 of file bface.H.

References mlib::cross(), and norm().

Referenced by ndc_area(), project_barycentric(), project_barycentric_ndc(), and set_normal().

UVpt* Bface::tc_array (   )  const [inline]
 

Definition at line 402 of file bface.H.

References _tc.

UVpt& Bface::tex_coord (  CBvert *  v  )  const [inline]
 

Definition at line 395 of file bface.H.

References tex_coord(), and vindex().

UVpt& Bface::tex_coord (  int  vert_index  )  const [inline]
 

Definition at line 389 of file bface.H.

References _tc.

Referenced by reverse(), UVdata::set(), set_tex_coords(), tex_coord(), and UVdata::uv().

Bvert* Bface::v (  int  i  )  const [inline]
 

Definition at line 50 of file bface.H.

References _v1.

Referenced by ZCrossExtractor< ScalarField, Confidence, FaceGenerator >::add_seg(), Lface::allocate_subdiv_elements(), bc2edge(), bc2vert(), Bface_list::clear_vert_flags(), BMESHcurvature_data::compute_face_curvatures(), BMESHcurvature_data::compute_face_dcurv(), BMESHcurvature_data::compute_vertex_curvatures(), BMESHcurvature_data::compute_vertex_dcurv(), Bface_list::get_verts(), ZcrossPath::has_sil(), Lface::lv(), ndc_walk(), nearest_pt_ndc(), outputMesh(), project_barycentric(), project_barycentric_ndc(), quad_uv2loc(), ZcrossPath::start_sil(), toggle_crease(), and write_faces().

Bvert* Bface::v1 (   )  const [inline]
 

Definition at line 47 of file bface.H.

References _v1.

Referenced by bc2norm_blend(), bface_bbox(), TriStrip::build(), OctreeNode::build_octree(), closest_vert(), compute_edge_vectors(), compute_initial_vertex_coord_sys(), BMESHcurvature_data::compute_vertex_areas(), contains(), VertAttrib< UVpt, UVvec >::dFd(), draw_face(), CatmullClarkCalc< Wpt >::fcentroid(), BMESH::get_enclosed_verts(), get_quad_edges(), get_quad_pts(), get_quad_verts(), UVdata::get_uvs(), BMESH::operator=(), Lface::parent_bc(), BMESH::put_faces(), BMESH::put_sec_faces(), UVdata::set(), BMESH::split_face(), SimpleUVCalc::subdiv_val(), SimpleCalc< UVpt >::subdiv_val(), BarycentricCoord::to_Wpt(), GtexUtil::tri(), GLSphirTexCoordGen::uv_from_vert(), UVdata::UVdata(), and visit().

Bvert* Bface::v2 (   )  const [inline]
 

Definition at line 48 of file bface.H.

References _v2.

Referenced by bc2norm_blend(), bface_bbox(), OctreeNode::build_octree(), closest_vert(), compute_edge_vectors(), compute_initial_vertex_coord_sys(), BMESHcurvature_data::compute_vertex_areas(), contains(), VertAttrib< UVpt, UVvec >::dFd(), draw_face(), CatmullClarkCalc< Wpt >::fcentroid(), BMESH::get_enclosed_verts(), get_quad_edges(), get_quad_pts(), get_quad_verts(), UVdata::get_uvs(), BMESH::operator=(), BMESH::put_faces(), BMESH::put_sec_faces(), UVdata::set(), BMESH::split_face(), SimpleUVCalc::subdiv_val(), SimpleCalc< UVpt >::subdiv_val(), BarycentricCoord::to_Wpt(), GtexUtil::tri(), GLSphirTexCoordGen::uv_from_vert(), UVdata::UVdata(), and visit().

Bvert* Bface::v3 (   )  const [inline]
 

Definition at line 49 of file bface.H.

References _v3.

Referenced by bc2norm_blend(), bface_bbox(), OctreeNode::build_octree(), closest_vert(), compute_edge_vectors(), compute_initial_vertex_coord_sys(), BMESHcurvature_data::compute_vertex_areas(), contains(), VertAttrib< UVpt, UVvec >::dFd(), draw_face(), CatmullClarkCalc< Wpt >::fcentroid(), BMESH::get_enclosed_verts(), get_quad_edges(), get_quad_pts(), get_quad_verts(), UVdata::get_uvs(), BMESH::operator=(), BMESH::put_faces(), BMESH::put_sec_faces(), UVdata::set(), BMESH::split_face(), SimpleUVCalc::subdiv_val(), SimpleCalc< UVpt >::subdiv_val(), BarycentricCoord::to_Wpt(), GtexUtil::tri(), GLSphirTexCoordGen::uv_from_vert(), UVdata::UVdata(), and visit().

Wvec Bface::vert_normal (  CBvert *  v  )  const [inline]
 

Definition at line 69 of file bface.H.

References vert_normal().

CWvec & Bface::vert_normal (  CBvert *  v,
Wvec &  n
)  const
 

Definition at line 918 of file bface.C.

References Bvert::degree(), e(), edge_before_vert(), edge_from_vert(), Bedge::is_crease(), Bvert::is_crease(), Bvert::norm(), mlib::Vec3< V >::normalized(), Bedge::other_face(), and weighted_vnorm().

Referenced by bc2norm_blend(), ToonTexCB::faceCB(), VertNormStripCB::faceCB(), ToonTexCB_1D::faceCB(), SmoothShadeStripCB::faceCB(), MSLDStripCB::faceCB(), LineDrawingGLSLMode::StripCB::faceCB(), LineDrawingVprogFprogNoSSDMode::StripCB::faceCB(), XToonStripCB::faceCB(), CurvatureARBvpARBfpMultiTextureMode::StripCB::faceCB(), ZcrossPath::has_sil(), ZcrossPath::sil_walk_search(), and vert_normal().

bool Bface::view_intersect (  CNDCpt &  ,
Wpt &  ,
double &  ,
double &  ,
Wvec &  n
)  const [virtual]
 

Implements Bsimplex.

Definition at line 314 of file bface.C.

References _e1, _e2, _e3, Bsimplex::_mesh, mlib::Point3< P, V >::dist(), BMESH::inv_xform(), norm(), mlib::Vec3< V >::normalized(), ray_intersect(), swap(), Bedge::view_intersect(), and BMESH::xform().

int Bface::vindex (  CBvert *  v  )  const [inline]
 

Definition at line 89 of file bface.H.

References _v1, _v2, and _v3.

Referenced by quad_bc_to_uv(), ZcrossPath::sil_walk_search(), and tex_coord().

double Bface::volume_el (   )  const [inline]
 

Definition at line 203 of file bface.H.

References _v1, _v2, _v3, and Bvert::loc().

Referenced by Bface_list::volume().

Bsimplex* Bsimplex::walk_to_target (  CWpt &  target,
Wpt &  near_pt,
Wvec &  near_bc,
CSimplexFilter &  filter = SimplexFilter()
)  const [inline, inherited]
 

Definition at line 199 of file bsimplex.H.

References Bsimplex::nearest_pt(), and Bsimplex::walk_to_target().

Bsimplex* Bsimplex::walk_to_target (  CWpt &  target,
CSimplexFilter &  filter = SimplexFilter()
)  const [inherited]
 

Referenced by Bsimplex::walk_to_target().

Bedge* Bface::weak_edge (   )  const [inline]
 

Definition at line 253 of file bface.H.

References _e1, _e2, _e3, and Bedge::is_weak().

Referenced by Lface::allocate_subdiv_elements(), get_quad_verts(), get_quad_weak_edge(), UVdata::quad_has_uv(), quad_opposite_vert(), quad_partner(), and quad_vert().

bool Bface::zx_mark (   )  const
 

Definition at line 85 of file bface.C.

References _zx_stamp, and VIEW::stamp().

Referenced by ZcrossPath::has_sil(), and ZcrossPath::sil_walk_search().

bool Bface::zx_query (   )  const
 

Definition at line 93 of file bface.C.

References _zx_stamp, VIEW::stamp(), and true.

Referenced by ZcrossPath::has_sil().


Friends And Related Function Documentation

Patch * get_ctrl_patch (  CBsimplex *  s  )  [related, inherited]
 

Similar to get_patch(CBsimplex*), but returns the control Patch.

Definition at line 662 of file patch.H.

Patch * get_ctrl_patch (  CBface *  f  )  [related]
 

Similar to get_patch(CBface*), but returns the control Patch.

Definition at line 652 of file patch.H.

Patch * get_patch (  CBsimplex *  s  )  [related, inherited]
 

Returns the Patch of a Bsimplex.

Note:
If you know it's actually a Bface, get_patch(CBface*) is faster.

Definition at line 639 of file patch.H.

Patch * get_patch (  CBface *  f  )  [related]
 

Returns the Patch of a Bface.

Definition at line 629 of file patch.H.

STDdstream& operator<< (  STDdstream &  d,
CBface &  f
)  [friend]
 

Definition at line 579 of file bface.H.

ostream& operator<< (  ostream &  os,
CBface &  f
)  [friend]
 

Definition at line 574 of file bface.H.

friend class Patch [friend]
 

Definition at line 607 of file bface.H.


Member Data Documentation

double Bface::_area [protected]
 

Definition at line 616 of file bface.H.

Referenced by area(), and set_normal().

SimplexDataList* Bsimplex::_data_list [protected, inherited]
 

Definition at line 248 of file bsimplex.H.

Referenced by Bsimplex::add_simplex_data(), Lface::allocate_subdiv_elements(), Ledge::allocate_subdiv_elements(), Lvert::allocate_subdiv_vert(), Bsimplex::data_list(), Bsimplex::find_data(), Bsimplex::geometry_changed(), Bsimplex::normal_changed(), Bsimplex::notify_split(), Bsimplex::notify_xform(), Bsimplex::rem_simplex_data(), Lface::set_subdiv_elements(), Ledge::set_subdiv_elements(), Lvert::set_subdiv_vert(), Lvert::update_subdivision(), Ledge::update_subdivision(), and Bsimplex::~Bsimplex().

Bedge* Bface::_e1 [protected]
 

Definition at line 612 of file bface.H.

Referenced by bc2sim(), Bface(), check(), contains(), detach(), e(), e1(), edge_before_vert(), edge_from_vert(), geometry_changed(), neighbors(), next_edge_ccw(), num_weak_edges(), opposite_edge(), other_edge(), redef2(), redefine(), reverse(), shared_edge(), view_intersect(), and weak_edge().

Bedge* Bface::_e2 [protected]
 

Definition at line 613 of file bface.H.

Referenced by bc2sim(), Bface(), check(), contains(), detach(), e2(), edge_before_vert(), edge_from_vert(), geometry_changed(), neighbors(), next_edge_ccw(), num_weak_edges(), opposite_edge(), other_edge(), redef2(), redefine(), shared_edge(), view_intersect(), and weak_edge().

Bedge* Bface::_e3 [protected]
 

Definition at line 614 of file bface.H.

Referenced by bc2sim(), Bface(), check(), contains(), detach(), e3(), edge_before_vert(), edge_from_vert(), geometry_changed(), neighbors(), next_edge_ccw(), num_weak_edges(), opposite_edge(), other_edge(), redef2(), redefine(), reverse(), shared_edge(), view_intersect(), and weak_edge().

uint Bface::_ff_stamp [protected]
 

Definition at line 620 of file bface.H.

Referenced by front_facing(), and geometry_changed().

uint Bsimplex::_flag [protected, inherited]
 

Definition at line 246 of file bsimplex.H.

Referenced by Bsimplex::clear_bit(), Bsimplex::clear_flag(), Bsimplex::flag(), Bsimplex::is_set(), Bsimplex::set_bit(), and Bsimplex::set_flag().

uint Bsimplex::_key [protected, inherited]
 

Definition at line 245 of file bsimplex.H.

Referenced by Bsimplex::generate_key(), and Bsimplex::key().

ushort Bface::_layer [protected]
 

Definition at line 623 of file bface.H.

Referenced by Lface::claim_child(), layer(), Lface::set_layer(), and set_layer().

BMESH* Bsimplex::_mesh [protected, inherited]
 

Definition at line 247 of file bsimplex.H.

Referenced by Lface::bc_to_edit_level(), Lvert::cur_subdiv_vert(), Bvert::curv_tensor(), Bvert::dcurv_tensor(), Bvert::diag_curv(), find_intersect_sim(), front_facing(), Bvert::index(), index(), Bedge::index(), Bvert::k1(), Bvert::k2(), Bsimplex::mesh(), Bvert::ndc(), Bvert::pdir1(), Bvert::pdir2(), Bsimplex::set_mesh(), Bvert::view_intersect(), view_intersect(), Bedge::view_intersect(), Bvert::wloc(), Bvert::wnorm(), Bedge::~Bedge(), Bvert::~Bvert(), Ledge::~Ledge(), and Lvert::~Lvert().

Wvec Bface::_norm [protected]
 

Definition at line 615 of file bface.H.

Referenced by norm(), and set_normal().

Bvert* Bface::_orient [protected]
 

Definition at line 619 of file bface.H.

Referenced by orient_strip(), redef2(), redefine(), and reverse().

Patch* Bface::_patch [protected]
 

Definition at line 617 of file bface.H.

Referenced by Lface::allocate_subdiv_elements(), patch(), redef2(), redefine(), reverse(), Lface::set_child_patch(), set_patch(), and ~Bface().

int Bface::_patch_index [protected]
 

Definition at line 618 of file bface.H.

Referenced by patch_index(), set_patch_index(), and ~Bface().

Bsimplex::IDtable Bsimplex::_table [static, protected, inherited]
 

Definition at line 263 of file bsimplex.H.

Referenced by Bsimplex::generate_key(), and Bsimplex::lookup().

UVpt* Bface::_tc [protected]
 

Definition at line 622 of file bface.H.

Referenced by reverse(), tc_array(), and tex_coord().

Bvert* Bface::_v1 [protected]
 

Definition at line 609 of file bface.H.

Referenced by bc2norm_blend(), bc2pos(), bc2sim(), centroid(), check(), contains(), edge_before_vert(), edge_from_vert(), front_facing(), geometry_changed(), ndc_area(), ndc_centroid(), ndc_contains(), ndc_quad_centroid(), nearest_pt(), nearest_pt_ndc(), neighbors(), next_vert_ccw(), opposite_edge(), other_vertex(), plane(), project_barycentric(), project_barycentric_ndc(), quad_centroid(), redef2(), redefine(), set_normal(), v(), v1(), vindex(), and volume_el().

Bvert* Bface::_v2 [protected]
 

Definition at line 610 of file bface.H.

Referenced by bc2norm_blend(), bc2pos(), bc2sim(), centroid(), check(), contains(), edge_before_vert(), edge_from_vert(), geometry_changed(), ndc_area(), ndc_centroid(), ndc_contains(), ndc_quad_centroid(), nearest_pt(), nearest_pt_ndc(), neighbors(), next_vert_ccw(), opposite_edge(), other_vertex(), project_barycentric(), project_barycentric_ndc(), quad_centroid(), redef2(), redefine(), reverse(), set_normal(), v2(), vindex(), and volume_el().

Bvert* Bface::_v3 [protected]
 

Definition at line 611 of file bface.H.

Referenced by bc2norm_blend(), bc2pos(), bc2sim(), centroid(), check(), contains(), edge_before_vert(), edge_from_vert(), geometry_changed(), ndc_area(), ndc_centroid(), ndc_contains(), ndc_quad_centroid(), nearest_pt(), nearest_pt_ndc(), neighbors(), next_vert_ccw(), opposite_edge(), other_vertex(), project_barycentric(), project_barycentric_ndc(), quad_centroid(), redef2(), redefine(), reverse(), set_normal(), v3(), vindex(), and volume_el().

uint Bface::_zx_stamp [protected]
 

Definition at line 621 of file bface.H.

Referenced by zx_mark(), and zx_query().


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