23#ifndef vtkONNXInference_h
24#define vtkONNXInference_h
26#include "vtkFiltersONNXModule.h"
34VTK_ABI_NAMESPACE_BEGIN
38class AllocatorWithDefaultOptions;
55 vtkGetMacro(ModelFile, std::string);
95 vtkSetMacro(TimeStepIndex,
int);
96 vtkGetMacro(TimeStepIndex,
int);
153 vtkSetMacro(FieldArrayInput,
bool);
154 vtkGetMacro(FieldArrayInput,
bool);
155 vtkBooleanMacro(FieldArrayInput,
bool);
162 vtkSetMacro(ProcessedFieldArrayName,
const std::string&);
163 vtkGetMacro(ProcessedFieldArrayName,
const std::string&);
170 vtkSetMacro(OutputDimension,
int);
171 vtkGetMacro(OutputDimension,
int);
179 vtkSetMacro(ArrayAssociation,
int);
180 vtkGetMacro(ArrayAssociation,
int);
208 void InitializeSession();
215 bool ShouldGenerateTimeSteps();
221 bool GenerateInputTensorFromParameters(
222 std::vector<float>& parameters, Ort::Value& inputTensor,
double timeValue);
228 bool GenerateInputTensorFromFieldArray(
235 std::vector<Ort::Value> RunModel(Ort::Value& inputTensor);
238 std::string ModelFile;
239 std::vector<int64_t> InputShape = { 0 };
240 std::vector<float> InputParameters;
241 std::vector<double> TimeStepValues;
242 int TimeStepIndex = -1;
243 bool FieldArrayInput =
false;
244 std::string ProcessedFieldArrayName;
247 int OutputDimension = 1;
251 bool Initialized =
false;
252 std::unique_ptr<vtkONNXInferenceInternals> Internals;
general representation of visualization data
represent and manipulate attribute data in a dataset
a simple class to control print indentation
void ClearInputParameters()
Clear the input parameters vector.
void ClearTimeStepValues()
Clear the time step values vector.
void SetInputShape(vtkIdType idx, int shapeElement)
Set/Get the shape of the input.
int RequestInformation(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is required to inform the pipeline of the time steps.
~vtkONNXInference() override=default
void SetInputShape(const std::vector< int64_t > &shape)
Set/Get the shape of the input.
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called within ProcessRequest when a request asks the algorithm to do its work.
void SetInputParameters(const std::vector< float > ¶ms)
Input Parameters.
void SetInputParameter(vtkIdType idx, float InputParameter)
Set an input parameter at a given index.
static vtkONNXInference * New()
void SetTimeStepValues(const std::vector< double > ×)
Time Steps.
void SetTimeStepValue(vtkIdType idx, double timeStepValue)
Set a time value at a given index.
void SetModelFile(const std::string &file)
Get/Set the path to the ONNX model and load it.
void ClearInputShape()
Clear the input shape vector.
int ExecuteData(vtkDataObject *input, vtkDataObject *output, double timevalue)
Execute the inference and add the resulting array on the given data object.
void SetNumberOfInputShapeElements(vtkIdType nb)
Set the number of input shape values.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void SetInputShape(vtkIdType nb)
Set/Get the shape of the input.
void SetNumberOfTimeStepValues(vtkIdType nb)
Set the number of time step values.
const std::vector< int64_t > & GetInputShape() const
Set/Get the shape of the input.
VTK internal class for hiding ONNX members.