00001 #pragma once
00002 #ifndef BL7_P2_CONTACTGENERATOR_H
00003 #define BL7_P2_CONTACTGENERATOR_H
00004
00005 #include "../core.h"
00006
00007 #include <MathLabs/Vector2.h>
00008
00009
00010
00011 namespace bl7 {
00012 namespace particles2 {
00013
00014
00015
00016 class Particle;
00017 class ContactRegistry;
00018 class Dynamics;
00019
00020
00021
00025 class BODYLABS_API ContactGenerator
00026 {
00027
00028
00029
00030
00031 public:
00033 ContactGenerator(void)
00034 { }
00035
00037 virtual ~ContactGenerator(void)
00038 { }
00039
00040 private:
00042 ContactGenerator(const ContactGenerator&);
00044 ContactGenerator& operator = (const ContactGenerator&);
00045
00046
00047
00048
00049
00050
00051 private:
00058 virtual unsigned add_contacts(ContactRegistry* registry) const = 0;
00059
00060
00061
00062 friend Dynamics;
00063
00064 };
00065
00066
00067
00068 }
00069 }
00070
00071 #endif // BL7_P2_CONTACTGENERATOR_H