| 126 | } |
| 127 | |
| 128 | BlueStdResult Tr2StateMachineTransition::EvaluateExpression( const char* expression, float& value ) const |
| 129 | { |
| 130 | if( !m_source ) |
| 131 | { |
| 132 | return BlueStdResult( BLUE_STD_RESULT_RUNTIME_ERROR, "controller needs to be running when evaluating expressions" ); |
| 133 | } |
| 134 | Tr2ControllerExpression expr; |
| 135 | auto error = expr.SetExpr( expression, *m_source->GetStateMachine() ); |
| 136 | if( !error.empty() ) |
| 137 | { |
| 138 | return BlueStdResult( BLUE_STD_RESULT_VALUE_ERROR, error.c_str() ); |
| 139 | } |
| 140 | auto result = expr.Eval(); |
| 141 | if( !result.first ) |
| 142 | { |
| 143 | return BlueStdResult( BLUE_STD_RESULT_RUNTIME_ERROR, "error evaluating expression" ); |
| 144 | } |
| 145 | value = result.second; |
| 146 | return BlueStdResult(); |
| 147 | } |
nothing calls this directly
no test coverage detected