Skip to content
Snippets Groups Projects
PointRule1.cpp 1.12 KiB
Newer Older
  • Learn to ignore specific revisions
  • Dmitri Naumov's avatar
    Dmitri Naumov committed
    /**
    
    Dmitri Naumov's avatar
    Dmitri Naumov committed
     * \copyright
    
     * Copyright (c) 2012-2020, OpenGeoSys Community (http://www.opengeosys.org)
    
    Dmitri Naumov's avatar
    Dmitri Naumov committed
     *            Distributed under a Modified BSD License.
     *              See accompanying file LICENSE.txt or
     *              http://www.opengeosys.org/project/license
     *
     */
    
    #include "PointRule1.h"
    
    #include "MathLib/Point3d.h"
    #include "MeshLib/Node.h"
    
    namespace MeshLib {
    
    const unsigned PointRule1::edge_nodes[1][1] =
    {
    
    double PointRule1::computeVolume(Node const* const* /*_nodes*/)
    
    Dmitri Naumov's avatar
    Dmitri Naumov committed
    {
    
        return 0;
    
    bool PointRule1::isPntInElement(Node const* const* nodes,
                                    MathLib::Point3d const& pnt, double eps)
    
    Dmitri Naumov's avatar
    Dmitri Naumov committed
    {
    
        double const dist = MathLib::sqrDist(*nodes[0], pnt);
    
        return (dist < eps);
    
    Dmitri Naumov's avatar
    Dmitri Naumov committed
    }
    
    unsigned PointRule1::identifyFace(Node const* const* _nodes, Node* nodes[1])
    {
    
        if (nodes[0] == _nodes[0])
    
            return 0;
    
        return std::numeric_limits<unsigned>::max();
    
    Dmitri Naumov's avatar
    Dmitri Naumov committed
    }
    
    ElementErrorCode PointRule1::validate(const Element* e)
    {
    
        ElementErrorCode error_code;
    
        error_code[ElementErrorFlag::ZeroVolume] = hasZeroVolume(*e);
    
        return error_code;
    
    Dmitri Naumov's avatar
    Dmitri Naumov committed
    }
    
    } // end namespace MeshLib