HWindowFilterOOC.h
1 // Copyright (c) Tech Soft 3D, Inc.
2 //
3 // The information contained herein is confidential and proprietary to Tech Soft 3D, Inc.,
4 // and considered a trade secret as defined under civil and criminal statutes.
5 // Tech Soft 3D, Inc. shall pursue its civil and criminal remedies in the event of
6 // unauthorized use or misappropriation of its trade secrets. Use of this information
7 // by anyone other than authorized employees of Tech Soft 3D, Inc. is granted only under
8 // a written non-disclosure agreement, expressly prescribing the scope and manner of such use.
9 
10 #pragma once
11 
12 
13 #ifdef HMFC_STATIC_LIB
14 # error "Code cannot be statically linked."
15 #endif
16 
17 
18 #ifdef H_PACK_8
19 # pragma pack(push)
20 # pragma pack(8)
21 #endif
22 
23 
25 
26 
27 #include "PointCloudAPI.h"
28 #include "HWindowInfoOOC.h"
29 #include "varray.h"
30 
31 # if defined(__GNUC__) && (__GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 8))
32 # define OLD_GCC
33 # define OVERRIDE
34 # else
35 # define OVERRIDE override
36 # endif
37 
39 
40 
44 class HWindowFilterOOC : public ooc::query::Filter {
45 public:
49  HWindowFilterOOC (bool deep_filter);
50 
53  virtual bool RejectPointsInMemory () OVERRIDE;
54 
57  virtual bool RejectPointsOnDisk () OVERRIDE;
58 
61  virtual bool RejectNode (ooc::NodeHandle const & node_handle) OVERRIDE;
62 
67  virtual bool RejectBounding (ooc::Point const & min_bound, ooc::Point const & max_bound) OVERRIDE;
68 
73  virtual bool AcceptPoint (ooc::Point const & point, size_t point_index) OVERRIDE;
74 
77  void AddRectangleWindow (HBaseView & view, ooc::Point const & window_min, ooc::Point const & window_max);
78 
81  void AddTriangleWindow (HBaseView & view, ooc::Point const & p1, ooc::Point const & p2, ooc::Point const & p3);
82 
85  void ClearWindows ();
86 
89  bool HasWindows () const;
90 
91 private:
92  void WorldBoxCorners (ooc::Point const & world_min, ooc::Point const & world_max, ooc::Point (&out_world_points)[8]);
93 
94 private:
95  VArray<HWindowInfoOOC> window_infos;
96  bool deep_filter;
97 };
98 
99 
100 
virtual bool RejectPointsOnDisk() OVERRIDE
Definition: HWindowFilterOOC.h:44
virtual bool RejectPointsInMemory() OVERRIDE
The HBaseView class defines and manages a view of model information.
Definition: HBaseView.h:332
void AddTriangleWindow(HBaseView &view, ooc::Point const &p1, ooc::Point const &p2, ooc::Point const &p3)
virtual bool RejectNode(ooc::NodeHandle const &node_handle) OVERRIDE
void AddRectangleWindow(HBaseView &view, ooc::Point const &window_min, ooc::Point const &window_max)
HWindowFilterOOC(bool deep_filter)
virtual bool RejectBounding(ooc::Point const &min_bound, ooc::Point const &max_bound) OVERRIDE
bool HasWindows() const
virtual bool AcceptPoint(ooc::Point const &point, size_t point_index) OVERRIDE