00001 #pragma once
00002 #ifndef BL7_P2_CONTACTRESOLVER_H
00003 #define BL7_P2_CONTACTRESOLVER_H
00004
00005 #include "../core.h"
00006
00007
00008
00009 namespace bl7 {
00010 namespace particles2 {
00011
00012
00013
00014 class Contact;
00015
00016
00017
00018 class BODYLABS_API ContactResolver
00019 {
00020
00021
00022
00023
00024 public:
00029 ContactResolver(void)
00030 : _contacts_array( NULL ), _num_o_contacts( 0 )
00031 { }
00032
00034 ~ContactResolver(void)
00035 { }
00036
00040 ContactResolver(Contact* contacts_array, unsigned num_o_contacts)
00041 : _contacts_array( contacts_array ), _num_o_contacts( num_o_contacts )
00042 { }
00043
00044 private:
00046 ContactResolver(const ContactResolver&);
00048 ContactResolver& operator = (const ContactResolver&);
00049
00050
00051
00052
00053
00054
00055 private:
00057 Contact* _contacts_array;
00058
00060 unsigned _num_o_contacts;
00061
00062
00063
00064
00065
00066
00067 public:
00071 void set_array(Contact* contacts_array, unsigned num_o_contacts)
00072 {
00073 _contacts_array = contacts_array;
00074 _num_o_contacts = num_o_contacts;
00075 }
00076
00077
00078
00079
00080
00081
00082 public:
00088 void resolve_contacts(const float time, unsigned max_iterations = 0);
00089
00090 };
00091
00092
00093
00094 }
00095 }
00096
00097 #endif // BL7_P2_CONTACTRESOLVER_H