Minsky
lasso.h
Go to the documentation of this file.
1 /*
2  @copyright Steve Keen 2021
3  @author Russell Standish
4  This file is part of Minsky.
5 
6  Minsky is free software: you can redistribute it and/or modify it
7  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  Minsky 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 Minsky. If not, see <http://www.gnu.org/licenses/>.
18 */
19 
20 #ifndef LASSO_H
21 #define LASSO_H
22 
23 namespace minsky
24 {
25  class Wire;
26 
28  struct LassoBox
29  {
30  float x0=0, y0=0, x1=0, y1=0, angle=0;
31  LassoBox() {}
32  LassoBox(float x0, float y0, float x1, float y1);
33 
35  template <class Item>
36  bool intersects(const Item& item) const {
37  return item.right() >= x0 && item.left() <= x1 &&
38  item.bottom() >= y0 && item.top() <= y1;
39  }
40 
43  bool contains(const Wire& wire) const;
44  };
45 }
46 
47 #include "lasso.cd"
48 #include "lasso.xcd"
49 #endif
bool intersects(const Item &item) const
returns whether item&#39;s icon overlaps the lasso
Definition: lasso.h:36
float right() const
Definition: item.cc:170
float top() const
Definition: item.cc:177
represents rectangular region of a lasso operation
Definition: lasso.h:28
bool contains(const Wire &wire) const
return true if both endpoints of the wire lie within the lasso
Definition: lasso.cc:37
float angle
Definition: lasso.h:30
float left() const
Definition: item.cc:163
Creation and access to the minskyTCL_obj object, which has code to record whenever Minsky&#39;s state cha...
Definition: constMap.h:22
float bottom() const
Definition: item.cc:184
float x0
Definition: lasso.h:30
float y1
Definition: lasso.h:30
float x1
Definition: lasso.h:30
float y0
Definition: lasso.h:30