Defining Areas by Curvature Segmentation

This task will show you how to define areas on a mesh along the curvatures or curvature radii.

There are five curvatures:

  • Maximum,
  • Minimum,
  • Mean,
  • Gaussian,
  • Absolute.

The geometric construction of the maximum and minimum curvatures is the following:
let be a plane containing the normal to the surface in a given point.
This plane cuts the surface along a curve that has a given curvature in this point.
If this plane rotates around the normal, the curvatures of the curves intersecting
the surface will vary between two utmost values.
These two values are the maximum (KM) and the minimum (Km) curvatures.

The mean curvature is equal to (KM+Km)/2.
The utmost values appear where the surface is the most warped.
The mean curvature is largely used to detect irregularities on the surface.
A minimal surface is characterized by a null mean curvature.

The gaussian curvature is equal to KM.Km.
It describes the local shape of a surface in one point:

  • if it is positive, the point is elliptic,
    i.e. the surface has locally the shape of an ellipsoid around that point,
  • if it is negative, the surface is hyperbolic in this points,
    i.e. the local shape is a horse saddle,
  • it it is null, the surface is parabolic in this point,
    i.e. one of the maximum or minimum curvatures is null in this point.
    The cone and the cylinder are two surfaces where all points are parabolic.

The absolute curvature is equal to |KM|+|Km|.
It is used to detect the surface areas where the surface is locally almost flat
(the absolute curvature is almost null).

The curvature radii are the inverse of the corresponding curvatures.
Only the maximum and the minimum radii are relevant.

It is carried out on meshes only.
Noisy digitized data are difficult to process.
Open the Segmentation1.CATPart from the samples directory.
  1. Click Segmentation by Curvature Criterion .
    The dialog box is displayed.

 
  1. Select the mesh.

    An Influent Radius is proposed.
    By default, it is 1/100 of the diagonal of the bounding box, in this case 4.843

    For each vertex, this radius defines a sphere centered on this vertex.
    All vertices and edges inside this sphere influence the resulting curvature value at this vertex.
    If the Influent Radius is small, the result will be noisy,

    if it is large, the curvature will be smoothed.

  2. Select the type of analysis from the list: Curvature or Radius.
    Sweep the mesh with the cursor:
    The value of the curvature or the radius is displayed dynamically as you move the cursor:
    This is especially helpful to retrieve the value of fillets.

  3. Select the mesh: scans are displayed: combine the types of analysis and the value in the top spinner box to display scans according to your needs.

  4. Use the Filter cursor to remove unwanted points.

    becomes

  5. If required, click Curvature Mapping to display a temporary curvature mapping.

    You can use the slider to influence the color repartition by modifying the Alpha parameter; it represents the percentage of maximum value:

    (Blue is used only if negative values are found.)
    Absolute Curvature with Display slider at 7:


    Absolute Curvature with Display slider at 11:

  6. Click OK to create the result. You can choose to create:

    • Scans, either distinct or grouped:

      Scans.x
      elements are created in the specification tree.

    • or Clouds, that is sub-meshs (displayed in two hues of blue in our picture below):

      SubMesh.x elements are created in the specification tree.

      These meshes can then be processed with the Basic Surface Recognition action, for example.

    The input mesh is sent to the NoShow.
    The curvature mapping is not kept.