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 #include "boxToFace.H"
00027 #include <OpenFOAM/polyMesh.H>
00028
00029 #include <OpenFOAM/addToRunTimeSelectionTable.H>
00030
00031
00032
00033 namespace Foam
00034 {
00035
00036 defineTypeNameAndDebug(boxToFace, 0);
00037
00038 addToRunTimeSelectionTable(topoSetSource, boxToFace, word);
00039
00040 addToRunTimeSelectionTable(topoSetSource, boxToFace, istream);
00041
00042 }
00043
00044
00045 Foam::topoSetSource::addToUsageTable Foam::boxToFace::usage_
00046 (
00047 boxToFace::typeName,
00048 "\n Usage: boxToFace ((minx miny minz) (maxx maxy maxz))\n\n"
00049 " Select all face with faceCentre within bounding box\n\n"
00050 );
00051
00052
00053
00054
00055 void Foam::boxToFace::combine(topoSet& set, const bool add) const
00056 {
00057 const pointField& ctrs = mesh_.faceCentres();
00058
00059 forAll(ctrs, faceI)
00060 {
00061 if (bb_.contains(ctrs[faceI]))
00062 {
00063 addOrDelete(set, faceI, add);
00064 }
00065 }
00066 }
00067
00068
00069
00070
00071
00072 Foam::boxToFace::boxToFace
00073 (
00074 const polyMesh& mesh,
00075 const treeBoundBox& bb
00076 )
00077 :
00078 topoSetSource(mesh),
00079 bb_(bb)
00080 {}
00081
00082
00083
00084 Foam::boxToFace::boxToFace
00085 (
00086 const polyMesh& mesh,
00087 const dictionary& dict
00088 )
00089 :
00090 topoSetSource(mesh),
00091 bb_(dict.lookup("box"))
00092 {}
00093
00094
00095
00096 Foam::boxToFace::boxToFace
00097 (
00098 const polyMesh& mesh,
00099 Istream& is
00100 )
00101 :
00102 topoSetSource(mesh),
00103 bb_(checkIs(is))
00104 {}
00105
00106
00107
00108
00109 Foam::boxToFace::~boxToFace()
00110 {}
00111
00112
00113
00114
00115 void Foam::boxToFace::applyToSet
00116 (
00117 const topoSetSource::setAction action,
00118 topoSet& set
00119 ) const
00120 {
00121 if ((action == topoSetSource::NEW) || (action == topoSetSource::ADD))
00122 {
00123 Info<< " Adding faces with centre within box " << bb_ << endl;
00124
00125 combine(set, true);
00126 }
00127 else if (action == topoSetSource::DELETE)
00128 {
00129 Info<< " Removing faces with centre within box " << bb_ << endl;
00130
00131 combine(set, false);
00132 }
00133 }
00134
00135
00136