comac_desk_app/ThirdpartyLibs/Libs/windows-x86_64/vtk/include/vtkAngleRepresentation2D.h

118 lines
3.5 KiB
C
Raw Permalink Normal View History

2024-11-21 11:50:43 +08:00
/*=========================================================================
Program: Visualization Toolkit
Module: vtkAngleRepresentation2D.h
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
All rights reserved.
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
/**
* @class vtkAngleRepresentation2D
* @brief represent the vtkAngleWidget
*
* The vtkAngleRepresentation2D is a representation for the
* vtkAngleWidget. This representation consists of two rays and three
* vtkHandleRepresentations to place and manipulate the three points defining
* the angle representation. (Note: the three points are referred to as Point1,
* Center, and Point2, at the two end points (Point1 and Point2) and Center
* (around which the angle is measured). This particular implementation is a
* 2D representation, meaning that it draws in the overlay plane.
*
* @sa
* vtkAngleWidget vtkHandleRepresentation
*/
#ifndef vtkAngleRepresentation2D_h
#define vtkAngleRepresentation2D_h
#include "vtkAngleRepresentation.h"
#include "vtkInteractionWidgetsModule.h" // For export macro
class vtkLeaderActor2D;
class vtkProperty2D;
class VTKINTERACTIONWIDGETS_EXPORT vtkAngleRepresentation2D : public vtkAngleRepresentation
{
public:
/**
* Instantiate class.
*/
static vtkAngleRepresentation2D* New();
///@{
/**
* Standard VTK methods.
*/
vtkTypeMacro(vtkAngleRepresentation2D, vtkAngleRepresentation);
void PrintSelf(ostream& os, vtkIndent indent) override;
///@}
/**
* Satisfy the superclasses API.
*/
double GetAngle() override;
///@{
/**
* Methods to Set/Get the coordinates of the two points defining
* this representation. Note that methods are available for both
* display and world coordinates.
*/
void GetPoint1WorldPosition(double pos[3]) override;
void GetCenterWorldPosition(double pos[3]) override;
void GetPoint2WorldPosition(double pos[3]) override;
void SetPoint1DisplayPosition(double pos[3]) override;
void SetCenterDisplayPosition(double pos[3]) override;
void SetPoint2DisplayPosition(double pos[3]) override;
void GetPoint1DisplayPosition(double pos[3]) override;
void GetCenterDisplayPosition(double pos[3]) override;
void GetPoint2DisplayPosition(double pos[3]) override;
///@}
///@{
/**
* Set/Get the three leaders used to create this representation.
* By obtaining these leaders the user can set the appropriate
* properties, etc.
*/
vtkGetObjectMacro(Ray1, vtkLeaderActor2D);
vtkGetObjectMacro(Ray2, vtkLeaderActor2D);
vtkGetObjectMacro(Arc, vtkLeaderActor2D);
///@}
/**
* Method defined by vtkWidgetRepresentation superclass and
* needed here.
*/
void BuildRepresentation() override;
///@{
/**
* Methods required by vtkProp superclass.
*/
void ReleaseGraphicsResources(vtkWindow* w) override;
int RenderOverlay(vtkViewport* viewport) override;
///@}
protected:
vtkAngleRepresentation2D();
~vtkAngleRepresentation2D() override;
// The pieces that make up the angle representations
vtkLeaderActor2D* Ray1;
vtkLeaderActor2D* Ray2;
vtkLeaderActor2D* Arc;
private:
vtkAngleRepresentation2D(const vtkAngleRepresentation2D&) = delete;
void operator=(const vtkAngleRepresentation2D&) = delete;
};
#endif