DefaultContactCalculation.h
Go to the documentation of this file.
1 // This file is a part of the OpenSurgSim project.
2 // Copyright 2013-2015, SimQuest Solutions Inc.
3 //
4 // Licensed under the Apache License, Version 2.0 (the "License");
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
7 //
8 // http://www.apache.org/licenses/LICENSE-2.0
9 //
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an "AS IS" BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
15 
16 #ifndef SURGSIM_COLLISION_DEFAULTCONTACTCALCULATION_H
17 #define SURGSIM_COLLISION_DEFAULTCONTACTCALCULATION_H
18 
19 #include <memory>
20 
22 
23 namespace SurgSim
24 {
25 namespace Collision
26 {
27 
28 class CollisionPair;
29 
32 {
33 public:
38  explicit DefaultContactCalculation(bool doAssert = false);
39 
42 
43  std::pair<int, int> getShapeTypes() override;
44 
45 private:
46  bool m_doAssert;
47 
48  void doCalculateContact(std::shared_ptr<CollisionPair> pair) override;
49 
50  std::list<std::shared_ptr<Contact>> doCalculateDcdContact(
51  const Math::PosedShape<std::shared_ptr<Math::Shape>>& posedShape1,
52  const Math::PosedShape<std::shared_ptr<Math::Shape>>& posedShape2) override;
53 
54  std::list<std::shared_ptr<Contact>> doCalculateCcdContact(
55  const Math::PosedShapeMotion<std::shared_ptr<Math::Shape>>& posedShapeMotion1,
56  const Math::PosedShapeMotion<std::shared_ptr<Math::Shape>>& posedShapeMotion2) override;
57 };
58 
59 }; // namespace Collision
60 }; // namespace SurgSim
61 
62 #endif
Definition: CompoundShapeToGraphics.cpp:29
std::list< std::shared_ptr< Contact > > doCalculateDcdContact(const Math::PosedShape< std::shared_ptr< Math::Shape >> &posedShape1, const Math::PosedShape< std::shared_ptr< Math::Shape >> &posedShape2) override
Virtual function receives the call from the public interface, usually will type the shapes statically...
Definition: DefaultContactCalculation.cpp:52
void doCalculateContact(std::shared_ptr< CollisionPair > pair) override
Calculate the actual contact between two shapes of the given CollisionPair.
Definition: DefaultContactCalculation.cpp:42
Base class responsible for calculating contact data between two objects.
Definition: ContactCalculation.h:41
A default calculation, it does nothing and can be used as a placeholder.
Definition: DefaultContactCalculation.h:31
std::pair< int, int > getShapeTypes() override
Virtual function that returns the shapes that this ContactCalculation class handles.
Definition: DefaultContactCalculation.cpp:37
virtual ~DefaultContactCalculation()
Destructor.
Definition: DefaultContactCalculation.cpp:33
PosedShape is a transformed shape with a record of the pose used to transform it. ...
Definition: Shape.h:117
PosedShapeMotion is embedding the motion of a PosedShape, providing a posed shape at 2 different inst...
Definition: Shape.h:145
bool m_doAssert
Definition: DefaultContactCalculation.h:46
DefaultContactCalculation(bool doAssert=false)
Constructor.
Definition: DefaultContactCalculation.cpp:28
std::list< std::shared_ptr< Contact > > doCalculateCcdContact(const Math::PosedShapeMotion< std::shared_ptr< Math::Shape >> &posedShapeMotion1, const Math::PosedShapeMotion< std::shared_ptr< Math::Shape >> &posedShapeMotion2) override
Virtual function receives the call from the public interface, usually will type the shapes statically...
Definition: DefaultContactCalculation.cpp:65