//#####################################################################
// Copyright 2006, Geoffrey Irving, Andrew Selle.
// This file is part of PhysBAM whose distribution is governed by the license contained in the accompanying file PHYSBAM_COPYRIGHT.txt.
//######################################################################
// Class FREE_PARTICLES
//######################################################################
#ifndef __FREE_PARTICLES__
#define __FREE_PARTICLES__

#include <Core/Meshes/STRUCTURE.h>
namespace PhysBAM{

template<class TV>
class FREE_PARTICLES:public STRUCTURE<TV>
{
    typedef typename TV::SCALAR T;
public:
    ARRAY<int> nodes;

    FREE_PARTICLES();
    virtual ~FREE_PARTICLES();

    static FREE_PARTICLES* Create(GEOMETRY_PARTICLES<TV>& particles)
    {return Create();}

//######################################################################
    static FREE_PARTICLES* Create();
    void Mark_Nodes_Referenced(ARRAY<int>& marks,const int mark) const override;
    void Read(TYPED_ISTREAM& input) override;
    void Write(TYPED_OSTREAM& output) const override;
    virtual std::string Name() const override;
    static std::string Static_Name();
//######################################################################
};
}
#endif
