KiCad PCB EDA Suite
shape_null.h
Go to the documentation of this file.
1 /*
2  * This program source code file is part of KiCad, a free EDA CAD application.
3  *
4  * Copyright (C) 2020 CERN
5  * @author Tomasz Wlostowski <tomasz.wlostowski@cern.ch>
6  *
7  * This program is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License
9  * as published by the Free Software Foundation; either version 2
10  * of the License, or (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, you may find one here:
19  * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
20  * or you may search the http://www.gnu.org website for the version 2 license,
21  * or you may write to the Free Software Foundation, Inc.,
22  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
23  */
24 
25 #ifndef __SHAPE_NULL_H
26 #define __SHAPE_NULL_H
27 
28 #include <geometry/shape.h>
29 #include <math/box2.h>
30 #include <math/vector2d.h>
31 
32 #include <algorithm>
33 
34 class SHAPE_NULL : public SHAPE
35 {
36 public:
38  SHAPE( SH_NULL )
39  {}
40 
41  SHAPE_NULL( const SHAPE_NULL& aOther ) :
42  SHAPE( SH_NULL )
43  {};
44 
46  {}
47 
48  SHAPE* Clone() const override
49  {
50  return new SHAPE_NULL( *this );
51  }
52 
53  SHAPE_NULL& operator=( const SHAPE_NULL& ) = default;
54 
55  const BOX2I BBox( int aClearance = 0 ) const override
56  {
57  return BOX2I();
58  }
59 
60  bool Collide( const SEG& aSeg, int aClearance = 0, int* aActual = nullptr,
61  VECTOR2I* aLocation = nullptr ) const override
62  {
63  return false;
64  }
65 
66  void Move( const VECTOR2I& aVector ) override
67  {
68  }
69 
70  void Rotate( double aAngle, const VECTOR2I& aCenter = { 0, 0 } ) override
71  {
72  }
73 
74  bool IsSolid() const override
75  {
76  return false;
77  }
78 };
79 
80 #endif
BOX2< VECTOR2I > BOX2I
Definition: box2.h:522
void Move(const VECTOR2I &aVector) override
Definition: shape_null.h:66
SHAPE_NULL & operator=(const SHAPE_NULL &)=default
bool IsSolid() const override
Definition: shape_null.h:74
SHAPE_NULL(const SHAPE_NULL &aOther)
Definition: shape_null.h:41
SHAPE.
Definition: shape.h:122
Definition: seg.h:39
void Rotate(double aAngle, const VECTOR2I &aCenter={ 0, 0 }) override
Function Rotate.
Definition: shape_null.h:70
SHAPE * Clone() const override
Function Clone()
Definition: shape_null.h:48
circular arc
Definition: shape.h:51
const BOX2I BBox(int aClearance=0) const override
Function BBox()
Definition: shape_null.h:55
bool Collide(const SEG &aSeg, int aClearance=0, int *aActual=nullptr, VECTOR2I *aLocation=nullptr) const override
Function Collide()
Definition: shape_null.h:60