diff --git a/applications/utilities/surface/surfaceBooleanFeatures/surfaceBooleanFeatures.C b/applications/utilities/surface/surfaceBooleanFeatures/surfaceBooleanFeatures.C index 93e4f6269098cbee0eb5550804b34a1a96467028..debb7b05887894fd43e7a6a2f2843873705df512 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 50e3e3e4580ecf06293a338ecb4231aecd6d2a37..05c86b78833d8d5be4a7fb429769e5a40af76720 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 ead6ef63ca14c53fec333d4b5559a402c95f9d8d..dec5c416965d8c2a98bed81581f3f1a8ed67737f 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); };