From 62f18ee7d5ab436768321908cd7d225b507c2aad Mon Sep 17 00:00:00 2001 From: laurence <laurence> Date: Thu, 20 Jun 2013 12:40:15 +0100 Subject: [PATCH] BUG: extendedFeatureEdgeMesh: Add stream operators for sideVolumeType --- .../surfaceBooleanFeatures.C | 10 ++++-- .../extendedFeatureEdgeMesh.C | 36 +++++++++++++++++++ .../extendedFeatureEdgeMesh.H | 3 ++ 3 files changed, 47 insertions(+), 2 deletions(-) diff --git a/applications/utilities/surface/surfaceBooleanFeatures/surfaceBooleanFeatures.C b/applications/utilities/surface/surfaceBooleanFeatures/surfaceBooleanFeatures.C index 93e4f626909..debb7b05887 100644 --- a/applications/utilities/surface/surfaceBooleanFeatures/surfaceBooleanFeatures.C +++ b/applications/utilities/surface/surfaceBooleanFeatures/surfaceBooleanFeatures.C @@ -370,7 +370,10 @@ int main(int argc, char *argv[]) DynamicList<vector> normals(2*nFeatEds); vectorField edgeDirections(nFeatEds, vector::zero); - DynamicList<label> normalVolumeTypes(2*nFeatEds); + DynamicList<extendedFeatureEdgeMesh::sideVolumeType> normalVolumeTypes + ( + 2*nFeatEds + ); List<DynamicList<label> > edgeNormals(nFeatEds); List<DynamicList<label> > normalDirections(nFeatEds); @@ -551,7 +554,10 @@ int main(int argc, char *argv[]) // Region edges are not explicitly supported by surfaceIntersection vectorField normalsTmp(normals); - PackedList<2> normalVolumeTypesTmp(normalVolumeTypes); + List<extendedFeatureEdgeMesh::sideVolumeType> normalVolumeTypesTmp + ( + normalVolumeTypes + ); labelListList edgeNormalsTmp(edgeNormals.size()); forAll(edgeNormalsTmp, i) { diff --git a/src/edgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMesh.C b/src/edgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMesh.C index 50e3e3e4580..05c86b78833 100644 --- a/src/edgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMesh.C +++ b/src/edgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMesh.C @@ -1380,4 +1380,40 @@ bool Foam::extendedFeatureEdgeMesh::writeData(Ostream& os) const } +Foam::Istream& Foam::operator>> +( + Istream& is, + Foam::extendedFeatureEdgeMesh::sideVolumeType& vt +) +{ + // Read beginning of sideVolumeType + is.readBegin("sideVolumeType"); + + int type; + is >> type; + + vt = static_cast<Foam::extendedFeatureEdgeMesh::sideVolumeType>(type); + + // Read end of volumeType + is.readEnd("sideVolumeType"); + + // Check state of Istream + is.check("operator>>(Istream&, sideVolumeType&)"); + + return is; +} + + +Foam::Ostream& Foam::operator<< +( + Ostream& os, + const Foam::extendedFeatureEdgeMesh::sideVolumeType& vt +) +{ + os << static_cast<int>(vt); + + return os; +} + + // ************************************************************************* // diff --git a/src/edgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMesh.H b/src/edgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMesh.H index ead6ef63ca1..dec5c416965 100644 --- a/src/edgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMesh.H +++ b/src/edgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMesh.H @@ -465,6 +465,9 @@ public: //- WriteData function required for regIOobject write operation virtual bool writeData(Ostream&) const; + + friend Istream& operator>>(Istream& is, sideVolumeType& vt); + friend Ostream& operator<<(Ostream& os, const sideVolumeType& vt); }; -- GitLab