CCollisionBrute.h
Go to the documentation of this file.
1 //==============================================================================
2 /*
3  Software License Agreement (BSD License)
4  Copyright (c) 2003-2016, CHAI3D.
5  (www.chai3d.org)
6 
7  All rights reserved.
8 
9  Redistribution and use in source and binary forms, with or without
10  modification, are permitted provided that the following conditions
11  are met:
12 
13  * Redistributions of source code must retain the above copyright
14  notice, this list of conditions and the following disclaimer.
15 
16  * Redistributions in binary form must reproduce the above
17  copyright notice, this list of conditions and the following
18  disclaimer in the documentation and/or other materials provided
19  with the distribution.
20 
21  * Neither the name of CHAI3D nor the names of its contributors may
22  be used to endorse or promote products derived from this software
23  without specific prior written permission.
24 
25  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
26  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
27  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
28  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
29  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
30  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
31  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
32  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
33  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
34  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
35  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
36  POSSIBILITY OF SUCH DAMAGE.
37 
38  \author <http://www.chai3d.org>
39  \author Chris Sewell
40  \author Francois Conti
41  \version 3.2.0 $Rev: 2167 $
42 */
43 //==============================================================================
44 
45 //------------------------------------------------------------------------------
46 #ifndef CCollisionBruteH
47 #define CCollisionBruteH
48 //------------------------------------------------------------------------------
50 #include "graphics/CGenericArray.h"
51 #include "graphics/CVertexArray.h"
52 #include "math/CMaths.h"
53 //------------------------------------------------------------------------------
54 #include <vector>
55 //------------------------------------------------------------------------------
56 
57 //------------------------------------------------------------------------------
58 namespace chai3d {
59 //------------------------------------------------------------------------------
60 
61 //==============================================================================
68 //==============================================================================
69 
70 //==============================================================================
83 //==============================================================================
85 {
86  //--------------------------------------------------------------------------
87  // CONSTRUCTOR & DESTRUCTOR:
88  //--------------------------------------------------------------------------
89 
90 public:
91 
94 
96  virtual ~cCollisionBrute() {}
97 
98 
99  //--------------------------------------------------------------------------
100  // METHODS:
101  //--------------------------------------------------------------------------
102 
103 public:
104 
106  virtual bool computeCollision(cGenericObject* a_object,
107  cVector3d& a_segmentPointA,
108  cVector3d& a_segmentPointB,
109  cCollisionRecorder& a_recorder,
110  cCollisionSettings& a_settings);
111 
112 
113  //--------------------------------------------------------------------------
114  // MEMBERS:
115  //--------------------------------------------------------------------------
116 
117 protected:
118 
121 };
122 
123 //------------------------------------------------------------------------------
124 } // namespace chai3d
125 //------------------------------------------------------------------------------
126 
127 //------------------------------------------------------------------------------
128 #endif
129 //------------------------------------------------------------------------------
130 
This class implements a 3D vector.
Definition: CVector3d.h:88
Implements general math utility functions.
Implements an array of 3D vertices.
Implements an abstract class for describing elements composed of vertices.
This class implements a base class for collision detection.
Definition: CGenericCollision.h:101
Implements a base class for programming collision detectors that identify intersections between segme...
This class implements a base class for all 2D or 3D objects in CHAI3D.
Definition: CGenericObject.h:112
This class implements a collision detection recorder that stores all collision events that are report...
Definition: CCollisionBasics.h:185
This structure stores the collision settings that are passed to a collision detector when querying fo...
Definition: CCollisionBasics.h:242
This class implements a brute force approach for collision detection.
Definition: CCollisionBrute.h:84
cCollisionBrute(cGenericArrayPtr a_entities)
Constructor of cCollisionBrute.
Definition: CCollisionBrute.cpp:62
Definition: CAudioBuffer.cpp:56
std::shared_ptr< cGenericArray > cGenericArrayPtr
Definition: CGenericArray.h:70
virtual ~cCollisionBrute()
Destructor of cCollisionBrute.
Definition: CCollisionBrute.h:96
cGenericArrayPtr m_elements
Pointer to the list of elements (points, segments, triangles).
Definition: CCollisionBrute.h:120
virtual bool computeCollision(cGenericObject *a_object, cVector3d &a_segmentPointA, cVector3d &a_segmentPointB, cCollisionRecorder &a_recorder, cCollisionSettings &a_settings)
This method computes all collisions between a segment passed as argument and the attributed 3D object...
Definition: CCollisionBrute.cpp:89