64 lines
7.3 KiB
C
64 lines
7.3 KiB
C
/*-------------------------------------------------------------------------------------
|
|
DefOper.h : Operator definitions
|
|
Author : Olivier Couvreur 25/08/97
|
|
--------------------------------------------------------------------------------------*/
|
|
|
|
#if !defined(M_DEFINE_OPERATOR)
|
|
#error You should define M_DEFINE_OPERATOR accordingly before including this file !
|
|
#endif
|
|
|
|
/* 6 parameters to define an operator : enum , editor name, script name, function pointers in Operator.c, in params,ultra-able */
|
|
|
|
/**********************************************************************************************************************************************************************************************************************************************************/
|
|
/* Math operator */
|
|
M_DEFINE_OPERATOR(eOperator_ScalarPlusScalar ,"+" ,"Operator_Plus" ,fn_p_stScalarOperator ,USE_2_REALS_PARAM,USE_REAL_PARAM)
|
|
M_DEFINE_OPERATOR(eOperator_ScalarMinusScalar ,"-" ,"Operator_Minus" ,fn_p_stScalarOperator ,USE_2_REALS_PARAM,USE_REAL_PARAM)
|
|
M_DEFINE_OPERATOR(eOperator_ScalarMulScalar ,"*" ,"Operator_Mul" ,fn_p_stScalarOperator ,USE_2_REALS_PARAM,USE_REAL_PARAM)
|
|
M_DEFINE_OPERATOR(eOperator_ScalarDivScalar ,"/" ,"Operator_Div" ,fn_p_stScalarOperator ,USE_2_REALS_PARAM,USE_REAL_PARAM)
|
|
M_DEFINE_OPERATOR(eOperator_ScalarUnaryMinus ,"_" ,"Operator_UnaryMinus" ,fn_p_stScalarOperator ,USE_REAL_PARAM,USE_REAL_PARAM)
|
|
/**********************************************************************************************************************************************************************************************************************************************************/
|
|
/* Affect operator */
|
|
M_DEFINE_OPERATOR(eOperator_PlusAffect ,"+=" ,"Operator_PlusAffect" ,fn_p_stAffectOperator ,USE_ADDR_REAL_PARAM USE_REAL_PARAM,USE_REAL_PARAM)
|
|
M_DEFINE_OPERATOR(eOperator_MinusAffect ,"-=" ,"Operator_MinusAffect" ,fn_p_stAffectOperator ,USE_ADDR_REAL_PARAM USE_REAL_PARAM,USE_REAL_PARAM)
|
|
M_DEFINE_OPERATOR(eOperator_MulAffect ,"*=" ,"Operator_MulAffect" ,fn_p_stAffectOperator ,USE_ADDR_REAL_PARAM USE_REAL_PARAM,USE_REAL_PARAM)
|
|
M_DEFINE_OPERATOR(eOperator_DivAffect ,"/=" ,"Operator_DivAffect" ,fn_p_stAffectOperator ,USE_ADDR_REAL_PARAM USE_REAL_PARAM,USE_REAL_PARAM)
|
|
M_DEFINE_OPERATOR(eOperator_PlusPlusAffect ,"++" ,"Operator_PlusPlusAffect" ,fn_p_stAffectOperator ,USE_REAL_PARAM,USE_REAL_PARAM)
|
|
M_DEFINE_OPERATOR(eOperator_MinusMinusAffect,"--" ,"Operator_MinusMinusAffect",fn_p_stAffectOperator ,USE_REAL_PARAM,USE_REAL_PARAM)
|
|
M_DEFINE_OPERATOR(eOperator_Affect ,":=" ,"Operator_Affect" ,fn_p_stAffectOperator ,"","") /* to define*/
|
|
/**********************************************************************************************************************************************************************************************************************************************************/
|
|
/* Dot operator */
|
|
M_DEFINE_OPERATOR(eOperator_Dot ,"." ,"Operator_Dot" ,fn_p_stDotOperator ,"","") /* to define*/
|
|
/**********************************************************************************************************************************************************************************************************************************************************/
|
|
/* Vector Dot operator */
|
|
M_DEFINE_OPERATOR(eOperator_GetVectorX ,".X" ,".X" ,fn_p_stVectorDotOperator,USE_VECTOR_PARAM,USE_ADDR_REAL_PARAM)
|
|
M_DEFINE_OPERATOR(eOperator_GetVectorY ,".Y" ,".Y" ,fn_p_stVectorDotOperator,USE_VECTOR_PARAM,USE_ADDR_REAL_PARAM)
|
|
M_DEFINE_OPERATOR(eOperator_GetVectorZ ,".Z" ,".Z" ,fn_p_stVectorDotOperator,USE_VECTOR_PARAM,USE_ADDR_REAL_PARAM)
|
|
/**********************************************************************************************************************************************************************************************************************************************************/
|
|
/* Vector operator */
|
|
M_DEFINE_OPERATOR(eOperator_VectorPlusVector ,"v+" ,"Operator_VectorPlusVector" ,fn_p_stVectorOperator ,USE_2_VECTORS_PARAM ,USE_VECTOR_PARAM)
|
|
M_DEFINE_OPERATOR(eOperator_VectorMinusVector ,"v-" ,"Operator_VectorMinusVector" ,fn_p_stVectorOperator ,USE_2_VECTORS_PARAM,USE_VECTOR_PARAM)
|
|
M_DEFINE_OPERATOR(eOperator_VectorMulScalar ,"v*" ,"Operator_VectorMulScalar" ,fn_p_stVectorOperator ,USE_VECTOR_PARAM USE_REAL_PARAM,USE_VECTOR_PARAM)
|
|
M_DEFINE_OPERATOR(eOperator_VectorDivScalar ,"v/" ,"Operator_VectorDivScalar" ,fn_p_stVectorOperator ,USE_VECTOR_PARAM USE_REAL_PARAM,USE_VECTOR_PARAM)
|
|
M_DEFINE_OPERATOR(eOperator_VectorUnaryMinus ,"v_" ,"Operator_VectorUnaryMinus" ,fn_p_stVectorOperator ,USE_VECTOR_PARAM,USE_VECTOR_PARAM)
|
|
/**********************************************************************************************************************************************************************************************************************************************************/
|
|
/* Vector Affect operator */
|
|
M_DEFINE_OPERATOR(eOperator_SetVectorX ,".X:=" ,".X:=" ,fn_p_stAffectOperator,USE_VECTOR_PARAM USE_REAL_PARAM,USE_REAL_PARAM)
|
|
M_DEFINE_OPERATOR(eOperator_SetVectorY ,".Y:=" ,".Y:=" ,fn_p_stAffectOperator,USE_VECTOR_PARAM USE_REAL_PARAM,USE_REAL_PARAM)
|
|
M_DEFINE_OPERATOR(eOperator_SetVectorZ ,".Z:=" ,".Z:=" ,fn_p_stAffectOperator,USE_VECTOR_PARAM USE_REAL_PARAM,USE_REAL_PARAM)
|
|
/**********************************************************************************************************************************************************************************************************************************************************/
|
|
/* Ultra Operator */
|
|
M_DEFINE_OPERATOR(eOperator_Ultra ,".." ,"Operator_Ultra" ,fn_p_stUltraOperator ,USE_PERSO_PARAM ""/*ANY PARAM */,"")
|
|
/**********************************************************************************************************************************************************************************************************************************************************/
|
|
/* Model Cast Operator */
|
|
M_DEFINE_OPERATOR(eOperator_ModelCast ,"@" ,"Operator_ModelCast" ,fn_p_stModelCastOperator ,USE_MODEL_PARAM USE_PERSO_PARAM ,USE_PERSO_PARAM)
|
|
/**********************************************************************************************************************************************************************************************************************************************************/
|
|
/* Array Operator */
|
|
M_DEFINE_OPERATOR(eOperator_Array ,"[" ,"Operator_Array" ,fn_p_stArrayOperator ,USE_ARRAY_PARAM USE_CONSTANT_PARAM ,"")
|
|
/**********************************************************************************************************************************************************************************************************************************************************/
|
|
/* Affect Array Operator */
|
|
M_DEFINE_OPERATOR(eOperator_AffectArray ,":={" ,"Operator_AffectArray" ,fn_p_stAffectOperator ,USE_ARRAY_PARAM USE_CONSTANT_PARAM ,"")
|
|
|
|
#if defined(M_DEFINE_OPERATOR)
|
|
#undef M_DEFINE_OPERATOR
|
|
#endif
|