xc
AnnulusSector2d.h
1 // -*-c++-*-
2 //----------------------------------------------------------------------------
3 // xc utils library; general purpose classes and functions.
4 //
5 // Copyright (C) Luis C. Pérez Tato
6 //
7 // XC utils is free software: you can redistribute it and/or modify
8 // it under the terms of the GNU General Public License as published by
9 // the Free Software Foundation, either version 3 of the License, or
10 // (at your option) any later version.
11 //
12 // This software is distributed in the hope that it will be useful, but
13 // 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.
19 // If not, see <http://www.gnu.org/licenses/>.
20 //----------------------------------------------------------------------------
21 //AnnulusSector2d.h
22 
23 #ifndef SECTORANILLOCIRCULAR2D_H
24 #define SECTORANILLOCIRCULAR2D_H
25 
26 #include "CircularSector2d.h"
27 
28 class Pos2d;
29 class Pos2dArray;
30 class Polygon2d;
31 
33 //
36  {
37  double inner_radius;
38  protected:
39  CircularSector2d getSector(const double &R) const;
40  CircularSector2d SectorInterior(void) const;
41  public:
42  AnnulusSector2d(void) : CircularSector2d(), inner_radius(0.0) {}
43  AnnulusSector2d(const CircularSector2d &c,const double &inner_radius);
44 
45  virtual bool operator==(const AnnulusSector2d &) const;
46  virtual Surface2d *getCopy(void) const
47  { return new AnnulusSector2d(*this); }
48  virtual Pos2d getCenterOfMass(void) const;
49  Pos2d PInicInt(void) const;
50  Pos2d PInicExt(void) const;
51  Pos2d PFinInt(void) const;
52  Pos2d PFinExt(void) const;
53  Pos2d PMedInt(void) const;
54  Pos2d PMedExt(void) const;
56  inline double outerRadius(void) const
57  { return getRadius(); }
58  inline const double &innerRadius(void) const
59  { return inner_radius; }
60  inline double &innerRadius(void)
61  { return inner_radius; }
62  virtual GEOM_FT getInteriorArcLength(void) const;
63  virtual GEOM_FT getExteriorArcLength(void) const;
64  virtual GEOM_FT getLength(void) const;
65  virtual GEOM_FT getArea(void) const;
66  virtual GEOM_FT Ix(void) const;
67  virtual GEOM_FT Iy(void) const;
68  virtual GEOM_FT Pxy(void) const;
69  virtual GEOM_FT Iz(void) const;
70  virtual GEOM_FT GetMax(unsigned short int i) const;
71  virtual GEOM_FT GetMin(unsigned short int i) const;
72  virtual bool In(const Pos2d &p, const double &tol= 0.0) const;
73  Pos2dArray getExtArcPoints(const size_t &n) const;
74  Pos2dArray getIntArcPoints(const size_t &n) const;
75  Pos2dArray getPointsOnPerimeter(const size_t &n) const;
76  Pos2dArray genMesh(const size_t &m,const size_t &n) const;
77  Polygon2d getPolygon2d(const size_t &n) const;
78 
79  void Print(std::ostream &os) const;
80  };
81 
82 #endif
83 
84 
85 
Pos2d PMedInt(void) const
Return the point medio del arco interior.
Definition: AnnulusSector2d.cc:91
Pos2dArray genMesh(const size_t &m, const size_t &n) const
Returns a point mesh equiespaciados sobre el sector del anillo circular.
Definition: AnnulusSector2d.cc:205
Pos2dArray getPointsOnPerimeter(const size_t &n) const
Return n points equally spaced over the object perimeter.
Definition: AnnulusSector2d.cc:179
Pos2d PFinInt(void) const
Return the point final del arco interior.
Definition: AnnulusSector2d.cc:82
Pos2d PInicExt(void) const
Return the point inicial del arco exterior.
Definition: AnnulusSector2d.cc:70
virtual GEOM_FT Iz(void) const
Return el moment of inertia of the circular sector with respect to axis parallel to z que pasa por su...
Definition: AnnulusSector2d.cc:145
virtual bool operator==(const AnnulusSector2d &) const
Comparison operator.
Definition: AnnulusSector2d.cc:37
Sector de un anillo circular en dos dimensiones.
Definition: AnnulusSector2d.h:35
Posición en dos dimensiones.
Definition: Pos2d.h:41
virtual bool In(const Pos2d &p, const double &tol=0.0) const
Return true if the point is inside the object.
Definition: AnnulusSector2d.cc:162
Pos2d PMedExt(void) const
Return the point medio del arco exterior.
Definition: AnnulusSector2d.cc:87
virtual GEOM_FT Pxy(void) const
Return el product of inertia of the circular sector with respect to the axis parallel to x e y que pa...
Definition: AnnulusSector2d.cc:154
virtual GEOM_FT getExteriorArcLength(void) const
Return the length of the arco exterior del sector de anillo circular.
Definition: AnnulusSector2d.cc:95
virtual Surface2d * getCopy(void) const
Constructor virtual.
Definition: AnnulusSector2d.h:46
Array of positions in a two-dimensional space.
Definition: Pos2dArray.h:38
CircularSector2d(void)
Default constructor.
Definition: CircularSector2d.cc:72
CircularSector2d getSector(const double &R) const
Return a circular sector with the same center and angles and a different radius.
Definition: AnnulusSector2d.cc:61
virtual GEOM_FT getInteriorArcLength(void) const
Return the length of the arco interior del sector de anillo circular.
Definition: AnnulusSector2d.cc:99
Base class for surfaces in a two-dimensional space.
Definition: Surface2d.h:33
Pos2d PFinExt(void) const
Return the point final del arco exterior.
Definition: AnnulusSector2d.cc:74
virtual GEOM_FT GetMax(unsigned short int i) const
Return the maximum value of the i coordinate of the object points.
Definition: AnnulusSector2d.cc:111
Polígono en dos dimensiones.
Definition: Polygon2d.h:38
virtual GEOM_FT getArea(void) const
Return the area of the object.
Definition: AnnulusSector2d.cc:107
double outerRadius(void) const
Return the outer radius.
Definition: AnnulusSector2d.h:56
virtual GEOM_FT GetMin(unsigned short int i) const
Return el valor mínimo of the i coordinate of the object points.
Definition: AnnulusSector2d.cc:118
Pos2d PInicInt(void) const
Return the point inicial del arco interior.
Definition: AnnulusSector2d.cc:78
GEOM_FT getRadius(void) const
Return the radius of the circle.
Definition: Circle2d.cc:113
virtual GEOM_FT Iy(void) const
Return el moment of inertia of the circular sector with respect to axis parallel to y que pasa por su...
Definition: AnnulusSector2d.cc:136
CircularSector2d SectorInterior(void) const
Return the circular sector interior to the annulus.
Definition: AnnulusSector2d.cc:65
virtual GEOM_FT getLength(void) const
Return the length of the object.
Definition: AnnulusSector2d.cc:103
virtual GEOM_FT Ix(void) const
Return el moment of inertia of the circular sector with respect to axis parallel to x que pasa por su...
Definition: AnnulusSector2d.cc:127
2D circular sector.
Definition: CircularSector2d.h:34
virtual Pos2d getCenterOfMass(void) const
Return the position of the center of mass.
Definition: AnnulusSector2d.cc:52