1 /* 2 Copyright (C) 2010-2014 Kristian Duske 3 4 This file is part of TrenchBroom. 5 6 TrenchBroom is free software: you can redistribute it and/or modify 7 it under the terms of the GNU General Public License as published by 8 the Free Software Foundation, either version 3 of the License, or 9 (at your option) any later version. 10 11 TrenchBroom is distributed in the hope that it will be useful, 12 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 GNU General Public License for more details. 15 16 You should have received a copy of the GNU General Public License 17 along with TrenchBroom. If not, see <http://www.gnu.org/licenses/>. 18 */ 19 20 #ifndef TrenchBroom_CreateEntityTool 21 #define TrenchBroom_CreateEntityTool 22 23 #include "TrenchBroom.h" 24 #include "VecMath.h" 25 #include "StringUtils.h" 26 #include "View/Tool.h" 27 #include "View/ViewTypes.h" 28 29 namespace TrenchBroom { 30 namespace Model { 31 class Entity; 32 class PickResult; 33 } 34 35 namespace View { 36 class CreateEntityTool : public Tool { 37 private: 38 MapDocumentWPtr m_document; 39 Model::Entity* m_entity; 40 BBox3 m_referenceBounds; 41 public: 42 CreateEntityTool(MapDocumentWPtr document); 43 44 bool createEntity(const String& classname); 45 void removeEntity(); 46 void commitEntity(); 47 48 void updateEntityPosition2D(const Ray3& pickRay); 49 void updateEntityPosition3D(const Ray3& pickRay, const Model::PickResult& pickResult); 50 }; 51 } 52 } 53 54 #endif /* defined(TrenchBroom_CreateEntityTool) */ 55