20 # error "simlib3D.h: 19: you must include simlib.h first" 22 #if __SIMLIB__ < 0x0212 23 # error "simlib3D.h: 22: requires SIMLIB version 2.12 and higher" 34 Value3D(
double x,
double y,
double z) : _x(x), _y(y), _z(z) {}
35 double x()
const {
return _x; }
36 double y()
const {
return _y; }
37 double z()
const {
return _z; }
190 double Value()
override;
208 virtual Value3D Value()
override;
249 #endif // __SIMLIB3D_H friend Value3D operator/(const Value3D &a, const double b)
void Init(double initvalue)
set initial value of integrator
Special variable (can't be changed at simulation time)
Input ScalarProduct(Input2D x, Input2D y)
dot product: xvec . yvec
Input2D UnitVector(Input2D x)
make unit vector from input (Abs(output_vec)==1)
Input3D SetInput(Input3D i)
virtual Value3D Value() override
virtual Value3D Value()=0
continuous 3D block with single input
3D vector block-expression handle
Constant3D(const Value3D &x)
Constant3D(double x, double y, double z)
Implementation of class CalendarList interface is static - using global functions in SQS namespace...
virtual Value3D Value() override
continuous block vith 2 inputs and alg.
Input Xpart(Input2D a)
get x part of (x,y) vector value
Variable3D(const Value3D &x=Value3D(0, 0, 0))
abstract base for continuous blocks with single output suitable for expression-tree building and eval...
Converts 3 scalar inputs to single 3D vector output.
void Init(const Value3D &v)
Abstract 3D block with single 3D output.
Input Ypart(Input2D a)
get y part of (x,y) vector value
friend double abs(const Value3D &a)
friend double scalar_product(const Value3D &a, const Value3D &b)
Input3D SetInput(Input3D i)
3D vector value that can't be changed
abstract base class for all blocksblocks/SimObject have not copy semantics (TODO: add move semantics)...
continuous block with 3 inputs and alg.
Parameter3D(const Value3D &x=Value3D(0, 0, 0))
friend Value3D operator*(const Value3D &a, const Value3D &b)
Input Zpart(Input3D a)
get z part of (x,y,z) vector value
Adaptor3D(Input _x, Input _y, Input _z)
block for numerical integration input is derivative, output is state
Value3D(double x, double y, double z)
virtual Value3D Value() override
Value3D operator+(Value3D b)
Value3D operator-(Value3D b)