/*--------------------------------*- C++ -*----------------------------------*\
| =========                 |                                                 |
| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
|  \\    /   O peration     | Version:  4.x                                   |
|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
|    \\/     M anipulation  |                                                 |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    object      surfaceFeatureExtractDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

surface1.stl
{
    // How to obtain raw features (extractFromFile || extractFromSurface)
    extractionMethod    extractFromSurface;

    extractFromSurfaceCoeffs
    {
        // Mark edges whose adjacent surface normals are at an angle less
        // than includedAngle as features
        // - 0  : selects no edges
        // - 180: selects all edges
        includedAngle   120;

        // Do not mark region edges
        geometricTestOnly       yes;
    }

    // Write options

        // Write features to obj format for postprocessing
        writeObj                yes;
}


surface2.nas
{
    // How to obtain raw features (extractFromFile || extractFromSurface)
    extractionMethod    extractFromFile;

    extractFromFileCoeffs
    {
        // Load from an existing feature edge file
        featureEdgeFile "constant/triSurface/featureEdges.nas";
    }

    trimFeatures
    {
        // Remove features with fewer than the specified number of edges
        minElem         0;

        // Remove features shorter than the specified cumulative length
        minLen          0.0;
    }

    subsetFeatures
    {
        // Use a plane to select feature edges
        // (normal)(basePoint)
        // Keep only edges that intersect the plane will be included
        plane               (1 0 0)(0 0 0);

        // Select feature edges using a box
        // (minPt)(maxPt)
        // Keep edges inside the box:
        insideBox           (0 0 0)(1 1 1);
        // Keep edges outside the box:
        outsideBox          (0 0 0)(1 1 1);

        // Keep nonManifold edges (edges with >2 connected faces where
        // the faces form more than two different normal planes)
        nonManifoldEdges    yes;

        // Keep open edges (edges with 1 connected face)
        openEdges           yes;
    }

    addFeatures
    {
        // Add (without merging) another extendedFeatureEdgeMesh
        name                axZ.extendedFeatureEdgeMesh;

        // Optionally flip features (invert all normals, making
        // convex<->concave etc)
        //flip                false;
    }

    // Output the curvature of the surface
    curvature               no;

    // Output the proximity of feature points and edges to each other
    featureProximity        no;

    // The maximum search distance to use when looking for other feature
    // points and edges
    maxFeatureProximity     1;

    // Out put the closeness of surface elements to other surface elements.
    closeness               no;

    // Write options

        // Write features to obj format for postprocessing
        writeObj                yes;

        // Write surface proximity and curvature fields to vtk format
        // for postprocessing
        writeVTK                no;
}


// ************************************************************************* //
