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