File: TestPolyLineSource.cxx

package info (click to toggle)
vtk7 7.1.1%2Bdfsg2-8
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 127,396 kB
  • sloc: cpp: 1,539,584; ansic: 124,382; python: 78,038; tcl: 47,013; xml: 8,142; yacc: 5,040; java: 4,439; perl: 3,132; lex: 1,926; sh: 1,500; makefile: 126; objc: 83
file content (122 lines) | stat: -rw-r--r-- 3,825 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
/*=========================================================================

  Program:   Visualization Toolkit
  Module:    TestPolyLineSource.cxx

  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 <cstdio>

#include <vtkPolyLineSource.h>
#include <vtkSmartPointer.h>

int TestPolyLineSource(int vtkNotUsed(argc), char* vtkNotUsed(argv)[])
{
  vtkSmartPointer<vtkPolyLineSource> source = vtkSmartPointer<vtkPolyLineSource>::New();

  // Basic tests
  int expectedNumberOfPoints = 4;
  source->SetNumberOfPoints( 4 );
  int actualNumberOfPoints = source->GetNumberOfPoints();
  if (expectedNumberOfPoints != actualNumberOfPoints)
  {
    std::cerr << "Expected NumberOfPoints setting to be " << expectedNumberOfPoints << ", got "
              << actualNumberOfPoints << std::endl;
    return EXIT_FAILURE;
  }

  int expectedClosed = 1;
  source->SetClosed( expectedClosed );
  int actualClosed = source->GetClosed();
  if (expectedClosed != actualClosed)
  {
    std::cerr << "Expected Closed setting to be " << expectedClosed << ", got "
              << actualClosed << std::endl;
    return EXIT_FAILURE;
  }

  // Test setting individual points
  double pts[4][3] = {
    { 1.0, 2.0, 3.0 },
    { 4.0, 5.0, 6.0 },
    { 7.0, 8.0, 9.0 },
    { 10.0, 11.0, 12.0 }
  };

  for ( int i = 0; i < 4; ++i )
  {
    source->SetPoint( i, pts[i][0], pts[i][1], pts[i][2] );
  }

  // Test getting the points
  vtkPoints* testPoints = source->GetPoints();
  if ( testPoints->GetNumberOfPoints() != 4 )
  {
    std::cerr << "Expected 4 points in vtkPoints returned from GetPoints() method, but got "
              << testPoints->GetNumberOfPoints() << " instead." << std::endl;
    return EXIT_FAILURE;
  }

  // Test the point values
  vtkPoints* outputPoints = source->GetPoints();
  for ( int i = 0; i < 4; ++i )
  {
    double pt[3];
    outputPoints->GetPoint(i, pt);

    if ( pt[0] != pts[i][0] || pt[1] != pts[i][1] || pt[2] != pts[i][2] )
    {
      std::cerr << "Point disagreement in point " << i << std::endl;
      std::cerr << "Expected point: " << pts[i][0] << ", " << pts[i][1] << ", " << pts[i][2] << std::endl;
      std::cerr << "Actual point:  " << pt[0] << ", " << pt[1] << ", " << pt[2] << std::endl;
      return EXIT_FAILURE;
    }
  }

  // Test setting the points from a vtkPoints object
  double newPts[3][3] = {
    { 13.0, 14.0, 15.0 },
    { 16.0, 17.0, 18.0 },
    { 19.0, 20.0, 21.0 }
  };

  vtkSmartPointer<vtkPoints> newPoints = vtkSmartPointer<vtkPoints>::New();
  newPoints->SetNumberOfPoints( 3 );
  for ( int i = 0; i < 3; ++i )
  {
    newPoints->SetPoint( i, newPts[i] );
  }
  source->SetPoints( newPoints );

  actualNumberOfPoints = source->GetNumberOfPoints();
  if ( source->GetNumberOfPoints() != 3)
  {
    std::cerr << "Expected 3 points, got " << source->GetNumberOfPoints() << std::endl;
    return EXIT_FAILURE;
  }

  outputPoints = source->GetPoints();
  for ( int i = 0; i < 3; ++i )
  {
    double pt[3];
    outputPoints->GetPoint(i, pt);

    if ( pt[0] != newPts[i][0] || pt[1] != newPts[i][1] || pt[2] != newPts[i][2] )
    {
      std::cerr << "Point disagreement in point " << i << std::endl;
      std::cerr << "Expected point: " << newPts[i][0] << ", " << newPts[i][1] << ", " << newPts[i][2] << std::endl;
      std::cerr << "Actual point:  " << pt[0] << ", " << pt[1] << ", " << pt[2] << std::endl;
      return EXIT_FAILURE;
    }
  }

  return EXIT_SUCCESS;
}