Exemple #1
0
int main(int argc, char *argv[])
{
    argList::noParallel();
    argList::validArgs.append("surfaceFile");
    argList::validArgs.append("output surfaceFile");
    argList::validArgs.append("maximum length");
    argList args(argc, argv);

    const fileName surfFileName = args[1];
    const fileName outFileName = args[2];  
    const scalar maxLength = args.argRead<scalar>(3);

    Info<< "Reading surface from " << surfFileName << " ..." << endl << endl;

    const triSurface& surf1(surfFileName);
    triSurface surf2;
    triSurface surf = surf1;
    
    int loopCounter = 1;
    
    while(true)
    {
        const pointField points(surf.points());
        const labelList meshPoints(surf.meshPoints());
        const edgeList& edges = surf.edges();
        labelListList edgeFaces = surf.sortedEdgeFaces();
        
        List<bool> refineFaces(surf.size(), false);
        
        forAll(edges, i)
        {   
            const edge e = surf.edges()[i];
            const point& pStart = points[meshPoints[e.start()]];
            const point& pEnd = points[meshPoints[e.end()]];
            const vector eVec(pEnd - pStart);
            const scalar eMag = mag(eVec);
            
            if(eMag > maxLength)
            {
                labelList edgeFacesI = edgeFaces[i];
                
                forAll(edgeFacesI, i)
                {
                    label faceI = edgeFacesI[i];
                    refineFaces[faceI] = true;
                }
            }
        }
bool Foam::directionInfo::equal(const edge& e, const label v0, const label v1)
{
    return
        (e.start() == v0 && e.end() == v1)
     || (e.start() == v1 && e.end() == v0);
}