152 case 1:
return a.x();
153 case 2:
return a.y();
165 _x(in, initial_value.x()),
166 _y(in, initial_value.y()),
167 _z(in, initial_value.z()),
177 _x(
in, initial_value.x()),
178 _y(
in, initial_value.y()),
179 _z(
in, initial_value.z()),
222 : input1(i1), input2(i2)
244 Dprintf((
"ctr: _Add3D[%p](in1,in2)",
this));
261 Dprintf((
"ctr: _Sub3D[%p](in1,in2)",
this));
278 Dprintf((
"ctr: _Mul3D[%p](in1,in2)",
this));
295 Dprintf((
"ctr: _Mul3D1D[%p](in1,in2)",
this));
299 double b = _b.
Value();
313 Dprintf((
"ctr: _Div3D[%p](in1_3D,in2)",
this));
317 double b = _b.
Value();
342 Dprintf((
"ctr: _UMinus3D[%p](in)",
this));
423 case x:
return a.
x();
424 case y:
return a.
y();
425 case z:
return a.
z();
aContiBlock3D2(Input3D i1, Input3D i2)
_ScalarProduct3D(Input3D a, Input3D b)
virtual void _Eval() override
evaluate block (with loop detection)
Input operator/(Input a, Input b)
block operator /
void SIMLIB_error(const enum _ErrEnum N)
print error message and abort program
virtual double Value() override
get block output value this method should be defined in classes derived from aContiBlock ...
virtual Value3D Value() override
virtual double Value() override
get block output value this method should be defined in classes derived from aContiBlock ...
aContiBlock3D3(Input3D i1, Input3D i2, Input3D i3)
Special variable (can't be changed at simulation time)
Input ScalarProduct(Input2D x, Input2D y)
dot product: xvec . yvec
Parameter3D & operator=(const Value3D &x)
Input2D UnitVector(Input2D x)
make unit vector from input (Abs(output_vec)==1)
virtual Value3D Value() override
virtual Value3D Value()=0
continuous 3D block with single input
static Constant3D Zero3D(0, 0, 0)
_Sub3D(Input3D a, Input3D b)
_Mul3D1D(Input3D a, Input b)
Input operator+(Input a, Input b)
block operator +
virtual void _Eval() override
virtual void _Eval() override
virtual void _Eval() override
evaluate block (with loop detection)
Implementation of class CalendarList interface is static - using global functions in SQS namespace...
virtual Value3D Value() override
continuous block vith 2 inputs and alg.
double scalar_product(const Value2D &a, const Value2D &b)
Input operator*(Input a, Input b)
block operator *
Input Xpart(Input2D a)
get x part of (x,y) vector value
abstract base for continuous blocks with single output suitable for expression-tree building and eval...
virtual Value3D Value() override
#define SIMLIB_internal_error()
simlib3::Integrator3D::special_input in
Internal header file for SIMLIB/C++.
Abstract 3D block with single 3D output.
3D vector block extension
virtual void _Eval() override
virtual Value3D Value() override
Input Ypart(Input2D a)
get y part of (x,y) vector value
_XYZpart(Input3D a, WhichPart w)
Main SIMLIB/C++ interface.
3D vector value that can't be changed
Input operator-(Input a, Input b)
block operator -
virtual void _Eval() override
virtual void _Eval() override
SIMLIB_Phase_t SIMLIB_Phase
aContiBlock3D1(Input3D i)
Input Zpart(Input3D a)
get z part of (x,y,z) vector value
_Mul3D(Input3D a, Input3D b)
Integrator3D & operator=(const Value3D &a)
virtual void _Eval() override
evaluate block (with loop detection)
double abs(const Value2D &a)
virtual void _Eval() override
virtual void _Eval() override
virtual Value3D Value() override
_Div3D(Input3D a, Input b)
virtual double Value() override
get block output value this method should be defined in classes derived from aContiBlock ...
virtual Value3D Value() override
_Add3D(Input3D a, Input3D b)
virtual Value3D Value() override
double Value() override
the state of integrator