Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 #ifndef polyAddPoint_H
00033 #define polyAddPoint_H
00034
00035 #include <OpenFOAM/label.H>
00036 #include <OpenFOAM/point.H>
00037 #include <dynamicMesh/topoAction.H>
00038
00039
00040
00041 namespace Foam
00042 {
00043
00044
00045
00046
00047
00048 class polyAddPoint
00049 :
00050 public topoAction
00051 {
00052
00053
00054
00055 point p_;
00056
00057
00058 label masterPointID_;
00059
00060
00061 label zoneID_;
00062
00063
00064 bool inCell_;
00065
00066
00067 public:
00068
00069
00070
00071
00072 TypeName("addPoint");
00073
00074
00075
00076
00077
00078 polyAddPoint()
00079 :
00080 p_(vector::zero),
00081 masterPointID_(-1),
00082 zoneID_(-1),
00083 inCell_(false)
00084 {}
00085
00086
00087 polyAddPoint
00088 (
00089 const point& p,
00090 const label masterPointID,
00091 const label zoneID,
00092 const bool inCell
00093 )
00094 :
00095 p_(p),
00096 masterPointID_(masterPointID),
00097 zoneID_(zoneID),
00098 inCell_(inCell)
00099 {
00100 if (zoneID_ < 0 && !inCell)
00101 {
00102 FatalErrorIn
00103 (
00104 "polyAddPoint\n"
00105 "(\n"
00106 " const point& p,\n"
00107 " const label masterPointID,\n"
00108 " const label zoneID,\n"
00109 " const bool inCell\n"
00110 ")"
00111 ) << "Point is not in a cell and not in a zone. "
00112 << "This is not allowed.\n"
00113 << "point: " << p
00114 << " master: " << masterPointID_
00115 << " zone: " << zoneID_
00116 << abort(FatalError);
00117 }
00118
00119 }
00120
00121
00122 virtual autoPtr<topoAction> clone() const
00123 {
00124 return autoPtr<topoAction>(new polyAddPoint(*this));
00125 }
00126
00127
00128
00129
00130
00131
00132
00133
00134 const point& newPoint() const
00135 {
00136 return p_;
00137 }
00138
00139
00140 label masterPointID() const
00141 {
00142 return masterPointID_;
00143 }
00144
00145
00146 bool appended() const
00147 {
00148 return masterPointID_ < 0;
00149 }
00150
00151
00152 bool isInZone() const
00153 {
00154 return zoneID_ >= 0;
00155 }
00156
00157
00158 label zoneID() const
00159 {
00160 return zoneID_;
00161 }
00162
00163
00164 bool inCell() const
00165 {
00166 return inCell_;
00167 }
00168 };
00169
00170
00171
00172
00173 }
00174
00175
00176
00177 #endif
00178
00179