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

UVdata Class Reference

#include <uv_data.H>

Inheritance diagram for UVdata:

Inheritance graph
[legend]
Collaboration diagram for UVdata:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 DEFINE_RTTI_METHODS2 ("UVdata", SimplexData, CSimplexData *)
UVMappingmapping () const
void set_mapping (UVMapping *m)
Bfaceface () const
CUVptuv (CBvert *v) const
CUVptuv (int i) const
CUVptuv1 () const
CUVptuv2 () const
CUVptuv3 () const
void set_do_simple ()
void set_do_loop ()
void set_do_hybrid ()
void bc2uv (CWvec &bc, mlib::UVpt &ret)
void set (uint id, Bsimplex *s)
void set (Cstr_ptr &str, Bsimplex *s)
virtual void notify_split (Bsimplex *)
virtual void notify_subdiv_gen ()
virtual void notify_simplex_deleted ()
virtual bool handle_subdiv_calc ()
 DEFINE_RTTI_METHODS_BASE ("SimplexData", CSimplexData *)
uint id () const
Bsimplexsimplex () const
virtual void notify_simplex_changed ()
virtual void notify_normal_changed ()
virtual void notify_simplex_xformed (CWtransf &)

Static Public Member Functions

static bool has_uv (CBface *f)
static bool quad_has_uv (CBface *quad)
static bool get_uv (CBvert *v, UVpt &uv)
static bool get_uv (CBvert *v, CBface *f, UVpt &uv)
static UVpt get_uv (CBvert *v, CBface *f)
static bool get_uvs (CBface *f, UVpt &uv1, mlib::UVpt &uv2, mlib::UVpt &uv3)
static bool get_uvs (CBvert *v1, CBvert *v2, CBvert *v3, UVpt &uv1, mlib::UVpt &uv2, mlib::UVpt &uv3)
static UVpt get_uv (CBvert *v, CBface *f, bool &success)
static bool get_quad_uvs (CBface *quad, UVpt &uva, mlib::UVpt &uvb, mlib::UVpt &uvc, mlib::UVpt &uvd)
static bool get_quad_uvs (CBvert *a, CBvert *b, CBvert *c, CBvert *d, UVpt &uva, mlib::UVpt &uvb, mlib::UVpt &uvc, mlib::UVpt &uvd)
static bool quad_interp_texcoord (CBface *quad, CUVpt &uv, mlib::UVpt &texcoord)
static bool set (Bvert *v, CUVpt &uv)
static bool set (Bvert *v, Bface *f, CUVpt &uv)
static bool set (Bface *f, Bvert *v1, Bvert *v2, Bvert *v3, CUVpt &a, mlib::CUVpt &b, mlib::CUVpt &c)
static bool set (Bface *f, CUVpt &a, mlib::CUVpt &b, mlib::CUVpt &c)
static bool set (Bvert *v1, Bvert *v2, Bvert *v3, CUVpt &uv1, mlib::CUVpt &uv2, mlib::CUVpt &uv3)
static bool set (Bvert *v1, Bvert *v2, Bvert *v3, Bvert *v4, CUVpt &uv1, mlib::CUVpt &uv2, mlib::CUVpt &uv3, mlib::CUVpt &uv4)
static bool offset_uv (Bvert *v, CUVvec &delt)
static bool offset_uv (Bvert *v, Bface *f, CUVvec &delt)
static void split (CEdgeStrip &stip)
static bool is_continuous (CBedge *e)
static int discontinuity_degree (CBvert *v)
static bool is_continuous (CBvert *v)
static UVdatalookup (CBsimplex *s)
static UVdataget_data (Bsimplex *s)

Protected Types

enum  calc_type { SIMPLE_CALC = 0, LOOP_CALC, HYBRID_CALC }

Protected Member Functions

 UVdata (Bsimplex *s)
void set_uv (CUVpt &uv)
UVpt subdiv_uv (CBvert *v, CBface *f) const
UVpt subdiv_uv (CBedge *e, CBface *f) const
void set_subdiv_uv (Ledge *e, Lface *f)
void set_subdiv_uv (Lvert *v, Lface *f)

Static Protected Member Functions

static uint key ()
static void _set (Bvert *v, CUVpt &uv)
static void split (Bvert *v)
static void split (CBvert_list &verts)
static void split_chain (Bvert_list chain)

Protected Attributes

UVpt _uv
bool _uv_valid
calc_type _calc_type
bool _did_subdiv
UVMapping_mapping
uint _id
Bsimplex_simplex

Detailed Description

Definition at line 30 of file uv_data.H.


Member Enumeration Documentation

enum UVdata::calc_type [protected]
 

Enumerator:
SIMPLE_CALC 
LOOP_CALC 
HYBRID_CALC 

Definition at line 240 of file uv_data.H.


Constructor & Destructor Documentation

UVdata::UVdata Bsimplex s  )  [protected]
 

Definition at line 13 of file uv_data.C.

References Bface::e1(), Bface::e2(), Bface::e3(), get_data(), is_face(), Bface::v1(), Bface::v2(), and Bface::v3().

Referenced by get_data().


Member Function Documentation

static void UVdata::_set Bvert v,
CUVpt uv
[inline, static, protected]
 

Definition at line 280 of file uv_data.H.

References get_data(), and set_uv().

Referenced by handle_subdiv_calc(), and set().

void UVdata::bc2uv CWvec bc,
mlib::UVpt ret
[inline]
 

Definition at line 204 of file uv_data.H.

References uv1(), uv2(), and uv3().

Referenced by BMESH::split_face().

UVdata::DEFINE_RTTI_METHODS2 "UVdata"  ,
SimplexData  ,
CSimplexData
 

SimplexData::DEFINE_RTTI_METHODS_BASE "SimplexData"  ,
CSimplexData
[inherited]
 

int UVdata::discontinuity_degree CBvert v  )  [static]
 

Definition at line 487 of file uv_data.C.

References Bvert::e(), and is_continuous().

Referenced by LoopUV::centroid(), is_continuous(), and LoopUV::subdiv_val().

Bface* UVdata::face  )  const [inline]
 

Definition at line 184 of file uv_data.H.

References SimplexData::_simplex, and is_face().

Referenced by uv().

static UVdata* UVdata::get_data Bsimplex s  )  [inline, static]
 

Definition at line 168 of file uv_data.H.

References lookup(), and UVdata().

Referenced by _set(), notify_subdiv_gen(), set(), and UVdata().

bool UVdata::get_quad_uvs CBvert a,
CBvert b,
CBvert c,
CBvert d,
UVpt uva,
mlib::UVpt uvb,
mlib::UVpt uvc,
mlib::UVpt uvd
[static]
 

Definition at line 347 of file uv_data.C.

References Bedge::f1(), get_uv(), Bvert::lookup_edge(), lookup_face(), and quad_has_uv().

bool UVdata::get_quad_uvs CBface quad,
UVpt uva,
mlib::UVpt uvb,
mlib::UVpt uvc,
mlib::UVpt uvd
[static]
 

Definition at line 320 of file uv_data.C.

References Bface::get_quad_verts().

Referenced by quad_interp_texcoord(), and UVforIO2::UVforIO2().

static UVpt UVdata::get_uv CBvert v,
CBface f,
bool success
[inline, static]
 

Definition at line 80 of file uv_data.H.

References get_uv().

UVpt UVdata::get_uv CBvert v,
CBface f
[static]
 

Definition at line 98 of file uv_data.C.

References debug, err_msg(), get_uv(), and GtexUtil::show_tris().

bool UVdata::get_uv CBvert v,
CBface f,
UVpt uv
[static]
 

Definition at line 77 of file uv_data.C.

References _uv, _uv_valid, Bface::contains(), has_uv(), and lookup().

bool UVdata::get_uv CBvert v,
UVpt uv
[static]
 

Definition at line 58 of file uv_data.C.

References _uv, _uv_valid, Bvert::get_face(), is_continuous(), and lookup().

Referenced by LoopUV::centroid(), Bedge::do_swap(), SmoothShadeStripCB::faceCB(), FlatShadeStripCB::faceCB(), UV_attrib::get_attrib(), get_quad_uvs(), get_uv(), get_uvs(), SimpleUVCalc::get_val(), LoopUV::get_val(), is_continuous(), offset_uv(), SimpleUVCalc::subdiv_val(), LoopUV::subdiv_val(), and GLTexCoordGen::uv_from_vert().

static bool UVdata::get_uvs CBvert v1,
CBvert v2,
CBvert v3,
UVpt uv1,
mlib::UVpt uv2,
mlib::UVpt uv3
[inline, static]
 

Definition at line 71 of file uv_data.H.

References get_uv(), and lookup_face().

static bool UVdata::get_uvs CBface f,
UVpt uv1,
mlib::UVpt uv2,
mlib::UVpt uv3
[inline, static]
 

Definition at line 64 of file uv_data.H.

References get_uv(), Bface::v1(), Bface::v2(), and Bface::v3().

Referenced by UVforIO2::UVforIO2().

bool UVdata::handle_subdiv_calc  )  [virtual]
 

Reimplemented from SimplexData.

Definition at line 518 of file uv_data.C.

References _did_subdiv, _set(), Bedge::f1(), Bedge::f2(), Bvert::get_face(), Bedge::get_face(), Bvert::get_faces(), is_continuous(), is_edge(), is_vert(), ARRAY< T >::num(), set_subdiv_uv(), SimplexData::simplex(), subdiv_uv(), Lvert::subdiv_vertex(), and Ledge::subdiv_vertex().

static bool UVdata::has_uv CBface f  )  [inline, static]
 

Definition at line 45 of file uv_data.H.

References lookup().

Referenced by HasUVFaceFilter::accept(), Bedge::do_swap(), get_uv(), BMESH::put_faces(), Bedge::swap_is_legal(), and UVforIO2::UVforIO2().

uint SimplexData::id  )  const [inline, inherited]
 

Definition at line 42 of file simplex_data.H.

References SimplexData::_id.

Referenced by Bsimplex::add_simplex_data().

static bool UVdata::is_continuous CBvert v  )  [inline, static]
 

Definition at line 157 of file uv_data.H.

References discontinuity_degree().

bool UVdata::is_continuous CBedge e  )  [static]
 

Definition at line 460 of file uv_data.C.

References Bedge::f1(), Bedge::f2(), get_uv(), lookup(), Bedge::v1(), and Bedge::v2().

Referenced by UVDiscontinuousEdgeFilter::accept(), LoopUV::centroid(), discontinuity_degree(), Bedge::do_swap(), get_uv(), handle_subdiv_calc(), Bedge::is_patch_boundary(), Bedge::is_texture_seam(), quad_has_uv(), set(), SimpleUVCalc::subdiv_val(), LoopUV::subdiv_val(), and Bedge::swap_is_legal().

static uint UVdata::key  )  [inline, static, protected]
 

Definition at line 254 of file uv_data.H.

Referenced by lookup().

static UVdata* UVdata::lookup CBsimplex s  )  [inline, static]
 

Definition at line 163 of file uv_data.H.

References Bsimplex::find_data(), and key().

Referenced by UVMapping::add_face(), UVMapping::add_limit(), LoopUV::centroid(), UVMapping::compute_limits(), UVMapping::compute_mapping(), UVMapping::compute_wrapping(), SmoothShadeStripCB::faceCB(), FlatShadeStripCB::faceCB(), UVMapping::find_face(), UV_attrib::get_attrib(), get_data(), get_uv(), has_uv(), is_continuous(), BMESH::put_texcoords2(), quad_has_uv(), UVMapping::recurse(), UVMapping::recurse_wrapping(), set_subdiv_uv(), split(), BMESH::split_edge(), BMESH::split_face(), uv(), GLTexCoordGen::uv_from_vert(), BMESH::write_texcoords2(), and UVMapping::~UVMapping().

UVMapping* UVdata::mapping  )  const [inline]
 

Definition at line 178 of file uv_data.H.

References _mapping.

Referenced by UVMapping::add_face(), UVMapping::add_limit(), UVMapping::compute_limits(), UVMapping::compute_mapping(), UVMapping::compute_wrapping(), UVMapping::recurse(), UVMapping::recurse_wrapping(), and UVMapping::~UVMapping().

virtual void SimplexData::notify_normal_changed  )  [inline, virtual, inherited]
 

Definition at line 63 of file simplex_data.H.

Referenced by SimplexDataList::notify_normal_changed().

virtual void SimplexData::notify_simplex_changed  )  [inline, virtual, inherited]
 

Reimplemented in EdgeFrame, and SimplexFrame.

Definition at line 54 of file simplex_data.H.

Referenced by SimplexDataList::notify_simplex_changed().

virtual void UVdata::notify_simplex_deleted  )  [inline, virtual]
 

Reimplemented from SimplexData.

Definition at line 224 of file uv_data.H.

References _mapping, and SimplexData::notify_simplex_deleted().

virtual void SimplexData::notify_simplex_xformed CWtransf  )  [inline, virtual, inherited]
 

Reimplemented in SimplexFrame.

Definition at line 69 of file simplex_data.H.

Referenced by SimplexDataList::notify_simplex_xformed().

virtual void UVdata::notify_split Bsimplex  )  [inline, virtual]
 

Reimplemented from SimplexData.

Definition at line 214 of file uv_data.H.

References err_msg().

void UVdata::notify_subdiv_gen  )  [virtual]
 

Reimplemented from SimplexData.

Definition at line 499 of file uv_data.C.

References get_data(), is_face(), SimplexData::simplex(), Lface::subdiv_face1(), Lface::subdiv_face2(), Lface::subdiv_face3(), and Lface::subdiv_face_center().

bool UVdata::offset_uv Bvert v,
Bface f,
CUVvec delt
[static]
 

Definition at line 242 of file uv_data.C.

References get_uv(), and set().

bool UVdata::offset_uv Bvert v,
CUVvec delt
[static]
 

Definition at line 233 of file uv_data.C.

References get_uv(), and set().

bool UVdata::quad_has_uv CBface quad  )  [static]
 

Definition at line 45 of file uv_data.C.

References is_continuous(), Bface::is_quad(), lookup(), and Bface::weak_edge().

Referenced by get_quad_uvs().

bool UVdata::quad_interp_texcoord CBface quad,
CUVpt uv,
mlib::UVpt texcoord
[static]
 

Definition at line 419 of file uv_data.C.

References get_quad_uvs().

void UVdata::set Cstr_ptr &  str,
Bsimplex s
[inline]
 

Reimplemented from SimplexData.

Definition at line 212 of file uv_data.H.

References SimplexData::set().

void UVdata::set uint  id,
Bsimplex s
[inline]
 

Reimplemented from SimplexData.

Definition at line 211 of file uv_data.H.

References SimplexData::set().

bool UVdata::set Bvert v1,
Bvert v2,
Bvert v3,
Bvert v4,
CUVpt uv1,
mlib::CUVpt uv2,
mlib::CUVpt uv3,
mlib::CUVpt uv4
[static]
 

Definition at line 275 of file uv_data.C.

References lookup_face(), and set().

bool UVdata::set Bvert v1,
Bvert v2,
Bvert v3,
CUVpt uv1,
mlib::CUVpt uv2,
mlib::CUVpt uv3
[static]
 

Definition at line 251 of file uv_data.C.

References lookup_face(), and set().

static bool UVdata::set Bface f,
CUVpt a,
mlib::CUVpt b,
mlib::CUVpt c
[inline, static]
 

Definition at line 125 of file uv_data.H.

References set(), Bface::v1(), Bface::v2(), and Bface::v3().

static bool UVdata::set Bface f,
Bvert v1,
Bvert v2,
Bvert v3,
CUVpt a,
mlib::CUVpt b,
mlib::CUVpt c
[inline, static]
 

Definition at line 117 of file uv_data.H.

References set().

bool UVdata::set Bvert v,
Bface f,
CUVpt uv
[static]
 

Definition at line 191 of file uv_data.C.

References Bface::contains(), err_msg(), get_data(), split(), and Bface::tex_coord().

bool UVdata::set Bvert v,
CUVpt uv
[static]
 

Definition at line 127 of file uv_data.C.

References _set(), and is_continuous().

Referenced by BMESH::add_face(), BMESH::add_quad(), Bedge::do_swap(), BMESH::get_texcoords2(), offset_uv(), BMESH::read_texcoords2(), set(), set_subdiv_uv(), BMESH::split_edge(), and BMESH::split_face().

void UVdata::set_do_hybrid  )  [inline]
 

Definition at line 200 of file uv_data.H.

References _calc_type, and HYBRID_CALC.

void UVdata::set_do_loop  )  [inline]
 

Definition at line 199 of file uv_data.H.

References _calc_type, and LOOP_CALC.

void UVdata::set_do_simple  )  [inline]
 

Definition at line 198 of file uv_data.H.

References _calc_type, and SIMPLE_CALC.

void UVdata::set_mapping UVMapping m  )  [inline]
 

Definition at line 179 of file uv_data.H.

References _mapping.

Referenced by UVMapping::add_face(), and UVMapping::~UVMapping().

void UVdata::set_subdiv_uv Lvert v,
Lface f
[protected]
 

Definition at line 669 of file uv_data.C.

References Lface::allocate_subdiv_elements(), Bface::contains(), Bface::edge_before_vert(), Bface::edge_from_vert(), lookup(), lookup_face(), set(), subdiv_uv(), and Lvert::subdiv_vertex().

void UVdata::set_subdiv_uv Ledge e,
Lface f
[protected]
 

Definition at line 602 of file uv_data.C.

References Lface::allocate_subdiv_elements(), Bface::contains(), lookup(), lookup_face(), Ledge::lv(), Bface::other_edge(), set(), subdiv_uv(), Lvert::subdiv_vertex(), Ledge::subdiv_vertex(), uv(), Bedge::v1(), and Bedge::v2().

Referenced by handle_subdiv_calc().

void UVdata::set_uv CUVpt uv  )  [inline, protected]
 

Definition at line 269 of file uv_data.H.

References _uv, _uv_valid, is_vert(), and SimplexData::simplex().

Referenced by _set().

Bsimplex* SimplexData::simplex  )  const [inline, inherited]
 

Definition at line 43 of file simplex_data.H.

References SimplexData::_simplex.

Referenced by handle_subdiv_calc(), notify_subdiv_gen(), and set_uv().

void UVdata::split CBvert_list verts  )  [static, protected]
 

Definition at line 167 of file uv_data.C.

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

void UVdata::split Bvert v  )  [static, protected]
 

Definition at line 139 of file uv_data.C.

References _uv, _uv_valid, debug, err_msg(), Bvert::get_all_faces(), Bvert::loc(), lookup(), ARRAY< T >::num(), Color::red(), GtexUtil::show(), and GtexUtil::show_tris().

void UVdata::split CEdgeStrip &  stip  )  [static]
 

Definition at line 182 of file uv_data.C.

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

Referenced by Bface_list::push_layer(), set(), split(), and split_chain().

void UVdata::split_chain Bvert_list  chain  )  [static, protected]
 

Definition at line 174 of file uv_data.C.

References get_subdiv_chain(), and split().

Referenced by split().

UVpt UVdata::subdiv_uv CBedge e,
CBface f
const [protected]
 

Definition at line 900 of file uv_data.C.

References _calc_type, err_msg(), HYBRID_CALC, and SIMPLE_CALC.

UVpt UVdata::subdiv_uv CBvert v,
CBface f
const [protected]
 

Definition at line 887 of file uv_data.C.

References _calc_type, err_msg(), HYBRID_CALC, and SIMPLE_CALC.

Referenced by handle_subdiv_calc(), and set_subdiv_uv().

CUVpt& UVdata::uv int  i  )  const [inline]
 

Definition at line 189 of file uv_data.H.

References face(), and uv().

CUVpt & UVdata::uv CBvert v  )  const
 

Definition at line 113 of file uv_data.C.

References _uv, _uv_valid, face(), lookup(), and Bface::tex_coord().

Referenced by UVMapping::add_face(), UVMapping::add_limit(), UVMapping::compute_limits(), BMESH::put_texcoords2(), UVMapping::recurse(), UVMapping::recurse_wrapping(), set_subdiv_uv(), BMESH::split_edge(), uv(), uv1(), uv2(), uv3(), and BMESH::write_texcoords2().

CUVpt& UVdata::uv1  )  const [inline]
 

Definition at line 190 of file uv_data.H.

References uv().

Referenced by UVMapping::add_face(), bc2uv(), UVMapping::find_face(), and BMESH::split_face().

CUVpt& UVdata::uv2  )  const [inline]
 

Definition at line 191 of file uv_data.H.

References uv().

Referenced by UVMapping::add_face(), bc2uv(), UVMapping::find_face(), and BMESH::split_face().

CUVpt& UVdata::uv3  )  const [inline]
 

Definition at line 192 of file uv_data.H.

References uv().

Referenced by UVMapping::add_face(), bc2uv(), UVMapping::find_face(), and BMESH::split_face().


Member Data Documentation

calc_type UVdata::_calc_type [protected]
 

Definition at line 248 of file uv_data.H.

Referenced by set_do_hybrid(), set_do_loop(), set_do_simple(), and subdiv_uv().

bool UVdata::_did_subdiv [protected]
 

Definition at line 249 of file uv_data.H.

Referenced by handle_subdiv_calc().

uint SimplexData::_id [protected, inherited]
 

Definition at line 92 of file simplex_data.H.

Referenced by SimplexData::id(), and SimplexData::set().

UVMapping* UVdata::_mapping [protected]
 

Definition at line 251 of file uv_data.H.

Referenced by mapping(), notify_simplex_deleted(), and set_mapping().

Bsimplex* SimplexData::_simplex [protected, inherited]
 

Definition at line 93 of file simplex_data.H.

Referenced by EdgeFrame::edge(), face(), SimplexData::notify_simplex_deleted(), SimplexData::set(), SimplexData::simplex(), and VertFrame::vert().

UVpt UVdata::_uv [protected]
 

Definition at line 246 of file uv_data.H.

Referenced by get_uv(), set_uv(), split(), and uv().

bool UVdata::_uv_valid [protected]
 

Definition at line 247 of file uv_data.H.

Referenced by get_uv(), set_uv(), split(), and uv().


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