ImFusion SDK 4.3
FrameGeometryConvexSteered Class Reference

#include <ImFusion/US/FrameGeometryConvexSteered.h>

Specialization for convex frame geometries including steering. More...

+ Inheritance diagram for FrameGeometryConvexSteered:

Detailed Description

Specialization for convex frame geometries including steering.

See FrameGeometry for a detailed summary of the frame geometry concept.

The US frame is defined by the tilted scan-lines originating from the ring sector between with short radius relative to some center point, and between +/- opening angle around the vertical line. The scanlines are steered by a steering angle, relative to the transducer surface, i.e. the normal of the short radius. With a steering angle of 0, the geometry is identical to FrameGeometryConvex. The offset is in the intersection between the vertical center line and the smaller circle sector, i.e. at the center of the transducer array. Note that the offset is not the center of the ring sector. This can be found by calling the apex member function.

Steered Convex frame geometry
Note
This FrameGeometry is not supported for editing through "Frame Geometry Properties" in the GUI. It is also not supported in FanMask.

Public Member Functions

 FrameGeometryConvexSteered (CoordinateSystem coordSys)
 
FrameGeometryConvexSteeredasConvexSteered () override
 Returns a pointer to this object as a FrameGeometryConvexSteered, or nullptr if not possible.
 
bool operator== (const FrameGeometry &rhs) const override
 Checks for equality, also considering the image descriptor.
 
void setOpeningAngle (double degrees)
 Set the opening angle of the frame sector [deg]. The angle is measured from the vertical line.
 
void setShortRadius (double radius)
 Set the inner radius of the frame sector, in mm or pixels, depending on the coordinate system.
 
void setLongRadius (double radius)
 Set the outer radius of the frame sector, in mm or pixels, depending on the coordinate system.
 
void setDepth (double depth) override
 Set the depth of the frame sector, in mm or pixels, depending on the coordinate system. Adapts the long radius.
 
void setSteeringAngle (double angle)
 Set the steering angle of the scanlines [deg].
 
double openingAngle () const
 Get the opening angle of the frame sector [deg]. The angle is measured from the vertical line.
 
double shortRadius () const
 Get the inner radius of the frame sector, in mm or pixels, depending on the coordinate system.
 
double longRadius () const
 Get the outer radius of the frame sector, in mm or pixels, depending on the coordinate system.
 
double depth () const override
 Get the depth of the frame sector, in mm or pixels, depending on the coordinate system.
 
double steeringAngle () const
 Get the steering angle of the scanlines [deg].
 
void configure (const Properties *) override
 Sets general properties. Only intended to be called from derived classes. See FrameGeometryMetadata.
 
void configuration (Properties *) const override
 Retrieves general properties. Only intended to be called from derived classes. See FrameGeometryMetadata.
 
std::unique_ptr< FrameGeometryconvertTo (CoordinateSystem coordSys) const override
 Convert the frame geometry to the given coordinate system.
 
std::unique_ptr< FrameGeometryclone () const override
 Create a copy of this frame geometry.
 
bool contains (vec2 coord) const override
 Returns true if the given point is within the fan.
 
bool isSimilar (const FrameGeometry *other, bool ignoreOffset=false, double eps=0.1) const override
 True if the given frame geometry is similar to this one, within a given tolerance.
 
vec2 apex () const
 The virtual point beyond the probe surface where all the rays would intersect.
 
vec2 transformPoint (const vec2 &p, TransformationMode mode) const override
 Applies the specified geometric transformation to a point.
 
std::unique_ptr< GlGeometricTransformglGeometricTransform () const override
 Returns the geometric transformation between image coordinates and pre-scan converted coordinates, if available.
 
FrameGeometry::Fan createFan () override
 Computes the fan geometry edges and points.
 
- Public Member Functions inherited from FrameGeometry
 FrameGeometry (CoordinateSystem coordSys)
 Constructor requires the coordinate system to be defined. It cannot be changed afterward.
 
bool operator!= (const FrameGeometry &rhs) const
 Checks for inequality, also considering the image descriptor.
 
vec2 offset () const
 Offset of the geometry within the image.
 
void setOffset (const vec2 &offset)
 Sets the offset of the geometry.
 
bool isTopDown () const
 Returns if the geometry is oriented top to bottom, where the frame geometry origin is higher on the image than the end.
 
void setTopDown (bool b)
 Sets if the geometry is oriented top to bottom, or bottom to top.
 
const ImageDescriptorimgDesc () const
 Returns the ImageDescriptor for the frame geometry.
 
const ImageDescriptorimgDescPrescan () const
 Returns the ImageDescriptor for the pre-scanconverted image.
 
void setImgDesc (const ImageDescriptor &imgDescr)
 Sets the ImageDescriptor for the frame geometry.
 
void setImgDescPrescan (const ImageDescriptor &imgDescrPrescan)
 Sets the ImageDescriptor for the pre-scanconverted image.
 
OrientationIndicatorPosition indicatorPos () const
 Returns the OrientationIndicatorPosition for the frame geometry.
 
void setIndicatorPos (OrientationIndicatorPosition pos)
 Sets the OrientationIndicatorPosition for the frame geometry.
 
CoordinateSystem coordinateSystem () const
 Returns the CoordinateSystem used in the frame geometry.
 
Geometry::AlignedBox bounds () const
 Returns the Bounds of the frame geometry.
 
mat4 transformation () const
 Convenience method to get the 2D transformation formed by the offset and orientation.
 
virtual vec2 frameCenter () const
 Returns the center of the frame.
 
bool isLinear () const
 Convenience type check.
 
bool isCircular () const
 Convenience type check.
 
bool isConvex () const
 Convenience type check.
 
bool isSector () const
 Convenience type check.
 
virtual FrameGeometryLinearasLinear ()
 Convenience cast to the derived type, or nullptr if not possible.
 
virtual FrameGeometryConvexasConvex ()
 Convenience cast to the derived type, or nullptr if not possible.
 
virtual FrameGeometrySectorasSector ()
 Convenience cast to the derived type, or nullptr if not possible.
 
virtual FrameGeometryCircularasCircular ()
 Convenience cast to the derived type, or nullptr if not possible.
 
const FrameGeometryLinearasLinear () const
 Convenience cast to the derived type, or nullptr if not possible.
 
const FrameGeometryConvexasConvex () const
 Convenience cast to the derived type, or nullptr if not possible.
 
const FrameGeometryConvexSteeredasConvexSteered () const
 
const FrameGeometrySectorasSector () const
 Convenience cast to the derived type, or nullptr if not possible.
 
const FrameGeometryCircularasCircular () const
 Convenience cast to the derived type, or nullptr if not possible.
 

Protected Member Functions

FrameGeometry::Fan createFanImpl () override
 Internal fan geometry generation to be implemented by subclass.
 
- Protected Member Functions inherited from FrameGeometry
void onCenterChanged (vec2 delta)
 Manipulation callback.
 
vec2 conversionSpacing () const
 Internal helper methods returning the spacing or its inverse, dependent on the current coordinate system, either as vec2, are as the diagonal of a 2x2 matrix.
 
mat2 localCoordinateFrame () const
 
- Protected Member Functions inherited from Configurable
virtual void configureDefaults ()
 Retrieve the properties of this object, replaces values with their defaults and sets it again.
 
void registerParameter (ParameterBase *param)
 Register the given Parameter or SubProperty, so that it will be configured during configure()/configuration().
 
void unregisterParameter (const ParameterBase *param)
 Remove the given Parameter or SubProperty from the list of registered parameters.
 
 Configurable (const Configurable &rhs)
 
 Configurable (Configurable &&rhs) noexcept
 
Configurableoperator= (const Configurable &)
 
Configurableoperator= (Configurable &&) noexcept
 

Protected Attributes

double m_shortRadius = 0.0
 Inner radius.
 
double m_longRadius = 0.0
 Outer radius.
 
double m_openingAngle = 0.0
 Lateral opening angle wrt. vertical line [deg].
 
double m_steeringAngle = 0.0
 Steering angle of the scanlines, relative to the transducer surface [deg].
 
- Protected Attributes inherited from FrameGeometry
vec2 m_offset = vec2::Zero()
 location of the fan center (virtual apex) wrt. transducer center (image top)
 
bool m_isTopDown = true
 Orientation of fan.
 
OrientationIndicatorPosition m_indicatorPosition
 Position of the external orientation indicator.
 
CoordinateSystem m_coordSys = CoordinateSystem::Image
 Coordinate system this geometry is defined in.
 
ImageDescriptor m_imgDesc
 Image descriptor for frame conversion.
 
ImageDescriptor m_imgDescPrescan
 Image descriptor for pre-scanconverted image conversion.
 
- Protected Attributes inherited from Configurable
std::vector< Paramm_params
 List of all registered Parameter and SubProperty instances.
 
Signal signalParametersChanged
 Emitted whenever one of the registered Parameters' or SubPropertys' signalValueChanged signal was emitted.
 

Additional Inherited Members

- Public Types inherited from FrameGeometry
enum class  OrientationIndicatorPosition { Nearside = 0 , Farside = 1 }
 Position of external orientation indicator (e.g. colored knob) More...
 
enum class  TransformationMode { NormalizedRawToScanConverted = 0 , NormalizedPrescanToScanConverted = 0 , ScanConvertedToNormalizedRaw = 1 , ScanConvertedToNormalizedPrescan = 1 }
 Used in transformPoint() to specify which geometric transformation to apply. More...
 
- Static Protected Attributes inherited from FrameGeometry
static constexpr double m_insetEpsilon = 1e-7
 Inset distance to avoid numerical errors when computing frame boundaries.
 

Member Function Documentation

◆ asConvexSteered()

FrameGeometryConvexSteered * asConvexSteered ( )
overridevirtual

Returns a pointer to this object as a FrameGeometryConvexSteered, or nullptr if not possible.

Reimplemented from FrameGeometry.

◆ operator==()

bool operator== ( const FrameGeometry & rhs) const
overridevirtual

Checks for equality, also considering the image descriptor.

Reimplemented from FrameGeometry.

◆ setDepth()

void setDepth ( double depth)
overridevirtual

Set the depth of the frame sector, in mm or pixels, depending on the coordinate system. Adapts the long radius.

Implements FrameGeometry.

◆ depth()

double depth ( ) const
overridevirtual

Get the depth of the frame sector, in mm or pixels, depending on the coordinate system.

Implements FrameGeometry.

◆ configure()

void configure ( const Properties * )
overridevirtual

Sets general properties. Only intended to be called from derived classes. See FrameGeometryMetadata.

Reimplemented from FrameGeometry.

◆ configuration()

void configuration ( Properties * ) const
overridevirtual

Retrieves general properties. Only intended to be called from derived classes. See FrameGeometryMetadata.

Reimplemented from FrameGeometry.

◆ convertTo()

std::unique_ptr< FrameGeometry > convertTo ( CoordinateSystem coordSys) const
overridevirtual

Convert the frame geometry to the given coordinate system.

Reimplemented from FrameGeometry.

◆ clone()

std::unique_ptr< FrameGeometry > clone ( ) const
overridevirtual

Create a copy of this frame geometry.

Implements FrameGeometry.

◆ contains()

bool contains ( vec2 coord) const
overridevirtual

Returns true if the given point is within the fan.

Implements FrameGeometry.

◆ isSimilar()

bool isSimilar ( const FrameGeometry * other,
bool ignoreOffset = false,
double eps = 0.1 ) const
overridevirtual

True if the given frame geometry is similar to this one, within a given tolerance.

Implements FrameGeometry.

◆ transformPoint()

vec2 transformPoint ( const vec2 & p,
TransformationMode mode ) const
overridevirtual

Applies the specified geometric transformation to a point.

Implements FrameGeometry.

◆ glGeometricTransform()

std::unique_ptr< GlGeometricTransform > glGeometricTransform ( ) const
overridevirtual

Returns the geometric transformation between image coordinates and pre-scan converted coordinates, if available.

Reimplemented from FrameGeometry.

◆ createFan()

FrameGeometry::Fan createFan ( )
overridevirtual

Computes the fan geometry edges and points.

Reimplemented from FrameGeometry.

◆ createFanImpl()

FrameGeometry::Fan createFanImpl ( )
overrideprotectedvirtual

Internal fan geometry generation to be implemented by subclass.

Implements FrameGeometry.


The documentation for this class was generated from the following file:
Search Tab / S to search, Esc to close