A coordSet(s) writer in glTF v2 format, which is particularly useful for writing track data. More...
Public Types | |
enum | fieldOption : char { NONE, UNIFORM, FIELD } |
Field option used for colours. More... | |
Public Member Functions | |
TypeNameNoDebug ("gltf") | |
Runtime type information (no debug) More... | |
gltfWriter () | |
Default construct. More... | |
gltfWriter (const dictionary &options) | |
Default construct with specified options. More... | |
gltfWriter (const coordSet &coords, const fileName &outputPath, const dictionary &options=dictionary()) | |
Construct from components. More... | |
gltfWriter (const UPtrList< coordSet > &tracks, const fileName &outputPath, const dictionary &options=dictionary()) | |
Construct from components. More... | |
virtual | ~gltfWriter () |
Destructor. Calls close() More... | |
virtual fileName | path () const |
Expected (characteristic) output file name - information only. More... | |
virtual void | close (bool force=false) |
Close and reset, clears backend. More... | |
virtual void | beginTime (const Time &t) |
Begin time step. Clears existing backend. More... | |
virtual void | beginTime (const instant &inst) |
Begin time step. Clears existing backend. More... | |
virtual void | endTime () |
End time step. Clears existing backend. More... | |
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. More... | |
declareRunTimeSelectionTable (autoPtr, coordSetWriter, word,(),()) | |
declareRunTimeSelectionTable (autoPtr, coordSetWriter, wordDict,(const dictionary &writeOptions),(writeOptions)) | |
coordSetWriter () | |
Default construct. More... | |
coordSetWriter (const dictionary &options) | |
Default construct with specified options. More... | |
virtual | ~coordSetWriter () |
Destructor. Calls close() More... | |
virtual bool | buffering () const |
True if the format uses internal buffering (eg, column output) More... | |
virtual bool | buffering (const bool on) |
Turn internal buffering on/off (only if supported by the writer) More... | |
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. More... | |
virtual bool | needsUpdate () const |
Does the writer need an update (eg, lagging behind other changes) More... | |
virtual bool | wroteData () const |
Geometry or fields written since the last open? More... | |
virtual bool | expire () |
Mark that content changed and the writer will need an update, and set nFields = 0. More... | |
virtual void | clear () |
Close any open output, remove coordSet associations and expire the writer. More... | |
virtual void | setCoordinates (const coordSet *coords) |
Set coordinates, can also be nullptr. More... | |
virtual void | setCoordinates (const coordSet &coords) |
Set coordinates. More... | |
virtual void | setTracks (const UPtrList< coordSet > &tracks) |
Set track coordinates. More... | |
virtual void | setTrackTimes (const UList< scalarField > ×) |
Set track times. More... | |
label | numPoints () const |
The number of associated points (local processor) More... | |
label | numTracks () const |
The number of coordinate tracks. More... | |
bool | hasCoords () const |
Writer is associated with content. More... | |
bool | empty () const |
Writer is not associated with content. More... | |
bool | is_open () const noexcept |
Test if outputPath has been set. More... | |
label | nFields () const noexcept |
The number of expected output fields. More... | |
label | nFields (const label n) noexcept |
Set the number of expected output fields. More... | |
bool | useTracks () const noexcept |
Prefer tracks to points during single set writing. More... | |
bool | useTracks (const bool on) noexcept |
Enable/disable tracks preference. More... | |
bool | useTimeDir () const noexcept |
Should a time directory be spliced into the output path? More... | |
bool | useTimeDir (const bool on) noexcept |
Enable/disable use of spliced output path. More... | |
bool | verbose () const noexcept |
Get output verbosity. More... | |
bool | verbose (bool on) noexcept |
Enable/disable verbose output. More... | |
bool | hasTime () const |
True if there is a known time. More... | |
const word & | timeName () const |
The current time value/name. More... | |
scalar | timeValue () const |
The current time value/name. More... | |
void | setTime (const instant &inst) |
Set the current time. More... | |
void | setTime (scalar timeValue) |
Set current time from timeValue, auto generating the name. More... | |
void | setTime (scalar timeValue, const word &timeName) |
Set current time from timeValue and timeName. More... | |
void | unsetTime () |
Clear the current time. More... | |
virtual void | open (const fileName &outputPath) |
Write separate geometry to file. More... | |
virtual void | open (const coordSet &coords, const fileName &outputPath) |
Open from components. More... | |
virtual void | open (const UPtrList< coordSet > &tracks, const fileName &outputPath) |
Open from components. More... | |
virtual InfoProxy< coordSetWriter > | info () const |
Return info proxy, used to print information to a stream. More... | |
virtual fileName | write (const word &fieldName, const Field< label > &field)=0 |
Write field of label (point data) More... | |
virtual fileName | write (const word &fieldName, const List< Field< label >> &fieldValues)=0 |
Write track fields of label (point data) More... | |
virtual fileName | write (const word &fieldName, const Field< scalar > &field)=0 |
Write field of scalar (point data) More... | |
virtual fileName | write (const word &fieldName, const List< Field< scalar >> &fieldValues)=0 |
Write track fields of scalar (point data) More... | |
virtual fileName | write (const word &fieldName, const Field< vector > &field)=0 |
Write field of vector (point data) More... | |
virtual fileName | write (const word &fieldName, const List< Field< vector >> &fieldValues)=0 |
Write track fields of vector (point data) More... | |
virtual fileName | write (const word &fieldName, const Field< sphericalTensor > &field)=0 |
Write field of sphericalTensor (point data) More... | |
virtual fileName | write (const word &fieldName, const List< Field< sphericalTensor >> &fieldValues)=0 |
Write track fields of sphericalTensor (point data) More... | |
virtual fileName | write (const word &fieldName, const Field< symmTensor > &field)=0 |
Write field of symmTensor (point data) More... | |
virtual fileName | write (const word &fieldName, const List< Field< symmTensor >> &fieldValues)=0 |
Write track fields of symmTensor (point data) More... | |
virtual fileName | write (const word &fieldName, const Field< tensor > &field)=0 |
Write field of tensor (point data) More... | |
virtual fileName | write (const word &fieldName, const List< Field< tensor >> &fieldValues)=0 |
Write track fields of tensor (point data) More... | |
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. More... | |
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. More... | |
static dictionary | formatOptions (const dictionary &dict, const dictionary &setDict, const word &formatName, const word &entryName="formatOptions") |
Same as fileFormats::getFormatOptions. More... | |
static bool | supportedType (const word &writeType) |
True if New is likely to succeed for this writeType. More... | |
static autoPtr< coordSetWriter > | New (const word &writeFormat) |
Return a reference to the selected writer. More... | |
static autoPtr< coordSetWriter > | New (const word &writeFormat, const dictionary &writeOptions) |
Return a reference to the selected writer. More... | |
static word | suffix (const word &fldName, const word &fileExt=word::null) |
Name suffix based on fieldName (underscore separator) More... | |
static word | suffix (const wordList &fieldNames, const word &fileExt=word::null) |
Name suffix based on fieldNames (underscore separator) More... | |
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. More... | |
label | nDataColumns () const |
The number of buffer data columns, after splitting into components. More... | |
virtual bool | writeBuffered () |
Write buffered data. More... | |
void | writeBufferContents (Ostream &os, const coordSet &coords, const char *sep) const |
Write buffered data. More... | |
void | getBufferLine (DynamicList< scalar > &buf, const coordSet &coords, const label pointi) const |
Get buffered data line (components) More... | |
fileName | getExpectedPath (const word &fileExt=word::null) const |
Get expected (characteristic) output file name - information only. More... | |
fileName | getFieldPrefixedPath (const word &fieldName, const word &fileExt=word::null) const |
Get field-prefixed output file name. More... | |
void | checkOpen () const |
Verify that the outputPath_ has been set or FatalError. More... | |
virtual bool | merge () const |
Perform any merging if not already upToDate (parallel) or simply mark as being up-to-date. More... | |
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. More... | |
template<class Type > | |
fileName | writeTemplate (const word &fieldName, const List< Field< Type >> &fieldValues) |
Dummy templated write operation. Multiple tracks. More... | |
coordSetWriter (const coordSetWriter &)=delete | |
No copy construct. More... | |
void | operator= (const coordSetWriter &)=delete |
No copy assignment. More... | |
Static Protected Member Functions inherited from coordSetWriter | |
static void | writeLine (Ostream &, const UList< word > &, const char *sep) |
Write line contents (eg, buffered) More... | |
static void | writeLine (Ostream &, const UList< scalar > &, const char *sep) |
Write line contents (eg, buffered) More... | |
template<class Type > | |
static UPtrList< const Field< Type > > | repackageFields (const Field< Type > &field) |
Repackage field into a UPtrList. More... | |
template<class Type > | |
static UPtrList< const Field< Type > > | repackageFields (const UList< Field< Type >> &fieldValues) |
Repackage multiple fields into a UPtrList. More... | |
template<class Type > | |
static void | writeTable (Ostream &os, const coordSet &coords, const UList< Type > &values, const char *sep) |
Write coordinates and values. More... | |
Protected Attributes inherited from coordSetWriter | |
UPtrList< const coordSet > | coords_ |
Reference to coordinate set(s) More... | |
List< scalarField > | trackTimes_ |
Track times (eg, streamlines), one per coords_ entry. More... | |
bool | upToDate_ |
The content is up-to-date? More... | |
bool | wroteGeom_ |
Track if geometry has been written since the last open. More... | |
bool | buffering_ |
Writer with buffering output. More... | |
bool | useTracks_ |
Prefer tracks to points during single set writing. More... | |
bool | useTimeDir_ |
Insert additional time sub-directory in the output path. More... | |
bool | verbose_ |
Additional output verbosity. More... | |
label | nFields_ |
The number of fields. More... | |
instant | currTime_ |
The current time value/name. More... | |
fileName | outputPath_ |
The full output directory and file (coords) name. More... | |
scalar | geometryScale_ |
Output geometry scaling after rotate/translate. More... | |
point | geometryCentre_ |
The centre of rotation (untranslate, translate) More... | |
coordSystem::cartesian | geometryTransform_ |
Local coordinate system transformation. More... | |
dictionary | fieldLevel_ |
Field level to remove (on output) More... | |
dictionary | fieldScale_ |
Field scaling (on output) More... | |
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.
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.
|
explicit |
Default construct with specified options.
Definition at line 301 of file gltfCoordSetWriter.C.
gltfWriter | ( | const coordSet & | coords, |
const fileName & | outputPath, | ||
const dictionary & | options = dictionary() |
||
) |
Construct from components.
Definition at line 327 of file gltfCoordSetWriter.C.
gltfWriter | ( | const UPtrList< coordSet > & | tracks, |
const fileName & | outputPath, | ||
const dictionary & | options = dictionary() |
||
) |
Construct from components.
Definition at line 340 of file gltfCoordSetWriter.C.
|
virtual |
Destructor. Calls close()
Definition at line 354 of file gltfCoordSetWriter.C.
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.
|
virtual |
Close and reset, clears backend.
Reimplemented from coordSetWriter.
Definition at line 371 of file gltfCoordSetWriter.C.
References coordSetWriter::close().
|
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 403 of file gltfCoordSetWriter.C.
References Foam::constant::atomic::alpha, Foam::component(), dict, Foam::exit(), Foam::FatalError, FatalErrorInFunction, field(), forAll, Foam::getBoundedColours(), MinMax< T >::max(), Foam::max(), MinMax< T >::min(), Foam::min(), Foam::minMax(), Foam::minMaxMag(), Foam::name(), Foam::nl, path(), and UPtrList< T >::size().
Foam::fileName writeTemplate_animate | ( | const word & | fieldName, |
const UPtrList< const Field< Type >> & | fieldPtrs | ||
) |
Definition at line 509 of file gltfCoordSetWriter.C.
References UPtrList< T >::clear(), Foam::exit(), Foam::FatalError, FatalErrorInFunction, field(), forAll, Foam::getAnimationColour(), Foam::name(), Foam::nl, path(), UPtrList< T >::size(), Foam::Detail::ListPolicy::UNIFORM, and Foam::Zero.
Foam::fileName writeTemplate | ( | const word & | fieldName, |
const Field< Type > & | values | ||
) |
Definition at line 713 of file gltfCoordSetWriter.C.
References fileName::null, and Foam::HashTableOps::values().
Foam::fileName writeTemplate | ( | const word & | fieldName, |
const List< Field< Type >> & | fieldValues | ||
) |
Definition at line 731 of file gltfCoordSetWriter.C.
References fileName::null.
|
static |
Strings corresponding to the field options.
Definition at line 164 of file gltfCoordSetWriter.H.