blob: 086274f70df283f18a5a14d9d6f9e5160d849bcf [file] [log] [blame]
//#####################################################################
// Copyright 2004-2005, Igor Neverov, Eftychios Sifakis.
// This file is part of PhysBAM whose distribution is governed by the license contained in the accompanying file PHYSBAM_COPYRIGHT.txt.
//#####################################################################
// Class FACE_CONTROL_SET
//#####################################################################
#ifndef __FACE_CONTROL_SET__
#define __FACE_CONTROL_SET__
namespace PhysBAM
{
template <class T>
class FACE_CONTROL_SET
{
public:
FACE_CONTROL_SET()
{}
virtual ~FACE_CONTROL_SET()
{}
void Default() const
{
std::cout << "THIS FACE_CONTROL_SET FUNCTION IS NOT DEFINED!" << std::endl;
}
//#####################################################################
virtual int Size() const
{
Default();
exit (1);
}
virtual T operator() (const int control_id) const
{
Default();
exit (1);
}
virtual T& operator() (const int control_id)
{
Default();
exit (1);
}
virtual bool Control_Active (const int control_id) const
{
Default();
exit (1);
}
virtual bool& Control_Active (const int control_id)
{
Default();
exit (1);
}
virtual bool Positions_Determined_Kinematically (const int control_id) const
{
Default();
exit (1);
}
virtual void Force_Derivative (ARRAY<VECTOR_3D<T> >& dFdl, const int control_id) const
{
Default();
exit (1);
}
virtual void Position_Derivative (ARRAY<VECTOR_3D<T> >& dXdl, const int control_id) const
{
Default();
exit (1);
}
virtual void Set_Attachment_Positions (ARRAY<VECTOR_3D<T> >&X) const
{
Default();
exit (1);
}
virtual void Save_Controls()
{
Default();
exit (1);
}
virtual void Kinematically_Update_Positions (ARRAY<VECTOR_3D<T> >&X) const
{
Default();
exit (1);
}
virtual void Kinematically_Update_Jacobian (ARRAY<VECTOR_3D<T> >&dX) const
{
Default();
exit (1);
}
virtual T Penalty() const
{
Default();
exit (1);
}
virtual T Penalty_Gradient (const int control_id) const
{
Default();
exit (1);
}
virtual T Penalty_Hessian (const int control_id1, const int control_id2) const
{
Default();
exit (1);
}
virtual void Print_Diagnostics (std::ostream& output = std::cout) const
{
Default();
exit (1);
}
virtual void Project_Parameters_To_Allowable_Range (const bool active_controls_only = false)
{
Default();
exit (1);
}
virtual void Interpolate (const T interpolation_fraction)
{
Default();
exit (1);
}
//#####################################################################
};
}
#endif