Skip to Content.
Sympa Menu

cgal-discuss - Re: [cgal-discuss] Progressive Mesh

Subject: CGAL users discussion list

List archive

Re: [cgal-discuss] Progressive Mesh


Chronological Thread 
  • From: Rob Patro <>
  • To:
  • Subject: Re: [cgal-discuss] Progressive Mesh
  • Date: Tue, 27 Jan 2009 16:07:47 -0500
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:subject:references :in-reply-to:x-enigmail-version:content-type :content-transfer-encoding; b=n2QxEjO0pY167E6O8vefg2BGivBgejSj9ToiW0yWX+g0Y4FUKjohvXgLprhAD2Cb5v XACAr8b/rdXxX/YqtSIrx/eZ/LbhgGtRRXafQQjYzVCIkq5dQ24KkvGqVW5MBX21AGxJ KUkFumJE/0O4kQ/7urFdKWUH+60xqlK3sPooY=

More precisely, I can't seem to get a good handle on what from the
EdgeProfile is modified during the collapse. The EdgeProfile is passed
to the OnCollapsing function in the visitor *before* the actual collapse
occurs. Therefore, some of the information it points to becomes
invalid, or no longer actually represents the topology of the mesh. Can
I reverse the edge collapses with just the information from the
EdgeProfiles passed into OnCollapsing? Is any of the collapsed info
discarded (destructed etc.), or should it still reside in memory unused?

Thanks,
Rob

Rob wrote:
> Fernando,
>
> Thanks for the pointer. I found the correct method names, and seem to
> be able to use all of the methods
> listed in the documentation (with properly inserted underscores). When
> an edge is collapsed during simplification,
> which information from the EdgeProfile is invalidated? My original idea
> was to maintain a stack of the EdgeProfiles
> as they were passed in from OnCollapsing in the visitor. However, now
> it seems that they may not contain the requisite
> information to perform the reversing vertex_split(s).
>
> Thanks,
> Rob
>
> Fernando Cacciola wrote:
>> Hi Rob,
>>
>>> error: ‘class
>>> CGAL::Surface_mesh_simplification::Edge_profile<CGAL::Polyhedron_3<CGAL::Simple_cartesian<double>,
>>>
>>> m3_items, CGAL::HalfedgeDS_default, std::allocator<int> > >’ has no
>>> member named ‘v0v1’
>>>
>> That's mistake in the documentation :( sorry about that.
>>
>> The member is named: "v0_v1()"
>>
>> You can see the actual class in the header:
>>
>> $CGAL_DIR
>> /include
>> /CGAL
>> /Surface_mesh_simplification
>> /Policies
>> /Edge_collapse
>> /Edge_profile.h
>>
>>
>> Also, in the header:
>>
>> $CGAL_DIR
>> /include
>> /CGAL
>> /Surface_mesh_simplification
>> /halfedge_collapse_Polyhedron_3.h
>>
>> there is the function:
>>
>> vertex_descriptor halfedge_collapse( edge_descriptor const& pq
>> , Polyhedron_3<Gt,I,HDS,A>& aSurface
>> ) ;
>>
>> which you can just call to "replay" the decimation steps in the
>> forward direction.
>>
>> What is missing though is the reverse operation, which you will have
>> to implement yourself. To do that, take close look at the
>> implementation of halfedge_collapse() because the actual euler
>> operation used depends on the local topology of the mesh around the
>> collapsing edge.
>>
>>
>> HTH
>>
>> Fernando Cacciola
>> www.geometryfactory.com
>>
>




Archive powered by MHonArc 2.6.16.

Top of Page