A coordSet(s) writer in glTF v2 format, which is particularly useful for writing track data. More...
#include <gltfCoordSetWriter.H>


Public Types | |
| enum class | fieldOption : char { NONE , UNIFORM , FIELD } |
| Field option used for colours. More... | |
Public Member Functions | |
| TypeNameNoDebug ("gltf") | |
| Runtime type information (no debug). | |
| gltfWriter () | |
| Default construct. | |
| gltfWriter (const dictionary &options) | |
| Default construct with specified options. | |
| gltfWriter (const coordSet &coords, const fileName &outputPath, const dictionary &options=dictionary()) | |
| Construct from components. | |
| gltfWriter (const UPtrList< coordSet > &tracks, const fileName &outputPath, const dictionary &options=dictionary()) | |
| Construct from components. | |
| virtual | ~gltfWriter () |
| Destructor. Calls close(). | |
| virtual fileName | path () const |
| Expected (characteristic) output file name - information only. | |
| virtual void | close (bool force=false) |
| Close and reset, clears backend. | |
| virtual void | beginTime (const Time &t) |
| Begin time step. Clears existing backend. | |
| virtual void | beginTime (const instant &inst) |
| Begin time step. Clears existing backend. | |
| virtual void | endTime () |
| End time step. Clears existing backend. | |
| declareCoordSetWriterWriteMethod (label) | |
| declareCoordSetWriterWriteMethod (scalar) | |
| declareCoordSetWriterWriteMethod (vector) | |
| declareCoordSetWriterWriteMethod (sphericalTensor) | |
| declareCoordSetWriterWriteMethod (symmTensor) | |
| declareCoordSetWriterWriteMethod (tensor) | |
| template<class Type> | |
| Foam::fileName | writeTemplate (const word &fieldName, const UPtrList< const Field< Type > > &fieldPtrs) |
| template<class Type> | |
| Foam::fileName | writeTemplate_animate (const word &fieldName, const UPtrList< const Field< Type > > &fieldPtrs) |
| template<class Type> | |
| Foam::fileName | writeTemplate (const word &fieldName, const Field< Type > &values) |
| template<class Type> | |
| Foam::fileName | writeTemplate (const word &fieldName, const List< Field< Type > > &fieldValues) |
| Public Member Functions inherited from coordSetWriter | |
| TypeName ("coordSetWriter") | |
| Runtime type information. | |
| declareRunTimeSelectionTable (autoPtr, coordSetWriter, word,(),()) | |
| declareRunTimeSelectionTable (autoPtr, coordSetWriter, wordDict,(const dictionary &writeOptions),(writeOptions)) | |
| coordSetWriter () | |
| Default construct. | |
| coordSetWriter (const dictionary &options) | |
| Default construct with specified options. | |
| virtual | ~coordSetWriter () |
| Destructor. Calls close(). | |
| virtual bool | buffering () const |
| True if the format uses internal buffering (eg, column output). | |
| virtual bool | buffering (const bool on) |
| Turn internal buffering on/off (only if supported by the writer). | |
| virtual bool | enabled () const |
| The writer is enabled. If the writer is not enabled, it may be possible for the caller to skip various preparatory operations. | |
| virtual bool | needsUpdate () const |
| Does the writer need an update (eg, lagging behind other changes). | |
| virtual bool | wroteData () const |
| Geometry or fields written since the last open? | |
| virtual bool | expire () |
| Mark that content changed and the writer will need an update, and set nFields = 0. | |
| virtual void | clear () |
| Close any open output, remove coordSet associations and expire the writer. | |
| virtual void | setCoordinates (const coordSet *coords) |
| Set coordinates, can also be nullptr. | |
| virtual void | setCoordinates (const coordSet &coords) |
| Set coordinates. | |
| virtual void | setTracks (const UPtrList< coordSet > &tracks) |
| Set track coordinates. | |
| virtual void | setTrackTimes (const UList< scalarField > ×) |
| Set track times. | |
| label | numPoints () const |
| The number of associated points (local processor). | |
| label | numTracks () const |
| The number of coordinate tracks. | |
| bool | hasCoords () const |
| Writer is associated with content. | |
| bool | empty () const |
| Writer is not associated with content. | |
| bool | is_open () const noexcept |
| Test if outputPath has been set. | |
| label | nFields () const noexcept |
| The number of expected output fields. | |
| label | nFields (const label n) noexcept |
| Set the number of expected output fields. | |
| bool | useTracks () const noexcept |
| Prefer tracks to points during single set writing. | |
| bool | useTracks (const bool on) noexcept |
| Enable/disable tracks preference. | |
| bool | useTimeDir () const noexcept |
| Should a time directory be spliced into the output path? | |
| bool | useTimeDir (const bool on) noexcept |
| Enable/disable use of spliced output path. | |
| bool | verbose () const noexcept |
| Get output verbosity. | |
| bool | verbose (bool on) noexcept |
| Enable/disable verbose output. | |
| bool | hasTime () const |
| True if there is a known time. | |
| const word & | timeName () const |
| The current time value/name. | |
| scalar | timeValue () const |
| The current time value/name. | |
| void | setTime (const instant &inst) |
| Set the current time. | |
| void | setTime (scalar timeValue) |
| Set current time from timeValue, auto generating the name. | |
| void | setTime (scalar timeValue, const word &timeName) |
| Set current time from timeValue and timeName. | |
| void | unsetTime () |
| Clear the current time. | |
| virtual void | open (const fileName &outputPath) |
| Write separate geometry to file. | |
| virtual void | open (const coordSet &coords, const fileName &outputPath) |
| Open from components. | |
| virtual void | open (const UPtrList< coordSet > &tracks, const fileName &outputPath) |
| Open from components. | |
| virtual InfoProxy< coordSetWriter > | info () const |
| Return info proxy, used to print information to a stream. | |
| virtual fileName | write (const word &fieldName, const Field< label > &field)=0 |
| Write field of label (point data). | |
| virtual fileName | write (const word &fieldName, const List< Field< label > > &fieldValues)=0 |
| Write track fields of label (point data). | |
| virtual fileName | write (const word &fieldName, const Field< scalar > &field)=0 |
| Write field of scalar (point data). | |
| virtual fileName | write (const word &fieldName, const List< Field< scalar > > &fieldValues)=0 |
| Write track fields of scalar (point data). | |
| virtual fileName | write (const word &fieldName, const Field< vector > &field)=0 |
| Write field of vector (point data). | |
| virtual fileName | write (const word &fieldName, const List< Field< vector > > &fieldValues)=0 |
| Write track fields of vector (point data). | |
| virtual fileName | write (const word &fieldName, const Field< sphericalTensor > &field)=0 |
| Write field of sphericalTensor (point data). | |
| virtual fileName | write (const word &fieldName, const List< Field< sphericalTensor > > &fieldValues)=0 |
| Write track fields of sphericalTensor (point data). | |
| virtual fileName | write (const word &fieldName, const Field< symmTensor > &field)=0 |
| Write field of symmTensor (point data). | |
| virtual fileName | write (const word &fieldName, const List< Field< symmTensor > > &fieldValues)=0 |
| Write track fields of symmTensor (point data). | |
| virtual fileName | write (const word &fieldName, const Field< tensor > &field)=0 |
| Write field of tensor (point data). | |
| virtual fileName | write (const word &fieldName, const List< Field< tensor > > &fieldValues)=0 |
| Write track fields of tensor (point data). | |
| template<class Type> | |
| Foam::tmp< Foam::Field< Type > > | adjustFieldTemplate (const word &fieldName, const tmp< Field< Type > > &tfield) const |
| template<class Type> | |
| Foam::UPtrList< const Foam::Field< Type > > | repackageFields (const Field< Type > &field) |
| template<class Type> | |
| Foam::UPtrList< const Foam::Field< Type > > | repackageFields (const UList< Field< Type > > &fieldValues) |
Static Public Attributes | |
| static const Enum< fieldOption > | fieldOptionNames_ |
| Strings corresponding to the field options. | |
Additional Inherited Members | |
| Static Public Member Functions inherited from coordSetWriter | |
| static dictionary | formatOptions (const dictionary &dict, const word &formatName, const word &entryName="formatOptions") |
| Same as fileFormats::getFormatOptions. | |
| static dictionary | formatOptions (const dictionary &dict, const dictionary &setDict, const word &formatName, const word &entryName="formatOptions") |
| Same as fileFormats::getFormatOptions. | |
| static bool | supportedType (const word &writeType) |
| True if New is likely to succeed for this writeType. | |
| static autoPtr< coordSetWriter > | New (const word &writeFormat) |
| Return a reference to the selected writer. | |
| static autoPtr< coordSetWriter > | New (const word &writeFormat, const dictionary &writeOptions) |
| Return a reference to the selected writer. | |
| static word | suffix (const word &fldName, const word &fileExt=word::null) |
| Name suffix based on fieldName (underscore separator). | |
| static word | suffix (const wordList &fieldNames, const word &fileExt=word::null) |
| Name suffix based on fieldNames (underscore separator). | |
| Protected Member Functions inherited from coordSetWriter | |
| void | appendField (const word &fieldName, const Field< label > &vals) |
| void | appendField (const word &fieldName, const Field< scalar > &vals) |
| void | appendField (const word &fieldName, const Field< vector > &vals) |
| void | appendField (const word &fieldName, const Field< sphericalTensor > &vals) |
| void | appendField (const word &fieldName, const Field< symmTensor > &vals) |
| void | appendField (const word &fieldName, const Field< tensor > &vals) |
| void | clearBuffers () |
| Clear out buffering. | |
| label | nDataColumns () const |
| The number of buffer data columns, after splitting into components. | |
| virtual bool | writeBuffered () |
| Write buffered data. | |
| void | writeBufferContents (Ostream &os, const coordSet &coords, const char *sep) const |
| Write buffered data. | |
| void | getBufferLine (DynamicList< scalar > &buf, const coordSet &coords, const label pointi) const |
| Get buffered data line (components). | |
| fileName | getExpectedPath (const word &fileExt=word::null) const |
| Get expected (characteristic) output file name - information only. | |
| fileName | getFieldPrefixedPath (const word &fieldName, const word &fileExt=word::null) const |
| Get field-prefixed output file name. | |
| void | checkOpen () const |
| Verify that the outputPath_ has been set or FatalError. | |
| virtual bool | merge () const |
| Perform any merging if not already upToDate (parallel) or simply mark as being up-to-date. | |
| template<class Type> | |
| tmp< Field< Type > > | adjustFieldTemplate (const word &fieldName, const tmp< Field< Type > > &tfield) const |
| template<class Type> | |
| fileName | writeTemplate (const word &fieldName, const Field< Type > &values) |
| Dummy templated write operation. | |
| template<class Type> | |
| fileName | writeTemplate (const word &fieldName, const List< Field< Type > > &fieldValues) |
| Dummy templated write operation. Multiple tracks. | |
| coordSetWriter (const coordSetWriter &)=delete | |
| No copy construct. | |
| void | operator= (const coordSetWriter &)=delete |
| No copy assignment. | |
| Static Protected Member Functions inherited from coordSetWriter | |
| static void | writeLine (Ostream &, const UList< word > &, const char *sep) |
| Write line contents (eg, buffered). | |
| static void | writeLine (Ostream &, const UList< scalar > &, const char *sep) |
| Write line contents (eg, buffered). | |
| template<class Type> | |
| static UPtrList< const Field< Type > > | repackageFields (const Field< Type > &field) |
| Repackage field into a UPtrList. | |
| template<class Type> | |
| static UPtrList< const Field< Type > > | repackageFields (const UList< Field< Type > > &fieldValues) |
| Repackage multiple fields into a UPtrList. | |
| template<class Type> | |
| static void | writeTable (Ostream &os, const coordSet &coords, const UList< Type > &values, const char *sep) |
| Write coordinates and values. | |
| Protected Attributes inherited from coordSetWriter | |
| UPtrList< const coordSet > | coords_ |
| Reference to coordinate set(s). | |
| List< scalarField > | trackTimes_ |
| Track times (eg, streamlines), one per coords_ entry. | |
| bool | upToDate_ |
| The content is up-to-date? | |
| bool | wroteGeom_ |
| Track if geometry has been written since the last open. | |
| bool | buffering_ |
| Writer with buffering output. | |
| bool | useTracks_ |
| Prefer tracks to points during single set writing. | |
| bool | useTimeDir_ |
| Insert additional time sub-directory in the output path. | |
| bool | verbose_ |
| Additional output verbosity. | |
| label | nFields_ |
| The number of fields. | |
| instant | currTime_ |
| The current time value/name. | |
| fileName | outputPath_ |
| The full output directory and file (coords) name. | |
| scalar | geometryScale_ |
| Output geometry scaling after rotate/translate. | |
| point | geometryCentre_ |
| The centre of rotation (untranslate, translate). | |
| coordSystem::cartesian | geometryTransform_ |
| Local coordinate system transformation. | |
| dictionary | fieldLevel_ |
| Field level to remove (on output). | |
| dictionary | fieldScale_ |
| Field scaling (on output). | |
| DynamicList< word > | labelNames_ |
| PtrDynList< Field< label > > | labelFields_ |
| DynamicList< word > | scalarNames_ |
| PtrDynList< Field< scalar > > | scalarFields_ |
| DynamicList< word > | vectorNames_ |
| PtrDynList< Field< vector > > | vectorFields_ |
| DynamicList< word > | sphericalTensorNames_ |
| PtrDynList< Field< sphericalTensor > > | sphericalTensorFields_ |
| DynamicList< word > | symmTensorNames_ |
| PtrDynList< Field< symmTensor > > | symmTensorFields_ |
| DynamicList< word > | tensorNames_ |
| PtrDynList< Field< tensor > > | tensorFields_ |
A coordSet(s) writer in glTF v2 format, which is particularly useful for writing track data.
Two files are generated:
The output can contain both geometry and fields, with additional support for colours using a user-supplied colour map, and animation of particle tracks.
Controls are provided via the optional formatOptions dictionary.
For non-particle track data:
formatOptions
{
gltf
{
// Apply colours flag (yes | no ) [optional]
colour yes;
// List of options per field
fieldInfo
{
p
{
// Colour map [optional]
colourMap <colourMap>;
// Colour map minimum and maximum limits [optional]
// Uses field min and max if not specified
min 0;
max 1;
// Alpha channel [optional] (<scalar>)
alpha 0.5;
}
}
}
}
\verbatim
For particle tracks:
\verbatim
formatOptions
{
gltf
{
// Apply colours flag (yes | no) [optional]
colour yes;
// Animate tracks (yes | no) [optional]
animate yes;
// Animation properties [optional]
animationInfo
{
// Colour map [optional]
colourMap <colourMap>;
// Colour [optional] (<vector> | uniform | field)
colour (1 0 0); // RGB in range [0-1]
//colour uniform;
//colourValue (1 0 0); // RGB in range [0-1]
//colour field;
//colourField d;
// Colour map minimum and maximum limits [optional]
// Note: for colour = field option
// Uses field min and max if not specified
min 0;
max 1;
// Alpha channel [optional] (<scalar>)
alpha 0.5;
}
}
}
For more information on the specification see https://www.khronos.org/registry/glTF/
Definition at line 142 of file gltfCoordSetWriter.H.
|
strong |
Field option used for colours.
| Enumerator | |
|---|---|
| NONE | Placeholder type (unnamed). |
| UNIFORM | Uniform value. |
| FIELD | Field value. |
Definition at line 153 of file gltfCoordSetWriter.H.
| gltfWriter | ( | ) |
Default construct.
Definition at line 287 of file gltfCoordSetWriter.C.
References coordSetWriter::coordSetWriter(), and Foam::Zero.
Referenced by gltfWriter(), and gltfWriter().


|
explicit |
Default construct with specified options.
Definition at line 301 of file gltfCoordSetWriter.C.
References coordSetWriter::coordSetWriter(), and Foam::Zero.

| gltfWriter | ( | const coordSet & | coords, |
| const fileName & | outputPath, | ||
| const dictionary & | options = dictionary() ) |
Construct from components.
Definition at line 326 of file gltfCoordSetWriter.C.
References gltfWriter(), and coordSetWriter::open().

| gltfWriter | ( | const UPtrList< coordSet > & | tracks, |
| const fileName & | outputPath, | ||
| const dictionary & | options = dictionary() ) |
Construct from components.
Definition at line 339 of file gltfCoordSetWriter.C.
References gltfWriter(), and coordSetWriter::open().

|
virtual |
Destructor. Calls close().
Definition at line 354 of file gltfCoordSetWriter.C.
References close().

| TypeNameNoDebug | ( | "gltf" | ) |
Runtime type information (no debug).
|
virtual |
Expected (characteristic) output file name - information only.
Implements coordSetWriter.
Definition at line 362 of file gltfCoordSetWriter.C.
References coordSetWriter::getExpectedPath().

|
virtual |
Close and reset, clears backend.
Reimplemented from coordSetWriter.
Definition at line 371 of file gltfCoordSetWriter.C.
References coordSetWriter::close().
Referenced by ~gltfWriter().


|
virtual |
Begin time step. Clears existing backend.
Reimplemented from coordSetWriter.
Definition at line 378 of file gltfCoordSetWriter.C.
References coordSetWriter::beginTime().

|
virtual |
Begin time step. Clears existing backend.
Reimplemented from coordSetWriter.
Definition at line 385 of file gltfCoordSetWriter.C.
References coordSetWriter::beginTime().

|
virtual |
End time step. Clears existing backend.
Reimplemented from coordSetWriter.
Definition at line 392 of file gltfCoordSetWriter.C.
References coordSetWriter::endTime().

| declareCoordSetWriterWriteMethod | ( | label | ) |
| declareCoordSetWriterWriteMethod | ( | scalar | ) |
| declareCoordSetWriterWriteMethod | ( | vector | ) |
| declareCoordSetWriterWriteMethod | ( | sphericalTensor | ) |
| declareCoordSetWriterWriteMethod | ( | symmTensor | ) |
| declareCoordSetWriterWriteMethod | ( | tensor | ) |
| Foam::fileName writeTemplate | ( | const word & | fieldName, |
| const UPtrList< const Field< Type > > & | fieldPtrs ) |
Definition at line 402 of file gltfCoordSetWriter.C.
References alpha, Foam::component(), coordSetWriter::coords_, dict, Foam::exit(), Foam::FatalError, FatalErrorInFunction, field(), forAll, Foam::getBoundedColours(), Foam::max(), MinMax< T >::max(), Foam::min(), MinMax< T >::min(), Foam::minMax(), Foam::minMaxMag(), Foam::name(), Foam::nl, and path().

| Foam::fileName writeTemplate_animate | ( | const word & | fieldName, |
| const UPtrList< const Field< Type > > & | fieldPtrs ) |
Definition at line 508 of file gltfCoordSetWriter.C.
References coordSetWriter::coords_, Foam::exit(), Foam::FatalError, FatalErrorInFunction, FIELD, field(), forAll, Foam::getAnimationColour(), Foam::name(), Foam::nl, NONE, path(), coordSetWriter::trackTimes_, UNIFORM, and Foam::Zero.

| Foam::fileName writeTemplate | ( | const word & | fieldName, |
| const Field< Type > & | values ) |
Definition at line 712 of file gltfCoordSetWriter.C.
References coordSetWriter::checkOpen(), coordSetWriter::coords_, fileName::null, and coordSetWriter::repackageFields().

| Foam::fileName writeTemplate | ( | const word & | fieldName, |
| const List< Field< Type > > & | fieldValues ) |
Definition at line 730 of file gltfCoordSetWriter.C.
References coordSetWriter::checkOpen(), coordSetWriter::coords_, fileName::null, coordSetWriter::repackageFields(), and coordSetWriter::trackTimes_.

|
static |
Strings corresponding to the field options.
Definition at line 164 of file gltfCoordSetWriter.H.