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.
572 lines
17 KiB
572 lines
17 KiB
/*=========================================================================
|
|
|
|
Program: Visualization Toolkit
|
|
Module: $RCSfile: vtkGlyphSource2D.cxx,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.
|
|
|
|
=========================================================================*/
|
|
#include "vtkGlyphSource2D.h"
|
|
|
|
#include "vtkCellArray.h"
|
|
#include "vtkCellData.h"
|
|
#include "vtkMath.h"
|
|
#include "vtkInformation.h"
|
|
#include "vtkInformationVector.h"
|
|
#include "vtkObjectFactory.h"
|
|
#include "vtkPolyData.h"
|
|
#include "vtkUnsignedCharArray.h"
|
|
|
|
vtkCxxRevisionMacro(vtkGlyphSource2D, "$Revision: 1.15 $");
|
|
vtkStandardNewMacro(vtkGlyphSource2D);
|
|
|
|
//----------------------------------------------------------------------------
|
|
vtkGlyphSource2D::vtkGlyphSource2D()
|
|
{
|
|
this->Center[0] = 0.0;
|
|
this->Center[1] = 0.0;
|
|
this->Center[2] = 0.0;
|
|
this->Scale = 1.0;
|
|
this->Scale2 = 1.5;
|
|
this->Color[0] = 1.0;
|
|
this->Color[1] = 1.0;
|
|
this->Color[2] = 1.0;
|
|
this->Filled = 1;
|
|
this->Cross = 0;
|
|
this->Dash = 0;
|
|
this->RotationAngle = 0.0;
|
|
this->GlyphType = VTK_VERTEX_GLYPH;
|
|
|
|
this->SetNumberOfInputPorts(0);
|
|
}
|
|
|
|
//----------------------------------------------------------------------------
|
|
int vtkGlyphSource2D::RequestData(
|
|
vtkInformation *vtkNotUsed(request),
|
|
vtkInformationVector **vtkNotUsed(inputVector),
|
|
vtkInformationVector *outputVector)
|
|
{
|
|
// get the info object
|
|
vtkInformation *outInfo = outputVector->GetInformationObject(0);
|
|
|
|
// get the ouptut
|
|
vtkPolyData *output = vtkPolyData::SafeDownCast(
|
|
outInfo->Get(vtkDataObject::DATA_OBJECT()));
|
|
|
|
//Allocate storage
|
|
vtkPoints *pts = vtkPoints::New();
|
|
pts->Allocate(6,6);
|
|
vtkCellArray *verts = vtkCellArray::New();
|
|
verts->Allocate(verts->EstimateSize(1,1),1);
|
|
vtkCellArray *lines = vtkCellArray::New();
|
|
lines->Allocate(lines->EstimateSize(4,2),2);
|
|
vtkCellArray *polys = vtkCellArray::New();
|
|
polys->Allocate(polys->EstimateSize(1,4),4);
|
|
vtkUnsignedCharArray *colors = vtkUnsignedCharArray::New();
|
|
colors->SetNumberOfComponents(3);
|
|
colors->Allocate(2,2);
|
|
|
|
this->ConvertColor();
|
|
|
|
//Special options
|
|
if ( this->Dash )
|
|
{
|
|
int filled = this->Filled;
|
|
this->Filled = 0;
|
|
this->CreateDash(pts,lines,polys,colors,this->Scale2);
|
|
this->Filled = filled;
|
|
}
|
|
if ( this->Cross )
|
|
{
|
|
int filled = this->Filled;
|
|
this->Filled = 0;
|
|
this->CreateCross(pts,lines,polys,colors,this->Scale2);
|
|
this->Filled = filled;
|
|
}
|
|
|
|
//Call the right function
|
|
switch (this->GlyphType)
|
|
{
|
|
case VTK_NO_GLYPH:
|
|
break;
|
|
case VTK_VERTEX_GLYPH:
|
|
this->CreateVertex(pts,verts,colors);
|
|
break;
|
|
case VTK_DASH_GLYPH:
|
|
this->CreateDash(pts,lines,polys,colors,this->Scale);
|
|
break;
|
|
case VTK_CROSS_GLYPH:
|
|
this->CreateCross(pts,lines,polys,colors,this->Scale);
|
|
break;
|
|
case VTK_THICKCROSS_GLYPH:
|
|
this->CreateThickCross(pts,lines,polys,colors);
|
|
break;
|
|
case VTK_TRIANGLE_GLYPH:
|
|
this->CreateTriangle(pts,lines,polys,colors);
|
|
break;
|
|
case VTK_SQUARE_GLYPH:
|
|
this->CreateSquare(pts,lines,polys,colors);
|
|
break;
|
|
case VTK_CIRCLE_GLYPH:
|
|
this->CreateCircle(pts,lines,polys,colors);
|
|
break;
|
|
case VTK_DIAMOND_GLYPH:
|
|
this->CreateDiamond(pts,lines,polys,colors);
|
|
break;
|
|
case VTK_ARROW_GLYPH:
|
|
this->CreateArrow(pts,lines,polys,colors);
|
|
break;
|
|
case VTK_THICKARROW_GLYPH:
|
|
this->CreateThickArrow(pts,lines,polys,colors);
|
|
break;
|
|
case VTK_HOOKEDARROW_GLYPH:
|
|
this->CreateHookedArrow(pts,lines,polys,colors);
|
|
break;
|
|
}
|
|
|
|
this->TransformGlyph(pts);
|
|
|
|
//Clean up
|
|
output->SetPoints(pts);
|
|
pts->Delete();
|
|
|
|
output->SetVerts(verts);
|
|
verts->Delete();
|
|
|
|
output->SetLines(lines);
|
|
lines->Delete();
|
|
|
|
output->SetPolys(polys);
|
|
polys->Delete();
|
|
|
|
output->GetCellData()->SetScalars(colors);
|
|
colors->Delete();
|
|
|
|
return 1;
|
|
}
|
|
|
|
void vtkGlyphSource2D::ConvertColor()
|
|
{
|
|
this->RGB[0] = (unsigned char) (255.0 * this->Color[0]);
|
|
this->RGB[1] = (unsigned char) (255.0 * this->Color[1]);
|
|
this->RGB[2] = (unsigned char) (255.0 * this->Color[2]);
|
|
}
|
|
|
|
void vtkGlyphSource2D::TransformGlyph(vtkPoints *pts)
|
|
{
|
|
double x[3];
|
|
int i;
|
|
int numPts=pts->GetNumberOfPoints();
|
|
|
|
if ( this->RotationAngle == 0.0 )
|
|
{
|
|
for (i=0; i<numPts; i++)
|
|
{
|
|
pts->GetPoint(i,x);
|
|
x[0] = this->Center[0] + this->Scale * x[0];
|
|
x[1] = this->Center[1] + this->Scale * x[1];
|
|
pts->SetPoint(i,x);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
double angle = this->RotationAngle * vtkMath::DegreesToRadians();
|
|
double xt;
|
|
for (i=0; i<numPts; i++)
|
|
{
|
|
pts->GetPoint(i,x);
|
|
xt = x[0]*cos(angle) - x[1]*sin(angle);
|
|
x[1] = x[0]*sin(angle) + x[1]*cos(angle);
|
|
x[0] = xt;
|
|
x[0] = this->Center[0] + this->Scale * x[0];
|
|
x[1] = this->Center[1] + this->Scale * x[1];
|
|
pts->SetPoint(i,x);
|
|
}
|
|
}
|
|
}
|
|
|
|
void vtkGlyphSource2D::CreateVertex(vtkPoints *pts, vtkCellArray *verts,
|
|
vtkUnsignedCharArray *colors)
|
|
{
|
|
vtkIdType ptIds[1];
|
|
ptIds[0] = pts->InsertNextPoint(0.0,0.0,0.0);
|
|
verts->InsertNextCell(1,ptIds);
|
|
colors->InsertNextValue(this->RGB[0]);
|
|
colors->InsertNextValue(this->RGB[1]);
|
|
colors->InsertNextValue(this->RGB[2]);
|
|
}
|
|
|
|
void vtkGlyphSource2D::CreateCross(vtkPoints *pts, vtkCellArray *lines,
|
|
vtkCellArray *polys, vtkUnsignedCharArray *colors,
|
|
double scale)
|
|
{
|
|
vtkIdType ptIds[4];
|
|
|
|
if ( this->Filled )
|
|
{
|
|
this->CreateThickCross(pts,lines,polys,colors);
|
|
}
|
|
else
|
|
{
|
|
ptIds[0] = pts->InsertNextPoint(-0.5*scale, 0.0, 0.0);
|
|
ptIds[1] = pts->InsertNextPoint( 0.5*scale, 0.0, 0.0);
|
|
lines->InsertNextCell(2,ptIds);
|
|
colors->InsertNextValue(this->RGB[0]);
|
|
colors->InsertNextValue(this->RGB[1]);
|
|
colors->InsertNextValue(this->RGB[2]);
|
|
ptIds[0] = pts->InsertNextPoint(0.0, -0.5*scale, 0.0);
|
|
ptIds[1] = pts->InsertNextPoint(0.0, 0.5*scale, 0.0);
|
|
lines->InsertNextCell(2,ptIds);
|
|
colors->InsertNextValue(this->RGB[0]);
|
|
colors->InsertNextValue(this->RGB[1]);
|
|
colors->InsertNextValue(this->RGB[2]);
|
|
}
|
|
}
|
|
|
|
void vtkGlyphSource2D::CreateThickCross(vtkPoints *pts, vtkCellArray *lines,
|
|
vtkCellArray *polys, vtkUnsignedCharArray *colors)
|
|
{
|
|
if ( this->Filled )
|
|
{
|
|
vtkIdType ptIds[4];
|
|
ptIds[0] = pts->InsertNextPoint(-0.5, -0.1, 0.0);
|
|
ptIds[1] = pts->InsertNextPoint( 0.5, -0.1, 0.0);
|
|
ptIds[2] = pts->InsertNextPoint( 0.5, 0.1, 0.0);
|
|
ptIds[3] = pts->InsertNextPoint(-0.5, 0.1, 0.0);
|
|
polys->InsertNextCell(4,ptIds);
|
|
colors->InsertNextValue(this->RGB[0]);
|
|
colors->InsertNextValue(this->RGB[1]);
|
|
colors->InsertNextValue(this->RGB[2]);
|
|
ptIds[0] = pts->InsertNextPoint(-0.1, -0.5, 0.0);
|
|
ptIds[1] = pts->InsertNextPoint( 0.1, -0.5, 0.0);
|
|
ptIds[2] = pts->InsertNextPoint( 0.1, 0.5, 0.0);
|
|
ptIds[3] = pts->InsertNextPoint(-0.1, 0.5, 0.0);
|
|
polys->InsertNextCell(4,ptIds);
|
|
colors->InsertNextValue(this->RGB[0]);
|
|
colors->InsertNextValue(this->RGB[1]);
|
|
colors->InsertNextValue(this->RGB[2]);
|
|
}
|
|
else
|
|
{
|
|
vtkIdType ptIds[13];
|
|
ptIds[0] = pts->InsertNextPoint(-0.5, -0.1, 0.0);
|
|
ptIds[1] = pts->InsertNextPoint(-0.1, -0.1, 0.0);
|
|
ptIds[2] = pts->InsertNextPoint(-0.1, -0.5, 0.0);
|
|
ptIds[3] = pts->InsertNextPoint( 0.1, -0.5, 0.0);
|
|
ptIds[4] = pts->InsertNextPoint( 0.1, -0.1, 0.0);
|
|
ptIds[5] = pts->InsertNextPoint( 0.5, -0.1, 0.0);
|
|
ptIds[6] = pts->InsertNextPoint( 0.5, 0.1, 0.0);
|
|
ptIds[7] = pts->InsertNextPoint( 0.1, 0.1, 0.0);
|
|
ptIds[8] = pts->InsertNextPoint( 0.1, 0.5, 0.0);
|
|
ptIds[9] = pts->InsertNextPoint(-0.1, 0.5, 0.0);
|
|
ptIds[10] = pts->InsertNextPoint(-0.1, 0.1, 0.0);
|
|
ptIds[11] = pts->InsertNextPoint(-0.5, 0.1, 0.0);
|
|
ptIds[12] = ptIds[0];
|
|
lines->InsertNextCell(13,ptIds);
|
|
colors->InsertNextValue(this->RGB[0]);
|
|
colors->InsertNextValue(this->RGB[1]);
|
|
colors->InsertNextValue(this->RGB[2]);
|
|
}
|
|
}
|
|
|
|
void vtkGlyphSource2D::CreateTriangle(vtkPoints *pts, vtkCellArray *lines,
|
|
vtkCellArray *polys, vtkUnsignedCharArray *colors)
|
|
{
|
|
vtkIdType ptIds[4];
|
|
|
|
ptIds[0] = pts->InsertNextPoint(-0.375, -0.25, 0.0);
|
|
ptIds[1] = pts->InsertNextPoint( 0.0, 0.5, 0.0);
|
|
ptIds[2] = pts->InsertNextPoint( 0.375, -0.25, 0.0);
|
|
|
|
if ( this->Filled )
|
|
{
|
|
polys->InsertNextCell(3,ptIds);
|
|
}
|
|
else
|
|
{
|
|
ptIds[3] = ptIds[0];
|
|
lines->InsertNextCell(4,ptIds);
|
|
}
|
|
colors->InsertNextValue(this->RGB[0]);
|
|
colors->InsertNextValue(this->RGB[1]);
|
|
colors->InsertNextValue(this->RGB[2]);
|
|
}
|
|
|
|
void vtkGlyphSource2D::CreateSquare(vtkPoints *pts, vtkCellArray *lines,
|
|
vtkCellArray *polys, vtkUnsignedCharArray *colors)
|
|
{
|
|
vtkIdType ptIds[5];
|
|
|
|
ptIds[0] = pts->InsertNextPoint(-0.5, -0.5, 0.0);
|
|
ptIds[1] = pts->InsertNextPoint( 0.5, -0.5, 0.0);
|
|
ptIds[2] = pts->InsertNextPoint( 0.5, 0.5, 0.0);
|
|
ptIds[3] = pts->InsertNextPoint(-0.5, 0.5, 0.0);
|
|
|
|
if ( this->Filled )
|
|
{
|
|
polys->InsertNextCell(4,ptIds);
|
|
}
|
|
else
|
|
{
|
|
ptIds[4] = ptIds[0];
|
|
lines->InsertNextCell(5,ptIds);
|
|
}
|
|
colors->InsertNextValue(this->RGB[0]);
|
|
colors->InsertNextValue(this->RGB[1]);
|
|
colors->InsertNextValue(this->RGB[2]);
|
|
}
|
|
|
|
void vtkGlyphSource2D::CreateCircle(vtkPoints *pts, vtkCellArray *lines,
|
|
vtkCellArray *polys, vtkUnsignedCharArray *colors)
|
|
{
|
|
vtkIdType ptIds[9];
|
|
double x[3], theta;
|
|
|
|
// generate eight points in a circle
|
|
x[2] = 0.0;
|
|
theta = 2.0 * vtkMath::Pi() / 8.0;
|
|
for (int i=0; i<8; i++)
|
|
{
|
|
x[0] = 0.5 * cos((double)i*theta);
|
|
x[1] = 0.5 * sin((double)i*theta);
|
|
ptIds[i] = pts->InsertNextPoint(x);
|
|
}
|
|
|
|
if ( this->Filled )
|
|
{
|
|
polys->InsertNextCell(8,ptIds);
|
|
}
|
|
else
|
|
{
|
|
ptIds[8] = ptIds[0];
|
|
lines->InsertNextCell(9,ptIds);
|
|
}
|
|
colors->InsertNextValue(this->RGB[0]);
|
|
colors->InsertNextValue(this->RGB[1]);
|
|
colors->InsertNextValue(this->RGB[2]);
|
|
}
|
|
|
|
void vtkGlyphSource2D::CreateDiamond(vtkPoints *pts, vtkCellArray *lines,
|
|
vtkCellArray *polys, vtkUnsignedCharArray *colors)
|
|
{
|
|
vtkIdType ptIds[5];
|
|
|
|
ptIds[0] = pts->InsertNextPoint( 0.0, -0.5, 0.0);
|
|
ptIds[1] = pts->InsertNextPoint( 0.5, 0.0, 0.0);
|
|
ptIds[2] = pts->InsertNextPoint( 0.0, 0.5, 0.0);
|
|
ptIds[3] = pts->InsertNextPoint(-0.5, 0.0, 0.0);
|
|
|
|
if ( this->Filled )
|
|
{
|
|
polys->InsertNextCell(4,ptIds);
|
|
}
|
|
else
|
|
{
|
|
ptIds[4] = ptIds[0];
|
|
lines->InsertNextCell(5,ptIds);
|
|
}
|
|
colors->InsertNextValue(this->RGB[0]);
|
|
colors->InsertNextValue(this->RGB[1]);
|
|
colors->InsertNextValue(this->RGB[2]);
|
|
}
|
|
|
|
void vtkGlyphSource2D::CreateArrow(vtkPoints *pts, vtkCellArray *lines,
|
|
vtkCellArray *polys, vtkUnsignedCharArray *colors)
|
|
{
|
|
if ( this->Filled ) //create two convex polygons
|
|
{
|
|
this->CreateThickArrow(pts,lines,polys,colors);
|
|
}
|
|
else
|
|
{
|
|
//stem
|
|
vtkIdType ptIds[3];
|
|
ptIds[0] = pts->InsertNextPoint( -0.5, 0.0, 0.0);
|
|
ptIds[1] = pts->InsertNextPoint( 0.5, 0.0, 0.0);
|
|
lines->InsertNextCell(2,ptIds);
|
|
colors->InsertNextValue(this->RGB[0]);
|
|
colors->InsertNextValue(this->RGB[1]);
|
|
colors->InsertNextValue(this->RGB[2]);
|
|
|
|
//arrow head
|
|
ptIds[0] = pts->InsertNextPoint( 0.2, -0.1, 0.0);
|
|
ptIds[1] = pts->InsertNextPoint( 0.5, 0.0, 0.0);
|
|
ptIds[2] = pts->InsertNextPoint( 0.2, 0.1, 0.0);
|
|
lines->InsertNextCell(3,ptIds);
|
|
colors->InsertNextValue(this->RGB[0]);
|
|
colors->InsertNextValue(this->RGB[1]);
|
|
colors->InsertNextValue(this->RGB[2]);
|
|
}
|
|
}
|
|
|
|
void vtkGlyphSource2D::CreateThickArrow(vtkPoints *pts, vtkCellArray *lines,
|
|
vtkCellArray *polys, vtkUnsignedCharArray *colors)
|
|
{
|
|
vtkIdType ptIds[8];
|
|
|
|
ptIds[0] = pts->InsertNextPoint( -0.5, -0.1, 0.0);
|
|
ptIds[1] = pts->InsertNextPoint( 0.1, -0.1, 0.0);
|
|
ptIds[2] = pts->InsertNextPoint( 0.1, -0.2, 0.0);
|
|
ptIds[3] = pts->InsertNextPoint( 0.5, 0.0, 0.0);
|
|
ptIds[4] = pts->InsertNextPoint( 0.1, 0.2, 0.0);
|
|
ptIds[5] = pts->InsertNextPoint( 0.1, 0.1, 0.0);
|
|
ptIds[6] = pts->InsertNextPoint( -0.5, 0.1, 0.0);
|
|
|
|
if ( this->Filled ) //create two convex polygons
|
|
{
|
|
polys->InsertNextCell(4);
|
|
polys->InsertCellPoint(ptIds[0]);
|
|
polys->InsertCellPoint(ptIds[1]);
|
|
polys->InsertCellPoint(ptIds[5]);
|
|
polys->InsertCellPoint(ptIds[6]);
|
|
colors->InsertNextValue(this->RGB[0]);
|
|
colors->InsertNextValue(this->RGB[1]);
|
|
colors->InsertNextValue(this->RGB[2]);
|
|
|
|
polys->InsertNextCell(5,ptIds+1);
|
|
colors->InsertNextValue(this->RGB[0]);
|
|
colors->InsertNextValue(this->RGB[1]);
|
|
colors->InsertNextValue(this->RGB[2]);
|
|
}
|
|
else
|
|
{
|
|
ptIds[7] = ptIds[0];
|
|
lines->InsertNextCell(8,ptIds);
|
|
colors->InsertNextValue(this->RGB[0]);
|
|
colors->InsertNextValue(this->RGB[1]);
|
|
colors->InsertNextValue(this->RGB[2]);
|
|
}
|
|
}
|
|
|
|
void vtkGlyphSource2D::CreateHookedArrow(vtkPoints *pts, vtkCellArray *lines,
|
|
vtkCellArray *polys, vtkUnsignedCharArray *colors)
|
|
{
|
|
if ( this->Filled )
|
|
{
|
|
//create two convex polygons
|
|
vtkIdType ptIds[4];
|
|
ptIds[0] = pts->InsertNextPoint( -0.5, -0.1, 0.0);
|
|
ptIds[1] = pts->InsertNextPoint( 0.1, -0.1, 0.0);
|
|
ptIds[2] = pts->InsertNextPoint( 0.1, 0.075, 0.0);
|
|
ptIds[3] = pts->InsertNextPoint( -0.5, 0.075, 0.0);
|
|
polys->InsertNextCell(4,ptIds);
|
|
colors->InsertNextValue(this->RGB[0]);
|
|
colors->InsertNextValue(this->RGB[1]);
|
|
colors->InsertNextValue(this->RGB[2]);
|
|
|
|
ptIds[0] = pts->InsertNextPoint( 0.1, -0.1, 0.0);
|
|
ptIds[1] = pts->InsertNextPoint( 0.5, -0.1, 0.0);
|
|
ptIds[2] = pts->InsertNextPoint( 0.1, 0.2, 0.0);
|
|
polys->InsertNextCell(3,ptIds);
|
|
colors->InsertNextValue(this->RGB[0]);
|
|
colors->InsertNextValue(this->RGB[1]);
|
|
colors->InsertNextValue(this->RGB[2]);
|
|
}
|
|
else
|
|
{
|
|
vtkIdType ptIds[3];
|
|
ptIds[0] = pts->InsertNextPoint( -0.5, 0.0, 0.0);
|
|
ptIds[1] = pts->InsertNextPoint( 0.5, 0.0, 0.0);
|
|
ptIds[2] = pts->InsertNextPoint( 0.2, 0.1, 0.0);
|
|
lines->InsertNextCell(3,ptIds);
|
|
colors->InsertNextValue(this->RGB[0]);
|
|
colors->InsertNextValue(this->RGB[1]);
|
|
colors->InsertNextValue(this->RGB[2]);
|
|
}
|
|
}
|
|
|
|
void vtkGlyphSource2D::CreateDash(vtkPoints *pts, vtkCellArray *lines,
|
|
vtkCellArray *polys, vtkUnsignedCharArray *colors,
|
|
double scale)
|
|
{
|
|
vtkIdType ptIds[5];
|
|
ptIds[0] = pts->InsertNextPoint(-0.5, -0.1, 0.0);
|
|
ptIds[1] = pts->InsertNextPoint( 0.5, -0.1, 0.0);
|
|
ptIds[2] = pts->InsertNextPoint( 0.5, 0.1, 0.0);
|
|
ptIds[3] = pts->InsertNextPoint(-0.5, 0.1, 0.0);
|
|
|
|
if ( this->Filled )
|
|
{
|
|
polys->InsertNextCell(4,ptIds);
|
|
}
|
|
else
|
|
{
|
|
vtkIdType ptIds2D[2];
|
|
ptIds2D[0] = pts->InsertNextPoint(-0.5*scale, 0.0, 0.0);
|
|
ptIds2D[1] = pts->InsertNextPoint( 0.5*scale, 0.0, 0.0);
|
|
colors->InsertNextValue(this->RGB[0]);
|
|
colors->InsertNextValue(this->RGB[1]);
|
|
colors->InsertNextValue(this->RGB[2]);
|
|
lines->InsertNextCell(2,ptIds2D);
|
|
}
|
|
colors->InsertNextValue(this->RGB[0]);
|
|
colors->InsertNextValue(this->RGB[1]);
|
|
colors->InsertNextValue(this->RGB[2]);
|
|
}
|
|
|
|
//----------------------------------------------------------------------------
|
|
void vtkGlyphSource2D::PrintSelf(ostream& os, vtkIndent indent)
|
|
{
|
|
this->Superclass::PrintSelf(os,indent);
|
|
|
|
os << indent << "Center: (" << this->Center[0] << ", "
|
|
<< this->Center[1] << ", " << this->Center[2] << ")\n";
|
|
|
|
os << indent << "Scale: " << this->Scale << "\n";
|
|
os << indent << "Scale2: " << this->Scale2 << "\n";
|
|
os << indent << "Rotation Angle: " << this->RotationAngle << "\n";
|
|
|
|
os << indent << "Color: (" << this->Color[0] << ", "
|
|
<< this->Color[1] << ", " << this->Color[2] << ")\n";
|
|
|
|
os << indent << "Filled: " << (this->Filled ? "On\n" : "Off\n");
|
|
os << indent << "Dash: " << (this->Dash ? "On\n" : "Off\n");
|
|
os << indent << "Cross: " << (this->Cross ? "On\n" : "Off\n");
|
|
|
|
os << indent << "Glyph Type";
|
|
switch (this->GlyphType)
|
|
{
|
|
case VTK_NO_GLYPH:
|
|
os << "No Glyph\n";
|
|
break;
|
|
case VTK_VERTEX_GLYPH:
|
|
os << "Vertex\n";
|
|
break;
|
|
case VTK_DASH_GLYPH:
|
|
os << "Dash\n";
|
|
break;
|
|
case VTK_CROSS_GLYPH:
|
|
os << "Cross\n";
|
|
break;
|
|
case VTK_THICKCROSS_GLYPH:
|
|
os << "Cross\n";
|
|
break;
|
|
case VTK_TRIANGLE_GLYPH:
|
|
os << "Triangle\n";
|
|
break;
|
|
case VTK_SQUARE_GLYPH:
|
|
os << "Square\n";
|
|
break;
|
|
case VTK_CIRCLE_GLYPH:
|
|
os << "Circle\n";
|
|
break;
|
|
case VTK_DIAMOND_GLYPH:
|
|
os << "Diamond\n";
|
|
break;
|
|
case VTK_ARROW_GLYPH:
|
|
os << "Arrow\n";
|
|
break;
|
|
case VTK_THICKARROW_GLYPH:
|
|
os << "Arrow\n";
|
|
break;
|
|
case VTK_HOOKEDARROW_GLYPH:
|
|
os << "Hooked Arrow\n";
|
|
break;
|
|
}
|
|
}
|
|
|