//#####################################################################
// Copyright 2004, Eran Guendelman.
// This file is part of PhysBAM whose distribution is governed by the license contained in the accompanying file PHYSBAM_COPYRIGHT.txt.
//#####################################################################
// Class QT_SLICE
//#####################################################################
#ifndef __QT_SLICE__
#define __QT_SLICE__

#include <iostream>
namespace PhysBAM{

class QT_SLICE
{
public:
    enum SLICE_MODE {NO_SLICE,CELL_SLICE,NODE_SLICE};

    virtual ~QT_SLICE()
    {}

//#####################################################################
    virtual bool Is_Slice_Mode()=0;
    virtual void Set_Slice_Mode(SLICE_MODE mode_input)=0;
    virtual void Toggle_Slice_Mode()=0;
    virtual void Toggle_Slice_Axis()=0;
    virtual void Increment_Slice()=0;
    virtual void Decrement_Slice()=0;
    virtual void Enable_Clip_Planes()=0;
    virtual void Print_Slice_Info(std::ostream& output_stream){}
private:
    virtual void Update_Clip_Planes()=0;
//#####################################################################
};
}
#endif
