Skip to content
Snippets Groups Projects
  1. Dec 07, 2021
  2. Dec 06, 2021
    • Mark OLESEN's avatar
      Merge branch 'feature-sampled-sets-extension' into 'develop' · 810d0c72
      Mark OLESEN authored
      sampledSets - enable writer construction from dictionary; glTF export
      
      See merge request !503
      810d0c72
    • Andrew Heather's avatar
      TUT: Added glTF export example for field and track data · 34b47709
      Andrew Heather authored and Mark OLESEN's avatar Mark OLESEN committed
      34b47709
    • Andrew Heather's avatar
      ENH: Added new glTF sammpled set writer · 85b40520
      Andrew Heather authored and Mark OLESEN's avatar Mark OLESEN committed
      Description
          Writes point data in glTF v2 format
      
          Two files are generated:
          - filename.bin  : a binary file containing all scene entities
          - filename.gltf : a JSON file that ties fields to the binary 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:
      
          \verbatim
          formatOptions
          {
              // Apply colours flag (yes | no ) [optional]
              colours     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] (uniform | field)
                      alpha           uniform;
                      alphaValue      0.5;
      
                      //alpha           field;
                      //alphaField      T;
                      //normalise       yes;
                  }
              }
          }
          \verbatim
      
          For particle tracks:
      
          \verbatim
          formatOptions
          {
              // Apply colours flag (yes | no) [optional]
              colours     yes;
      
              // Animate tracks (yes | no) [optional]
              animate     yes;
      
              // Animation properties [optional]
              animationInfo
              {
                  // Colour map [optional]
                  colourMap       <colourMap>;
      
                  // Colour [optional] (uniform | field)
                  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] (uniform | field)
                  alpha           uniform;
                  alphaValue      0.5;
      
                  //alpha           field;
                  //alphaField      T;
                  //normalise       yes;
              }
          }
          \endverbatim
      
      Note
          When writing particle animations, the particle field and colour properties
          correspond to initial particle state (first data point) and cannot be
          animated (limitation of the file format).
      
          For more information on the specification see
          https://www.khronos.org/registry/glTF/
      85b40520
    • Andrew Heather's avatar
      ENH: particleTracks - updated to include field data · 0f155daf
      Andrew Heather authored and Mark OLESEN's avatar Mark OLESEN committed
      The utility will now add field data to all tracks (previous version only
      created the geometry)
      
      The new 'fields' entry can be used to output specific fields.
      
      Example
      
          cloud           reactingCloud1;
      
          sampleFrequency 1;
      
          maxPositions    1000000;
      
          fields          (d U); // includes wildcard support
      
      STYLE: minor typo fix
      0f155daf
    • Andrew Heather's avatar
      ENH: sampledSets - enable writer construction from dictionary · 98c25d16
      Andrew Heather authored and Mark OLESEN's avatar Mark OLESEN committed
      Users can now include additional controls via a new formatOptions dictionary.
      98c25d16
    • Andrew Heather's avatar
      ENH: sampledSetWriters - updated writing of particle tracks · e5267bf8
      Andrew Heather authored and Mark OLESEN's avatar Mark OLESEN committed
      e5267bf8
    • Andrew Heather's avatar
      ENH: Cloud - added function to read cloud fields from disk to obr · 79fafda2
      Andrew Heather authored and Mark OLESEN's avatar Mark OLESEN committed
      79fafda2
    • mattijs's avatar
  3. Dec 03, 2021
  4. Dec 02, 2021
  5. Nov 29, 2021
  6. Nov 26, 2021
    • Andrew Heather's avatar
      Merge branch 'feature-expr-improvements' into 'develop' · 2880a543
      Andrew Heather authored
      Updates for expressions to improve robustness and support functions, external context etc.
      
      See merge request !501
      2880a543
    • Mark OLESEN's avatar
      ENH: generalize volField lookups to include 'context' objects · c0adccf8
      Mark OLESEN authored
      - allows an additional HashTable of pointers to reference external
        content which not otherwise directly available via an
        objectRegistry.
      
        This could typically be used to provide a function-local "rho"
        to the expression evaluation.
      c0adccf8
    • Mark OLESEN's avatar
      ENH: add cell/face set/zone support for patch expressions · 643763d2
      Mark OLESEN authored
      - for cell quantities, these evaluate on the faceCells associated with
        that patch to produce a field of true/false values
      
      - for face quantities, these simply correspond to the mesh faces
        associated with that patch to produce a field of true/false values
      643763d2
    • Mark OLESEN's avatar
      ENH: add expression support for scalar/vector expression lookups · fc6239d9
      Mark OLESEN authored
      - similar idea to swak timelines/lookuptables but combined together
        and based on Function1 for more flexibility.
      
        Specified as 'functions<scalar>' or 'functions<vector>'.
        For example,
      
        functions<scalar>
        {
            intakeType table ((0 0) (10 1.2));
      
            p_inlet
            {
                type        sine;
                frequency   3000;
                scale       50;
                level       101325;
            }
        }
      
        These can be referenced in the expressions as a nullary function or a
        unary function.
      
        Within the parser, the names are prefixed with "fn:" (function).
        It is thus possible to define "fn:sin()" that is different than
        the builtin "sin()" function.
      
           * A nullary call uses time value
             - Eg, fn:p_inlet()
      
           * A unary call acts as a remapper function.
             - Eg, fn:intakeType(6.25)
      fc6239d9
    • Mark OLESEN's avatar
      ENH: robuster lemon parsing · e6697edb
      Mark OLESEN authored
      - previously simply reused the scan token, which works fine for
        non-nested tokenizations but becomes too fragile with nesting.
      
        Now changed to use tagged unions that can be copied about
        and still retain some rudimentary knowledge of their types,
        which can be manually triggered with a destroy() call.
      
      - provide an 'identifier' non-terminal as an additional catch
        to avoid potential leakage on parsing failure.
      
      - adjust lemon rules and infrastructure:
      
        - use %token to predefine standard tokens.
          Will reduce some noise on the generated headers by retaining the
          order on the initial token names.
      
        - Define BIT_NOT, internal token rename NOT -> LNOT
      
      - handle non-terminal vector values.
        Support vector::x, vector::y and vector::z constants
      
      - permit fieldExpr access to time().
        Probably not usable or useful for an '#eval' expression,
        but useful for a Function1.
      
      - provisioning for hooks into function calls. Establishes token
        names for next commit(s).
      e6697edb