Skip to Content.
Sympa Menu

cgal-discuss - Re: [cgal-discuss] make_mesh_3 with features: initial points for C3T3

Subject: CGAL users discussion list

List archive

Re: [cgal-discuss] make_mesh_3 with features: initial points for C3T3


Chronological Thread 
  • From: Benjamin Kehlet <>
  • To: cgal-discuss <>
  • Subject: Re: [cgal-discuss] make_mesh_3 with features: initial points for C3T3
  • Date: Tue, 1 Sep 2015 10:45:14 +0200
  • Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None ; spf=Pass ; spf=None
  • Ironport-phdr: 9a23:xu9eJhf4bMltGc4FSFfZq88clGMj4u6mDksu8pMizoh2WeGdxc+6bR7h7PlgxGXEQZ/co6odzbGG6Oa/AidYvd6oizMrTt9lb1c9k8IYnggtUoauKHbQC7rUVRE8B9lIT1R//nu2YgB/Ecf6YEDO8DXptWZBUiv2OQc9HOnpAIma153xjLDpvcKIKF0UzBOGIppMbzyO5T3LsccXhYYwYo0Q8TDu5kVyRuJN2GlzLkiSlRuvru25/Zpk7jgC86l5r50IAu3Heb8lR+lYECg+KDJyo9b6sAHKCwqJ/HoVFGsM1QFZBhDMqxD8UJC2uSTzsq9x2TKRINbtHowzDD+t5qMuRB7zgzocLHZt+27ejol8jblQvQm6jx152Y/dJo+PYqlQZKTYKPkXQ2hIW8dXHw9MAoexc8NbBecHP+9drorVvFoLsB+3Qw+rUrC8ggRUj2P7iPVpm98qFhvLiVQt

Bryn,

I had a similar experience (see my question here: http://cgal-discuss.949826.n4.nabble.com/Unexpected-result-when-meshing-polyhedron-td4659563.html ). This was a polyhedral domain with several disconnected parts so I don't know if thisis relevant for you, though.

I ended up reimplementing Construct_initial_points to ensure that all the different parts of the domain are sufficiently represented in the set of initial points.

template< typename IGT_ >
class Polyhedral_multicomponent_mesh_domain_with_features_3
  : public CGAL::Polyhedral_mesh_domain_with_features_3< IGT_ >
{
 public:

  [...]

  struct Construct_initial_points
  {
    Construct_initial_points(const Polyhedral_multicomponent_mesh_domain_with_features_3& domain,
                             double edge_size)
     : r_domain_(domain), edge_size(edge_size) {}

    template<class OutputIterator>
    OutputIterator operator()(OutputIterator pts, const int n = 8) const;

   private:
    const Polyhedral_multicomponent_mesh_domain_with_features_3& r_domain_;
    const double edge_size;
  };

  Construct_initial_points construct_initial_points_object() const
  {
    return Construct_initial_points(*this, edge_size);
  }

  [...]
};


Best regards

Benjamin Kehlet

On 1 September 2015 at 10:26, Bryn Lloyd <> wrote:
Dear CGAL/Mesh_3 users and developers

I have an implicit domain oracle (derived from Labeled_mesh_domain_3) with 1D features.
When I add features to my domain, make_mesh_3 sometimes does not discover my domain at all. Without the features the domain is discovered (usually).


Digging into the code of make_mesh_3 I noticed the strategy to add initial points seems very different for a mesh with features (init_c3t3_with_features) compared to one without features (init_c3t3).
This is how I understand it:

No features:
 - segments between random points on sphere and "center" are intersected with domain - intersection points are added to C3T3

With features:
   - features (0D,1D) are sampled and points added to C3T3 with "protecting balls"

Conclusions:
- So it seems the code for domains with features might oversee (partial) regions with no features.
- Also, I guess, if a point on a feature is considered "outside" by the oracle, instead of on a surface patch, regions/domains will be missed.


How to solve this?
- Would it make sense to run the initialization code to add feature points and the add my own internal (dimension=3) points?
- How should I add these points? Can I add the points via C3T3::insert(Point), or should I add them via the C3T3::insert(Weighted_point)
- What weight/ball radius should I use? I don't really want to enforce these points, but want to help the oracle discover the domains.

Thanks for any suggestions/help
Bryn






--
You are currently subscribed to cgal-discuss.
To unsubscribe or access the archives, go to
https://sympa.inria.fr/sympa/info/cgal-discuss






Archive powered by MHonArc 2.6.18.

Top of Page