|
SOFUS ..
|
#include <fnm.hpp>
Public Member Functions | |
| Aperture () | |
| Constructor. More... | |
| Aperture (const size_t nElements, const T width, const T kerf, const T height) | |
| ~Aperture () | |
| void | SubToElements () |
| void | Rotate (const T iEuler[3], const T iFocus[3]) |
| int | ExcitationTypeGet () const |
| void | ExcitationTypeSet (const int iExcitationType) |
| const T & | FCGet () const |
| void | FCSet (const T &fc) |
| const T & | BandWidthGet () const |
| void | BandWidthSet (const T &value) |
| const bool & | NormalizeGet () const |
| void | NormalizeSet (const bool &value) |
| void | FocusLinesCreate (size_t nLines, sofus::FocusLineList< T > **obj) const |
| int | ImpulseTypeGet () const |
| void | ImpulseTypeSet (const int iImpulseType) |
| void | ExcitationGet (T **data, size_t *nData) const |
| int | ExcitationSet (const T *data, const size_t nData) |
| void | ImpulseGet (T **data, size_t *nData) const |
| int | ImpulseSet (const T *data, const size_t nData) |
| const size_t & | NDivWGet () const |
| int | NDivWSet (const size_t &nDivW) |
| const size_t & | NDivHGet () const |
| int | NDivHSet (const size_t &nDivH) |
| void | FocusUpdate () |
| void | FocusUpdateRef () |
| T | CalcPwFnmVectorized (const T *pos, const size_t nPositions, const size_t nDim, T **odata, size_t *nSignals, size_t *nSamples, int mask=0x1F) |
| T | CalcPwFnmVecThreaded (const T *pos, const size_t nPositions, const size_t nDim, T **odata, size_t *nSignals, size_t *nSamples, int mask=0x1F) |
Accessors to read-only attributes | |
| const size_t & | NElementsGet () const |
| const size_t & | NSubElementsGet () const |
| void | ExtentGet (T **coordinates, size_t *nDim, size_t *nLimits) const |
| T | AreaGet () const |
| void | PhasesGet (T **data, size_t *nData) const |
| void | SubPhasesGet (T **data, size_t *nData) const |
| void | RectanglesGet (T **out, size_t *nElements, size_t *nSubElements, size_t *nParams) const |
Read-only references for external use | |
| int | ElementsRefGet (size_t *nElements, size_t *nSubElements, const sps::element_rect_t< T > **&elements) const |
| int | ApodizationsRefGet (size_t *nElements, const T *&apodizations) const |
Accessor (getters) and Mutators (setters) | |
| void | DelaysGet (T **data, size_t *nData) const |
| int | DelaysSet (const T *data, const size_t nData) |
| void | AttenuationEnabledSet (const bool &iEnabled) |
| const bool & | AttenuationEnabledGet () const |
| void | AlphaSet (const T &value) |
| const T & | AlphaGet () const |
| void | BetaSet (const T &value) |
| const T & | BetaGet () const |
| void | PositionsGet (T **out, size_t *nElements, size_t *nParams) const |
| int | PositionsSet (const T *pos, const size_t nPositions, const size_t nDim) |
| void | FocusGet (T oFocus[3]) const |
| void | FocusSet (const T iFocus[3]) |
| void | Focus2Get (T oFocus[3]) const |
| void | Focus2Set (const T iFocus[3]) |
| void | CenterFocusGet (T oFocus[3]) const |
| void | CenterFocusSet (const T iFocus[3]) |
| int | FocusingTypeGet () const |
| void | FocusingTypeSet (const int iFocusingType) |
| const size_t & | NThreadsGet () const |
| int | NThreadsSet (const size_t &nThreads) |
| const T & | F0Get () const |
| void | F0Set (const T &f0) |
| const T & | WGet () const |
| void | WSet (const T &w) |
| const sysparm_t< T > | SysParmGet () const |
| void | SysParmSet (const sysparm_t< T > *arg) |
| sofus::AperturePulses< T > * | PulsesGet () |
| const T & | DensityGet () const |
| void | DensitySet (const T &rho) |
| const T & | FsGet () const |
| int | FsSet (const T &fs) |
| const T & | CGet () const |
| void | CSet (const T &c) |
| const T & | XmtFNumberGet () const |
| void | XmtFNumberSet (const T &fnumber) |
| void | ElementsGet (T **out, size_t *nElements, size_t *nParams) const |
| int | ElementsSet (const T *pos, const size_t nPositions, const size_t nDim) |
| Set element positions. More... | |
| void | SubElementsGet (T **out, size_t *nElements, size_t *nSubElements, size_t *nParams) const |
| int | SubElementsSet (const T *pos, const size_t nElements, const size_t nSubElementsPerElement, const size_t nDim) |
| void | ApodizationGet (T **data, size_t *nData) const |
| int | ApodizationSet (const T *data, const size_t nData) |
| int | ApodizationTypeGet () const |
| void | ApodizationTypeSet (const int iApodizationType) |
FNM Calculation functions | |
| int | CalcCwFieldRef (const T *pos, const size_t nPositions, const size_t nDim, std::complex< T > **odata, size_t *nOutPositions) |
| int | CalcCwFieldFourRef (const T *pos, const size_t nPositions, const size_t nDim, std::complex< T > **odata, size_t *nOutPositions) |
| int | CalcCwEcho (const Aperture< T > *pOther, const T *pos, const size_t nPositions, const size_t nDim, std::complex< T > **odata, size_t *nOutPositions) |
| int | CalcCwBack (const T *pos, const size_t nPositions, const size_t nDim, const std::complex< T > *pFieldValues, const size_t nComplexValues, std::complex< T > **odata, size_t *nOutPositions) |
| int | CalcCwTimeReversal (const Aperture< T > *pOther, const T *pos, const size_t nPositions, const size_t nDim, const std::complex< T > *pFieldValues, const size_t nComplexValues, std::complex< T > **odata, size_t *nOutPositions, size_t *nSamples) |
| int | CalcCwFast (const T *pos, const size_t nPositions, const size_t nDim, std::complex< T > **odata, size_t *nOutPositions) |
| int | CalcCwFieldNaiveFast (const T *pos, const size_t nPositions, const size_t nDim, std::complex< T > **odata, size_t *nOutPositions) |
| int | CalcCwFieldNaive (const T *pos, const size_t nPositions, const size_t nDim, std::complex< T > **odata, size_t *nOutPositions) |
| T | CalcPwFnmThreaded (const T *pos, const size_t nPositions, const size_t nDim, T **odata, size_t *nSignals, size_t *nSamples, int mask=0x1F) |
| T | CalcTransientSingleElementNoDelay (const T *pos, const size_t nPositions, const size_t nDim, T **odata, size_t *nSignals, size_t *nSamples, int mask=0x1F) |
| T | CalcPwBackScat (const T *pos, const size_t nPositions, const size_t nDim, const T *data, const size_t nData, T **odata, size_t *nSignals, size_t *nSamples) |
SOFUS accellerated calculation functions | |
| T | CalcMatchedFilter (const Aperture< T > *other, const T iFocus[3], T **odata, size_t *nSignals, size_t *nSamples, int **sizeAndOffsets, size_t *nFilters, size_t *nTwo, T **data, size_t *nData) |
| T | CalcSmfApply (const Aperture< T > *other, const T iFocus[3], const T tStart, const T *iData, const size_t nChannels, const size_t nSamples, T **data, size_t *nData) |
| T | CalcScat (const Aperture< T > *other, const T *pos, const size_t nPositions, const size_t nDim, const T *data, const size_t nData, T **odata, size_t *nSignals, size_t *nSamples) |
| T | CalcScatThreaded (const Aperture< T > *other, const sofus::FocusLineList< T > *xmtLines, const T *pos, const size_t nPositions, const size_t nDim, const T *data, const size_t nData, T **odata, size_t *nSignals, size_t *nSamples) |
| T | CalcPwEcho (const Aperture< T > *other, const T *pos, const size_t nPositions, const size_t nDim, const T *data, const size_t nData, T **odata, size_t *nSignals, size_t *nSamples) |
| T | CalcPwFnmEcho (const Aperture< T > *other, const T *pos, const size_t nPositions, const size_t nDim, const T *data, const size_t nData, T **odata, size_t *nSignals, size_t *nSamples) |
| T | CalcPwField (const T *pos, const size_t nPositions, const size_t nDim, T **odata, size_t *nSignals, size_t *nSamples) |
| T | CalcPwFieldRef (const T *pos, const size_t nPositions, const size_t nDim, T **odata, size_t *nSignals, size_t *nSamples) |
| T | CalcPwFieldThreaded (const T *pos, const size_t nPositions, const size_t nDim, T **odata, size_t *nSignals, size_t *nSamples) |
Developers corner (do not touch) | |
| void | InPlaceOP (T *ioData, size_t nIOdata) |
Angular spectrum approach (work in progress) | |
| int | CalcAsa (const T *y0, const size_t nx, const size_t ny, const T dx, const T dy, const size_t Nx, const size_t Ny, std::complex< T > **p1, size_t *onx, size_t *ony, size_t *onz) |
Static Public Member Functions | |
| static int | ArrayCreate (Aperture< T > **obj) |
| static int | FocusedLinearArrayCreate (Aperture< T > **obj, const size_t nElements, const T width, const T kerf, const T height, const size_t nSubH, const T focus) |
| static int | MatrixArrayCreate (Aperture< T > **obj, const size_t nRows, const size_t nCols, const T rowWidth, const T rowKerf, const T colWidth, const T colKerf) |
| static int | FocusedConvexArrayCreate (fnm::Aperture< T > **obj, const size_t nElements, const T width, const T kerf, const T height, const T radius, const size_t nSubH, const T focus) |
| static sysparm_t< T > * | DefaultSysParmGet () |
Static Public Attributes | |
Static variables | |
| static const size_t | nVerticesPerElement = 4 |
| static const size_t | nElementPosParameters = 8 |
| static bool | normalize |
| Normalize responses. More... | |
| static const T | Neper_dB |
| static const T | dB_Neper |
Aperture class.
| T | floating point type |
A class representing an aperture. Consider using (backslash)nosubgrouping
| Aperture | ( | ) |
Constructor.
The constructor can be used to create arbitrary transducers using ElementsSet or SubElementsSet after construction.
| Aperture | ( | const size_t | nElements, |
| const T | width, | ||
| const T | kerf, | ||
| const T | height | ||
| ) |
Constructor for linear array
| [in] | nElements | |
| [in] | width | |
| [in] | kerf | |
| [in] | height |
| ~Aperture | ( | ) |
Destructor
| const T & AlphaGet | ( | ) | const |
Get attenuation alpha parameter
| void AlphaSet | ( | const T & | value | ) |
Set attenuation alpha parameter
| [in] | value |
| void ApodizationGet | ( | T ** | data, |
| size_t * | nData | ||
| ) | const |
Get apodization
| [out] | data | |
| [out] | nData |
| int ApodizationSet | ( | const T * | data, |
| const size_t | nData | ||
| ) |
Set apodization
| [in] | data | |
| [in] | nData |
| int ApodizationsRefGet | ( | size_t * | nElements, |
| const T *& | apodizations | ||
| ) | const |
Get reference to apodizations
| [out] | nElements | |
| [out] | apodizations |
| int ApodizationTypeGet | ( | ) | const |
Get apodization type
| void ApodizationTypeSet | ( | const int | iApodizationType | ) |
Set apodization
| [in] | iApodizationType |
| T AreaGet | ( | ) | const |
Get area of aperture
|
static |
Static constructor for empty array
| obj |
| const bool & AttenuationEnabledGet | ( | ) | const |
Is attenuation enabled
| void AttenuationEnabledSet | ( | const bool & | iEnabled | ) |
Enable attenuation
| [in] | iEnabled |
| const T & BandWidthGet | ( | ) | const |
Get bandwidth
| void BandWidthSet | ( | const T & | value | ) |
Set bandwidth
| [in] | value |
| const T & BetaGet | ( | ) | const |
Get beta attenuation value
| void BetaSet | ( | const T & | value | ) |
Set beta attenuation value.
Signals are attenuated according to:
where
is the distance. Note the unit is Neper and not dB. Multiply an attenuation in dB with Aperture<T>::Neper_dB
Example:
0.54 dB / (cm MHz), f0 = 2 MHz
beta = 0.54 * 100 / 1e6 * 0.11 Neper / dB = 6.22e-6 Neper/(Hz m)
alpha = 2e6 * 0.54 * 100 / 1e6 * 0.11 Neper/ dB = 12.43 Neper/m
| [in] | value | [Neper/(Hz m)] |
| int CalcAsa | ( | const T * | y0, |
| const size_t | nx, | ||
| const size_t | ny, | ||
| const T | dx, | ||
| const T | dy, | ||
| const size_t | Nx, | ||
| const size_t | Ny, | ||
| std::complex< T > ** | p1, | ||
| size_t * | onx, | ||
| size_t * | ony, | ||
| size_t * | onz | ||
| ) |
| [in] | y0 | |
| [in] | nx | |
| [in] | ny | |
| [in] | dx | |
| [in] | dy | |
| [in] | Nx | |
| [in] | Ny | |
| [out] | p1 | |
| [out] | onx | |
| [out] | ony | |
| [out] | onz |
| int CalcCwBack | ( | const T * | pos, |
| const size_t | nPositions, | ||
| const size_t | nDim, | ||
| const std::complex< T > * | pFieldValues, | ||
| const size_t | nComplexValues, | ||
| std::complex< T > ** | odata, | ||
| size_t * | nOutPositions | ||
| ) |
| int CalcCwEcho | ( | const Aperture< T > * | pOther, |
| const T * | pos, | ||
| const size_t | nPositions, | ||
| const size_t | nDim, | ||
| std::complex< T > ** | odata, | ||
| size_t * | nOutPositions | ||
| ) |
| int CalcCwFast | ( | const T * | pos, |
| const size_t | nPositions, | ||
| const size_t | nDim, | ||
| std::complex< T > ** | odata, | ||
| size_t * | nOutPositions | ||
| ) |
Compute CW response at multiple positions (uses SIMD). The ranges of integration are reduced to give the most accurate result with less abcissas.
| [in] | pos | |
| [in] | nPositions | |
| [in] | nDim | |
| [out] | odata | |
| [out] | nOutPositions |
| int CalcCwFieldFourRef | ( | const T * | pos, |
| const size_t | nPositions, | ||
| const size_t | nDim, | ||
| std::complex< T > ** | odata, | ||
| size_t * | nOutPositions | ||
| ) |
Compute CW response at multiple positions. Number of integrals is reduced to four
| [in] | pos | |
| [in] | nPositions | |
| [in] | nDim | |
| [out] | odata | |
| [out] | nOutPositions |
| int CalcCwFieldNaive | ( | const T * | pos, |
| const size_t | nPositions, | ||
| const size_t | nDim, | ||
| std::complex< T > ** | odata, | ||
| size_t * | nOutPositions | ||
| ) |
Compute CW response at multiple positions. The range of integration is naive so it is accurate when projections lie inside an element, but requires a huge amount of abcissas to get a usuable result, when projections lie outside an element.
| [in] | pos | |
| [in] | nPositions | |
| [in] | nDim | |
| [out] | odata | |
| [out] | nOutPositions |
| int CalcCwFieldNaiveFast | ( | const T * | pos, |
| const size_t | nPositions, | ||
| const size_t | nDim, | ||
| std::complex< T > ** | odata, | ||
| size_t * | nOutPositions | ||
| ) |
Same as CalcCwField, but uses SIMD.
| [in] | pos | |
| [in] | nPositions | |
| [in] | nDim | |
| [out] | odata | |
| [out] | nOutPositions |
| int CalcCwFieldRef | ( | const T * | pos, |
| const size_t | nPositions, | ||
| const size_t | nDim, | ||
| std::complex< T > ** | odata, | ||
| size_t * | nOutPositions | ||
| ) |
Compute CW response at multiple positions. Reference implementation. See fnm::CalcCwFieldRef.
| [in] | pos | |
| [in] | nPositions | |
| [in] | nDim | |
| [out] | odata | |
| [out] | nOutPositions |
| int CalcCwTimeReversal | ( | const Aperture< T > * | pOther, |
| const T * | pos, | ||
| const size_t | nPositions, | ||
| const size_t | nDim, | ||
| const std::complex< T > * | pFieldValues, | ||
| const size_t | nComplexValues, | ||
| std::complex< T > ** | odata, | ||
| size_t * | nOutPositions, | ||
| size_t * | nSamples | ||
| ) |
| T CalcMatchedFilter | ( | const Aperture< T > * | other, |
| const T | iFocus[3], | ||
| T ** | odata, | ||
| size_t * | nSignals, | ||
| size_t * | nSamples, | ||
| int ** | sizeAndOffsets, | ||
| size_t * | nFilters, | ||
| size_t * | nTwo, | ||
| T ** | data, | ||
| size_t * | nData | ||
| ) |
| [in] | other | |
| [in] | iFocus | |
| [in] | odata | |
| [in] | nSignals | |
| [out] | nSamples | |
| [out] | sizeAndOffsets | |
| [out] | nFilters | |
| [out] | nTwo | |
| [out] | data | |
| [out] | nData |
| T CalcPwBackScat | ( | const T * | pos, |
| const size_t | nPositions, | ||
| const size_t | nDim, | ||
| const T * | data, | ||
| const size_t | nData, | ||
| T ** | odata, | ||
| size_t * | nSignals, | ||
| size_t * | nSamples | ||
| ) |
| T CalcPwEcho | ( | const Aperture< T > * | other, |
| const T * | pos, | ||
| const size_t | nPositions, | ||
| const size_t | nDim, | ||
| const T * | data, | ||
| const size_t | nData, | ||
| T ** | odata, | ||
| size_t * | nSignals, | ||
| size_t * | nSamples | ||
| ) |
| [in] | other | |
| [in] | pos | |
| [in] | nPositions | |
| [in] | nDim | |
| [in] | data | |
| [in] | nData | |
| [out] | odata | |
| [out] | nSignals | |
| [out] | nSamples |
| T CalcPwField | ( | const T * | pos, |
| const size_t | nPositions, | ||
| const size_t | nDim, | ||
| T ** | odata, | ||
| size_t * | nSignals, | ||
| size_t * | nSamples | ||
| ) |
Compute pulsed-wave field
| [in] | pos | |
| [in] | nPositions | |
| [in] | nDim | |
| [out] | odata | |
| [out] | nSignals | |
| [out] | nSamples |
| T CalcPwFieldRef | ( | const T * | pos, |
| const size_t | nPositions, | ||
| const size_t | nDim, | ||
| T ** | odata, | ||
| size_t * | nSignals, | ||
| size_t * | nSamples | ||
| ) |
Reference implementation of Aperture::CalcPwField
| [in] | pos | |
| [in] | nPositions | |
| [in] | nDim | |
| [out] | odata | |
| [out] | nSignals | |
| [out] | nSamples |
| T CalcPwFieldThreaded | ( | const T * | pos, |
| const size_t | nPositions, | ||
| const size_t | nDim, | ||
| T ** | odata, | ||
| size_t * | nSignals, | ||
| size_t * | nSamples | ||
| ) |
Threaded version of Aperture::CalcPwField.
| [in] | pos | |
| [in] | nPositions | |
| [in] | nDim | |
| [out] | odata | |
| [out] | nSignals | |
| [out] | nSamples |
| T CalcPwFnmEcho | ( | const Aperture< T > * | other, |
| const T * | pos, | ||
| const size_t | nPositions, | ||
| const size_t | nDim, | ||
| const T * | data, | ||
| const size_t | nData, | ||
| T ** | odata, | ||
| size_t * | nSignals, | ||
| size_t * | nSamples | ||
| ) |
| T CalcPwFnmThreaded | ( | const T * | pos, |
| const size_t | nPositions, | ||
| const size_t | nDim, | ||
| T ** | odata, | ||
| size_t * | nSignals, | ||
| size_t * | nSamples, | ||
| int | mask = 0x1F |
||
| ) |
Calculate pulsed wave field using fast near-field method.
| [in] | pos | |
| [in] | nPositions | |
| [in] | nDim | |
| [out] | odata | |
| [out] | nSignals | |
| [out] | nSamples | |
| [in] | mask |
| T CalcPwFnmVecThreaded | ( | const T * | pos, |
| const size_t | nPositions, | ||
| const size_t | nDim, | ||
| T ** | odata, | ||
| size_t * | nSignals, | ||
| size_t * | nSamples, | ||
| int | mask = 0x1F |
||
| ) |
| [in] | pos | |
| [in] | nPositions | |
| [in] | nDim | |
| [out] | odata | |
| [out] | nSignals | |
| [out] | nSamples | |
| [in] | mask |
| T CalcPwFnmVectorized | ( | const T * | pos, |
| const size_t | nPositions, | ||
| const size_t | nDim, | ||
| T ** | odata, | ||
| size_t * | nSignals, | ||
| size_t * | nSamples, | ||
| int | mask = 0x1F |
||
| ) |
Calculate pulsed wave field using fast near-field method
Experimental SSE4 version
| [in] | pos | |
| [in] | nPositions | |
| [in] | nDim | |
| [out] | odata | |
| [out] | nSignals | |
| [out] | nSamples | |
| [in] | mask |
| T CalcScat | ( | const Aperture< T > * | other, |
| const T * | pos, | ||
| const size_t | nPositions, | ||
| const size_t | nDim, | ||
| const T * | data, | ||
| const size_t | nData, | ||
| T ** | odata, | ||
| size_t * | nSignals, | ||
| size_t * | nSamples | ||
| ) |
Rename to sim image
| [in] | other | |
| [in] | pos | |
| [in] | nPositions | |
| [in] | nDim | |
| [in] | data | |
| [in] | nData | |
| [out] | odata | |
| [out] | nSignals | |
| [out] | nSamples |
| T CalcScatThreaded | ( | const Aperture< T > * | other, |
| const sofus::FocusLineList< T > * | xmtLines, | ||
| const T * | pos, | ||
| const size_t | nPositions, | ||
| const size_t | nDim, | ||
| const T * | data, | ||
| const size_t | nData, | ||
| T ** | odata, | ||
| size_t * | nSignals, | ||
| size_t * | nSamples | ||
| ) |
| T CalcSmfApply | ( | const Aperture< T > * | other, |
| const T | iFocus[3], | ||
| const T | tStart, | ||
| const T * | iData, | ||
| const size_t | nChannels, | ||
| const size_t | nSamples, | ||
| T ** | data, | ||
| size_t * | nData | ||
| ) |
| [in] | other | |
| [in] | iFocus | |
| [in] | tStart | |
| [in] | iData | |
| [in] | nChannels | |
| [in] | nSamples | |
| [out] | data | |
| [out] | nData |
| T CalcTransientSingleElementNoDelay | ( | const T * | pos, |
| const size_t | nPositions, | ||
| const size_t | nDim, | ||
| T ** | odata, | ||
| size_t * | nSignals, | ||
| size_t * | nSamples, | ||
| int | mask = 0x1F |
||
| ) |
Compute transient for first element.
Mask bits: 0x01: Direct, 0x02: Edge (q0->q3) 0x04: Edge (q0->q1) 0x08: Edge (q1->q2) 0x10: Edge (q2->q3) 0x1F: All contributions (default)
| [in] | pos | |
| [in] | nPositions | |
| [in] | nDim | |
| [out] | odata | |
| [out] | nSignals | |
| [out] | nSamples | |
| [in] | mask |
| void CenterFocusGet | ( | T | oFocus[3] | ) | const |
Get center focus point
| [out] | oFocus |
| void CenterFocusSet | ( | const T | iFocus[3] | ) |
Set center focus point
| [in] | iFocus |
| const T & CGet | ( | ) | const |
Get speed of sound
| void CSet | ( | const T & | c | ) |
Set speed of sound
| [in] | c |
|
static |
Get default system parameters. The system parameters are shared among all apertures, unless system paramters are changed using Aperture::SysParmGet and Aperture::SysParmSet for a specific array.
| void DelaysGet | ( | T ** | data, |
| size_t * | nData | ||
| ) | const |
Get delays of elements
| [out] | data | |
| [out] | nData |
| int DelaysSet | ( | const T * | data, |
| const size_t | nData | ||
| ) |
Set delays of elements
| [in] | data | |
| [in] | nData |
| const T & DensityGet | ( | ) | const |
| void DensitySet | ( | const T & | rho | ) |
| void ElementsGet | ( | T ** | out, |
| size_t * | nElements, | ||
| size_t * | nParams | ||
| ) | const |
Get element definitions
| [out] | out | |
| [out] | nElements | |
| [out] | nParams |
| int ElementsRefGet | ( | size_t * | nElements, |
| size_t * | nSubElements, | ||
| const sps::element_rect_t< T > **& | elements | ||
| ) | const |
Get reference to (sub)-elements
| [out] | nElements | |
| [out] | nSubElements | |
| [out] | elements |
| bool ElementsSet | ( | const T * | pos, |
| const size_t | nPositions, | ||
| const size_t | nDim | ||
| ) |
Set element positions.
| [in] | pos | Input data T[nElements][8] |
| [in] | nPositions | |
| [in] | nDim | Must equal 8 |
| std::runtime_error | nDim != 8 |
| void ExcitationGet | ( | T ** | data, |
| size_t * | nData | ||
| ) | const |
Get excitation (reference to or view of)
| [out] | data | |
| [out] | nData |
| int ExcitationSet | ( | const T * | data, |
| const size_t | nData | ||
| ) |
Set excitation
| [in] | data | |
| [in] | nData |
| int ExcitationTypeGet | ( | ) | const |
Get excitation type
| void ExcitationTypeSet | ( | const int | iExcitationType | ) |
Set Excitation type (0: ToneBurst, 1: Hamming-weighted pulse)
| iExcitationType |
| void ExtentGet | ( | T ** | coordinates, |
| size_t * | nDim, | ||
| size_t * | nLimits | ||
| ) | const |
Get extent of aperture
| [out] | coordinates | data |
| [out] | nDim | 3 dimensions |
| [out] | nLimits | Min and maximum |
| const T & F0Get | ( | ) | const |
Get excitation center frequency
| void F0Set | ( | const T & | f0 | ) |
Set excitation center frequency
| [in] | f0 |
| const T & FCGet | ( | ) | const |
Get transducer center frequency used for computing impulse response
| void FCSet | ( | const T & | fc | ) |
Set pulse center frequency
| [out] | fc |
| void Focus2Get | ( | T | oFocus[3] | ) | const |
Get second focus point
| [out] | oFocus |
| void Focus2Set | ( | const T | iFocus[3] | ) |
Set second focus point
| [in] | iFocus |
|
static |
Static constructor for elevation focused convex array
| [out] | obj | |
| [in] | nElements | |
| [in] | width | |
| [in] | kerf | |
| [in] | height | |
| [in] | radius | |
| [in] | nSubH | |
| [in] | focus |
|
static |
Static constructor for elevation focused linear array
| [out] | obj | |
| [in] | nElements | |
| [in] | width | |
| [in] | kerf | |
| [in] | height | |
| [in] | nSubH | Number of sub-elements used for elevation (default=1) |
| [in] | focus | Elevation focus depth (0.0 means no elevation focus) |
| void FocusGet | ( | T | oFocus[3] | ) | const |
Get focus point or virtual source
| [out] | oFocus |
| int FocusingTypeGet | ( | ) | const |
Get focus type used
| void FocusingTypeSet | ( | const int | iFocusingType | ) |
Set focus type used
| [in] | iFocusingType |
| void FocusLinesCreate | ( | size_t | nLines, |
| sofus::FocusLineList< T > ** | obj | ||
| ) | const |
Create a number of lines, which can be used for focusing
| [out] | nLines | |
| [out] | obj |
| void FocusSet | ( | const T | iFocus[3] | ) |
Set focus point or virtual source
| [in] | iFocus |
| void FocusUpdate | ( | ) |
Update phases after setting focus. This function is used by all methods for adjusting phases for focusing.
| void FocusUpdateRef | ( | ) |
Reference implementation of fnm::FocusUpdate
| const T & FsGet | ( | ) | const |
Get sampling frequency
| int FsSet | ( | const T & | fs | ) |
Set sampling frequency
| [in] | fs |
| void ImpulseGet | ( | T ** | data, |
| size_t * | nData | ||
| ) | const |
Get impulse (reference to or view of)
| [out] | data | |
| [out] | nData |
| int ImpulseSet | ( | const T * | data, |
| const size_t | nData | ||
| ) |
Set impulse
| [in] | data | |
| [in] | nData |
| int ImpulseTypeGet | ( | ) | const |
Get impulse type
| void ImpulseTypeSet | ( | const int | iImpulseType | ) |
Set impulse type
| iImpulseType |
| void InPlaceOP | ( | T * | ioData, |
| size_t | nIOdata | ||
| ) |
|
static |
Create Matrix array - all elements are elements (no sub-elements)
| [out] | obj | |
| [in] | nRows | |
| [in] | nCols | |
| [in] | rowWidth | |
| [in] | rowKerf | |
| [in] | colWidth | |
| [in] | colKerf |
| const size_t & NDivHGet | ( | ) | const |
Get number of height abcissas
| int NDivHSet | ( | const size_t & | nDivH | ) |
Set number of height abicissas
| [in] | nDivH |
| const size_t & NDivWGet | ( | ) | const |
Get number of width abcissas
| int NDivWSet | ( | const size_t & | nDivW | ) |
Set number of width abcissas
| [in] | nDivW |
| const size_t & NElementsGet | ( | ) | const |
Get element count
| const bool & NormalizeGet | ( | ) | const |
Get normalization state
| void NormalizeSet | ( | const bool & | value | ) |
Enable normalization of convolutions
| [in] | value |
| const size_t & NSubElementsGet | ( | ) | const |
Get sub-element count
| const size_t & NThreadsGet | ( | ) | const |
Get number of threads
| int NThreadsSet | ( | const size_t & | nThreads | ) |
Set number of threads
| [in] | nThreads |
| void PhasesGet | ( | T ** | data, |
| size_t * | nData | ||
| ) | const |
Get phases of elements
| [out] | data | |
| [out] | nData |
| void PositionsGet | ( | T ** | out, |
| size_t * | nElements, | ||
| size_t * | nParams | ||
| ) | const |
Get element position data
| [out] | out | |
| [out] | nElements | |
| [out] | nParams |
| int PositionsSet | ( | const T * | pos, |
| const size_t | nPositions, | ||
| const size_t | nDim | ||
| ) |
Set element position data (may differ from center-most sub-element)
| [in] | pos | |
| [in] | nPositions | |
| [in] | nDim |
| sofus::AperturePulses< T > * PulsesGet | ( | ) |
| void RectanglesGet | ( | T ** | out, |
| size_t * | nElements, | ||
| size_t * | nSubElements, | ||
| size_t * | nParams | ||
| ) | const |
Get rectangles for display
| [out] | out | |
| [out] | nElements | |
| [out] | nSubElements | |
| [out] | nParams |
| void Rotate | ( | const T | iEuler[3], |
| const T | iFocus[3] | ||
| ) |
Rotate the array around a point
| iEuler | Euler angles using convention 'yxy' |
| iFocus | Point to rotate about |
| void SubElementsGet | ( | T ** | out, |
| size_t * | nElements, | ||
| size_t * | nSubElements, | ||
| size_t * | nParams | ||
| ) | const |
Get sub-element definitions
| [out] | out | |
| [out] | nElements | |
| [out] | nSubElements | |
| [out] | nParams |
| int SubElementsSet | ( | const T * | pos, |
| const size_t | nElements, | ||
| const size_t | nSubElementsPerElement, | ||
| const size_t | nDim | ||
| ) |
Set sub-element definitions
| [in] | pos | |
| [in] | nElements | |
| [in] | nSubElementsPerElement | |
| [in] | nDim |
| void SubPhasesGet | ( | T ** | data, |
| size_t * | nData | ||
| ) | const |
Get phases of elements
| [out] | data | |
| [out] | nData |
| void SubToElements | ( | ) |
| const sysparm_t< T > SysParmGet | ( | ) | const |
Get system parameters (TODO: Avoid grouping)
| void SysParmSet | ( | const sysparm_t< T > * | arg | ) |
Set the system parameters
| [in] | arg |
| const T & WGet | ( | ) | const |
Get width of pulse [s]
| void WSet | ( | const T & | w | ) |
Set width of pulse [s]. TODO: Figure this out
| [in] | w |
| const T & XmtFNumberGet | ( | ) | const |
Get transmit f-number
| void XmtFNumberSet | ( | const T & | fnumber | ) |
Set transmit f-number
| [in] | fnumber |
|
static |
dB per Neper, 20 log(e)
|
static |
Number of parameters for an element
|
static |
Nepers per dB, 1 / ( 20 log(e))
|
static |
Normalize responses.
|
static |
Number of corners for an element