implementation.history - moduleus/urx GitHub Wiki
All shared pointer must be stored and accessible from the root class Dataset.
Shared pointer must not be shared between multiple acquisition (for probe, excitation, group, super_group) or probe (for element_geometry and impulse_response).
The shared pointer of each weak pointer must be stored in the vector of shared pointer of its reference class.
The support of long double / std::vector<long double> and __int128 / std::vector<__int128> is not planned.
Hardware config can't be shared between object. If a part of Hardware config is meant to be used / duplicated / shared among several instances of the same class (ie: AFE setting in Event::HwConfig) then this part should be moved in the owner/higher class (ie: Group::HwConfig instead of Event::HwConfig). If one subclass wants to override this setting, it can define it in its own HwConfig. The lower HwConfig will prevail over the higher setting.
authors is a string, not a vector of string.
Objets are duplicated between C++ (URX / UAC objets) and MATLAB implementation (MATLAB classes).
MATLAB and C++ object are synchronized on the fly.
When a field of a MATLAB object is modified (operator =), the same field is updated in C++ (PostSet event).
When a field of a MATLAB object is read (operator .), the data is updated from C++ (PreGet event).
Don't implement operator for Vector2D/Vector3D (+-/* dot norm cross ...) neither in Vector*D classes nor in utils folder. It's not possible to know which features is neededed to implement.