4#ifndef vtkImplicitFrustumRepresentation_h
5#define vtkImplicitFrustumRepresentation_h
9#include "vtkInteractionWidgetsModule.h"
13VTK_ABI_NAMESPACE_BEGIN
58 TranslatingOriginOnAxis
74 void GetOrigin(
double xyz[3]) const;
81 void SetOrientation(
double x,
double y,
double z);
82 void SetOrientation(const
double xyz[3]);
85 void GetOrientation(
double& x,
double& y,
double& z);
86 void GetOrientation(
double xyz[3]);
94 double GetHorizontalAngle() const;
95 void SetHorizontalAngle(
double angle);
103 double GetVerticalAngle() const;
104 void SetVerticalAngle(
double angle);
112 double GetNearPlaneDistance() const;
113 void SetNearPlaneDistance(
double angle);
124 void SetAlongXAxis(
bool);
125 vtkGetMacro(AlongXAxis,
bool);
126 vtkBooleanMacro(AlongXAxis,
bool);
127 void SetAlongYAxis(
bool);
128 vtkGetMacro(AlongYAxis,
bool);
129 vtkBooleanMacro(AlongYAxis,
bool);
130 void SetAlongZAxis(
bool);
131 vtkGetMacro(AlongZAxis,
bool);
132 vtkBooleanMacro(AlongZAxis,
bool);
141 void SetDrawFrustum(
bool draw);
142 vtkGetMacro(DrawFrustum,
bool);
143 vtkBooleanMacro(DrawFrustum,
bool);
156 void UpdatePlacement();
177 void SetInteractionColor(
double,
double,
double);
217 InteractionStateType::TranslatingOriginOnAxis);
243 enum class FrustumFace
290 void HighlightOriginHandle(
bool highlight);
291 void HighlightFarPlaneVerticalHandle(
bool highlight);
292 void HighlightFarPlaneHorizontalHandle(
bool highlight);
293 void HighlightNearPlaneHandle(
bool highlight);
294 void HighlightRollHandle(
bool highlight);
295 void HighlightYawHandle(
bool highlight);
296 void HighlightPitchHandle(
bool highlight);
303 void AdjustNearPlaneDistance(
309 void UpdateFrustumTransform();
320 InteractionStateType RepresentationState = InteractionStateType::Outside;
325 bool AlongXAxis =
false;
326 bool AlongYAxis =
false;
327 bool AlongZAxis =
false;
337 bool DrawFrustum =
true;
339 std::array<EdgeHandle, 4> FarPlaneHandles;
340 EdgeHandle NearPlaneEdgesHandle;
341 SphereHandle NearPlaneCenterHandle;
342 EllipseHandle RollHandle;
343 EllipseHandle YawHandle;
344 EllipseHandle PitchHandle;
345 SphereHandle OriginHandle;
347 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(...)