From 9e1e9f09f664b079e8efd3de95907d289b9e84a6 Mon Sep 17 00:00:00 2001 From: David Rose Date: Wed, 25 Apr 2001 20:56:05 +0000 Subject: [PATCH] *** empty log message *** --- panda/src/builder/mesherFanMaker.I | 31 +++++++++++++++++++++++++----- panda/src/builder/mesherStrip.I | 9 ++++++--- panda/src/egg/eggTexture.h | 8 ++++---- 3 files changed, 36 insertions(+), 12 deletions(-) diff --git a/panda/src/builder/mesherFanMaker.I b/panda/src/builder/mesherFanMaker.I index 0e0ed704c7..1cf10057a5 100644 --- a/panda/src/builder/mesherFanMaker.I +++ b/panda/src/builder/mesherFanMaker.I @@ -59,7 +59,10 @@ template MesherFanMaker:: MesherFanMaker(const Vertex *vertex, Strip *tri, Mesher *mesher) { _vertex = vertex; - _edges.push_back(tri->find_opposite_edge(vertex)); + const Edge *edge = tri->find_opposite_edge(vertex); + if (edge != (const Edge *)NULL) { + _edges.push_back(edge); + } _strips.push_back(tri); _planar = tri->_planar; _mesher = mesher; @@ -73,19 +76,37 @@ join(MesherFanMaker &other) { nassertr(_mesher == other._mesher, false); nassertr(_bucket == other._bucket, false); - if (_edges.back()->_b == other._edges.front()->_a) { + nassertr(!_edges.empty() && !other._edges.empty(), false); + + const Edge *my_back = _edges.back(); + const Edge *other_front = other._edges.front(); + nassertr(my_back != (Edge *)NULL && other_front != (Edge *)NULL, false); + + const Vertex *my_back_b = my_back->_b; + const Vertex *other_front_a = other_front->_a; + + if (my_back_b == other_front_a) { _planar = is_coplanar_with(other); _edges.splice(_edges.end(), other._edges); _strips.splice(_strips.end(), other._strips); return true; - } else if (_edges.front()->_a == other._edges.back()->_b) { + } + + const Edge *my_front = _edges.front(); + const Edge *other_back = other._edges.back(); + nassertr(my_front != (Edge *)NULL && other_back != (Edge *)NULL, false); + + const Vertex *my_front_a = my_front->_a; + const Vertex *other_back_b = other_back->_b; + + if (my_front_a == other_back_b) { _planar = is_coplanar_with(other); _edges.splice(_edges.begin(), other._edges); _strips.splice(_strips.begin(), other._strips); return true; - } else { - return false; } + + return false; } diff --git a/panda/src/builder/mesherStrip.I b/panda/src/builder/mesherStrip.I index 860cd7d434..6912bf4bc4 100644 --- a/panda/src/builder/mesherStrip.I +++ b/panda/src/builder/mesherStrip.I @@ -251,7 +251,9 @@ make_prim(const BuilderBucket &bucket) { p.set_attrib(_prims.front()); Verts::iterator vi; for (vi = _verts.begin(); vi != _verts.end(); ++vi) { - p.add_vertex(**vi); + const Vertex *v = *vi; + nassertr(v != (Vertex *)NULL, p); + p.add_vertex(*v); } p.set_type(dest_type); @@ -271,7 +273,8 @@ make_prim(const BuilderBucket &bucket) { for (vi = _verts.begin(); vi != _verts.end() && pi != _prims.end(); ++vi) { - Vertex v = **vi; + const Vertex *v = *vi; + nassertr(v != (Vertex *)NULL, p); if (++count >= 3) { // Beginning with the third vertex, we increment pi. Thus, the @@ -280,7 +283,7 @@ make_prim(const BuilderBucket &bucket) { p.add_component(*pi); ++pi; } - p.add_vertex(v); + p.add_vertex(*v); } p.set_type(type); diff --git a/panda/src/egg/eggTexture.h b/panda/src/egg/eggTexture.h index 107ec8f649..23923a6a2b 100644 --- a/panda/src/egg/eggTexture.h +++ b/panda/src/egg/eggTexture.h @@ -64,10 +64,10 @@ public: FT_linear, // Min Filter Only - FT_nearest_mipmap_nearest, - FT_linear_mipmap_nearest, - FT_nearest_mipmap_linear, - FT_linear_mipmap_linear, + FT_nearest_mipmap_nearest, // "mipmap point" + FT_linear_mipmap_nearest, // "mipmap linear" + FT_nearest_mipmap_linear, // "mipmap bilinear" + FT_linear_mipmap_linear, // "mipmap trilinear" }; enum EnvType { ET_unspecified, ET_modulate, ET_decal