diff --git a/src/surfMesh/meshedSurf/meshedSurfRef.H b/src/surfMesh/meshedSurf/meshedSurfRef.H index 5ed5eba790..f2ec11df67 100644 --- a/src/surfMesh/meshedSurf/meshedSurfRef.H +++ b/src/surfMesh/meshedSurf/meshedSurfRef.H @@ -50,24 +50,33 @@ class meshedSurfRef { std::reference_wrapper points_; std::reference_wrapper faces_; - std::reference_wrapper zoneIds_; + std::reference_wrapper ids_; public: // Constructors + //- Construct null + meshedSurfRef() + : + points_(std::cref(pointField::null())), + faces_(std::cref(faceList::null())), + ids_(std::cref(labelList::null())) + {} + + //- Construct from components meshedSurfRef ( const pointField& pts, - const faceList& faces, + const faceList& fcs, const labelList& ids = labelList::null() ) : points_(std::cref(pts)), - faces_(std::cref(faces)), - zoneIds_(std::cref(ids)) + faces_(std::cref(fcs)), + ids_(std::cref(ids)) {} @@ -92,11 +101,32 @@ public: //- Per-face zone/region information. virtual const labelList& zoneIds() const { - return zoneIds_.get(); + return ids_.get(); } + //- Remove all references by redirecting to null objects + void clear() + { + points_ = std::cref(pointField::null()); + faces_ = std::cref(faceList::null()); + ids_ = std::cref(labelList::null()); + } + + //- Reset components + void reset + ( + const pointField& pts, + const faceList& fcs, + const labelList& ids = labelList::null() + ) + { + points_ = std::cref(pts); + faces_ = std::cref(fcs); + ids_ = std::cref(ids); + } }; + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // } // End namespace Foam