mirror of https://github.com/CGAL/cgal
fixed handling of multiple unconnected components. .cmd files added to testsuite
This commit is contained in:
parent
273d28a021
commit
1d629e2b1e
|
|
@ -2178,6 +2178,7 @@ Surface_mesh_simplification/test/Surface_mesh_simplification/check_audit_edge_co
|
|||
Surface_mesh_simplification/test/Surface_mesh_simplification/create_audit_edge_collapse_Polyhedron_3_LT.cpp -text
|
||||
Surface_mesh_simplification/test/Surface_mesh_simplification/create_audit_edge_collapse_Polyhedron_3_MP.cpp -text
|
||||
Surface_mesh_simplification/test/Surface_mesh_simplification/create_audit_edge_collapse_visitor.cpp -text
|
||||
Surface_mesh_simplification/test/Surface_mesh_simplification/data/MODELS -text
|
||||
Surface_mesh_simplification/test/Surface_mesh_simplification/data/cube.off -text
|
||||
Surface_mesh_simplification/test/Surface_mesh_simplification/data/cube_LT.audit -text
|
||||
Surface_mesh_simplification/test/Surface_mesh_simplification/data/cube_MP.audit -text
|
||||
|
|
@ -2208,6 +2209,9 @@ Surface_mesh_simplification/test/Surface_mesh_simplification/data/hexagon_open_M
|
|||
Surface_mesh_simplification/test/Surface_mesh_simplification/data/oct.off -text
|
||||
Surface_mesh_simplification/test/Surface_mesh_simplification/data/oct_LT.audit -text
|
||||
Surface_mesh_simplification/test/Surface_mesh_simplification/data/oct_MP.audit -text
|
||||
Surface_mesh_simplification/test/Surface_mesh_simplification/data/oni.off -text
|
||||
Surface_mesh_simplification/test/Surface_mesh_simplification/data/oni_LT.audit -text
|
||||
Surface_mesh_simplification/test/Surface_mesh_simplification/data/oni_MP.audit -text
|
||||
Surface_mesh_simplification/test/Surface_mesh_simplification/data/square_open.off -text
|
||||
Surface_mesh_simplification/test/Surface_mesh_simplification/data/square_open_LT.audit -text
|
||||
Surface_mesh_simplification/test/Surface_mesh_simplification/data/square_open_MP.audit -text
|
||||
|
|
@ -2233,11 +2237,17 @@ Surface_mesh_simplification/test/Surface_mesh_simplification/data/triangle_open_
|
|||
Surface_mesh_simplification/test/Surface_mesh_simplification/data/triangle_open_with_hole_LT.audit -text
|
||||
Surface_mesh_simplification/test/Surface_mesh_simplification/data/triangle_open_with_hole_MP.audit -text
|
||||
Surface_mesh_simplification/test/Surface_mesh_simplification/edge_collapse_test.kdevelop -text
|
||||
Surface_mesh_simplification/test/Surface_mesh_simplification/test_edge_collapse_Polyhedron_3_LT_cost_cache.cmd -text
|
||||
Surface_mesh_simplification/test/Surface_mesh_simplification/test_edge_collapse_Polyhedron_3_LT_cost_cache.cpp -text
|
||||
Surface_mesh_simplification/test/Surface_mesh_simplification/test_edge_collapse_Polyhedron_3_LT_cost_placement_cache.cmd -text
|
||||
Surface_mesh_simplification/test/Surface_mesh_simplification/test_edge_collapse_Polyhedron_3_LT_cost_placement_cache.cpp -text
|
||||
Surface_mesh_simplification/test/Surface_mesh_simplification/test_edge_collapse_Polyhedron_3_LT_no_cache.cmd -text
|
||||
Surface_mesh_simplification/test/Surface_mesh_simplification/test_edge_collapse_Polyhedron_3_LT_no_cache.cpp -text
|
||||
Surface_mesh_simplification/test/Surface_mesh_simplification/test_edge_collapse_Polyhedron_3_MP_cost_cache.cmd -text
|
||||
Surface_mesh_simplification/test/Surface_mesh_simplification/test_edge_collapse_Polyhedron_3_MP_cost_cache.cpp -text
|
||||
Surface_mesh_simplification/test/Surface_mesh_simplification/test_edge_collapse_Polyhedron_3_MP_cost_placement_cache.cmd -text
|
||||
Surface_mesh_simplification/test/Surface_mesh_simplification/test_edge_collapse_Polyhedron_3_MP_cost_placement_cache.cpp -text
|
||||
Surface_mesh_simplification/test/Surface_mesh_simplification/test_edge_collapse_Polyhedron_3_MP_no_cache.cmd -text
|
||||
Surface_mesh_simplification/test/Surface_mesh_simplification/test_edge_collapse_Polyhedron_3_MP_no_cache.cpp -text
|
||||
Surface_mesher/demo/Surface_mesher/windows/Mesh.suo -text
|
||||
Surface_mesher/demo/Surface_mesher/windows/res/Mesh.ico -text svneol=unset#image/x-icon
|
||||
|
|
|
|||
|
|
@ -75,12 +75,16 @@ struct Visitor
|
|||
|
||||
void OnCollected( Halfedge_handle const& aEdge, bool aIsFixed, Polyhedron& )
|
||||
{
|
||||
CGAL_assertion( ( aEdge->id() % 2 ) == 0 ) ;
|
||||
|
||||
++ mCollected ;
|
||||
cerr << "\rEdges collected: " << mCollected << flush ;
|
||||
}
|
||||
|
||||
void OnSelected( Halfedge_handle const& aEdge, Polyhedron&, optional<double> const& aCost, size_t aInitial, size_t aCurrent )
|
||||
{
|
||||
CGAL_assertion( ( aEdge->id() % 2 ) == 0 ) ;
|
||||
|
||||
if ( aCurrent == aInitial )
|
||||
cerr << "\n" << flush ;
|
||||
|
||||
|
|
@ -94,10 +98,12 @@ struct Visitor
|
|||
|
||||
void OnCollapsing(Halfedge_handle const& aEdge, Polyhedron&, optional<Point> const& aPlacement )
|
||||
{
|
||||
CGAL_assertion( ( aEdge->id() % 2 ) == 0 ) ;
|
||||
}
|
||||
|
||||
void OnNonCollapsable(Halfedge_handle const& aEdge, Polyhedron& )
|
||||
{
|
||||
CGAL_assertion( ( aEdge->id() % 2 ) == 0 ) ;
|
||||
}
|
||||
|
||||
size_t mRequested ;
|
||||
|
|
@ -317,17 +323,24 @@ void Simplify ( int aStopA, int aStopR, bool aJustPrintSurfaceData, string aName
|
|||
}
|
||||
t.stop();
|
||||
|
||||
ofstream off_out(result_name.c_str(),ios::trunc);
|
||||
off_out << lP ;
|
||||
|
||||
cout << "\nFinished...\n"
|
||||
<< "Ellapsed time: " << t.time() << " seconds.\n"
|
||||
<< r << " edges removed.\n"
|
||||
<< endl
|
||||
<< lP.size_of_vertices() << " final vertices.\n"
|
||||
<< (lP.size_of_halfedges()/2) << " final edges.\n"
|
||||
<< lP.size_of_facets() << " final triangles.\n"
|
||||
<< ( lP.is_valid() ? " valid\n" : " INVALID!!\n" ) ;
|
||||
if ( lP.is_valid() && lP.is_pure_triangle() )
|
||||
{
|
||||
ofstream off_out(result_name.c_str(),ios::trunc);
|
||||
off_out << lP ;
|
||||
|
||||
cout << "\nFinished...\n"
|
||||
<< "Ellapsed time: " << t.time() << " seconds.\n"
|
||||
<< r << " edges removed.\n"
|
||||
<< endl
|
||||
<< lP.size_of_vertices() << " final vertices.\n"
|
||||
<< (lP.size_of_halfedges()/2) << " final edges.\n"
|
||||
<< lP.size_of_facets() << " final triangles.\n" ;
|
||||
}
|
||||
else
|
||||
{
|
||||
cout << "\nFAILED. The resulting surface is not " << ( lP.is_valid() ? " valid" : " triangular" ) << endl
|
||||
<< "Ellapsed time: " << t.time() << " seconds.\n" ;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
|||
|
|
@ -201,12 +201,21 @@ private:
|
|||
void Collect();
|
||||
void Loop();
|
||||
bool Is_collapsable( edge_descriptor const& aEdge ) ;
|
||||
bool Is_tetrahedron( edge_descriptor const& h1 ) ;
|
||||
bool Is_open_triangle( edge_descriptor const& h1 ) ;
|
||||
void Collapse( edge_descriptor const& aEdge ) ;
|
||||
void Update_neighbors( vertex_descriptor const& aKeptV ) ;
|
||||
|
||||
size_type get_directed_edge_id ( const_edge_descriptor const& aEdge ) const { return Edge_index_map[aEdge]; }
|
||||
size_type get_undirected_edge_id ( const_edge_descriptor const& aEdge ) const { return get_directed_edge_id(aEdge) / 2 ; }
|
||||
|
||||
bool is_primary_edge ( const_edge_descriptor const& aEdge ) const { return ( get_directed_edge_id(aEdge) % 2 ) == 0 ; }
|
||||
|
||||
edge_descriptor primary_edge ( edge_descriptor const& aEdge )
|
||||
{
|
||||
return is_primary_edge(aEdge) ? aEdge : opposite_edge(aEdge,mSurface) ;
|
||||
}
|
||||
|
||||
bool is_vertex_fixed ( const_vertex_descriptor const& aV ) const { return Vertex_is_fixed_map[aV] ; }
|
||||
|
||||
bool is_border ( const_edge_descriptor const& aEdge ) const { return Edge_is_border_map[aEdge] ; }
|
||||
|
|
@ -220,6 +229,7 @@ private:
|
|||
|
||||
Edge_data& get_data ( edge_descriptor const& aEdge ) const
|
||||
{
|
||||
CGAL_assertion( is_primary_edge(aEdge) ) ;
|
||||
return mEdgeDataArray[get_undirected_edge_id(aEdge)];
|
||||
}
|
||||
|
||||
|
|
@ -265,18 +275,21 @@ private:
|
|||
|
||||
void insert_in_PQ( edge_descriptor const& aEdge, Edge_data& aData )
|
||||
{
|
||||
CGAL_precondition( is_primary_edge(aEdge) ) ;
|
||||
CGAL_precondition(!aData.is_in_PQ());
|
||||
aData.set_PQ_handle(mPQ->push(aEdge));
|
||||
}
|
||||
|
||||
void update_in_PQ( edge_descriptor const& aEdge, Edge_data& aData )
|
||||
{
|
||||
CGAL_precondition( is_primary_edge(aEdge) ) ;
|
||||
CGAL_precondition(aData.is_in_PQ());
|
||||
aData.set_PQ_handle(mPQ->update(aEdge,aData.PQ_handle())) ;
|
||||
}
|
||||
|
||||
void remove_from_PQ( edge_descriptor const& aEdge, Edge_data& aData )
|
||||
{
|
||||
CGAL_precondition( is_primary_edge(aEdge) ) ;
|
||||
CGAL_precondition(aData.is_in_PQ());
|
||||
aData.set_PQ_handle(mPQ->erase(aEdge,aData.PQ_handle()));
|
||||
}
|
||||
|
|
@ -285,7 +298,10 @@ private:
|
|||
{
|
||||
optional<edge_descriptor> rEdge = mPQ->extract_top();
|
||||
if ( rEdge )
|
||||
{
|
||||
CGAL_precondition( is_primary_edge(*rEdge) ) ;
|
||||
get_data(*rEdge).reset_PQ_handle();
|
||||
}
|
||||
return rEdge ;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -115,9 +115,6 @@ void EdgeCollapse<M,SP,VPM,VFM,EIM,EBM,SC,CF,PF,CP,PP,V>::Collect()
|
|||
{
|
||||
edge_descriptor lEdge = *eb ;
|
||||
|
||||
std::cerr << "get_directed_edge_id(lEdge)" << get_directed_edge_id(lEdge) << std::endl ;
|
||||
std::cerr << "get_directed_edge_id(opp lEdge)" << get_directed_edge_id(opposite_edge(lEdge,mSurface)) << std::endl ;
|
||||
|
||||
CGAL_assertion( get_directed_edge_id(lEdge) == id ) ;
|
||||
CGAL_assertion( get_directed_edge_id(opposite_edge(lEdge,mSurface)) == id+1 ) ;
|
||||
|
||||
|
|
@ -242,84 +239,154 @@ bool EdgeCollapse<M,SP,VPM,VFM,EIM,EBM,SC,CF,PF,CP,PP,V>::Is_collapsable( edge_d
|
|||
CGAL_ECMS_TRACE(4, "is q_q border:" << is_border(opposite_edge(aEdgePQ,mSurface)) ) ;
|
||||
|
||||
bool lIsBoundary = is_undirected_edge_a_border(aEdgePQ) ;
|
||||
std::size_t min = lIsBoundary ? 3 : 4 ;
|
||||
if ( num_vertices(mSurface) > min )
|
||||
{
|
||||
out_edge_iterator eb1, ee1 ;
|
||||
out_edge_iterator eb2, ee2 ;
|
||||
|
||||
edge_descriptor lEdgeQP = opposite_edge(aEdgePQ,mSurface);
|
||||
|
||||
vertex_descriptor t = target(next_edge(aEdgePQ,mSurface),mSurface);
|
||||
vertex_descriptor b = target(next_edge(lEdgeQP,mSurface),mSurface);
|
||||
|
||||
CGAL_ECMS_TRACE(4," t=V" << t->ID << "(%" << t->vertex_degree() << ")" );
|
||||
CGAL_ECMS_TRACE(4," b=V" << b->ID << "(%" << b->vertex_degree() << ")" );
|
||||
out_edge_iterator eb1, ee1 ;
|
||||
out_edge_iterator eb2, ee2 ;
|
||||
|
||||
// The following loop checks the link condition for aEdgePQ.
|
||||
// Specifically, that every vertex 'k' adjacent to both 'p and 'q' is a face of the mesh.
|
||||
//
|
||||
for ( tie(eb1,ee1) = out_edges(p,mSurface) ; rR && eb1 != ee1 ; ++ eb1 )
|
||||
{
|
||||
edge_descriptor p_k = *eb1 ;
|
||||
|
||||
if ( p_k != aEdgePQ )
|
||||
{
|
||||
vertex_descriptor k = target(p_k,mSurface);
|
||||
|
||||
for ( tie(eb2,ee2) = out_edges(k,mSurface) ; rR && eb2 != ee2 ; ++ eb2 )
|
||||
{
|
||||
edge_descriptor k_l = *eb2 ;
|
||||
edge_descriptor lEdgeQP = opposite_edge(aEdgePQ,mSurface);
|
||||
|
||||
if ( target(k_l,mSurface) == q )
|
||||
{
|
||||
// At this point we know p-q-k are connected and we need to determine if this triangle is a face of the mesh.
|
||||
//
|
||||
// Since the mesh is known to be triangular there are at most two faces sharing the edge p-q.
|
||||
//
|
||||
// If p->q is NOT a border edge, the top face is p->q->t where t is target(next(p->q))
|
||||
// If q->p is NOT a border edge, the bottom face is q->p->b where b is target(next(q->p))
|
||||
//
|
||||
// If k is either t or b then p-q-k *might* be a face of the mesh. It won't be if k==t but p->q is border
|
||||
// or k==b but q->b is a border (because in that case even though there exists triangles p->q->t (or q->p->b)
|
||||
// they are holes, not faces)
|
||||
//
|
||||
bool lIsFace = ( t == k && !is_border(aEdgePQ) )
|
||||
|| ( b == k && !is_border(lEdgeQP) ) ;
|
||||
|
||||
if ( !lIsFace )
|
||||
{
|
||||
CGAL_ECMS_TRACE(3," k=V" << k->ID << " IS NOT in a face with p-q. NON-COLLAPSABLE edge." ) ;
|
||||
rR = false ;
|
||||
break ;
|
||||
}
|
||||
else
|
||||
{
|
||||
CGAL_ECMS_TRACE(4," k=V" << k->ID << " is in a face with p-q") ;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
vertex_descriptor t = target(next_edge(aEdgePQ,mSurface),mSurface);
|
||||
vertex_descriptor b = target(next_edge(lEdgeQP,mSurface),mSurface);
|
||||
|
||||
CGAL_ECMS_TRACE(4," t=V" << t->ID << "(%" << t->vertex_degree() << ")" );
|
||||
CGAL_ECMS_TRACE(4," b=V" << b->ID << "(%" << b->vertex_degree() << ")" );
|
||||
|
||||
// The following loop checks the link condition for aEdgePQ.
|
||||
// Specifically, that every vertex 'k' adjacent to both 'p and 'q' is a face of the mesh.
|
||||
//
|
||||
for ( tie(eb1,ee1) = out_edges(p,mSurface) ; rR && eb1 != ee1 ; ++ eb1 )
|
||||
{
|
||||
rR = false ;
|
||||
CGAL_ECMS_TRACE(3," Surface is irreducible. NON-COLLAPSABLE edge." ) ;
|
||||
}
|
||||
|
||||
if ( rR && !lIsBoundary )
|
||||
{
|
||||
if ( is_border(p) && is_border(q) )
|
||||
edge_descriptor p_k = *eb1 ;
|
||||
|
||||
if ( p_k != aEdgePQ )
|
||||
{
|
||||
rR = false ;
|
||||
CGAL_ECMS_TRACE(3," both p and q are boundary vertices but p-q is not. NON-COLLAPSABLE edge." ) ;
|
||||
}
|
||||
vertex_descriptor k = target(p_k,mSurface);
|
||||
|
||||
for ( tie(eb2,ee2) = out_edges(k,mSurface) ; rR && eb2 != ee2 ; ++ eb2 )
|
||||
{
|
||||
edge_descriptor k_l = *eb2 ;
|
||||
|
||||
if ( target(k_l,mSurface) == q )
|
||||
{
|
||||
// At this point we know p-q-k are connected and we need to determine if this triangle is a face of the mesh.
|
||||
//
|
||||
// Since the mesh is known to be triangular there are at most two faces sharing the edge p-q.
|
||||
//
|
||||
// If p->q is NOT a border edge, the top face is p->q->t where t is target(next(p->q))
|
||||
// If q->p is NOT a border edge, the bottom face is q->p->b where b is target(next(q->p))
|
||||
//
|
||||
// If k is either t or b then p-q-k *might* be a face of the mesh. It won't be if k==t but p->q is border
|
||||
// or k==b but q->b is a border (because in that case even though there exists triangles p->q->t (or q->p->b)
|
||||
// they are holes, not faces)
|
||||
//
|
||||
bool lIsFace = ( t == k && !is_border(aEdgePQ) )
|
||||
|| ( b == k && !is_border(lEdgeQP) ) ;
|
||||
|
||||
if ( !lIsFace )
|
||||
{
|
||||
CGAL_ECMS_TRACE(3," k=V" << k->ID << " IS NOT in a face with p-q. NON-COLLAPSABLE edge." ) ;
|
||||
rR = false ;
|
||||
break ;
|
||||
}
|
||||
else
|
||||
{
|
||||
CGAL_ECMS_TRACE(4," k=V" << k->ID << " is in a face with p-q") ;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ( rR )
|
||||
{
|
||||
if ( lIsBoundary )
|
||||
{
|
||||
if ( Is_open_triangle(aEdgePQ) )
|
||||
{
|
||||
rR = false ;
|
||||
CGAL_ECMS_TRACE(3," p-q belongs to an open triangle. NON-COLLAPSABLE edge." ) ;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( is_border(p) && is_border(q) )
|
||||
{
|
||||
rR = false ;
|
||||
CGAL_ECMS_TRACE(3," both p and q are boundary vertices but p-q is not. NON-COLLAPSABLE edge." ) ;
|
||||
}
|
||||
else if ( Is_tetrahedron(aEdgePQ) )
|
||||
{
|
||||
rR = false ;
|
||||
CGAL_ECMS_TRACE(3," p-q belongs to a tetrahedron. NON-COLLAPSABLE edge." ) ;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return rR ;
|
||||
}
|
||||
|
||||
template<class M,class SP,class VPM, class VFM, class EIM,class EBM, class SC, class CF,class PF,class CP, class PP,class V>
|
||||
bool EdgeCollapse<M,SP,VPM,VFM,EIM,EBM,SC,CF,PF,CP,PP,V>::Is_tetrahedron( edge_descriptor const& h1 )
|
||||
{
|
||||
//
|
||||
// Code copied from Polyhedron_3::is_tetrahedron()
|
||||
//
|
||||
edge_descriptor h2 = next_edge(h1,mSurface);
|
||||
edge_descriptor h3 = next_edge(h2,mSurface);
|
||||
|
||||
edge_descriptor h1o = opposite_edge(h1,mSurface) ;
|
||||
edge_descriptor h2o = opposite_edge(h2,mSurface) ;
|
||||
edge_descriptor h3o = opposite_edge(h3,mSurface) ;
|
||||
|
||||
edge_descriptor h4 = next_edge(h1o,mSurface);
|
||||
edge_descriptor h5 = next_edge(h2o,mSurface);
|
||||
edge_descriptor h6 = next_edge(h3o,mSurface);
|
||||
|
||||
edge_descriptor h4o = opposite_edge(h4,mSurface) ;
|
||||
edge_descriptor h5o = opposite_edge(h5,mSurface) ;
|
||||
edge_descriptor h6o = opposite_edge(h6,mSurface) ;
|
||||
|
||||
// check halfedge combinatorics.
|
||||
// at least three edges at vertices 1, 2, 3.
|
||||
if ( h4 == h3o ) return false;
|
||||
if ( h5 == h1o ) return false;
|
||||
if ( h6 == h2o ) return false;
|
||||
|
||||
// exact three edges at vertices 1, 2, 3.
|
||||
if ( next_edge(h4o,mSurface) != h3o ) return false;
|
||||
if ( next_edge(h5o,mSurface) != h1o ) return false;
|
||||
if ( next_edge(h6o,mSurface) != h2o ) return false;
|
||||
|
||||
// three edges at v4.
|
||||
if ( opposite_edge(next_edge(h4,mSurface),mSurface) != h5) return false;
|
||||
if ( opposite_edge(next_edge(h5,mSurface),mSurface) != h6) return false;
|
||||
if ( opposite_edge(next_edge(h6,mSurface),mSurface) != h4) return false;
|
||||
|
||||
// All facets are triangles.
|
||||
if ( next_edge(next_edge(next_edge(h1,mSurface),mSurface),mSurface) != h1) return false;
|
||||
if ( next_edge(next_edge(next_edge(h4,mSurface),mSurface),mSurface) != h4) return false;
|
||||
if ( next_edge(next_edge(next_edge(h5,mSurface),mSurface),mSurface) != h5) return false;
|
||||
if ( next_edge(next_edge(next_edge(h6,mSurface),mSurface),mSurface) != h6) return false;
|
||||
|
||||
// all edges are non-border edges.
|
||||
if ( is_border(h1)) return false; // implies h2 and h3
|
||||
if ( is_border(h4)) return false;
|
||||
if ( is_border(h5)) return false;
|
||||
if ( is_border(h6)) return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
template<class M,class SP,class VPM, class VFM, class EIM,class EBM, class SC, class CF,class PF,class CP, class PP,class V>
|
||||
bool EdgeCollapse<M,SP,VPM,VFM,EIM,EBM,SC,CF,PF,CP,PP,V>::Is_open_triangle( edge_descriptor const& h1 )
|
||||
{
|
||||
edge_descriptor h2 = next_edge(h1,mSurface);
|
||||
edge_descriptor h3 = next_edge(h2,mSurface);
|
||||
|
||||
return is_undirected_edge_a_border(h2) && is_undirected_edge_a_border(h3);
|
||||
}
|
||||
|
||||
|
||||
template<class M,class SP,class VPM, class VFM, class EIM,class EBM, class SC, class CF,class PF,class CP, class PP,class V>
|
||||
void EdgeCollapse<M,SP,VPM,VFM,EIM,EBM,SC,CF,PF,CP,PP,V>::Collapse( edge_descriptor const& aEdgePQ )
|
||||
{
|
||||
|
|
@ -354,10 +421,10 @@ void EdgeCollapse<M,SP,VPM,VFM,EIM,EBM,SC,CF,PF,CP,PP,V>::Collapse( edge_descrip
|
|||
edge_descriptor lEdgePT, lEdgeQB ;
|
||||
|
||||
if ( !is_border(aEdgePQ) ) // Exists top facet
|
||||
lEdgePT = opposite_edge(prev_edge(aEdgePQ,mSurface),mSurface);
|
||||
lEdgePT = primary_edge(opposite_edge(prev_edge(aEdgePQ,mSurface),mSurface));
|
||||
|
||||
if ( !is_border(lEdgeQP) ) // Exists bottom facet
|
||||
lEdgeQB = opposite_edge(prev_edge(lEdgeQP,mSurface),mSurface);
|
||||
lEdgeQB = primary_edge(opposite_edge(prev_edge(lEdgeQP,mSurface),mSurface));
|
||||
|
||||
CGAL_ECMS_TRACE(3,"EdgePQ E" << aEdgePQ->ID
|
||||
<< "(V" << aEdgePQ->vertex()->ID << "->V" << aEdgePQ->opposite()->vertex()->ID
|
||||
|
|
@ -457,7 +524,7 @@ void EdgeCollapse<M,SP,VPM,VFM,EIM,EBM,SC,CF,PF,CP,PP,V>::Update_neighbors( vert
|
|||
in_edge_iterator eb2, ee2 ;
|
||||
for ( tie(eb2,ee2) = in_edges(lAdj_k,mSurface) ; eb2 != ee2 ; ++ eb2 )
|
||||
{
|
||||
edge_descriptor lEdge2 = *eb2 ;
|
||||
edge_descriptor lEdge2 = primary_edge(*eb2) ;
|
||||
|
||||
Edge_data& lData2 = get_data(lEdge2);
|
||||
CGAL_ECMS_TRACE(4,"Inedge around V" << lAdj_k->ID << edge_to_string(lEdge2) ) ;
|
||||
|
|
|
|||
|
|
@ -135,7 +135,8 @@ public :
|
|||
CHECK_EQUAL(audit_data->selected,actual_data->selected);
|
||||
if ( audit_data->selected )
|
||||
{
|
||||
CHECK_EQUAL(audit_data->order ,actual_data->order);
|
||||
//CHECK_EQUAL(audit_data->order ,actual_data->order); // The ordering of equally costing edges can vary
|
||||
|
||||
CHECK_EQUAL(audit_data->is_collapsable ,actual_data->is_collapsable);
|
||||
CHECK_EQUAL(!audit_data->cost ,!actual_data->cost);
|
||||
CHECK_EQUAL(!audit_data->placement ,!actual_data->placement);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,23 @@
|
|||
cube.off
|
||||
cube_open.off
|
||||
tetra_12f.off
|
||||
tetra_6f.off
|
||||
tetra.off
|
||||
triangle_7f_open.off
|
||||
triangle_open.off
|
||||
triangle_open_with_hole.off
|
||||
genus1.off
|
||||
hedra.off
|
||||
hedra_open.off
|
||||
hexagon_open.off
|
||||
oct.off
|
||||
square_open.off
|
||||
star.off
|
||||
Created by the authorCGAL package author
|
||||
|
||||
eight.off
|
||||
helmet.off
|
||||
oni.off
|
||||
From the AIM@SHAPE repository
|
||||
Contributed by INRIA
|
||||
|
||||
|
|
@ -17,22 +17,22 @@ I 30 0
|
|||
I 32 0
|
||||
I 34 0
|
||||
S 32 0.000287573
|
||||
C 32 -3.83902e-18 0.412317 0.412317
|
||||
C 32 -0 0.412317 0.412317
|
||||
S 4 0.000287573
|
||||
C 4 -3.83902e-18 -0.412317 -0.412317
|
||||
S 6 0.00258816
|
||||
C 6 -2.25618e-17 0.824634 -0.824634
|
||||
S 20 0.00631851
|
||||
C 20 0.425867 -1.17307 -0.220677
|
||||
S 34 5.06222e+29
|
||||
C 4 0 -0.412317 -0.412317
|
||||
S 0 0.00258816
|
||||
C 0 -0.412317 -0.206159 -1.03079
|
||||
S 28 0.00631851
|
||||
C 28 -0.0135503 -0.877867 0.953362
|
||||
S 18 3.21146e+29
|
||||
N 18
|
||||
S 22 3.21146e+29
|
||||
N 22
|
||||
S 26 4.51651e+29
|
||||
N 26
|
||||
S 6 4.7135e+29
|
||||
N 6
|
||||
S 34 6.11172e+29
|
||||
N 34
|
||||
S 24 5.80344e+29
|
||||
S 24 6.11172e+29
|
||||
N 24
|
||||
S 14 8.96453e+29
|
||||
N 14
|
||||
S 12 4.12494e+29
|
||||
N 12
|
||||
S 8 7.83803e+29
|
||||
N 8
|
||||
S 28 1.44696e+30
|
||||
N 28
|
||||
|
|
|
|||
|
|
@ -22,17 +22,17 @@ S 0 0.302232
|
|||
C 0 -0.274878 0 -0.274878
|
||||
S 28 0.302232
|
||||
C 28 0 -0.274878 0.274878
|
||||
S 8 0.302232
|
||||
C 8 0.274878 0 -0.274878
|
||||
S 24 0.302232
|
||||
N 24
|
||||
S 2 0.302232
|
||||
C 24 0 0 0.274878
|
||||
S 8 0.302232
|
||||
N 8
|
||||
S 6 0.37779
|
||||
N 6
|
||||
S 2 0.37779
|
||||
N 2
|
||||
S 34 0.453347
|
||||
S 34 0.37779
|
||||
N 34
|
||||
S 10 0.453347
|
||||
N 10
|
||||
S 22 0.453347
|
||||
N 22
|
||||
S 18 0.453347
|
||||
N 18
|
||||
S 26 0.453347
|
||||
N 26
|
||||
|
|
|
|||
|
|
@ -21,13 +21,13 @@ S 22 4.26018e+10
|
|||
C 22 25.3653 204.906 115.553
|
||||
S 2 2.57406e+10
|
||||
C 2 96.7728 0 -3.22717
|
||||
S 6 1.16743e+11
|
||||
C 6 96.9863 0 -3.0137
|
||||
S 8 1.61059e+11
|
||||
C 8 49.8679 0 -100
|
||||
S 24 1.66667e+11
|
||||
N 24
|
||||
S 26 7.08113e+11
|
||||
N 26
|
||||
S 10 7.08554e+11
|
||||
S 26 1.1674e+11
|
||||
C 26 0.288404 -0 100.288
|
||||
S 32 1.72447e+11
|
||||
C 32 -95.1633 -0 54.711
|
||||
S 10 1.77771e+11
|
||||
N 10
|
||||
S 14 6.68997e+11
|
||||
N 14
|
||||
S 4 6.69938e+11
|
||||
N 4
|
||||
|
|
|
|||
|
|
@ -24,14 +24,10 @@ C 18 50 100 100
|
|||
S 22 12500
|
||||
C 22 25 100 50
|
||||
S 6 10625
|
||||
N 6
|
||||
S 27 10625
|
||||
N 27
|
||||
C 6 62.5 75 25
|
||||
S 26 10156.2
|
||||
N 26
|
||||
S 24 12500
|
||||
N 24
|
||||
S 10 12500
|
||||
S 10 12656.2
|
||||
N 10
|
||||
S 4 15000
|
||||
N 4
|
||||
S 14 18125
|
||||
N 14
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
|
@ -148,139 +148,141 @@ I 292 0
|
|||
I 294 0
|
||||
I 296 0
|
||||
I 298 0
|
||||
S 178 0.00087787
|
||||
C 178 -1.21728 -0.579307 -0.354322
|
||||
S 172 0.000616149
|
||||
C 172 -1.23587 0.592976 -0.416166
|
||||
S 24 0.00087787
|
||||
C 24 1.21728 -0.579307 0.354322
|
||||
S 16 0.000616149
|
||||
C 16 1.23587 0.592976 0.416166
|
||||
S 262 0.00109497
|
||||
C 262 0.854042 0.579227 -0.961636
|
||||
S 268 0.000736992
|
||||
C 268 0.829624 -0.603546 -1.04178
|
||||
S 58 0.00614938
|
||||
C 58 1.2305 -0.531284 0.602889
|
||||
S 82 0.000956118
|
||||
C 82 0.00862345 0.589228 1.30459
|
||||
S 118 0.00303553
|
||||
C 118 -0.645717 -0.577951 1.14105
|
||||
S 274 0.0084405
|
||||
C 274 1.56765 -0.940285 -1.87165
|
||||
S 166 0.00847585
|
||||
C 166 -2.3683 0.93953 -0.593251
|
||||
S 184 0.00880734
|
||||
C 184 -2.28419 -0.925876 -0.903152
|
||||
S 76 0.00849633
|
||||
C 76 0.16727 0.939203 2.43613
|
||||
S 64 0.00861197
|
||||
C 64 1.29019 -0.951159 2.06349
|
||||
S 226 0.010247
|
||||
C 226 -0.3094 0.962249 -2.42257
|
||||
S 285 0.0105436
|
||||
C 285 2.19477 0.96335 -1.06666
|
||||
S 232 0.0166158
|
||||
C 232 0.614209 0.489105 -1.302
|
||||
S 238 0.0118901
|
||||
C 238 0.549401 -0.603341 -1.51339
|
||||
S 142 0.0147278
|
||||
C 142 -1.4989 0.527669 -0.209156
|
||||
S 254 0.0221796
|
||||
C 254 1.9079 -0.164833 -2.60082
|
||||
S 74 0.0265542
|
||||
C 74 -0.0345343 0.158922 3.19899
|
||||
S 125 0.0192173
|
||||
C 125 -1.55095 -0.934357 1.9688
|
||||
S 164 0.024025
|
||||
C 164 -3.15878 -0.0140078 -1.01375
|
||||
S 296 0.0673206
|
||||
C 296 2.25207 -1.02109 -0.984833
|
||||
S 4 0.0731144
|
||||
C 4 3.11299 0.158379 1.04523
|
||||
S 12 0.0533272
|
||||
C 12 1.61014 1.06237 0.947576
|
||||
S 115 0.0794477
|
||||
C 115 -0.331182 -0.256465 0.820785
|
||||
S 180 0.106358
|
||||
C 180 -2.09172 -1.15663 -0.688113
|
||||
S 212 0.122947
|
||||
C 212 0.356083 -1.0868 -1.7676
|
||||
S 168 0.211663
|
||||
C 168 -1.78861 1.15059 0.0290727
|
||||
S 102 0.0586997
|
||||
C 102 -2.39705 0.287314 1.91693
|
||||
S 96 0.425376
|
||||
C 96 0.698915 -0.902878 3.20076
|
||||
S 194 0.441911
|
||||
C 194 -3.14726 -0.193119 -2.08583
|
||||
S 8 0.372609
|
||||
C 8 2.17458 1.25455 0.105891
|
||||
S 276 0.488774
|
||||
C 276 2.67836 -0.859269 -2.43586
|
||||
S 228 0.768703
|
||||
C 228 -0.0840027 1.26235 -2.25654
|
||||
S 56 1.39512
|
||||
C 56 1.17461 -0.110404 1.20967
|
||||
S 155 0.86543
|
||||
C 155 -2.27426 -1.20853 -0.48425
|
||||
S 106 2.10438
|
||||
C 106 -1.61641 0.972841 3.3818
|
||||
S 0 2.92686
|
||||
C 0 3.81681 0.908319 0.575671
|
||||
S 244 4.64021
|
||||
N 244
|
||||
S 156 4.73596
|
||||
S 288 0.00087787
|
||||
C 288 1.21728 0.579307 -0.354322
|
||||
S 292 0.000616149
|
||||
C 292 1.23587 -0.592976 -0.416166
|
||||
S 142 0.00087787
|
||||
C 142 -1.21728 0.579307 0.354322
|
||||
S 148 0.000616149
|
||||
C 148 -1.23587 -0.592976 0.416166
|
||||
S 208 0.00109497
|
||||
C 208 -0.854042 -0.579227 -0.961636
|
||||
S 202 0.000736992
|
||||
C 202 -0.829624 0.603546 -1.04178
|
||||
S 82 0.00111716
|
||||
C 82 -0.132175 0.579917 1.2818
|
||||
S 88 0.000731628
|
||||
C 88 -0.0571664 -0.602521 1.32925
|
||||
S 124 0.00844244
|
||||
C 124 -1.55282 -0.974158 1.8438
|
||||
S 296 0.00847585
|
||||
C 296 2.3683 -0.93953 -0.593251
|
||||
S 106 0.00860398
|
||||
C 106 -1.27359 0.975597 2.04625
|
||||
S 166 0.010207
|
||||
C 166 -2.39801 0.962448 -0.444101
|
||||
S 244 0.010247
|
||||
C 244 0.3094 -0.962249 -2.42257
|
||||
S 226 0.0111196
|
||||
C 226 -0.322903 0.934623 -2.44531
|
||||
S 284 0.0106124
|
||||
C 284 2.22594 0.932908 -1.06562
|
||||
S 24 0.0109899
|
||||
C 24 1.43836 -0.556091 -0.0247312
|
||||
S 16 0.00988793
|
||||
C 16 1.46643 0.543584 0.167365
|
||||
S 282 0.0226875
|
||||
C 282 3.12739 -0.0242302 -1.03501
|
||||
S 64 0.0159256
|
||||
C 64 1.35969 -0.969099 2.09522
|
||||
S 46 0.0175698
|
||||
C 46 1.63793 0.971198 1.91189
|
||||
S 238 0.0238627
|
||||
C 238 -0.487879 -0.5055 -1.42101
|
||||
S 232 0.0142954
|
||||
C 232 -0.310531 0.538769 -1.5963
|
||||
S 184 0.0170071
|
||||
C 184 -2.31653 -0.96799 -0.930961
|
||||
S 164 0.0254626
|
||||
C 164 -3.16067 -0.0269279 -1.00148
|
||||
S 104 0.0306921
|
||||
C 104 -2.06964 -0.0458764 2.62682
|
||||
S 224 0.0379581
|
||||
C 224 -0.00507915 -0.000414038 -3.38593
|
||||
S 44 0.0413653
|
||||
C 44 1.99922 0.00173351 2.77872
|
||||
S 228 0.0717491
|
||||
C 228 -0.58644 1.04702 -2.14159
|
||||
S 112 0.0924212
|
||||
C 112 -1.20646 0.405117 1.08566
|
||||
S 118 0.0620628
|
||||
C 118 -0.914303 -0.450648 1.48884
|
||||
S 294 0.229767
|
||||
C 294 1.92868 -1.1115 0.189447
|
||||
S 120 0.150224
|
||||
C 120 -1.53062 -0.811878 1.83351
|
||||
S 66 0.230634
|
||||
C 66 1.91934 -0.480549 2.98563
|
||||
S 108 0.339431
|
||||
C 108 -1.39681 0.886323 1.94194
|
||||
S 160 0.252318
|
||||
C 160 -3.35501 0.526239 -0.833389
|
||||
S 246 0.351352
|
||||
C 246 0.248838 -0.514012 -3.67868
|
||||
S 280 0.399892
|
||||
C 280 3.40727 0.379516 -1.33555
|
||||
S 126 0.883405
|
||||
N 126
|
||||
S 100 1.06361
|
||||
N 100
|
||||
S 12 1.36342
|
||||
C 12 1.32358 1.2894 0.645875
|
||||
S 182 1.54947
|
||||
C 182 -0.964231 -1.32717 -1.00684
|
||||
S 134 2.39281
|
||||
C 134 -4.39284 0.59776 0.73108
|
||||
S 178 6.51046
|
||||
N 178
|
||||
S 58 6.45189
|
||||
N 58
|
||||
S 172 9.72529
|
||||
N 172
|
||||
S 268 9.73759
|
||||
N 268
|
||||
S 156 10.2242
|
||||
N 156
|
||||
S 208 5.57033
|
||||
N 208
|
||||
S 196 7.45718
|
||||
N 196
|
||||
S 116 11.2686
|
||||
N 116
|
||||
S 149 12.6079
|
||||
N 149
|
||||
S 190 12.7372
|
||||
N 190
|
||||
S 290 15.8588
|
||||
N 290
|
||||
S 52 18.1533
|
||||
S 262 12.3226
|
||||
N 262
|
||||
S 214 12.9721
|
||||
N 214
|
||||
S 254 14.2056
|
||||
C 254 2.75479 -0.0998508 -5.2092
|
||||
S 52 9.2891
|
||||
N 52
|
||||
S 218 25.0298
|
||||
N 218
|
||||
S 60 25.1971
|
||||
N 60
|
||||
S 78 30.0606
|
||||
N 78
|
||||
S 160 32.414
|
||||
N 160
|
||||
S 292 45.5266
|
||||
N 292
|
||||
S 260 51.3002
|
||||
C 260 4.13252 2.62643 -0.67091
|
||||
S 30 18.1585
|
||||
N 30
|
||||
S 108 25.9453
|
||||
N 108
|
||||
S 98 23.2123
|
||||
C 98 0.674504 -1.66319 2.85753
|
||||
S 204 90.5744
|
||||
N 204
|
||||
S 104 112.14
|
||||
N 104
|
||||
S 282 134.028
|
||||
N 282
|
||||
S 234 206.071
|
||||
N 234
|
||||
S 224 115.261
|
||||
N 224
|
||||
S 134 289.385
|
||||
N 134
|
||||
S 32 200.248
|
||||
S 32 12.4677
|
||||
N 32
|
||||
S 46 422.546
|
||||
N 46
|
||||
S 144 178.989
|
||||
N 144
|
||||
S 36 23629.6
|
||||
N 36
|
||||
S 70 15.2216
|
||||
N 70
|
||||
S 196 30.7827
|
||||
N 196
|
||||
S 40 45.9339
|
||||
N 40
|
||||
S 8 71.4143
|
||||
N 8
|
||||
S 114 26.0739
|
||||
N 114
|
||||
S 62 42.1443
|
||||
N 62
|
||||
S 186 77.9955
|
||||
N 186
|
||||
S 18 118.163
|
||||
N 18
|
||||
S 234 128.635
|
||||
N 234
|
||||
S 174 137.609
|
||||
N 174
|
||||
S 54 145
|
||||
N 54
|
||||
S 298 154.196
|
||||
N 298
|
||||
S 220 177.374
|
||||
N 220
|
||||
S 264 618.439
|
||||
N 264
|
||||
S 194 1054.76
|
||||
N 194
|
||||
S 4 1175.94
|
||||
N 4
|
||||
S 74 2421.22
|
||||
N 74
|
||||
|
|
|
|||
|
|
@ -182,123 +182,123 @@ S 192 1.38187
|
|||
C 192 -0.8203 0.47555 -2.5245
|
||||
S 222 1.38187
|
||||
C 222 0.8203 0.47555 -2.5245
|
||||
S 252 1.38191
|
||||
C 252 2.1475 0.47555 -1.56
|
||||
S 188 1.38191
|
||||
C 188 -2.1475 -0.47555 -1.56
|
||||
S 102 1.38191
|
||||
C 102 -2.1475 0.47555 1.56
|
||||
S 278 1.38191
|
||||
C 278 2.1475 -0.47555 -1.56
|
||||
S 212 1.77104
|
||||
C 212 -0.35675 -0.76945 -1.6645
|
||||
S 244 1.46092
|
||||
C 244 0.178375 -0.860275 -1.93025
|
||||
S 202 1.95893
|
||||
C 202 -0.510188 0.5878 -0.654
|
||||
S 174 1.87177
|
||||
C 174 -0.765281 0 -0.4145
|
||||
S 36 1.38191
|
||||
C 36 2.1475 -0.47555 1.56
|
||||
S 174 1.38204
|
||||
C 174 -1.02038 0 -0.175
|
||||
S 234 1.38204
|
||||
C 234 0 0 -1.133
|
||||
S 84 1.38204
|
||||
C 84 0 0 1.133
|
||||
S 3 1.38191
|
||||
C 3 2.1475 0.47555 1.56
|
||||
S 6 1.38207
|
||||
C 6 2.6545 0.47555 0
|
||||
S 159 1.38207
|
||||
C 159 -2.6545 -0.47555 0
|
||||
S 158 1.38207
|
||||
C 158 -2.6545 -0.47555 0
|
||||
S 202 1.95893
|
||||
C 202 -0.510188 0 -0.654
|
||||
S 166 2.03593
|
||||
C 166 -2.0885 0.9511 -0.6785
|
||||
S 38 1.38207
|
||||
C 38 2.6545 -0.47555 0
|
||||
S 52 1.95893
|
||||
N 52
|
||||
S 8 2.03593
|
||||
C 8 2.0885 0.9511 0.6785
|
||||
S 244 2.03633
|
||||
C 244 0 -0.9511 -2.196
|
||||
S 124 2.03679
|
||||
C 124 -1.29075 -0.9511 1.7765
|
||||
S 64 2.03679
|
||||
C 64 1.29075 -0.9511 1.7765
|
||||
S 252 2.15466
|
||||
N 252
|
||||
S 38 2.1547
|
||||
N 38
|
||||
S 246 2.54963
|
||||
N 246
|
||||
S 295 2.59577
|
||||
N 295
|
||||
S 296 2.68583
|
||||
C 296 2.22825 -0.713325 -0.78
|
||||
S 283 2.20351
|
||||
N 283
|
||||
S 284 2.68618
|
||||
C 284 2.26125 0.713325 -0.6785
|
||||
S 104 2.69172
|
||||
C 104 -1.4839 0.47555 2.04225
|
||||
S 164 2.69065
|
||||
C 164 -2.401 -0.47555 -0.78
|
||||
S 126 2.14326
|
||||
N 126
|
||||
S 160 2.14329
|
||||
N 160
|
||||
S 68 2.15465
|
||||
N 68
|
||||
S 278 2.15466
|
||||
N 278
|
||||
S 62 2.54364
|
||||
N 62
|
||||
S 64 2.687
|
||||
C 64 1.4305 -0.713325 1.878
|
||||
S 44 2.20373
|
||||
N 44
|
||||
S 10 2.29899
|
||||
N 10
|
||||
S 296 2.68618
|
||||
C 296 2.26125 -0.713325 -0.6785
|
||||
S 224 2.69157
|
||||
C 224 0 0.47555 -2.5245
|
||||
S 168 2.7252
|
||||
N 168
|
||||
S 286 2.77707
|
||||
N 286
|
||||
S 66 2.81616
|
||||
N 66
|
||||
S 36 2.81622
|
||||
N 36
|
||||
S 78 2.83531
|
||||
S 246 2.14324
|
||||
N 246
|
||||
S 164 2.69065
|
||||
C 164 -2.401 -0.47555 -0.78
|
||||
S 160 2.14329
|
||||
N 160
|
||||
S 74 2.69157
|
||||
C 74 0 0.47555 2.5245
|
||||
S 78 2.16242
|
||||
N 78
|
||||
S 118 2.98041
|
||||
N 118
|
||||
S 126 2.81622
|
||||
N 126
|
||||
S 120 2.98472
|
||||
N 120
|
||||
S 62 2.98472
|
||||
N 62
|
||||
S 180 3.03531
|
||||
N 180
|
||||
S 80 3.25484
|
||||
N 80
|
||||
S 12 3.41478
|
||||
N 12
|
||||
S 46 2.69172
|
||||
C 46 1.4839 0.47555 2.04225
|
||||
S 48 3.25484
|
||||
N 48
|
||||
S 262 3.53608
|
||||
N 262
|
||||
S 60 3.5425
|
||||
S 268 3.02986
|
||||
N 268
|
||||
S 168 3.39626
|
||||
N 168
|
||||
S 118 3.45366
|
||||
N 118
|
||||
S 240 3.54265
|
||||
N 240
|
||||
S 60 3.57724
|
||||
N 60
|
||||
S 209 3.92806
|
||||
N 209
|
||||
S 228 5.2639
|
||||
S 180 3.8172
|
||||
N 180
|
||||
S 228 3.98521
|
||||
N 228
|
||||
S 274 5.54666
|
||||
C 274 1.20331 -0.7868 -1.35513
|
||||
S 122 5.98119
|
||||
N 122
|
||||
S 108 6.77818
|
||||
N 108
|
||||
S 136 7.99417
|
||||
C 136 -1.7862 0.713325 0.681875
|
||||
S 94 6.66414
|
||||
C 94 0 -0.9511 1.7765
|
||||
S 96 7.15902
|
||||
S 0 4.6416
|
||||
N 0
|
||||
S 2 4.64207
|
||||
N 2
|
||||
S 136 5.24051
|
||||
C 136 -2.118 0.713325 0.44075
|
||||
S 96 3.87772
|
||||
N 96
|
||||
S 8 8.06329
|
||||
C 8 1.87257 0.594437 0.681875
|
||||
S 35 6.5051
|
||||
N 35
|
||||
S 98 4.26087
|
||||
N 98
|
||||
S 294 2.77707
|
||||
N 294
|
||||
S 138 4.29237
|
||||
N 138
|
||||
S 286 4.50678
|
||||
N 286
|
||||
S 284 5.24051
|
||||
C 284 2.118 0.713325 -0.44075
|
||||
S 48 7.47145
|
||||
N 48
|
||||
S 4 7.22584
|
||||
C 4 1.84587 -0.713325 0.59975
|
||||
S 122 7.4212
|
||||
N 122
|
||||
S 270 7.63175
|
||||
N 270
|
||||
S 154 7.9945
|
||||
C 154 -1.84587 -0.713325 0.49825
|
||||
S 258 8.55461
|
||||
N 258
|
||||
S 194 9.71267
|
||||
C 258 0.510188 0.237775 -1.17475
|
||||
S 104 8.88448
|
||||
C 104 -1.059 0.594437 1.48263
|
||||
S 108 5.21972
|
||||
N 108
|
||||
S 194 9.25455
|
||||
N 194
|
||||
S 32 11.282
|
||||
N 32
|
||||
S 154 12.5266
|
||||
N 154
|
||||
S 74 13.4008
|
||||
N 74
|
||||
S 214 13.4187
|
||||
N 214
|
||||
S 196 13.5279
|
||||
S 196 9.6512
|
||||
N 196
|
||||
S 256 13.8015
|
||||
N 256
|
||||
S 276 10.3371
|
||||
C 276 1.059 -0.118887 -1.31838
|
||||
S 214 12.0918
|
||||
N 214
|
||||
S 46 12.8404
|
||||
N 46
|
||||
S 94 13.6393
|
||||
N 94
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
|
@ -10,21 +10,19 @@ I 16 0
|
|||
I 18 0
|
||||
I 20 0
|
||||
I 22 0
|
||||
S 2 3.82586
|
||||
C 2 3.576 2.64581e-17 -2.60384e-17
|
||||
S 10 3.40076
|
||||
N 10
|
||||
S 22 3.40076
|
||||
N 22
|
||||
S 12 3.40076
|
||||
S 0 3.82586
|
||||
C 0 1.788 2.529 1.788
|
||||
S 18 9.34012
|
||||
C 18 -2.12377 -2.76646 1.90552
|
||||
S 12 7.22303e+31
|
||||
N 12
|
||||
S 8 9.34012
|
||||
C 8 -2.06501 -2.84958 -1.84676
|
||||
S 18 5.42376e+32
|
||||
N 18
|
||||
S 17 5.42376e+32
|
||||
N 17
|
||||
S 4 1.79135e+33
|
||||
N 4
|
||||
S 14 4.10421e+33
|
||||
N 14
|
||||
S 2 4.33158e+32
|
||||
N 2
|
||||
S 6 5.58261e+32
|
||||
N 6
|
||||
S 10 5.58261e+32
|
||||
N 10
|
||||
S 20 5.63772e+32
|
||||
N 20
|
||||
S 16 3.68874e+33
|
||||
N 16
|
||||
|
|
|
|||
|
|
@ -12,8 +12,8 @@ I 20 0
|
|||
I 22 0
|
||||
S 2 5.68346
|
||||
C 2 1.192 0 0
|
||||
S 21 4.26346
|
||||
C 21 0.596 -0.843 0
|
||||
S 20 4.26346
|
||||
C 20 0.596 -0.843 0
|
||||
S 22 5.32846
|
||||
N 22
|
||||
S 8 5.32846
|
||||
|
|
|
|||
|
|
@ -9,15 +9,15 @@ I 14 0
|
|||
I 16 0
|
||||
I 18 0
|
||||
I 20 0
|
||||
S 8 2.55057
|
||||
C 8 -8.9666e-18 -1.686 8.9666e-18
|
||||
S 4 1.23415
|
||||
C 4 1.23045 0.0543847 -1.15355
|
||||
S 18 22.2039
|
||||
C 18 -0.0553835 -0.0271607 2.36341
|
||||
S 10 1.44472e+34
|
||||
N 10
|
||||
S 20 2.0515e+34
|
||||
N 20
|
||||
S 0 3.45069e+34
|
||||
N 0
|
||||
S 0 2.55057
|
||||
C 0 1.192 0 1.192
|
||||
S 12 1.23414
|
||||
C 12 -1.23046 -0.0543919 1.15354
|
||||
S 14 24.8927
|
||||
C 14 -0.0194125 -0.0272001 2.40305
|
||||
S 6 1.13354e+34
|
||||
N 6
|
||||
S 2 3.55777e+34
|
||||
N 2
|
||||
S 8 6.00187e+36
|
||||
N 8
|
||||
|
|
|
|||
|
|
@ -15,13 +15,11 @@ S 6 4.26346
|
|||
N 6
|
||||
S 4 4.26346
|
||||
C 4 0.596 0.843 0
|
||||
S 15 5.32846
|
||||
N 15
|
||||
S 11 5.32846
|
||||
N 11
|
||||
S 12 5.68346
|
||||
S 14 5.32846
|
||||
N 14
|
||||
S 10 5.32846
|
||||
C 10 -0.298 0.4215 -0.596
|
||||
S 12 4.17384
|
||||
N 12
|
||||
S 20 5.68432
|
||||
N 20
|
||||
S 8 5.68432
|
||||
N 8
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
|
@ -12,19 +12,15 @@ I 20 0
|
|||
I 22 0
|
||||
S 2 0.0507767
|
||||
C 2 1.125 0.6495 0
|
||||
S 10 0.0715988
|
||||
C 10 -1.08813 0.850424 -0
|
||||
S 19 0.142647
|
||||
C 19 -0.0582358 -1.59088 -0
|
||||
S 20 1.49991
|
||||
N 20
|
||||
S 12 1.49991
|
||||
N 12
|
||||
S 4 1.49991
|
||||
N 4
|
||||
S 6 4.05539e+33
|
||||
S 14 0.0507767
|
||||
C 14 -1.125 -0.6495 0
|
||||
S 20 0.749956
|
||||
C 20 0.5 -0.866 0
|
||||
S 22 3.401
|
||||
C 22 2.4375 -0.32475 0
|
||||
S 10 2.74496e+33
|
||||
N 10
|
||||
S 16 4.64299e+33
|
||||
N 16
|
||||
S 6 1.45808e+34
|
||||
N 6
|
||||
S 22 5.17122e+33
|
||||
N 22
|
||||
S 14 5.62425e+33
|
||||
N 14
|
||||
|
|
|
|||
|
|
@ -14,8 +14,8 @@ S 2 0.999956
|
|||
C 2 0.75 0.433 0
|
||||
S 10 0.999956
|
||||
C 10 -0.75 0.433 0
|
||||
S 19 1
|
||||
C 19 0 -0.866 0
|
||||
S 18 1
|
||||
C 18 0 -0.866 0
|
||||
S 22 2.2499
|
||||
N 22
|
||||
S 14 2.2499
|
||||
|
|
@ -23,8 +23,6 @@ N 14
|
|||
S 6 2.25
|
||||
N 6
|
||||
S 20 4.74996
|
||||
N 20
|
||||
S 4 4.74999
|
||||
N 4
|
||||
S 12 4.74999
|
||||
C 20 0 -0.433 1
|
||||
S 12 2.31246
|
||||
N 12
|
||||
|
|
|
|||
|
|
@ -12,17 +12,19 @@ I 20 0
|
|||
I 22 0
|
||||
S 0 0.166667
|
||||
C 0 1.5 0 1.5
|
||||
S 16 0.406886
|
||||
C 16 -0.0915493 1.69014 -1.64085
|
||||
S 22 1.14695e+31
|
||||
N 22
|
||||
S 20 1.14695e+31
|
||||
N 20
|
||||
S 12 4.18198e+31
|
||||
N 12
|
||||
S 10 1.77514e+32
|
||||
N 10
|
||||
S 2 1.14695e+31
|
||||
N 2
|
||||
S 8 4.18198e+31
|
||||
S 8 0.148148
|
||||
N 8
|
||||
S 20 0.148148
|
||||
N 20
|
||||
S 18 0.148148
|
||||
N 18
|
||||
S 6 0.406886
|
||||
C 6 -1.64085 1.69014 -0.0915493
|
||||
S 16 8.85316e+30
|
||||
N 16
|
||||
S 12 2.16759e+31
|
||||
N 12
|
||||
S 10 2.16895e+31
|
||||
N 10
|
||||
S 22 2.16895e+31
|
||||
N 22
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
|
@ -3,11 +3,11 @@ I 2 0
|
|||
I 4 0
|
||||
I 6 0
|
||||
I 8 0
|
||||
S 2 1.5
|
||||
C 2 3.5 2.5 0
|
||||
S 6 1.33333
|
||||
N 6
|
||||
S 8 5.66667
|
||||
N 8
|
||||
S 4 5.66667
|
||||
S 8 1.5
|
||||
C 8 3.5 -0.5 0
|
||||
S 4 1.33333
|
||||
N 4
|
||||
S 2 5.66667
|
||||
N 2
|
||||
S 0 5.66667
|
||||
N 0
|
||||
|
|
|
|||
|
|
@ -38,31 +38,31 @@ S 0 2.22222
|
|||
C 0 -1.66667 0 -1.66667
|
||||
S 42 2.43001
|
||||
C 42 -0.157194 1.71367 1.67131
|
||||
S 20 2.81881
|
||||
C 20 1.75515 -1.73796 0.0221851
|
||||
S 60 5.48686
|
||||
C 60 0.23113 2.1372 -1.22979
|
||||
S 64 5.59212
|
||||
C 64 -1.17098 -2.18436 0.196463
|
||||
S 3 3.07837
|
||||
C 3 -0.236166 0.373124 -3.2702
|
||||
S 18 10.9771
|
||||
C 18 2.83778 -1.17992 0.154998
|
||||
S 6 6.24343
|
||||
C 6 0.555705 0.782281 -3.89764
|
||||
S 40 23.6295
|
||||
C 40 0.165835 1.74196 3.56481
|
||||
S 66 72.6294
|
||||
C 66 3.91432 -3.52603 0.359121
|
||||
S 49 7.57971e+33
|
||||
N 49
|
||||
S 52 5.11266e+33
|
||||
N 52
|
||||
S 44 2.37559e+34
|
||||
N 44
|
||||
S 46 3.32237e+34
|
||||
N 46
|
||||
S 32 4.71904e+34
|
||||
N 32
|
||||
S 54 1.86699e+35
|
||||
S 8 3.02334
|
||||
C 8 1.36134 0.53525 -1.8489
|
||||
S 10 1.01638
|
||||
C 10 1.6235 0.336929 -1.87587
|
||||
S 68 49.2336
|
||||
C 68 2.79897 -0.638565 -3.36599
|
||||
S 32 2.01431
|
||||
C 32 0.0471774 -1.28265 2.06656
|
||||
S 36 0.470132
|
||||
C 36 0.211096 -1.39282 1.79705
|
||||
S 52 8.54513
|
||||
C 52 -3.13911 0.0630047 -0.873125
|
||||
S 56 23.0566
|
||||
C 56 -0.924516 3.65283 0.758819
|
||||
S 26 261.487
|
||||
C 26 1.25464 6.23647 2.04693
|
||||
S 64 128
|
||||
N 64
|
||||
S 24 1.1861e+34
|
||||
N 24
|
||||
S 62 1.20184e+34
|
||||
N 62
|
||||
S 16 6.43437e+34
|
||||
N 16
|
||||
S 54 7.14014e+34
|
||||
N 54
|
||||
S 70 8.29912e+34
|
||||
N 70
|
||||
|
|
|
|||
|
|
@ -38,45 +38,47 @@ S 0 4
|
|||
C 0 -1 0 -1
|
||||
S 42 4
|
||||
C 42 0 1 1
|
||||
S 34 4
|
||||
N 34
|
||||
S 20 4
|
||||
C 20 1 -1 0
|
||||
S 10 5
|
||||
N 10
|
||||
S 6 5
|
||||
N 6
|
||||
S 34 5
|
||||
N 34
|
||||
S 38 5
|
||||
N 38
|
||||
S 28 5
|
||||
N 28
|
||||
S 54 5
|
||||
N 54
|
||||
S 24 6
|
||||
N 24
|
||||
S 48 6
|
||||
N 48
|
||||
S 14 6
|
||||
N 14
|
||||
S 48 6
|
||||
N 48
|
||||
S 24 6
|
||||
N 24
|
||||
S 52 10
|
||||
C 52 -2.5 0 -0.5
|
||||
S 44 9.5
|
||||
N 44
|
||||
S 56 10
|
||||
C 56 0 2.5 0.5
|
||||
S 18 10
|
||||
C 18 2.5 -0.5 0
|
||||
S 26 9.5
|
||||
N 26
|
||||
S 40 10
|
||||
C 40 0 0.5 2.5
|
||||
S 2 10
|
||||
C 2 -0.5 0 -2.5
|
||||
S 32 13.5
|
||||
N 32
|
||||
S 52 18.5
|
||||
C 52 -2.25 0 -1.25
|
||||
S 60 11
|
||||
C 60 0.5 2.5 -0.5
|
||||
S 64 11
|
||||
C 64 -0.5 -2.5 0.5
|
||||
S 56 13.25
|
||||
C 56 0.25 1.5 1
|
||||
S 66 13.25
|
||||
S 36 11
|
||||
C 36 -0.5 -0.5 2.5
|
||||
S 40 13.25
|
||||
C 40 -0.25 1 1.5
|
||||
S 62 10.0625
|
||||
N 62
|
||||
S 8 11
|
||||
C 8 0.5 0.5 -2.5
|
||||
S 2 13.25
|
||||
C 2 -1 0.25 -1.5
|
||||
S 66 18.5
|
||||
N 66
|
||||
S 12 24.375
|
||||
N 12
|
||||
S 70 21.3125
|
||||
N 70
|
||||
S 64 27.3125
|
||||
N 64
|
||||
|
|
|
|||
|
|
@ -24,15 +24,15 @@ S 10 7.59249e+06
|
|||
C 10 5.73085 4.24517 5.02398
|
||||
S 18 5.40146e+09
|
||||
C 18 154.257 6.96962 6.50855
|
||||
S 12 4.31324e+42
|
||||
N 12
|
||||
S 2 4.44095e+42
|
||||
N 2
|
||||
S 34 4.44095e+42
|
||||
S 34 1.19332e+42
|
||||
N 34
|
||||
S 32 4.31324e+42
|
||||
S 32 9.4043e+41
|
||||
N 32
|
||||
S 24 4.44095e+42
|
||||
S 24 1.41836e+42
|
||||
N 24
|
||||
S 20 4.44095e+42
|
||||
S 20 1.10332e+42
|
||||
N 20
|
||||
S 12 1.77308e+42
|
||||
N 12
|
||||
S 2 7.87458e+41
|
||||
N 2
|
||||
|
|
|
|||
|
|
@ -11,8 +11,6 @@ S 0 0
|
|||
C 0 0 0 0
|
||||
S 12 3.47222e+09
|
||||
N 12
|
||||
S 14 3.47222e+09
|
||||
N 14
|
||||
S 2 3.47222e+09
|
||||
N 2
|
||||
S 6 3.47222e+09
|
||||
|
|
@ -21,3 +19,5 @@ S 8 3.47222e+09
|
|||
N 8
|
||||
S 10 3.47222e+09
|
||||
N 10
|
||||
S 14 3.47222e+09
|
||||
N 14
|
||||
|
|
|
|||
|
|
@ -4,15 +4,15 @@ I 4 0
|
|||
I 6 0
|
||||
I 8 0
|
||||
I 10 0
|
||||
S 2 2.107
|
||||
N 2
|
||||
S 6 1.17563e+33
|
||||
N 6
|
||||
S 0 1.21557e+33
|
||||
N 0
|
||||
S 8 4.86229e+33
|
||||
N 8
|
||||
S 10 4.86229e+33
|
||||
N 10
|
||||
S 0 4.86229e+33
|
||||
N 0
|
||||
S 2 4.86229e+33
|
||||
N 2
|
||||
S 4 4.86229e+33
|
||||
N 4
|
||||
S 6 4.86229e+33
|
||||
N 6
|
||||
|
|
|
|||
|
|
@ -17,14 +17,10 @@ C 2 1.75 1 0
|
|||
S 4 0
|
||||
C 4 2 1 0
|
||||
S 12 0
|
||||
N 12
|
||||
S 10 0
|
||||
N 10
|
||||
S 18 1.57311e-32
|
||||
N 18
|
||||
C 12 0 0 0
|
||||
S 20 78
|
||||
N 20
|
||||
S 22 78
|
||||
N 22
|
||||
S 10 78
|
||||
N 10
|
||||
S 16 96
|
||||
N 16
|
||||
|
|
|
|||
|
|
@ -15,14 +15,10 @@ C 6 2 2.5 0
|
|||
S 18 2
|
||||
C 18 3.5 0.5 0
|
||||
S 12 2
|
||||
N 12
|
||||
S 8 3.25
|
||||
C 12 0.5 0.5 0
|
||||
S 8 6.25
|
||||
N 8
|
||||
S 20 6.25
|
||||
N 20
|
||||
S 0 6.5
|
||||
N 0
|
||||
S 22 10.25
|
||||
N 22
|
||||
S 14 12.5
|
||||
S 14 9
|
||||
N 14
|
||||
|
|
|
|||
|
|
@ -0,0 +1,19 @@
|
|||
data/triangle_open.off
|
||||
data/square_open.off
|
||||
data/cube_open.off
|
||||
data/hedra_open.off
|
||||
data/tetra.off
|
||||
data/cube.off
|
||||
data/hedra.off
|
||||
data/tetra_12f.off
|
||||
data/tetra_6f.off
|
||||
data/triangle_7f_open.off
|
||||
data/triangle_open_with_hole.off
|
||||
data/hexagon_open.off
|
||||
data/genus1.off
|
||||
data/eight.off
|
||||
data/head_open_with_holes.off
|
||||
data/oct.off
|
||||
data/oni.off
|
||||
data/star.off
|
||||
data/helmet.off
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
data/triangle_open.off
|
||||
data/square_open.off
|
||||
data/cube_open.off
|
||||
data/hedra_open.off
|
||||
data/tetra.off
|
||||
data/cube.off
|
||||
data/hedra.off
|
||||
data/tetra_12f.off
|
||||
data/tetra_6f.off
|
||||
data/triangle_7f_open.off
|
||||
data/triangle_open_with_hole.off
|
||||
data/hexagon_open.off
|
||||
data/genus1.off
|
||||
data/eight.off
|
||||
data/head_open_with_holes.off
|
||||
data/oct.off
|
||||
data/oni.off
|
||||
data/star.off
|
||||
data/helmet.off
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
data/triangle_open.off
|
||||
data/square_open.off
|
||||
data/cube_open.off
|
||||
data/hedra_open.off
|
||||
data/tetra.off
|
||||
data/cube.off
|
||||
data/hedra.off
|
||||
data/tetra_12f.off
|
||||
data/tetra_6f.off
|
||||
data/triangle_7f_open.off
|
||||
data/triangle_open_with_hole.off
|
||||
data/hexagon_open.off
|
||||
data/genus1.off
|
||||
data/eight.off
|
||||
data/head_open_with_holes.off
|
||||
data/oct.off
|
||||
data/oni.off
|
||||
data/star.off
|
||||
data/helmet.off
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
data/triangle_open.off
|
||||
data/square_open.off
|
||||
data/cube_open.off
|
||||
data/hedra_open.off
|
||||
data/tetra.off
|
||||
data/cube.off
|
||||
data/hedra.off
|
||||
data/tetra_12f.off
|
||||
data/tetra_6f.off
|
||||
data/triangle_7f_open.off
|
||||
data/triangle_open_with_hole.off
|
||||
data/hexagon_open.off
|
||||
data/genus1.off
|
||||
data/eight.off
|
||||
data/head_open_with_holes.off
|
||||
data/oct.off
|
||||
data/oni.off
|
||||
data/star.off
|
||||
data/helmet.off
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
data/triangle_open.off
|
||||
data/square_open.off
|
||||
data/cube_open.off
|
||||
data/hedra_open.off
|
||||
data/tetra.off
|
||||
data/cube.off
|
||||
data/hedra.off
|
||||
data/tetra_12f.off
|
||||
data/tetra_6f.off
|
||||
data/triangle_7f_open.off
|
||||
data/triangle_open_with_hole.off
|
||||
data/hexagon_open.off
|
||||
data/genus1.off
|
||||
data/eight.off
|
||||
data/head_open_with_holes.off
|
||||
data/oct.off
|
||||
data/oni.off
|
||||
data/star.off
|
||||
data/helmet.off
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
data/triangle_open.off
|
||||
data/square_open.off
|
||||
data/cube_open.off
|
||||
data/hedra_open.off
|
||||
data/tetra.off
|
||||
data/cube.off
|
||||
data/hedra.off
|
||||
data/tetra_12f.off
|
||||
data/tetra_6f.off
|
||||
data/triangle_7f_open.off
|
||||
data/triangle_open_with_hole.off
|
||||
data/hexagon_open.off
|
||||
data/genus1.off
|
||||
data/eight.off
|
||||
data/head_open_with_holes.off
|
||||
data/oct.off
|
||||
data/oni.off
|
||||
data/star.off
|
||||
data/helmet.off
|
||||
Loading…
Reference in New Issue