An OFstream that keeps track of vertices and provides convenience output methods for OBJ files. More...
#include <OBJstream.H>


Public Member Functions | |
| ClassNameNoDebug ("OBJstream") | |
| Declare type-name (no debug switch). | |
| OBJstream (const fileName &pathname, IOstreamOption streamOpt=IOstreamOption()) | |
| Construct from pathname (ASCII, uncompressed). | |
| OBJstream (const fileName &pathname, IOstreamOption::streamFormat fmt, IOstreamOption::compressionType cmp=IOstreamOption::UNCOMPRESSED) | |
| Construct from pathname, format (uncompressed). | |
| ~OBJstream ()=default | |
| Destructor. | |
| label | nVertices () const noexcept |
| Return the number of vertices written. | |
| virtual Ostream & | write (const char c) override |
| Write character. | |
| virtual Ostream & | writeQuoted (const char *str, std::streamsize len, const bool quoted=true) override |
| Write character/string content, with/without surrounding quotes. | |
| virtual Ostream & | write (const char *str) override |
| Write character string. | |
| virtual Ostream & | write (const word &str) override |
| Write word. | |
| virtual Ostream & | write (const std::string &str) override |
| Write string. | |
| Ostream & | writeComment (const std::string &str) |
| Write comment (with '# ' prefix). | |
| Ostream & | write (const point &p) |
| Write point (vertex). | |
| Ostream & | write (const point &p, const vector &n) |
| Write point and vector normal ('vn'). | |
| Ostream & | write (const UList< point > &points) |
| Write multiple points. | |
| Ostream & | write (const edge &e, const UList< point > &points) |
| Write edge as points with line. | |
| Ostream & | write (const linePointRef &ln) |
| Write line. | |
| Ostream & | write (const linePointRef &ln, const vector &n0, const vector &n1) |
| Write line with points and vector normals ('vn'). | |
| Ostream & | writeLine (const point &p0, const point &p1) |
| Write line joining two points. | |
| Ostream & | write (const triPointRef &f, const bool lines=true) |
| Write triangle as points with lines/filled-polygon. | |
| Ostream & | writeFace (const UList< point > &points, const bool lines=true) |
| Write face loop points with lines/filled-polygon. | |
| Ostream & | write (const face &f, const UList< point > &points, const bool lines=true) |
| Write face as points with lines/filled-polygon. | |
| Ostream & | write (const UList< face > &faces, const pointField &points, const bool lines=true) |
| Write patch faces as points with lines/filled-polygon. | |
| Ostream & | write (const UList< edge > &edges, const UList< point > &points, const bool compact=false) |
| Write edges as points with lines. | |
| Ostream & | write (const treeBoundBox &bb, const bool lines=true) |
| Write tree-bounding box with lines/filled-polygons. | |
| Public Member Functions inherited from OFstream | |
| ClassName ("OFstream") | |
| Declare type-name (with debug switch). | |
| OFstream (std::nullptr_t) | |
Construct a null output file stream that behaves like /dev/null. | |
| OFstream (IOstreamOption::atomicType atomic, const fileName &pathname, IOstreamOption streamOpt=IOstreamOption(), IOstreamOption::appendType append=IOstreamOption::NO_APPEND) | |
| Construct with specified atomic behaviour from pathname, stream option, optional append (see note). | |
| OFstream (const fileName &pathname, IOstreamOption streamOpt=IOstreamOption(), IOstreamOption::appendType append=IOstreamOption::NO_APPEND) | |
| Construct from pathname and other specifications. | |
| OFstream (const fileName &pathname, IOstreamOption::streamFormat fmt, IOstreamOption::compressionType cmp=IOstreamOption::UNCOMPRESSED, IOstreamOption::appendType append=IOstreamOption::NO_APPEND) | |
| Construct from pathname, format (uncompressed), optional append (see note), atomic behaviour as per system default. | |
| OFstream (IOstreamOption::atomicType atomic, const fileName &pathname, IOstreamOption::streamFormat fmt, IOstreamOption::compressionType cmp=IOstreamOption::UNCOMPRESSED, IOstreamOption::appendType append=IOstreamOption::NO_APPEND) | |
| Construct with specified atomic behaviour from pathname, format (uncompressed), optional append (see note). | |
| ~OFstream () | |
| Destructor. Possibly invokes an atomic rename (preference defined during construction). | |
| virtual const std::ostream & | stdStream () const override |
| Const access to underlying std::ostream. | |
| virtual std::ostream & | stdStream () override |
| Access to underlying std::ostream. | |
| virtual void | rewind () |
| Rewind the stream so that it may be written again. Reopens the file (truncation). | |
| bool | is_appending () const noexcept |
| True if opened in append mode and file already existed. | |
| bool | is_atomic () const noexcept |
| True if file creation behaves as atomic. | |
| void | print (Ostream &os) const override |
| Print stream description. | |
| virtual const fileName & | name () const override |
| Read/write access to the name of the stream. | |
| virtual fileName & | name () |
| Read/write access to the name of the stream. | |
| Public Member Functions inherited from OSstream | |
| OSstream (const OSstream &)=default | |
| Copy construct. | |
| void | operator= (const OSstream &)=delete |
| No copy assignment. | |
| OSstream (std::ostream &os, const string &streamName, IOstreamOption streamOpt=IOstreamOption()) | |
| Construct wrapper around std::ostream, set stream status. | |
| OSstream (std::ostream &os, const string &streamName, IOstreamOption::streamFormat fmt, IOstreamOption::compressionType cmp=IOstreamOption::UNCOMPRESSED) | |
| Construct wrapper around std::ostream, set stream status. | |
| OSstream (std::ostream &os, const string &streamName, IOstreamOption::streamFormat fmt, IOstreamOption::versionNumber ver, IOstreamOption::compressionType cmp=IOstreamOption::UNCOMPRESSED) | |
| Construct wrapper around std::ostream, set stream status. | |
| virtual std::ios_base::fmtflags | flags () const override |
| Get current stream flags. | |
| virtual std::ios_base::fmtflags | flags (std::ios_base::fmtflags f) override |
| Set stream flags, return old stream flags. | |
| void | syncState () |
| Set stream state to match that of the std::ostream. | |
| virtual bool | write (const token &tok) override |
| Write token to stream or otherwise handle it. | |
| virtual Ostream & | write (const int32_t val) override |
| Write int32_t. | |
| virtual Ostream & | write (const int64_t val) override |
| Write int64_t. | |
| virtual Ostream & | write (const uint32_t val) override |
| Write uint32_t. | |
| virtual Ostream & | write (const uint64_t val) override |
| Write uint64_t. | |
| virtual Ostream & | write (const float val) override |
| Write float. | |
| virtual Ostream & | write (const double val) override |
| Write double. | |
| virtual Ostream & | write (const char *data, std::streamsize count) override |
| Write binary block. | |
| virtual Ostream & | writeRaw (const char *data, std::streamsize count) override |
| Low-level raw binary output. | |
| virtual bool | beginRawWrite (std::streamsize count) override |
| Begin marker for low-level raw binary output. | |
| virtual bool | endRawWrite () override |
| End marker for low-level raw binary output. | |
| virtual void | indent () override |
| Add indentation characters. | |
| virtual void | flush () override |
| Flush stream. | |
| virtual void | endl () override |
| Add newline and flush stream. | |
| virtual char | fill () const override |
| Get the current padding character. | |
| virtual char | fill (const char fillch) override |
| Set padding character for formatted field up to field width. | |
| virtual int | width () const override |
| Get width of output field. | |
| virtual int | width (const int w) override |
| Set width of output field. | |
| virtual int | precision () const override |
| Get precision of output field. | |
| virtual int | precision (const int p) override |
| Set precision of output field. | |
| virtual Ostream & | writeQuoted (const std::string &str, const bool quoted=true) |
| Inherit write methods from Ostream. | |
| Public Member Functions inherited from Ostream | |
| Ostream (const Ostream &)=default | |
| Copy construct. | |
| virtual | ~Ostream ()=default |
| Destructor. | |
| Ostream (IOstreamOption streamOpt=IOstreamOption()) | |
| Default construct (ASCII, uncompressed), construct with specified stream option. | |
| Ostream (IOstreamOption::streamFormat fmt, IOstreamOption::compressionType cmp=IOstreamOption::UNCOMPRESSED) | |
| Construct with format (uncompressed). | |
| virtual Ostream & | write (const keyType &kw) |
| Write keyType. | |
| unsigned short | indentSize () const noexcept |
| Return indent size (spaces per level). | |
| unsigned short | indentSize (unsigned short val) noexcept |
| Change indent size (spaces per level), return old value. | |
| unsigned short | indentLevel () const noexcept |
| Return the indent level. | |
| unsigned short | indentLevel (unsigned short val) noexcept |
| Change the indent level, return old value. | |
| void | incrIndent () noexcept |
| Increment the indent level. | |
| void | decrIndent () |
| Decrement the indent level. | |
| virtual Ostream & | writeKeyword (const keyType &kw) |
| Write the keyword followed by an appropriate indentation. | |
| virtual Ostream & | beginBlock (const keyType &kw) |
| Write begin block group with the given name. | |
| virtual Ostream & | beginBlock () |
| Write begin block group without a name. | |
| virtual Ostream & | endBlock () |
| Write end block group. | |
| virtual Ostream & | endEntry () |
| Write end entry (';') followed by newline. | |
| template<class T> | |
| Ostream & | writeEntry (const keyType &key, const T &value) |
| Write a keyword/value entry. | |
| template<class T> | |
| Ostream & | writeEntryIfDifferent (const word &key, const T &value1, const T &value2) |
| Write a keyword/value entry only when the two values differ. | |
| Ostream & | operator() () const |
| Return a non-const reference to const Ostream. | |
| unsigned short & | indentLevel () noexcept |
| Access to indent level. | |
| unsigned short & | indentSize () noexcept |
| Access to indent size. | |
| Public Member Functions inherited from IOstream | |
| IOstream (const IOstream &)=default | |
| Copy construct. | |
| virtual | ~IOstream ()=default |
| Destructor. | |
| IOstream (IOstreamOption streamOpt=IOstreamOption()) | |
| Default construct (ASCII, uncompressed), construct with specified stream option. | |
| IOstream (IOstreamOption::streamFormat fmt, IOstreamOption::versionNumber ver, IOstreamOption::compressionType cmp=IOstreamOption::UNCOMPRESSED) | |
| Construct with format, version (compression). | |
| fileName | relativeName () const |
| Return the name of the stream relative to the current case. | |
| virtual bool | check (const char *operation) const |
| Check IOstream status for given operation. | |
| bool | fatalCheck (const char *operation) const |
| Check IOstream status for given operation. | |
| bool | opened () const noexcept |
| True if stream has been opened. | |
| bool | closed () const noexcept |
| True if stream is closed. | |
| bool | good () const noexcept |
| True if next operation might succeed. | |
| bool | eof () const noexcept |
| True if end of input seen. | |
| bool | fail () const noexcept |
| True if next operation will fail. | |
| bool | bad () const noexcept |
| True if stream is corrupted. | |
| operator bool () const noexcept | |
| True if the stream has not failed. | |
| bool | operator! () const noexcept |
| True if the stream has failed. | |
| unsigned | labelByteSize () const noexcept |
| The sizeof (label) in bytes associated with the stream. | |
| unsigned | scalarByteSize () const noexcept |
| The sizeof (scalar) in bytes associated with the stream. | |
| void | setLabelByteSize (unsigned nbytes) noexcept |
| Set the sizeof (label) in bytes associated with the stream. | |
| void | setScalarByteSize (unsigned nbytes) noexcept |
| Set the sizeof (scalar) in bytes associated with the stream. | |
| template<class T, class = std::enable_if_t<std::is_integral_v<T>>> | |
| bool | checkLabelSize () const noexcept |
| Test if the label byte-size associated with the stream is the same as the given type. | |
| template<class T, class = std::enable_if_t<std::is_floating_point_v<T>>> | |
| bool | checkScalarSize () const noexcept |
| Test if the scalar byte-size associated with the stream is the same as the given type. | |
| bool | checkNativeSizes () const noexcept |
| Test if the label/scalar byte-size associated with the stream are the native label/scalar sizes. | |
| bool | fatalCheckNativeSizes (const char *operation) const |
| Assert that the label/scalar byte-size associated with the stream are the native label/scalar sizes. | |
| label | lineNumber () const noexcept |
| Const access to the current stream line number. | |
| label & | lineNumber () noexcept |
| Non-const access to the current stream line number. | |
| label | lineNumber (const label num) noexcept |
| Set the stream line number. | |
| void | setEof () noexcept |
| Set stream state as reached 'eof'. | |
| void | setFail () noexcept |
| Set stream state as 'failed'. | |
| void | setBad () noexcept |
| Set stream state to be 'bad'. | |
| std::ios_base::fmtflags | setf (std::ios_base::fmtflags f) |
| Set stream flag(s), return old stream flags. | |
| std::ios_base::fmtflags | setf (const std::ios_base::fmtflags f, const std::ios_base::fmtflags mask) |
| Set stream flag(s) with mask, return old stream flags. | |
| std::ios_base::fmtflags | unsetf (std::ios_base::fmtflags f) |
| Unset stream flags, return old stream flags. | |
| void | print (Ostream &os, const int streamState) const |
| Print information about the stream state bits. | |
| InfoProxy< IOstream > | info () const noexcept |
| Return info proxy, used to print IOstream information to a stream. | |
| Public Member Functions inherited from IOstreamOption | |
| constexpr | IOstreamOption (streamFormat fmt=streamFormat::ASCII, compressionType comp=compressionType::UNCOMPRESSED) noexcept |
| Default construct (ASCII, UNCOMPRESSED, currentVersion) or construct with format, compression. | |
| constexpr | IOstreamOption (streamFormat fmt, compressionType comp, versionNumber ver) noexcept |
| Construct from components (format, compression, version). | |
| constexpr | IOstreamOption (streamFormat fmt, versionNumber ver, compressionType comp=compressionType::UNCOMPRESSED) noexcept |
| Construct from components (format, version, compression). | |
| IOstreamOption (const IOstreamOption &opt, streamFormat fmt) noexcept | |
| Copy construct with change of format. | |
| streamFormat | format () const noexcept |
| Get the current stream format. | |
| streamFormat | format (const streamFormat fmt) noexcept |
| Set the stream format. | |
| streamFormat | format (const word &formatName) |
| Set the stream format from string value. | |
| compressionType | compression () const noexcept |
| Get the stream compression. | |
| compressionType | compression (const compressionType comp) noexcept |
| Set the stream compression. | |
| compressionType | compression (const word &compName) |
| Set the stream compression from string value. | |
| versionNumber | version () const noexcept |
| Get the stream version. | |
| versionNumber | version (const versionNumber ver) noexcept |
| Set the stream version. | |
| versionNumber | version (const token &tok) |
| Set the stream version from token. | |
Additional Inherited Members | |
| Public Types inherited from IOstream | |
| enum | streamAccess : char { CLOSED = 0 , OPENED } |
| Enumeration for stream open/closed state. More... | |
| Public Types inherited from IOstreamOption | |
| enum | streamFormat : char { ASCII = 0 , BINARY , COHERENT , UNKNOWN_FORMAT } |
| Data format (ascii | binary | coherent). More... | |
| enum | compressionType : char { UNCOMPRESSED = 0 , COMPRESSED } |
| Compression treatment (UNCOMPRESSED | COMPRESSED). More... | |
| enum | appendType : char { NO_APPEND = 0 , APPEND_APP , APPEND_ATE , NON_APPEND = NO_APPEND , APPEND = APPEND_APP } |
| File appending (NO_APPEND | APPEND_APP | APPEND_ATE). More... | |
| enum | atomicType : char { NON_ATOMIC = 0 , ATOMIC } |
| Atomic operations (output). More... | |
| enum class | floatFormat : unsigned { general = unsigned(0) , fixed = unsigned(std::ios_base::fixed) , scientific = unsigned(std::ios_base::scientific) } |
| Float formats (eg, time directory name formats). More... | |
| Static Public Member Functions inherited from IOstream | |
| static unsigned int | defaultPrecision () noexcept |
| Return the default precision. | |
| static unsigned int | defaultPrecision (unsigned int prec) noexcept |
| Reset the default precision. | |
| static unsigned int | minPrecision (unsigned int prec) noexcept |
| Set the minimum default precision. | |
| Static Public Member Functions inherited from IOstreamOption | |
| static floatFormat | floatFormatEnum (const word &fmtName, const floatFormat deflt=floatFormat::general) |
| Lookup floatFormat enum corresponding to the string (general | fixed | scientific). | |
| static floatFormat | floatFormatEnum (const word &key, const dictionary &dict, const floatFormat deflt=floatFormat::general) |
| getOrDefault floatFormat from dictionary, warn only on bad enumeration. | |
| static streamFormat | formatEnum (const word &fmtName, const streamFormat deflt=streamFormat::ASCII) |
| Lookup streamFormat enum corresponding to the string (ascii | binary). | |
| static streamFormat | formatEnum (const word &key, const dictionary &dict, const streamFormat deflt=streamFormat::ASCII) |
| getOrDefault streamFormat from dictionary, warn only on bad enumeration. | |
| static compressionType | compressionEnum (const word &compName, const compressionType deflt=compressionType::UNCOMPRESSED) |
| The compression enum corresponding to the string. | |
| static compressionType | compressionEnum (const word &key, const dictionary &dict, const compressionType deflt=compressionType::UNCOMPRESSED) |
| getOrDefault compressionType from dictionary, warn only on bad enumeration. | |
| Static Public Attributes inherited from IOstream | |
| static unsigned int | precision_ |
| Default precision. | |
| Static Public Attributes inherited from IOstreamOption | |
| static const Enum< floatFormat > | floatFormatNames |
| Names for float formats (general, fixed, scientific). | |
| static const Enum< streamFormat > | formatNames |
| Stream format names (ascii, binary). | |
| static const versionNumber | currentVersion |
| The current version number (2.0). | |
| Protected Member Functions inherited from IOstream | |
| void | setOpened () noexcept |
| Set stream opened. | |
| void | setClosed () noexcept |
| Set stream closed. | |
| void | setState (std::ios_base::iostate state) noexcept |
| Set stream state. | |
| void | setGood () noexcept |
| Set stream state to be good. | |
| Protected Attributes inherited from Ostream | |
| unsigned short | indentSize_ = 4 |
| Number of spaces per indent level. | |
| unsigned short | indentLevel_ = 0 |
| Current indent level. | |
| Protected Attributes inherited from IOstream | |
| std::ios_base::iostate | ioState_ |
| Mirror of internal stream io state. | |
| streamAccess | openClosed_ |
| The stream open/closed state. | |
| unsigned char | sizeofLabel_ |
| The sizeof (label), possibly read from the header. | |
| unsigned char | sizeofScalar_ |
| The sizeof (scalar), possibly read from the header. | |
| label | lineNumber_ |
| The file line. | |
| Static Protected Attributes inherited from Ostream | |
| static constexpr const unsigned short | entryIndentation_ = 16 |
| Indentation of the entry from the start of the keyword. | |
| Static Protected Attributes inherited from IOstream | |
| static fileName | staticName_ |
| Name for any generic stream - normally treat as readonly. | |
An OFstream that keeps track of vertices and provides convenience output methods for OBJ files.
Definition at line 55 of file OBJstream.H.
|
explicit |
Construct from pathname (ASCII, uncompressed).
Definition at line 55 of file OBJstream.C.
References OFstream::OFstream().
Referenced by OBJstream().


|
inline |
Construct from pathname, format (uncompressed).
Definition at line 96 of file OBJstream.H.
References OBJstream(), and IOstreamOption::UNCOMPRESSED.

|
default |
Destructor.
| ClassNameNoDebug | ( | "OBJstream" | ) |
Declare type-name (no debug switch).
|
inlinenoexcept |
Return the number of vertices written.
Definition at line 120 of file OBJstream.H.
References Foam::noexcept.
|
overridevirtual |
Write character.
Reimplemented from OSstream.
Definition at line 69 of file OBJstream.C.
References Ostream::write().
Referenced by faceAreaWeightAMI::calcInterArea(), distributedTriSurfaceMesh::distribute(), edgeSurface::edgeSurface(), surfaceIntersection::surfaceIntersection(), surfaceIntersection::surfaceIntersection(), surfaceIntersection::surfaceIntersection(), dynamicMotionSolverTopoFvMesh::update(), extendedEdgeMesh::writeObj(), and meshRefinement::zonify().


|
overridevirtual |
Write character/string content, with/without surrounding quotes.
Reimplemented from OSstream.
Definition at line 77 of file OBJstream.C.
References Ostream::writeQuoted().
Referenced by write(), and write().


|
overridevirtual |
Write character string.
Reimplemented from OSstream.
Definition at line 110 of file OBJstream.C.
References Ostream::write().

|
overridevirtual |
Write word.
Reimplemented from OSstream.
Definition at line 121 of file OBJstream.C.
References writeQuoted().

|
overridevirtual |
Write string.
Reimplemented from OSstream.
Definition at line 127 of file OBJstream.C.
References writeQuoted().

| Foam::Ostream & writeComment | ( | const std::string & | str | ) |
Write comment (with '# ' prefix).
Definition at line 133 of file OBJstream.C.
References Ostream::write().

| Foam::Ostream & write | ( | const point & | p | ) |
Write point (vertex).
Definition at line 176 of file OBJstream.C.
References Foam::nl, p, and write().

| Foam::Ostream & write | ( | const point & | p, |
| const vector & | n ) |
Write point and vector normal ('vn').
Definition at line 183 of file OBJstream.C.
References n, Foam::nl, p, Ostream::write(), and write().

| Foam::Ostream & write | ( | const UList< point > & | points | ) |
| Foam::Ostream & write | ( | const edge & | e, |
| const UList< point > & | points ) |
| Foam::Ostream & write | ( | const linePointRef & | ln | ) |
Write line.
Definition at line 210 of file OBJstream.C.
References Foam::ln(), Foam::nl, and write().

| Foam::Ostream & write | ( | const linePointRef & | ln, |
| const vector & | n0, | ||
| const vector & | n1 ) |
Write line with points and vector normals ('vn').
Definition at line 219 of file OBJstream.C.
References Foam::ln(), Foam::nl, and write().

| Foam::Ostream & writeLine | ( | const point & | p0, |
| const point & | p1 ) |
Write line joining two points.
Definition at line 233 of file OBJstream.C.
References Foam::nl, p0, and write().
Referenced by nearWallFields::calcAddressing(), exact::correct(), snappyLayerDriver::dupFaceZonePoints(), averageNeighbourFvGeometryScheme::movePoints(), cellVolumeWeight::update(), inverseDistance::update(), trackingInverseDistance::update(), and extendedEdgeMesh::writeObj().


| Foam::Ostream & write | ( | const triPointRef & | f, |
| const bool | lines = true ) |
Write triangle as points with lines/filled-polygon.
Definition at line 246 of file OBJstream.C.

| Foam::Ostream & writeFace | ( | const UList< point > & | points, |
| const bool | lines = true ) |
Write face loop points with lines/filled-polygon.
Definition at line 278 of file OBJstream.C.
References forAll, points, and write().

| Foam::Ostream & write | ( | const face & | f, |
| const UList< point > & | points, | ||
| const bool | lines = true ) |
| Foam::Ostream & write | ( | const UList< face > & | faces, |
| const pointField & | points, | ||
| const bool | lines = true ) |
| Foam::Ostream & write | ( | const UList< edge > & | edges, |
| const UList< point > & | points, | ||
| const bool | compact = false ) |
Write edges as points with lines.
Optionally eliminate unused points.
Definition at line 383 of file OBJstream.C.
References e, HashTable< T, Key, Hash >::insert(), Foam::nl, points, UList< T >::size(), and write().

| Foam::Ostream & write | ( | const treeBoundBox & | bb, |
| const bool | lines = true ) |
Write tree-bounding box with lines/filled-polygons.
Definition at line 438 of file OBJstream.C.
References e, treeBoundBox::edges, f(), treeBoundBox::faces, Foam::nl, treeBoundBox::points(), and write().
