spatial_indexer.h
1 /*************************************************************************/
2 /* spatial_indexer.h */
3 /*************************************************************************/
4 /* This file is part of: */
5 /* GODOT ENGINE */
6 /* http://www.godotengine.org */
7 /*************************************************************************/
8 /* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
9 /* */
10 /* Permission is hereby granted, free of charge, to any person obtaining */
11 /* a copy of this software and associated documentation files (the */
12 /* "Software"), to deal in the Software without restriction, including */
13 /* without limitation the rights to use, copy, modify, merge, publish, */
14 /* distribute, sublicense, and/or sell copies of the Software, and to */
15 /* permit persons to whom the Software is furnished to do so, subject to */
16 /* the following conditions: */
17 /* */
18 /* The above copyright notice and this permission notice shall be */
19 /* included in all copies or substantial portions of the Software. */
20 /* */
21 /* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
22 /* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
23 /* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
24 /* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
25 /* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
26 /* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
27 /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
28 /*************************************************************************/
29 #ifndef SPATIAL_INDEXER_H
30 #define SPATIAL_INDEXER_H
31 
32 #include "scene/3d/spatial.h"
33 #if 0
34 
35 class Camera;
36 class ProximityArea;
37 
38 class SpatialIndexer : public Object {
39 
40  OBJ_TYPE( SpatialIndexer, Object );
41 
42  template<class T>
43  struct TK {
44 
45  T *against;
46  ProximityArea *area;
47  bool operator<(const TK<T>& p_k) const { return against==p_k.against ? area < p_k.area : against < p_k.against; }
48  };
49 
50 
51  Set<Camera*> cameras; //cameras
52  Set<ProximityArea*> proximity_areas;
53 
54  Set<TK<Camera> > camera_pairs;
55 
56  bool pending_update;
57  void _update_pairs();
58  void _request_update();
59 
60 protected:
61 
62  static void _bind_methods();
63 
64 friend class ProximityArea;
65 friend class Camera;
66 
67  void add_proximity_area(ProximityArea* p_area);
68  void remove_proximity_area(ProximityArea* p_area);
69  void update_proximity_area_transform(ProximityArea* p_area);
70  void update_proximity_area_flags(ProximityArea* p_area);
71 
72  void add_camera(Camera* p_camera);
73  void remove_camera(Camera* p_camera);
74  void update_camera(Camera* p_camera);
75 
76 public:
77 
78 
80 
81 };
82 #endif
83 #endif // SPATIAL_INDEXER_H
Definition: camera.h:39
Definition: world.cpp:37
Definition: object.h:317