# CRCResultCalculator

## Functions

| `CRCResultCalculator`
| `~CRCResultCalculator`
bool | `initialize`
void | `getCalculatorParams`
bool | `setCalculatorParams`
void | `calculateValue`

## Detailed Description

class `CRCResultCalculator`

  CRCResultCalculator is the base class for result calculators that can be used in both desktop and cloud products from HOOPS Envision.

  A result calculator acts as a result data source for a Envision web/desktop based host application. It allows for providing result calculations in an unified way. The host application does not need any special handling per result calculator.

  Public Functions

  inline `CRCResultCalculator`()
  inline virtual `~CRCResultCalculator`()
  virtual bool `initialize`(const CRCHostMetaData &hostMetaData, const CRCInitOptions &options, CRCCalculatorMetaData *calculatorMetaData, CRCError *error) = 0

    Initializes the result calculator.

    You will receive information about the available results in the simulation (in hostMetaData) and an optional initString. If using this information the calculator is able to contribute a result to the model, it should return true. It will then be registered as a result in the host (HOOPS Envision) and called whenever needed.

    Note that for e.g. an user defined expresion calculator, you would use the options.initString() to convey the expression from the host, and if this is empty just return false.

    If the options.resultIdString() is not empty, you will have to either set this idString as your resultIdString with CRCCalculatorMetaData::setOutputResultIdString() or not set it. Providing a different idString to CRCCalculatorMetaData::setOutputResultIdString() is not allowed.

    The options.initString() is also passed unchanged from the user, so it could typically contain both the name of the result, maybe dependencies and the expression. See the ExpressionPlugin example plugin for an example on this.

    Return true if this calculator will be able to provide a result given the input (hostMetaData and initString) Return false if this calculator cannot produce a result.

    If an error occurred, use the CRCError::setError() method to communicate the error message to the host.

  virtual void `getCalculatorParams`(CRCCalculatorParams *calculatorParams) const = 0

    Returns the current value of any parameters used by this calculator.

  virtual bool `setCalculatorParams`(const CRCCalculatorParams &calculatorParams) = 0

    Applies the specified parameters to this calculator.

  virtual void `calculateValue`(const crc_double_t *inputArr, crc_size_t inputArraySize, crc_double_t *outputArr, crc_size_t outputArraySize) const = 0

    Calculates the new result based on the input values given.

    This function is automatically called by the host application whenever it needs a new result value based on the predefined input results.

    See also

    CRCCalculatorMetaData

    Parameters: | inputArr – Contains the requested result values as an array of doubles and in the same order as set when calling addResult on CRCCalculatorMetaData when implementing initialize. inputArraySize – The number of double array elements in inputArr outputArr – Calculated result returned in a preallocated array. outputArraySize – The number of double array elements in outputArr

Conversation saved
HOOPSY BETA

### Hello! I'm HOOPSY

Your multilingual generative AI assistant for documentation. Ask me anything about HOOPS Envision for Desktop in your own language, or choose a sample question below to start a conversation:

What is HOOPS Envision for Desktop?
What are the latest release notes for HOOPS Envision for Desktop?
How do I start evaluating HOOPS Envision for Desktop?
How do I write my first sample application?
How can I get assistance?

HOOPSY may store conversations according to OpenAI's policy. Responses may not always be accurate.

HOOPSY is thinking...