/* Copyright 2005 Nicholas Bishop * * This file is part of SharpConstruct. * * SharpConstruct is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * SharpConstruct is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with SharpConstruct; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef GRABBRUSH_HH #define GRABBRUSH_HH #include "Optimized.h" #include "Sculpt.hh" #include namespace SharpConstruct { class EditData; class Mesh; class GrabBrush { public: GrabBrush( SculptStart, Mesh& mesh ); GrabBrush( SculptContinue, Mesh& mesh ); void operator()( SculptStart, EditData e ); void operator()( SculptContinue, EditData e ); void Postwork( SculptStart ); void Postwork( SculptContinue ); static void SetDelta( float x, float y ); private: Mesh& mesh_; class grab_data_ { public: std::vector< ActiveData > Active; Optimized::Normal3D Drag; }; static grab_data_ data_[ 8 ]; static float delta_x_, delta_y_; }; } #endif