OpenSiv3D  v0.6.5
C++20 framework for creative coding
s3d::MathParser Class Reference

数式パーサ More...

#include <MathParser.hpp>

Public Types

using Fty0 = double(*)()
 
using Fty1 = double(*)(double)
 
using Fty2 = double(*)(double, double)
 
using Fty3 = double(*)(double, double, double)
 
using Fty4 = double(*)(double, double, double, double)
 
using Fty5 = double(*)(double, double, double, double, double)
 
using Fty6 = double(*)(double, double, double, double, double, double)
 
using Fty7 = double(*)(double, double, double, double, double, double, double)
 
using Fty8 = double(*)(double, double, double, double, double, double, double, double)
 
using Fty9 = double(*)(double, double, double, double, double, double, double, double, double)
 
using Fty10 = double(*)(double, double, double, double, double, double, double, double, double, double)
 

Public Member Functions

SIV3D_NODISCARD_CXX20 MathParser ()
 デフォルトコンストラクタ More...
 
SIV3D_NODISCARD_CXX20 MathParser (StringView expression)
 数式を設定します。 More...
 
String getErrorMessage () const
 最後に発生したエラーメッセージを返します。 More...
 
void setExpression (StringView expression)
 数式を設定します。 More...
 
bool setConstant (StringView name, double value)
 定数を登録します。 More...
 
bool setVaribale (StringView name, double *value)
 変数を登録します。 More...
 
bool setFunction (StringView name, Fty0 f)
 関数を登録します。 More...
 
bool setFunction (StringView name, Fty1 f)
 関数を登録します。 More...
 
bool setFunction (StringView name, Fty2 f)
 関数を登録します。 More...
 
bool setFunction (StringView name, Fty3 f)
 関数を登録します。 More...
 
bool setFunction (StringView name, Fty4 f)
 関数を登録します。 More...
 
bool setFunction (StringView name, Fty5 f)
 関数を登録します。 More...
 
bool setFunction (StringView name, Fty6 f)
 関数を登録します。 More...
 
bool setFunction (StringView name, Fty7 f)
 関数を登録します。 More...
 
bool setFunction (StringView name, Fty8 f)
 関数を登録します。 More...
 
bool setFunction (StringView name, Fty9 f)
 関数を登録します。 More...
 
bool setFunction (StringView name, Fty10 f)
 関数を登録します。 More...
 
bool setPrefixOperator (StringView name, Fty1 f)
 プレフィックス演算子を登録します。 More...
 
bool setPostfixOperator (StringView name, Fty1 f)
 ポストフィックス演算子を登録します。 More...
 
void removeVariable (StringView name)
 登録した定数または変数を削除します。 More...
 
void clear ()
 数式と登録したすべての内容を削除します。 More...
 
String getExpression () const
 設定されている数式を返します。 More...
 
HashTable< String, double * > getUsedVariables () const
 数式で使用されている変数一覧を返します。 More...
 
HashTable< String, double * > getVariables () const
 登録されている変数一覧を返します。 More...
 
HashTable< String, double > getConstants () const
 登録されている定数一覧を返します。 More...
 
String validNameCharacters () const
 定数名、変数名、関数名に使える文字一覧を返します。 More...
 
String validPrefixCharacters () const
 プレフィックス演算子に使える文字一覧を返します。 More...
 
String validPostfixCharacters () const
 ポストフィックス演算子に使える文字一覧を返します。 More...
 
Optional< double > evalOpt () const
 数式を評価した結果を返します。 More...
 
double evalOr (double defaultValue=Math::NaN) const
 数式を評価した結果を返します。 More...
 
double eval () const
 数式を評価した結果を返します。 More...
 
Array< double > evalArray () const
 数式を評価した結果を返します。 More...
 
Vec2 evalVec2 () const
 数式を評価した結果を返します。 More...
 
Vec3 evalVec3 () const
 数式を評価した結果を返します。 More...
 
Vec4 evalVec4 () const
 数式を評価した結果を返します。 More...
 
ColorF evalColorF () const
 数式を評価した結果を返します。 More...
 
HSV evalHSV () const
 数式を評価した結果を返します。 More...
 

Detailed Description

数式パーサ

Member Typedef Documentation

◆ Fty0

using s3d::MathParser::Fty0 = double(*)()

◆ Fty1

using s3d::MathParser::Fty1 = double(*)(double)

◆ Fty10

using s3d::MathParser::Fty10 = double(*)(double, double, double, double, double, double, double, double, double, double)

◆ Fty2

using s3d::MathParser::Fty2 = double(*)(double, double)

◆ Fty3

using s3d::MathParser::Fty3 = double(*)(double, double, double)

◆ Fty4

using s3d::MathParser::Fty4 = double(*)(double, double, double, double)

◆ Fty5

using s3d::MathParser::Fty5 = double(*)(double, double, double, double, double)

◆ Fty6

using s3d::MathParser::Fty6 = double(*)(double, double, double, double, double, double)

◆ Fty7

using s3d::MathParser::Fty7 = double(*)(double, double, double, double, double, double, double)

◆ Fty8

using s3d::MathParser::Fty8 = double(*)(double, double, double, double, double, double, double, double)

◆ Fty9

using s3d::MathParser::Fty9 = double(*)(double, double, double, double, double, double, double, double, double)

Constructor & Destructor Documentation

◆ MathParser() [1/2]

SIV3D_NODISCARD_CXX20 s3d::MathParser::MathParser ( )

デフォルトコンストラクタ

◆ MathParser() [2/2]

SIV3D_NODISCARD_CXX20 s3d::MathParser::MathParser ( StringView  expression)
explicit

数式を設定します。

Parameters
expression数式

Member Function Documentation

◆ clear()

void s3d::MathParser::clear ( )

数式と登録したすべての内容を削除します。

◆ eval()

double s3d::MathParser::eval ( ) const

数式を評価した結果を返します。

Returns
数式を評価した結果

◆ evalArray()

Array<double> s3d::MathParser::evalArray ( ) const

数式を評価した結果を返します。

Returns
数式を評価した結果

◆ evalColorF()

ColorF s3d::MathParser::evalColorF ( ) const

数式を評価した結果を返します。

Returns
数式を評価した結果

◆ evalHSV()

HSV s3d::MathParser::evalHSV ( ) const

数式を評価した結果を返します。

Returns
数式を評価した結果

◆ evalOpt()

Optional<double> s3d::MathParser::evalOpt ( ) const

数式を評価した結果を返します。

Returns
数式を評価した結果。エラーが発生した場合は none

◆ evalOr()

double s3d::MathParser::evalOr ( double  defaultValue = Math::NaN) const

数式を評価した結果を返します。

Parameters
defaultValueエラーが発生した場合の代わりの結果
Returns
数式を評価した結果。エラーが発生した場合は defaultValue

◆ evalVec2()

Vec2 s3d::MathParser::evalVec2 ( ) const

数式を評価した結果を返します。

Returns
数式を評価した結果

◆ evalVec3()

Vec3 s3d::MathParser::evalVec3 ( ) const

数式を評価した結果を返します。

Returns
数式を評価した結果

◆ evalVec4()

Vec4 s3d::MathParser::evalVec4 ( ) const

数式を評価した結果を返します。

Returns
数式を評価した結果

◆ getConstants()

HashTable<String, double> s3d::MathParser::getConstants ( ) const

登録されている定数一覧を返します。

Returns
登録されている定数一覧

◆ getErrorMessage()

String s3d::MathParser::getErrorMessage ( ) const

最後に発生したエラーメッセージを返します。

Returns
最後に発生したエラーメッセージ

◆ getExpression()

String s3d::MathParser::getExpression ( ) const

設定されている数式を返します。

Returns
設定されている数式

◆ getUsedVariables()

HashTable<String, double*> s3d::MathParser::getUsedVariables ( ) const

数式で使用されている変数一覧を返します。

Returns
数式で使用されている変数一覧

◆ getVariables()

HashTable<String, double*> s3d::MathParser::getVariables ( ) const

登録されている変数一覧を返します。

Returns
登録されている変数一覧

◆ removeVariable()

void s3d::MathParser::removeVariable ( StringView  name)

登録した定数または変数を削除します。

Parameters
name定数または変数の名前

◆ setConstant()

bool s3d::MathParser::setConstant ( StringView  name,
double  value 
)

定数を登録します。

Parameters
name定数名
value定数の値
Returns
定数の登録に成功した場合 true, それ以外の場合は false

◆ setExpression()

void s3d::MathParser::setExpression ( StringView  expression)

数式を設定します。

Parameters
expression数式

◆ setFunction() [1/11]

bool s3d::MathParser::setFunction ( StringView  name,
Fty0  f 
)

関数を登録します。

Parameters
name関数名
f引数の無い関数
Returns
関数の登録に成功した場合 true, それ以外の場合は false

◆ setFunction() [2/11]

bool s3d::MathParser::setFunction ( StringView  name,
Fty1  f 
)

関数を登録します。

Parameters
name関数名
f引数が 1 つの関数
Returns
関数の登録に成功した場合 true, それ以外の場合は false

◆ setFunction() [3/11]

bool s3d::MathParser::setFunction ( StringView  name,
Fty10  f 
)

関数を登録します。

Parameters
name関数名
f引数が 10 個の関数
Returns
関数の登録に成功した場合 true, それ以外の場合は false

◆ setFunction() [4/11]

bool s3d::MathParser::setFunction ( StringView  name,
Fty2  f 
)

関数を登録します。

Parameters
name関数名
f引数が 2 つの関数
Returns
関数の登録に成功した場合 true, それ以外の場合は false

◆ setFunction() [5/11]

bool s3d::MathParser::setFunction ( StringView  name,
Fty3  f 
)

関数を登録します。

Parameters
name関数名
f引数が 3 つの関数
Returns
関数の登録に成功した場合 true, それ以外の場合は false

◆ setFunction() [6/11]

bool s3d::MathParser::setFunction ( StringView  name,
Fty4  f 
)

関数を登録します。

Parameters
name関数名
f引数が 4 つの関数
Returns
関数の登録に成功した場合 true, それ以外の場合は false

◆ setFunction() [7/11]

bool s3d::MathParser::setFunction ( StringView  name,
Fty5  f 
)

関数を登録します。

Parameters
name関数名
f引数が 5 つの関数
Returns
関数の登録に成功した場合 true, それ以外の場合は false

◆ setFunction() [8/11]

bool s3d::MathParser::setFunction ( StringView  name,
Fty6  f 
)

関数を登録します。

Parameters
name関数名
f引数が 6 つの関数
Returns
関数の登録に成功した場合 true, それ以外の場合は false

◆ setFunction() [9/11]

bool s3d::MathParser::setFunction ( StringView  name,
Fty7  f 
)

関数を登録します。

Parameters
name関数名
f引数が 7 つの関数
Returns
関数の登録に成功した場合 true, それ以外の場合は false

◆ setFunction() [10/11]

bool s3d::MathParser::setFunction ( StringView  name,
Fty8  f 
)

関数を登録します。

Parameters
name関数名
f引数が 8 つの関数
Returns
関数の登録に成功した場合 true, それ以外の場合は false

◆ setFunction() [11/11]

bool s3d::MathParser::setFunction ( StringView  name,
Fty9  f 
)

関数を登録します。

Parameters
name関数名
f引数が 9 つの関数
Returns
関数の登録に成功した場合 true, それ以外の場合は false

◆ setPostfixOperator()

bool s3d::MathParser::setPostfixOperator ( StringView  name,
Fty1  f 
)

ポストフィックス演算子を登録します。

Parameters
name演算子の名前
f引数が 1 つの関数
Remarks
validPostfixCharacters() で示されている文字が使えます。
Returns
演算子の登録に成功した場合 true, それ以外の場合は false

◆ setPrefixOperator()

bool s3d::MathParser::setPrefixOperator ( StringView  name,
Fty1  f 
)

プレフィックス演算子を登録します。

Parameters
name演算子の名前
f引数が 1 つの関数
Remarks
validPrefixCharacters() で示されている文字が使えます。
Returns
演算子の登録に成功した場合 true, それ以外の場合は false

◆ setVaribale()

bool s3d::MathParser::setVaribale ( StringView  name,
double *  value 
)

変数を登録します。

Parameters
name変数名
value変数へのポインタ
Returns
変数の登録に成功した場合 true, それ以外の場合は false

◆ validNameCharacters()

String s3d::MathParser::validNameCharacters ( ) const

定数名、変数名、関数名に使える文字一覧を返します。

Returns
"0123456789_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"

◆ validPostfixCharacters()

String s3d::MathParser::validPostfixCharacters ( ) const

ポストフィックス演算子に使える文字一覧を返します。

Returns
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ+-*^/?<>=#!$%&|~'_"

◆ validPrefixCharacters()

String s3d::MathParser::validPrefixCharacters ( ) const

プレフィックス演算子に使える文字一覧を返します。

Returns
"/+-*^?<>=#!$%&|~'_"

The documentation for this class was generated from the following file: