You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
107 lines
3.6 KiB
107 lines
3.6 KiB
/*=========================================================================
|
|
|
|
Program: Visualization Toolkit
|
|
Module: $RCSfile: vtkConeSource.h,v $
|
|
|
|
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.
|
|
|
|
=========================================================================*/
|
|
// .NAME vtkConeSource - generate polygonal cone
|
|
// .SECTION Description
|
|
// vtkConeSource creates a cone centered at a specified point and pointing in
|
|
// a specified direction. (By default, the center is the origin and the
|
|
// direction is the x-axis.) Depending upon the resolution of this object,
|
|
// different representations are created. If resolution=0 a line is created;
|
|
// if resolution=1, a single triangle is created; if resolution=2, two
|
|
// crossed triangles are created. For resolution > 2, a 3D cone (with
|
|
// resolution number of sides) is created. It also is possible to control
|
|
// whether the bottom of the cone is capped with a (resolution-sided)
|
|
// polygon, and to specify the height and radius of the cone.
|
|
|
|
#ifndef __vtkConeSource_h
|
|
#define __vtkConeSource_h
|
|
|
|
#include "vtkPolyDataAlgorithm.h"
|
|
|
|
#include "vtkCell.h" // Needed for VTK_CELL_SIZE
|
|
|
|
class VTK_GRAPHICS_EXPORT vtkConeSource : public vtkPolyDataAlgorithm
|
|
{
|
|
public:
|
|
vtkTypeRevisionMacro(vtkConeSource,vtkPolyDataAlgorithm);
|
|
void PrintSelf(ostream& os, vtkIndent indent);
|
|
|
|
// Description:
|
|
// Construct with default resolution 6, height 1.0, radius 0.5, and
|
|
// capping on. The cone is centered at the origin and points down
|
|
// the x-axis.
|
|
static vtkConeSource *New();
|
|
|
|
// Description:
|
|
// Set the height of the cone. This is the height along the cone in
|
|
// its specified direction.
|
|
vtkSetClampMacro(Height,double,0.0,VTK_DOUBLE_MAX)
|
|
vtkGetMacro(Height,double);
|
|
|
|
// Description:
|
|
// Set the base radius of the cone.
|
|
vtkSetClampMacro(Radius,double,0.0,VTK_DOUBLE_MAX)
|
|
vtkGetMacro(Radius,double);
|
|
|
|
// Description:
|
|
// Set the number of facets used to represent the cone.
|
|
vtkSetClampMacro(Resolution,int,0,VTK_CELL_SIZE)
|
|
vtkGetMacro(Resolution,int);
|
|
|
|
// Description:
|
|
// Set the center of the cone. The default is 0,0,0.
|
|
vtkSetVector3Macro(Center,double);
|
|
vtkGetVectorMacro(Center,double,3);
|
|
|
|
// Description:
|
|
// Set the orientation vector of the cone. The vector does not have
|
|
// to be normalized. The cone will point in the Direction specified.
|
|
// The default is (1,0,0).
|
|
vtkSetVector3Macro(Direction,double);
|
|
vtkGetVectorMacro(Direction,double,3);
|
|
|
|
// Description:
|
|
// Set the angle of the cone. As a side effect, the angle plus height sets
|
|
// the base radius of the cone.
|
|
void SetAngle (double angle);
|
|
double GetAngle ();
|
|
|
|
// Description:
|
|
// Turn on/off whether to cap the base of the cone with a polygon.
|
|
vtkSetMacro(Capping,int);
|
|
vtkGetMacro(Capping,int);
|
|
vtkBooleanMacro(Capping,int);
|
|
|
|
protected:
|
|
vtkConeSource(int res=6);
|
|
~vtkConeSource() {}
|
|
|
|
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
|
|
int RequestInformation(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
|
|
|
|
double Height;
|
|
double Radius;
|
|
int Resolution;
|
|
int Capping;
|
|
double Center[3];
|
|
double Direction[3];
|
|
|
|
private:
|
|
vtkConeSource(const vtkConeSource&); // Not implemented.
|
|
void operator=(const vtkConeSource&); // Not implemented.
|
|
};
|
|
|
|
#endif
|
|
|
|
|
|
|