![]() |
ImFusion SDK 4.3
|
#include <ImFusion/GL/GlCircle.h>
Circle annotation. More...
Circle annotation.
Public Types | |
enum class | UpdateMode { Radius , Diameter , Move } |
![]() | |
enum | RenderingOrderGroup { RenderingGroupRest , RenderingGroupMesh , RenderingGroupManipulator } |
Enumeration to determine rendering order of GlObjects in GlSliceView and GlVolumeView. More... | |
Public Member Functions | |
void | setAxes (const vec3 &xAxis, const vec3 &yAxis) |
void | setCenter (const vec3 ¢er) |
vec3 | center () const |
void | setRadius (double radius) |
double | radius () const |
void | draw (const GlView &view) override |
Draw the object in 3D space. | |
std::string | typeName () const override |
Return unique identifier for this object class used for serialization. | |
void | configure (const Properties *p) override |
Set one or multiple properties. | |
void | configuration (Properties *p) const override |
Retrieve the properties of this object. | |
bool | hitTestLine2D (int x, int y, const GlView &view) const override |
Checks whether the line between handles gets hit (if not a straight line, override this in the annotation) | |
bool | sampleRenderPath (int samples, std::vector< vec3 > &out) const override |
For annotations where the rendered shape differs from the stored points, this method returns true and a set of points on the rendered curve. | |
Geometry::AlignedBox | bounds () const override |
Get the axis-aligned bounding box of this GlObject in world space. | |
void | setUpdateMode (UpdateMode m) |
Set the update mode specifying how the points defining the circle should be updated. | |
UpdateMode | updateMode () |
![]() | |
vec3 | xAxis () const |
vec3 | yAxis () const |
void | setXAxis (vec3 xAxis) |
void | setYAxis (vec3 yAxis) |
![]() | |
void | setView (const GlView *view) override |
Set the view through which this annotation is currently being manipulated. | |
bool | hitTest (int x, int y, const GlView &view) const override |
Perform hit test at screen coordinates (x,y) (OpenGL screen coordinate system) for the specified view. | |
virtual int | hitTestHandles2D (int x, int y, const GlView &view) const |
Returns the index of the handle being hit, or -1 when missing. | |
virtual int | hitTestHandles3D (int x, int y, const GlView &view) const |
virtual bool | hitTestLabel (int x, int y, const GlView &view) const |
virtual bool | addPoint (const vec3 &p) |
Add point to annotation. | |
const std::vector< vec3 > & | points () const |
Return points making up the annotation. | |
virtual void | setPoints (const std::vector< vec3 > &points) |
Sets the annotation points. | |
int | maxPoints () const |
Return maximum number of points allowed for annotation. -1 means no limit. | |
int | minPoints () const |
Return minimum number of points required for annotation. -1 means no limit. | |
void | setEditable (bool editable) override |
Set annotation to be editable, i.e. | |
virtual void | setPointColor (const vec3 &color) |
Set point color. | |
vec3 | pointColor () const |
Get point color. | |
void | configure (const Properties *p) override |
Set one or multiple properties. | |
void | configuration (Properties *p) const override |
Retrieve the properties of this object. | |
Geometry::AlignedBox | bounds () const override |
Get the axis-aligned bounding box of this GlObject in world space. | |
virtual void | rotate (float angle) |
Change the GlObject matrix to reflect a rotation around the current m_rotationPoint Since this matrix is ignored by most renderers at the moment, this does not currently rotate anything. | |
virtual void | rotateNoMatrix (float angle) |
Rotate the annotation by changing the handle positions instead of the matrix. | |
virtual void | setRotationPoint (vec3 &point) |
Set the axis for rotation. | |
virtual void | setPointSize (float s) |
Set the point size. | |
virtual void | setLabelPixelOffset (const vec2 &offset) |
Set the label's pixel offset. | |
float | pointSize () const |
Retrieve the point size. | |
virtual void | setShowPointsAsCrosses (bool flag) |
Set the rendering of points. | |
virtual void | setSelected (bool v) override |
When a GlAnnotation is selected, it may be rendered differently to distinguish it from non-selected annotations. | |
virtual void | setMatrix (const mat4 &m) override |
Overwritten method to update points in world coordinates if the matrix has changed. | |
virtual void | setMatrixWithoutMoving (const mat4 &m) override |
Change the matrix witout moving the annotation, e.g. for linking it with an image transformation. | |
virtual void | setLineWidth (float value) override |
Set annotation line width. | |
void | copyStyle (const GlPointBasedAnnotation &other) |
virtual std::optional< vec3 > | labelPosition (const GL::ViewState &state) const |
Position of the label If there is no valid position for the label, returns an empty optional. | |
![]() | |
virtual const GlView * | view () const |
Get the view through which this annotation is currently being manipulated. | |
virtual bool | editable () const |
When a GlAnnotation is editable it may alter its visualization and render UI elements for its manipulation. | |
virtual void | setColor (const vec3 &color) |
Set annotation color. | |
virtual vec3 | color () const |
Return annotation color. | |
virtual void | setAlpha (double v) |
Set alpha channel. | |
virtual double | alpha () const |
Get alpha channel. | |
virtual float | lineWidth () const |
Return annotation line width. | |
virtual void | setLabelVisible (bool visible) |
Set annotation label visibility. | |
virtual bool | labelVisible () const |
Return annotation label visibility. | |
virtual void | setLabelBackgroundVisible (bool visible) |
Set annotation label background visibility. | |
virtual bool | labelBackgroundVisible () const |
Return annotation label background visibility. | |
virtual void | setLabelBackgroundColor (vec4 color) |
Set annotation label background color. | |
virtual vec4 | labelBackgroundColor () const |
Return annotation label background color. | |
virtual void | setLabelBackgroundMargin (int margin) |
Set annotation label background margin in pixels. | |
virtual int | labelBackgroundMargin () const |
Return annotation label background margin in pixels. | |
virtual void | setLabelDepthTest (bool depthTest) |
Set annotation label depth test flag. | |
virtual bool | labelDepthTest () const |
Return annotation label depth test flag. | |
virtual void | setLabelColor (const vec3 &color) |
Set annotation label color. | |
virtual vec3 | labelColor () const |
Return annotation label color. | |
virtual void | setLabelText (const std::string &label) |
Set annotation label text. | |
virtual std::string | labelText () const |
Return annotation label text. | |
virtual void | setLabelTextPrefix (const std::string &labelPrefix) |
Set annotation label text prefix. | |
std::string | labelTextPrefix () const |
Return annotation label text prefix. | |
virtual void | setLabelTextSuffix (const std::string &labelSuffix) |
Set annotation label text suffix. | |
std::string | labelTextSuffix () const |
Return annotation label text suffix. | |
virtual void | setName (const std::string &name) |
Set annotation name. | |
virtual std::string | name () const |
Return annotation name. | |
bool | selected () const |
When a GlAnnotation is selected, it may be rendered differently to distinguish it from non-selected annotations. | |
void | copyStyle (const GlAnnotation &other) |
Copies the settable parameters from another GlAnnotation. | |
![]() | |
virtual Geometry::AlignedBox | boundsSpherical () const |
Get the spherical bounds of this GlObject in world space. | |
virtual const mat4 & | matrix () const |
Return the modelview matrix. | |
virtual void | setVisible (bool visible) |
Set object visibility. | |
virtual bool | visible () const |
Return object visibility. | |
virtual void | setAlwaysVisible (bool alwaysVisible) |
Set if object is always visible. | |
virtual bool | alwaysVisible () const |
Return if object is always visible. | |
RenderingOrderGroup | renderingOrder () const |
Return current rendering order value for this GlObject. | |
void | setRenderingOrder (RenderingOrderGroup group) |
Set rendering order value for this GlObject. | |
void | setDraw3DIn2DView (bool draw3DIn2DView) |
![]() | |
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 | |
Configurable & | operator= (const Configurable &) |
Configurable & | operator= (Configurable &&) noexcept |
Protected Member Functions | |
void | updatePoints () override |
Update the internal point structure. | |
std::string | generateLabel () |
![]() | |
void | renderLabel (const GlView &view) const |
void | renderPoints (const GlView &view) const |
Render points. | |
void | renderPoint (const GlView &view, int index) const |
Render point with the given index. Use -1 to render all points. | |
bool | viewIsMetric () const |
void | renderLabel (const GlView &view, const vec3 &positionWorld) const |
Render the label of the annotation at the given position. | |
![]() | |
void | renderLabel (const GlView &view, const vec3 &positionWorld) const |
Render the label of the annotation at the given position. | |
vec2i | labelSize () const |
Protected Attributes | |
UpdateMode | m_updateMode = UpdateMode::Radius |
vec3 | m_center = vec3::Zero() |
double | m_radius = 0.0 |
bool | m_init = false |
![]() | |
vec3 | m_xAxis = vec3(1.0, 0.0, 0.0) |
vec3 | m_yAxis = vec3(0.0, 1.0, 0.0) |
![]() | |
std::unique_ptr< GL::VertexBuffer > | m_vbo |
Vertex buffer that can be used for rendering. | |
std::vector< vec3 > | m_points |
Control points which define the form of the annotation. | |
std::vector< vec3 > | m_worldPoints |
Points in world coordinates if object matrix differs from identity. | |
bool | m_wpDirty = false |
True if the world point vector has to be updated. | |
bool | m_showPointsAsCrosses = false |
int | m_maxPoints = -1 |
int | m_minPoints = -1 |
float | m_pointSize = 5.f |
vec2 | m_labelPixelOffset = vec2(6.0, 0.0) |
vec4 | m_pointColor = vec4(1, 1, 0, 1) |
vec3 | m_rotationPoint = vec3::Zero() |
double | m_hitTest2DMinSize = 4.0 |
double | m_hitTest3DMinSize = 6.0 |
![]() | |
bool | m_editable = true |
vec4 | m_color {1, 1, 0, 1} |
float | m_lineWidth = 1 |
bool | m_labelVisible = true |
bool | m_labelBackgroundVisible = false |
vec4 | m_labelBackgroundColor {0.3, 0.3, 0.3, 0.7} |
int | m_labelBackgroundMargin = 3 |
bool | m_labelDepthTest = true |
bool | m_selected = false |
vec3 | m_labelColor {0, 1, 1} |
std::string | m_labelText |
std::string | m_labelTextPrefix |
std::string | m_labelTextSuffix |
const GlView * | m_view = nullptr |
std::string | m_name |
![]() | |
mat4 | m_matrix = mat4::Identity() |
Modelview transformation matrix of this object. | |
bool | m_visible = true |
Object visibility. | |
bool | m_alwaysVisible = false |
Object always visible. | |
bool | m_draw3DIn2DView |
Draw 3D objects in 2D views. This is to render 3D objects in projective 2D views. Property is not serialized. | |
RenderingOrderGroup | m_renderingOrder = RenderingGroupRest |
![]() | |
std::vector< Param > | m_params |
List of all registered Parameter and SubProperty instances. | |
Additional Inherited Members | |
![]() | |
Signal< const GlPointBasedAnnotation * > | signalPointsChanged |
![]() | |
Signal | signalParametersChanged |
Emitted whenever one of the registered Parameters' or SubPropertys' signalValueChanged signal was emitted. | |
|
overridevirtual |
|
inlineoverridevirtual |
Return unique identifier for this object class used for serialization.
Implements GlObject.
Reimplemented in GlCurvedViewCircle.
|
overridevirtual |
Set one or multiple properties.
Reimplemented from GlAnnotation.
Reimplemented in GlCurvedViewCircle.
|
overridevirtual |
Retrieve the properties of this object.
Reimplemented from GlAnnotation.
Reimplemented in GlCurvedViewCircle.
|
overridevirtual |
Checks whether the line between handles gets hit (if not a straight line, override this in the annotation)
Reimplemented from GlPointBasedAnnotation.
Reimplemented in GlCurvedViewCircle.
|
overridevirtual |
For annotations where the rendered shape differs from the stored points, this method returns true and a set of points on the rendered curve.
Otherwise it returns false and the control points.
Reimplemented from GlPointBasedAnnotation.
|
overridevirtual |
Get the axis-aligned bounding box of this GlObject in world space.
Return an empty (default-constructed) AlignedBox object if the GlObject does not reside in world space.
Implements GlObject.
Reimplemented in GlCurvedViewCircle.
|
overrideprotectedvirtual |
Update the internal point structure.
Should be implemented by subtypes which have custom data depending on the point data. Derived implementation needs to call base class implementation.
Reimplemented from GlPointBasedAnnotation.
Reimplemented in GlCurvedViewCircle.