Panda3D
 All Classes Functions Variables Enumerations
arToolKit.h
1 // Filename: arToolKit.h
2 // Created by: jyelon (01Nov2007)
3 //
4 ////////////////////////////////////////////////////////////////////
5 //
6 // PANDA 3D SOFTWARE
7 // Copyright (c) Carnegie Mellon University. All rights reserved.
8 //
9 // All use of this software is subject to the terms of the revised BSD
10 // license. You should have received a copy of this license along
11 // with this source code in a file named "LICENSE."
12 //
13 ////////////////////////////////////////////////////////////////////
14 
15 #ifndef ARTOOLKIT_H
16 #define ARTOOLKIT_H
17 
18 #include "pandabase.h"
19 
20 #ifdef HAVE_ARTOOLKIT
21 
22 #include "nodePath.h"
23 #include "texture.h"
24 
25 ////////////////////////////////////////////////////////////////////
26 // Class : ARToolKit
27 // Description : ARToolKit is a software library for building
28 // Augmented Reality (AR) applications. These are
29 // applications that involve the overlay of virtual
30 // imagery on the real world. It was developed by
31 // Dr. Hirokazu Kato. Its ongoing development is
32 // being supported by the Human Interface Technology
33 // Laboratory (HIT Lab) at the University of
34 // Washington, HIT Lab NZ at the University of
35 // Canterbury, New Zealand, and ARToolworks, Inc,
36 // Seattle. It is available under a GPL license.
37 // It is also possible to negotiate other licenses
38 // with the copyright holders.
39 //
40 // This class is a wrapper around the ARToolKit
41 // library.
42 ////////////////////////////////////////////////////////////////////
43 class EXPCL_VISION ARToolKit {
44 
45 PUBLISHED:
46  static ARToolKit *make(NodePath camera, const Filename &paramfile, double markersize);
47  ~ARToolKit();
48 
49  INLINE void set_threshold(double n);
50  void attach_pattern(const Filename &pattern, NodePath path);
51  void detach_patterns();
52  void analyze(Texture *tex, bool do_flip_texture = true);
53 
54 private:
55  static int get_pattern(const Filename &pattern);
56  ARToolKit();
57  void cleanup();
58 
59  typedef pmap<Filename, int> PatternTable;
60  static PatternTable _pattern_table;
61 
62  typedef pmap<int, NodePath> Controls;
63  Controls _controls;
64 
65  NodePath _camera;
66  void *_camera_param;
67  double _threshold;
68  double _marker_size;
69  double _prev_conv[3][4];
70  bool _have_prev_conv;
71 };
72 
73 #include "arToolKit.I"
74 
75 #endif // HAVE_ARTOOLKIT
76 #endif // ARTOOLKIT_H
This is our own Panda specialization on the default STL map.
Definition: pmap.h:52
Represents a texture object, which is typically a single 2-d image but may also represent a 1-d or 3-...
Definition: texture.h:75
The name of a file, such as a texture file or an Egg file.
Definition: filename.h:44
NodePath is the fundamental system for disambiguating instances, and also provides a higher-level int...
Definition: nodePath.h:165