Fresco/Berlin/modules/Unidraw SelectTool.cc,1.8,1.9
Tobias Hunger <[email protected]> Mon, 27 Oct 2003 17:08:42 +0000
| Newsgroups | gmane.comp.video.fresco.cvs |
|---|---|
| Message-ID | <[email protected]> |
Update of /cvs/fresco/Fresco/Berlin/modules/Unidraw In directory purcel:/tmp/cvs-serv5328/Berlin/modules/Unidraw Modified Files: SelectTool.cc Log Message: Make sure all classes defined by Kits are in the Kit's namespace. Do some coding style fixups while touching the files anyway. Index: SelectTool.cc =================================================================== RCS file: /cvs/fresco/Fresco/Berlin/modules/Unidraw/SelectTool.cc,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- SelectTool.cc 5 Jan 2003 16:21:35 -0000 1.8 +++ SelectTool.cc 27 Oct 2003 17:08:39 -0000 1.9 @@ -1,7 +1,7 @@ /*$Id$ * * This source file is a part of the Fresco Project. - * Copyright (C) 2000 Stefan Seefeld <[email protected]> + * Copyright (C) 2000 Stefan Seefeld <[email protected]> * http://www.fresco.org * * This library is free software; you can redistribute it and/or @@ -33,135 +33,151 @@ using namespace Fresco; using namespace Unidraw; -using namespace Berlin::UnidrawKit; - -class SelectTraversal : public PickTraversalImpl +namespace Berlin { -public: - SelectTraversal(Fresco::Graphic_ptr, Fresco::Region_ptr, Fresco::Transform_ptr); - ~SelectTraversal(); - void region(const Vertex &p, const Vertex &q) { _hot.valid = true, _hot.lower = p, _hot.upper = q;} - size_t selected() const { return _selected.size();} - SelectTraversal *operator [](size_t i) { return _selected[i];} - virtual CORBA::Boolean intersects_region(Fresco::Region_ptr); - virtual void hit(); - virtual CORBA::Boolean ok() { return true;} - virtual CORBA::Boolean picked() { return _selected.size();} - void debug(); -private: - RegionImpl _hot; - std::vector<SelectTraversal *> _selected; -}; + namespace UnidrawKit + { -SelectTraversal::SelectTraversal(Fresco::Graphic_ptr g, Fresco::Region_ptr a, Fresco::Transform_ptr t) - : PickTraversalImpl(g, a, t, 0) {} + class SelectTraversal : public PickTraversalImpl + { + public: + SelectTraversal(Fresco::Graphic_ptr, Fresco::Region_ptr, Fresco::Transform_ptr); + ~SelectTraversal(); + void region(const Vertex &p, const Vertex &q) + { _hot.valid = true, _hot.lower = p, _hot.upper = q; } + size_t selected() const { return _selected.size();} + SelectTraversal *operator [](size_t i) { return _selected[i];} + virtual CORBA::Boolean intersects_region(Fresco::Region_ptr); + virtual void hit(); + virtual CORBA::Boolean ok() { return true;} + virtual CORBA::Boolean picked() { return _selected.size();} + void debug(); + private: + RegionImpl _hot; + std::vector<SelectTraversal *> _selected; + }; -SelectTraversal::~SelectTraversal() -{ -// for (std::vector<SelectTraversal *>::iterator i = _selected.begin(); i != _selected.end(); ++i) (*i)->deactivate(); -} + SelectTraversal::SelectTraversal(Fresco::Graphic_ptr g, Fresco::Region_ptr a, + Fresco::Transform_ptr t) : + PickTraversalImpl(g, a, t, 0) + { } -CORBA::Boolean SelectTraversal::intersects_region(Region_ptr r) -{ - Trace trace("SelectTraversal::intersects_region"); - std::cout << "intersects_region test" << std::endl; - debug(); - RegionImpl region(r, get_transformation(current())); - return region.intersects(_hot); - -} + SelectTraversal::~SelectTraversal() + { + // for (std::vector<SelectTraversal *>::iterator i = _selected.begin(); i != _selected.end(); ++i) (*i)->deactivate(); + } -void SelectTraversal::hit() -{ - Trace trace("SelectTraversal::hit"); - // make sure the controller is really inside the hot region - std::cout << "hit !" << std::endl; - SelectTraversal *memento = new SelectTraversal(*this); -// activate(memento); - _selected.push_back(memento); -} + CORBA::Boolean SelectTraversal::intersects_region(Region_ptr r) + { + Trace trace("SelectTraversal::intersects_region"); + std::cout << "intersects_region test" << std::endl; + debug(); + RegionImpl region(r, get_transformation(current())); + return region.intersects(_hot); + } -void SelectTraversal::debug() -{ - std::cout << "SelectTraversal::debug : stack size = " << size() - << std::endl; -// Region_var r = current_allocation(); -// Transform_var t = current_transformation(); -// RegionImpl region(r, t); -// std::cout << "current allocation is " << region << std::endl; -} + void SelectTraversal::hit() + { + Trace trace("SelectTraversal::hit"); + // make sure the controller is really inside the hot region + std::cout << "hit !" << std::endl; + SelectTraversal *memento = new SelectTraversal(*this); + // activate(memento); + _selected.push_back(memento); + } -class SelectCommand : public virtual POA_Unidraw::Command, - public ServantBase -{ -public: - SelectCommand(); - virtual void execute(); - virtual void store(Unidraw::Model_ptr, const CORBA::Any &) {} - virtual CORBA::Any *recall(Unidraw::Model_ptr) { return new CORBA::Any();} - virtual void destroy() { deactivate();} -private: -}; + void SelectTraversal::debug() + { + std::cout << "SelectTraversal::debug : stack size = " << size() + << std::endl; + // Region_var r = current_allocation(); + // Transform_var t = current_transformation(); + // RegionImpl region(r, t); + // std::cout << "current allocation is " << region << std::endl; + } -SelectTool::SelectTool(Graphic_ptr graphic) : _graphic(Graphic::_duplicate(graphic)) {} -SelectTool::~SelectTool() {} -CORBA::Boolean SelectTool::grasp(Fresco::Controller_ptr controller, Fresco::PickTraversal_ptr traversal, const Fresco::Input::Event &event) -{ - Trace trace("SelectTool::grasp"); - _root = Controller::_duplicate(controller); - _iterator = _root->last_child_graphic(); - _begin = event[1].attr.location(); - Transform_var trafo = traversal->current_transformation(); - trafo->inverse_transform_vertex(_begin); - _matrix[0][0] = _matrix[0][1] = _matrix[0][2] = 0.; - _matrix[1][0] = _matrix[1][1] = _matrix[1][2] = 0.; - _matrix[2][0] = _matrix[2][1] = _matrix[2][2] = 0.; - _matrix[3][0] = _matrix[3][1] = _matrix[3][2] = 0.; - _matrix[0][3] = _begin.x; - _matrix[1][3] = _begin.y; - _matrix[2][3] = _begin.z; - Transform_var transform = _graphic->transformation(); - transform->load_matrix(_matrix); - _iterator->insert(_graphic); - return true; -} + class SelectCommand : public virtual POA_Unidraw::Command, public ServantBase + { + public: + SelectCommand(); + virtual void execute(); + virtual void store(Unidraw::Model_ptr, const CORBA::Any &) {} + virtual CORBA::Any *recall(Unidraw::Model_ptr) { return new CORBA::Any();} + virtual void destroy() { deactivate();} + private: + }; -CORBA::Boolean SelectTool::manipulate(Fresco::PickTraversal_ptr traversal, const Fresco::Input::Event &event) -{ - Trace trace("SelectTool::manipulate"); - if (event[0].attr._d() == Fresco::Input::button) return false; - _end = event[0].attr.location(); - Transform_var trafo = traversal->current_transformation(); - trafo->inverse_transform_vertex(_end); - _matrix[0][0] = _end.x - _begin.x; - _matrix[1][1] = _end.y - _begin.y; - _matrix[2][2] = _end.z - _begin.z; - Transform_var transform = _graphic->transformation(); - transform->load_matrix(_matrix); - _graphic->need_resize(); - return true; -} + SelectTool::SelectTool(Graphic_ptr graphic) : + _graphic(Graphic::_duplicate(graphic)) + { } + SelectTool::~SelectTool() { } + CORBA::Boolean SelectTool::grasp(Fresco::Controller_ptr controller, + Fresco::PickTraversal_ptr traversal, + const Fresco::Input::Event &event) + { + Trace trace("SelectTool::grasp"); + _root = Controller::_duplicate(controller); + _iterator = _root->last_child_graphic(); + _begin = event[1].attr.location(); + Transform_var trafo = traversal->current_transformation(); + trafo->inverse_transform_vertex(_begin); + _matrix[0][0] = _matrix[0][1] = _matrix[0][2] = 0.; + _matrix[1][0] = _matrix[1][1] = _matrix[1][2] = 0.; + _matrix[2][0] = _matrix[2][1] = _matrix[2][2] = 0.; + _matrix[3][0] = _matrix[3][1] = _matrix[3][2] = 0.; + _matrix[0][3] = _begin.x; + _matrix[1][3] = _begin.y; + _matrix[2][3] = _begin.z; + Transform_var transform = _graphic->transformation(); + transform->load_matrix(_matrix); + _iterator->insert(_graphic); + return true; + } -Unidraw::Command_ptr SelectTool::effect(Fresco::PickTraversal_ptr traversal, const Fresco::Input::Event &event) -{ - Trace trace("SelectTool::effect"); - /* - * traverse the viewer's children and pick all graphics that intersect with the selected region - */ - SelectTraversal *select(new SelectTraversal(_root, Region_var(traversal->current_allocation()), Transform::_nil())); - select->region(_begin, _end); -// Impl_var<SelectTraversal> select(new SelectTraversal(_root, Region_var(allocation->_this()), Fresco::Transform::_nil())); - _root->traverse(Traversal_var(select->_this())); - /* - * now walk down the picked trail and find 'Viewer' objects. - */ - std::cout << "found " << select->selected() << " objects" << std::endl; - _iterator->remove(); - _iterator->destroy(); - SelectCommand *command = new SelectCommand(); - activate(command); - return command->_this(); -} + CORBA::Boolean SelectTool::manipulate(Fresco::PickTraversal_ptr traversal, + const Fresco::Input::Event &event) + { + Trace trace("SelectTool::manipulate"); + if (event[0].attr._d() == Fresco::Input::button) return false; + _end = event[0].attr.location(); + Transform_var trafo = traversal->current_transformation(); + trafo->inverse_transform_vertex(_end); + _matrix[0][0] = _end.x - _begin.x; + _matrix[1][1] = _end.y - _begin.y; + _matrix[2][2] = _end.z - _begin.z; + Transform_var transform = _graphic->transformation(); + transform->load_matrix(_matrix); + _graphic->need_resize(); + return true; + } -SelectCommand::SelectCommand() {} -void SelectCommand::execute() {} + Unidraw::Command_ptr SelectTool::effect(Fresco::PickTraversal_ptr traversal, + const Fresco::Input::Event &event) + { + Trace trace("SelectTool::effect"); + /* + * traverse the viewer's children and pick all graphics that intersect + * with the selected region + */ + SelectTraversal *select(new SelectTraversal(_root, + Region_var(traversal->current_allocation()), + Transform::_nil())); + select->region(_begin, _end); + // Impl_var<SelectTraversal> select(new SelectTraversal(_root, Region_var(allocation->_this()), Fresco::Transform::_nil())); + _root->traverse(Traversal_var(select->_this())); + /* + * now walk down the picked trail and find 'Viewer' objects. + */ + std::cout << "found " << select->selected() << " objects" << std::endl; + _iterator->remove(); + _iterator->destroy(); + SelectCommand *command = new SelectCommand(); + activate(command); + return command->_this(); + } + + SelectCommand::SelectCommand() { } + void SelectCommand::execute() { } + + } // namespace +} // namespace