File: transformation.cpp

package info (click to toggle)
cgal 4.0-5
  • links: PTS
  • area: main
  • in suites: wheezy
  • size: 65,068 kB
  • sloc: cpp: 500,870; ansic: 102,544; sh: 321; python: 92; makefile: 75; xml: 2
file content (38 lines) | stat: -rw-r--r-- 1,059 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
#include <CGAL/Gmpz.h>
#include <CGAL/Extended_homogeneous.h>
#include <CGAL/Nef_polyhedron_3.h>
#include <CGAL/IO/Nef_polyhedron_iostream_3.h>


//instead of
//typedef CGAL::Extended_homogeneous<CGAL::Gmpz>  Kernel;
// workaround for VC++
struct Kernel : public CGAL::Extended_homogeneous<CGAL::Gmpz> {};

typedef CGAL::Nef_polyhedron_3<Kernel>  Nef_polyhedron;
typedef Nef_polyhedron::Plane_3  Plane_3;
typedef Nef_polyhedron::Vector_3  Vector_3;
typedef Nef_polyhedron::Aff_transformation_3  Aff_transformation_3;

int main() {

  Nef_polyhedron N(Plane_3(0,1,0,0));
  Aff_transformation_3 transl(CGAL::TRANSLATION, Vector_3(5, 7, 9));
  Aff_transformation_3 rotx90(1,0,0,
			      0,0,-1,
			      0,1,0,
			      1);
  Aff_transformation_3 scale(3,0,0,
			     0,3,0,
			     0,0,3,
			     2);

  N.transform(transl);
  CGAL_assertion(N == Nef_polyhedron(Plane_3(0,1,0,-7)));
  N.transform(rotx90);
  CGAL_assertion(N == Nef_polyhedron(Plane_3(0,0,1,-7)));
  N.transform(scale);
  CGAL_assertion(N == Nef_polyhedron(Plane_3(0,0,2,-21)));

  return 0;
}