class_diagram.puml - moduleus/urx GitHub Wiki
@startuml
/' Objects '/
namespace urx { enum DataType { DOUBLE FLOAT INT16 INT32 UNDEFINED }
enum ProbeType {
CURVILINEAR
LINEAR
MATRIX
RCA
SPARSE
UNDEFINED
}
enum SamplingType {
IQ
RF
UNDEFINED
}
enum WaveType {
CONVERGING_WAVE
CYLINDRICAL_WAVE
DIVERGING_WAVE
PLANE_WAVE
UNDEFINED
}
class Element {
+transform : Transform
+element_geometry : ElementGeometry
+impulse_response : ImpulseResponse
}
class ElementGeometry {
+perimeter : Vector3D[]
}
class Excitation {
+sampling_frequency : DoubleNan
+transmit_frequency : DoubleNan
+pulse_shape : string
+waveform : double[]
}
class GroupData {
+group_timestamp : DoubleNan
+raw_data : RawData
+sequence_timestamps : double[]
+event_timestamps : double[][]
+group : Group
}
class ImpulseResponse {
+sampling_frequency : DoubleNan
+time_offset : DoubleNan
+units : string
+data : double[]
}
class Probe {
+type : ProbeType
+transform : Transform
+description : string
+elements : Element[]
+element_geometries : ElementGeometry[]
+impulse_responses : ImpulseResponse[]
}
class ReceiveSetup {
+modulation_frequency : DoubleNan
+sampling_frequency : DoubleNan
+tgc_sampling_frequency : DoubleNan
+time_offset : DoubleNan
+probe_transform : Transform
+tgc_profile : double[]
+active_elements : uint32[][]
+probe : Probe
+number_samples : uint32
}
class Transform {
+rotation : Vector3D
+translation : Vector3D
}
class Vector2D {
+x : double
+y : double
}
class Vector3D {
+x : double
+y : double
+z : double
}
class Version {
+major : uint16
+minor : uint16
+patch : uint16
}
class Wave {
+time_zero : DoubleNan
+time_zero_reference_point : Vector3D
+type : WaveType
+parameters : double[]
}
class Acquisition{ +timestamp : DoubleNan +authors : string +country_code : string +description : string +local_time : string +system : string +excitations : Excitation[] +groups : Group[] +probes : Probe[] +groups_data : GroupData[] }
class Dataset {
+acquisition : Acquisition
+version : Version
}
class Event {
+receive_setup : ReceiveSetup
+transmit_setup : TransmitSetup
}
class Group {
+data_type : DataType
+sound_speed : DoubleNan
+sampling_type : SamplingType
+description : string
+sequence : Event[]
}
class TransmitSetup {
+time_offset : DoubleNan
+probe_transform : Transform
+wave : Wave
+delays : double[]
+active_elements : uint32[][]
+excitations : Excitation[]
+probe : Probe
}
}
/' Inheritance relationships '/
/' Aggregation relationships '/
urx.Acquisition *-- urx.GroupData
urx.Acquisition *-- urx.Excitation
urx.Acquisition *-- urx.Group
urx.Acquisition *-- urx.Probe
urx.Dataset *-- urx.Acquisition
urx.Dataset *-- urx.Version
urx.Event *-- urx.ReceiveSetup
urx.Event *-- urx.TransmitSetup
urx.Group *-- urx.DataType
urx.Group *-- urx.Event
urx.Group *-- urx.SamplingType
urx.Probe *-- urx.Element
urx.Probe *-- urx.ElementGeometry
urx.Probe *-- urx.ImpulseResponse
urx.Probe *-- urx.ProbeType
urx.TransmitSetup *-- urx.Wave
urx.Wave *-- urx.WaveType
/' Nested objects '/
@enduml