4#ifndef vtkImplicitFrustumRepresentation_h
5#define vtkImplicitFrustumRepresentation_h
9#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);
157 void UpdatePlacement();
178 void SetInteractionColor(
double,
double,
double);
218 InteractionStateType::TranslatingOriginOnAxis);
244 enum class FrustumFace
291 void HighlightOriginHandle(
bool highlight);
292 void HighlightFarPlaneVerticalHandle(
bool highlight);
293 void HighlightFarPlaneHorizontalHandle(
bool highlight);
294 void HighlightNearPlaneHandle(
bool highlight);
295 void HighlightRollHandle(
bool highlight);
296 void HighlightYawHandle(
bool highlight);
297 void HighlightPitchHandle(
bool highlight);
304 void AdjustNearPlaneDistance(
310 void UpdateFrustumTransform();
321 InteractionStateType RepresentationState = InteractionStateType::Outside;
326 bool AlongXAxis =
false;
327 bool AlongYAxis =
false;
328 bool AlongZAxis =
false;
338 bool DrawFrustum =
true;
340 std::array<EdgeHandle, 4> FarPlaneHandles;
341 EdgeHandle NearPlaneEdgesHandle;
342 SphereHandle NearPlaneCenterHandle;
343 EllipseHandle RollHandle;
344 EllipseHandle YawHandle;
345 EllipseHandle PitchHandle;
346 SphereHandle OriginHandle;
348 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 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.
void SetOrigin(double x[3])
Get the origin of the frustum representation.
double * GetOrigin()
Get the origin of the frustum representation.
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
Standard methods for instances of this class.
void SetOrigin(const vtkVector3d &xyz)
Get the origin of the frustum representation.
void ReleaseGraphicsResources(vtkWindow *) override
Methods supporting the rendering process.
void SetHandleColor(double c[3])
Set the color of all the widgets handles (origin, orientations, near plane and angles) and their colo...
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
abstract specification for Viewports
window superclass for vtkRenderWindow
#define VTK_SIZEHINT(...)