4#ifndef vtkImplicitFrustumRepresentation_h
5#define vtkImplicitFrustumRepresentation_h
8#include "vtkInteractionWidgetsModule.h"
14VTK_ABI_NAMESPACE_BEGIN
59 TranslatingOriginOnAxis
75 void GetOrigin(
double xyz[3]) const;
82 void SetOrientation(
double x,
double y,
double z);
83 void SetOrientation(const
double xyz[3]);
86 void GetOrientation(
double& x,
double& y,
double& z);
87 void GetOrientation(
double xyz[3]);
95 double GetHorizontalAngle() const;
96 void SetHorizontalAngle(
double angle);
104 double GetVerticalAngle() const;
105 void SetVerticalAngle(
double angle);
113 double GetNearPlaneDistance() const;
114 void SetNearPlaneDistance(
double angle);
125 void SetAlongXAxis(
bool);
126 vtkGetMacro(AlongXAxis,
bool);
127 vtkBooleanMacro(AlongXAxis,
bool);
128 void SetAlongYAxis(
bool);
129 vtkGetMacro(AlongYAxis,
bool);
130 vtkBooleanMacro(AlongYAxis,
bool);
131 void SetAlongZAxis(
bool);
132 vtkGetMacro(AlongZAxis,
bool);
133 vtkBooleanMacro(AlongZAxis,
bool);
142 void SetDrawFrustum(
bool draw);
143 vtkGetMacro(DrawFrustum,
bool);
144 vtkBooleanMacro(DrawFrustum,
bool);
153 vtkSetVector6Macro(WidgetBounds,
double);
154 double* GetWidgetBounds();
167 void UpdatePlacement();
188 void SetInteractionColor(
double,
double,
double);
228 InteractionStateType::TranslatingOriginOnAxis);
249 vtkGetMacro(TranslationAxis,
int);
250 vtkSetClampMacro(TranslationAxis,
int, Axis::NONE, Axis::ZAxis);
278 enum class FrustumFace
325 void HighlightOriginHandle(
bool highlight);
326 void HighlightFarPlaneVerticalHandle(
bool highlight);
327 void HighlightFarPlaneHorizontalHandle(
bool highlight);
328 void HighlightNearPlaneHandle(
bool highlight);
329 void HighlightRollHandle(
bool highlight);
330 void HighlightYawHandle(
bool highlight);
331 void HighlightPitchHandle(
bool highlight);
338 void AdjustNearPlaneDistance(
344 void UpdateFrustumTransform();
355 InteractionStateType RepresentationState = InteractionStateType::Outside;
361 bool AlongXAxis =
false;
362 bool AlongYAxis =
false;
363 bool AlongZAxis =
false;
374 bool DrawFrustum =
true;
376 std::array<EdgeHandle, 4> FarPlaneHandles;
377 EdgeHandle NearPlaneEdgesHandle;
378 SphereHandle NearPlaneCenterHandle;
379 EllipseHandle RollHandle;
380 EllipseHandle YawHandle;
381 EllipseHandle PitchHandle;
382 SphereHandle OriginHandle;
384 FrustumFace ActiveEdgeHandle = FrustumFace::None;
represents an object (geometry & properties) in a rendered scene
implicit function for a bounding box
ray-cast cell picker for all kinds of Prop3Ds
implicit function for a frustum
The representation for a vtkImplicitFrustumWidget.
virtual void SetRepresentationState(InteractionStateType)
Sets the visual appearance of the representation based on the state it is in.
void SetYTranslationAxisOn()
Toggles constraint translation axis on/off.
void SetHandleColor(double, double, double)
Set the color of all the widgets handles (origin, orientations, near plane and angles) and their colo...
void GetActors(vtkPropCollection *pc) override
Methods supporting the rendering process.
int RenderOpaqueGeometry(vtkViewport *) override
Methods supporting the rendering process.
int ComputeInteractionState(int X, int Y, int modify=0) override
Methods to interface with the vtkImplicitFrustumWidget.
~vtkImplicitFrustumRepresentation() override
void SetForegroundColor(double, double, double)
Set the color of all the widgets handles (origin, orientations, near plane and angles) and their colo...
int RenderTranslucentPolygonalGeometry(vtkViewport *) override
Methods supporting the rendering process.
void SetOrigin(double x, double y, double z)
Get the origin of the frustum representation.
void GetFrustum(vtkFrustum *frustum) const
Get the concrete represented frustum.
void EndWidgetInteraction(double newEventPos[2]) override
Methods to interface with the vtkImplicitFrustumWidget.
static vtkImplicitFrustumRepresentation * New()
void PlaceWidget(double bounds[6]) override
Methods to interface with the vtkImplicitFrustumWidget.
bool IsTranslationConstrained()
Returns true if translation is constrained to an axis.
void SetOrigin(double x[3])
Get the origin of the frustum representation.
double * GetOrigin()
Get the origin of the frustum representation.
void SetTranslationAxisOff()
Toggles constraint translation axis on/off.
void WidgetInteraction(double newEventPos[2]) override
Methods to interface with the vtkImplicitFrustumWidget.
vtkImplicitFrustumRepresentation()
vtkTypeBool HasTranslucentPolygonalGeometry() override
Methods supporting the rendering process.
void StartWidgetInteraction(double eventPos[2]) override
Methods to interface with the vtkImplicitFrustumWidget.
void SetInteractionColor(double c[3])
Set the color of all the widgets handles (origin, orientations, near plane and angles) and their colo...
@ AdjustingHorizontalAngle
@ AdjustingNearPlaneDistance
void BuildRepresentation() override
Methods to interface with the vtkImplicitFrustumWidget.
double * GetBounds() override
Methods supporting the rendering process.
void RegisterPickers() override
Register internal Pickers in the Picking Manager.
void SetForegroundColor(double c[3])
Set the color of all the widgets handles (origin, orientations, near plane and angles) and their colo...
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void SetOrigin(const vtkVector3d &xyz)
Get the origin of the frustum representation.
void ReleaseGraphicsResources(vtkWindow *) override
Methods supporting the rendering process.
void SetZTranslationAxisOn()
Toggles constraint translation axis on/off.
void SetHandleColor(double c[3])
Set the color of all the widgets handles (origin, orientations, near plane and angles) and their colo...
void SetXTranslationAxisOn()
Toggles constraint translation axis on/off.
a simple class to control print indentation
create a line defined by two end points
Allocate and hold a VTK object.
map vtkPolyData to graphics primitives
concrete dataset represents vertices, lines, polygons, and triangle strips
represent surface properties of a geometric object
create a polygonal sphere centered at the origin
filter that generates tubes around lines
templated base type for storage of vectors.
abstract specification for Viewports
window superclass for vtkRenderWindow
#define VTK_SIZEHINT(...)