-
Notifications
You must be signed in to change notification settings - Fork 1.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Tet remeshing - add sizing field #7830
Tet remeshing - add sizing field #7830
Conversation
…ithub.com/janetournois/cgal into Tet_remeshing-with_sizing_field-jtournois # Conflicts: # Tetrahedral_remeshing/examples/Tetrahedral_remeshing/mesh_and_remesh_with_sizing.cpp # Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/tetrahedral_adaptive_remeshing_impl.h # Tetrahedral_remeshing/include/CGAL/tetrahedral_remeshing.h
weights are 1/squared_distance_to(query point)
+ add default NP template type
…zing_field-jtournois # Conflicts: # Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/tetrahedral_adaptive_remeshing_impl.h
…zing_field-jtournois
and use facet_edges() helper function
The full ctest of examples and tests for the Tetrahedral_remeshing package passes on my machine, far below the 1200 sec timeout. |
typename Gt::Construct_cross_product_vector_3 cross_product = | ||
gt.construct_cross_product_vector_3_object(); | ||
typename Gt::Compute_scalar_product_3 scalar_product = | ||
gt.compute_scalar_product_3_object(); | ||
|
||
typedef typename Gt::FT FT; | ||
typedef typename Gt::Vector_3 Vector_3; | ||
const Vector_3 ij = vector(i, j); | ||
const Vector_3 ik = vector(i, k); | ||
const Vector_3 ij(i, j); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Important
vector
was the function object Construct_vector_3
from the kernel.
Was there really a copy? That might be important to understand, and fix, for all the other implementation all over CGAL, which might use similar ways to initialize kernel objects.
@@ -319,34 +319,101 @@ Dihedral_angle_cosine cos_dihedral_angle(const typename Gt::Point_3& i, | |||
return Dihedral_angle_cosine(CGAL::sign(num), CGAL::square(num), sqden); | |||
} | |||
|
|||
// cosine of dihedral angle, computed from pre-computed and non-zero normals | |||
template<typename Gt> | |||
Dihedral_angle_cosine cos_dihedral_angle(const typename Gt::Vector_3& n1, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Dihedral_angle_cosine
might be useful for other tet-related packages. Do you plan to make it more official one way or another?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree it could be useful elsewhere, for example in perturb_mesh_3()
and exude_mesh_3()
.
I had not planned to document it but we should do it once this PR is merged
Successfully tested in CGAL-6.0-Ic-237 (only two timeout, well done!) |
This pull-request was previously marked with the label |
/force-build:v2 |
There was an error while building the doc:
|
/force-build:v2 |
The documentation is built. It will be available, after a few minutes, here: https://cgal.github.io/7830/v2/Manual/index.html |
89328b0
to
d257b65
Compare
Summary of Changes
This PR adds a sizing field as input for
CGAL::tetrahedral_isotropic_remeshing()
, that can be passed as second parameter, instead oftarget_edge_length
.Release Management
CGAL::tetrahedral_isotropic_remeshing()
#6056** reference manual
** user manual
Todo
useMesh_sizing_field
like the optimizers do (adapt it to be aMeshDomainField_3
) and find an API for itMeshDomainField_3
)