//#####################################################################
// Copyright 2007, Geoffrey Irving.
// This file is part of PhysBAM whose distribution is governed by the license contained in the accompanying file PHYSBAM_COPYRIGHT.txt.
//#####################################################################
// Class MESHES_FORWARD 
//#####################################################################
#ifndef __MESHES_FORWARD__
#define __MESHES_FORWARD__

namespace PhysBAM{

template<int d> class SIMPLEX_MESH;
using POINT_SIMPLEX_MESH = SIMPLEX_MESH<0>;
using SEGMENT_MESH = SIMPLEX_MESH<1>;
using TRIANGLE_MESH = SIMPLEX_MESH<2>;
using TETRAHEDRON_MESH = SIMPLEX_MESH<3>;

template<class T,int d> class VECTOR;
template<class TV,int d> class MESH_OBJECT;
template<class T> using POINT_SIMPLICES_1D = MESH_OBJECT<VECTOR<T,1>,0>;
template<class TV> using SEGMENTED_CURVE = MESH_OBJECT<TV,1>;
template<class T> using TRIANGULATED_AREA = MESH_OBJECT<VECTOR<T,2>,2>;
template<class T> using TRIANGULATED_SURFACE = MESH_OBJECT<VECTOR<T,3>,2>;
template<class T> using TETRAHEDRALIZED_VOLUME = MESH_OBJECT<VECTOR<T,3>,3>;

}
#endif
