ImFusion SDK 4.3
FrameGeometryConvex Class Reference

#include <ImFusion/US/FrameGeometryConvex.h>

Specialization for convex frame geometries. More...

+ Inheritance diagram for FrameGeometryConvex:

Detailed Description

Specialization for convex frame geometries.

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

The US frame is defined by the ring sector between the short and long radii relative to some center point, and between +/- opening angle around the vertical line. 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, where the scanlines virtually originate. The latter can be found by calling the apex member function.

Convex (orange) and sector (blue) frame geometries

Public Member Functions

 FrameGeometryConvex (CoordinateSystem coordSys)
 
FrameGeometryConvexasConvex () override
 Returns a pointer to this object as a FrameGeometryConvex, 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.
 
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.
 
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.
 
- 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 FrameGeometryConvexSteeredasConvexSteered ()
 
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.
 
virtual FrameGeometry::Fan createFan ()
 Computes the fan geometry edges and points.
 

Protected Member Functions

FrameGeometry::Fan createFanImpl () override
 Internal fan geometry generation to be implemented by subclass.
 
void onTopLeftChanged (vec2 delta)
 
void onTopRightChanged (vec2 delta)
 
void onBottomRightChanged (vec2 delta)
 
void onBottomLeftChanged (vec2 delta)
 
void onTopEdgeChanged (vec2 delta)
 
void onRightEdgeChanged (vec2 delta)
 
void onBottomEdgeChanged (vec2 delta)
 
void onLeftEdgeChanged (vec2 delta)
 
- 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
 Inner radius.
 
double m_longRadius
 Outer radius.
 
double m_openingAngle
 Lateral opening angle wrt. vertical line [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

◆ asConvex()

FrameGeometryConvex * asConvex ( )
overridevirtual

Returns a pointer to this object as a FrameGeometryConvex, 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.

◆ 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