- using 'nil' type to write geometry only, in the future we could fallback to 'null'
writer and hook in arbitrary formats from surfMesh
- IOobject gets writeEndDivider() static method
- added obj surfaceWriter
- don't bother with prepended field names on obj and stl surfaceWriter.
It fills the disk and suggests differences where there are none.
- treat 'ofs' IO just like any other format
- dropped BasicMeshedSurface, since MeshedSurface can now also have zero or
more zones
- UnsortedMeshedSurface is a special type of MeshedSurface with zero zones,
but with additional zoneId labels
- use MeshedSurfaceProxy for writing surfaces with points/faces/zones and
optional faceMap - provides output interface for MeshedSurface,
UnsortedMeshedSurface and surfMesh.
- simplify output to filenames only, I can't see that the Ostream
is needed anywhere
- surfMesh renaming now works, after the objectRegistry fix
- added clear() method to functionObjectList. It also gets called by ~Time().
This should destroy function objects before anything else gets
destroyed (eg, objectRegistry).
- removed the previously added fileName type(), isDir(), isFile() methods.
- added optional bool parameter to isFile() function to explicitly
enable/disable the check for gzip files.
- fixed minor bugginess where the default usage of isFile() would result in
false positive matches.
- be slightly more stringent and use isDir() and isFile() instead of
exists() function when we actually know the expected type.
- can use 'XX.empty()' instead of 'XX.size() == 0', 'XX.size() < 1' or
'XX.size() <= 0' or for simpler coding.
It also has the same number of characters as '!XX.size()' and /might/ be
more readable
- many size checking had 'XX.size() > 0', 'XX.size() != 0', or 'XX.size() >= 1'
when a simple 'XX.size()' suffices
- added boundBox(const tmp<pointField>&) constructor for use with
coordinate systems
- moved some methods from treeBoundBox to boundBox and use VectorSpace ops
//- Does the surface need an update?
virtual bool needsUpdate() const = 0;
//- Mark the surface as needing an update.
// May also free up unneeded data.
// Return false if surface was already marked as expired.
virtual bool expire() = 0;
//- Update the surface as required.
// Do nothing (and return false) if no update was required
virtual bool update() = 0;
The constructors for the derived classes should generally start in a
'expired' condition (ie, needsUpdate() == true) and rely on a subsequent
call to the update() method to complete the initialization. Delaying the
final construction as late as possible allows the construction of
surfaces that may depend on intermediate calculation results (eg,
iso-surfaces) and also avoids the unnecessary reconstruction of surfaces
between sampling intervals.
It is the responsibility of the caller to ensure that the surface
update() is called before the surface is used. The update() method
implementation should do nothing when the surface is already up-to-date.