blob: c6a7c6c84656ec441a22f86385209b08cee9ab68 [file] [log] [blame]
//#####################################################################
// Copyright 2004, Ron Fedkiw, Eran Guendelman, 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 SOLIDS_FLUIDS_DRIVER_3D
//#####################################################################
#ifndef __SOLIDS_FLUIDS_DRIVER_3D__
#define __SOLIDS_FLUIDS_DRIVER_3D__
#include "SOLIDS_FLUIDS_DRIVER.h"
#include "SOLIDS_FLUIDS_EXAMPLE_3D.h"
#include "SOLIDS_EVOLUTION_3D.h"
namespace PhysBAM
{
template <class T, class RW>
class SOLIDS_FLUIDS_DRIVER_3D: public SOLIDS_FLUIDS_DRIVER<T>
{
public:
using SOLIDS_FLUIDS_DRIVER<T>::time;
using SOLIDS_FLUIDS_DRIVER<T>::current_frame;
using SOLIDS_FLUIDS_DRIVER<T>::Time_At_Frame;
SOLIDS_FLUIDS_EXAMPLE_3D<T, RW>& example;
SOLIDS_EVOLUTION_3D<T> solids_evolution;
SOLIDS_FLUIDS_DRIVER_3D (SOLIDS_FLUIDS_EXAMPLE_3D<T, RW>& example_input)
: SOLIDS_FLUIDS_DRIVER<T> (example_input), example (example_input), solids_evolution (example.solids_parameters, example.verbose)
{}
virtual ~SOLIDS_FLUIDS_DRIVER_3D()
{}
//#####################################################################
void Initialize();
void Preroll_Solids (const int preroll_frame);
void Advance_To_Target_Time (const T target_time);
void Postprocess_Frame (const int frame);
//#####################################################################
};
}
#endif