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