00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #include "config_ode.h"
00016 #include "odeSurfaceParameters.h"
00017
00018 TypeHandle OdeSurfaceParameters::_type_handle;
00019
00020 OdeSurfaceParameters::
00021 OdeSurfaceParameters(int mode, dReal mu) :
00022 _surface_parameters() {
00023 if (mu < 0) {
00024 mu = 0;
00025 } else if (mu > dInfinity) {
00026 mu = dInfinity;
00027 }
00028 _surface_parameters.mode = mode;
00029 _surface_parameters.mu = mu;
00030
00031 _surface_parameters.mu2 = 0;
00032 _surface_parameters.bounce = 0;
00033 _surface_parameters.bounce = 0;
00034 _surface_parameters.soft_erp = 0;
00035 _surface_parameters.soft_cfm = 0;
00036 _surface_parameters.motion1 = 0;
00037 _surface_parameters.motion2 = 0;
00038 _surface_parameters.slip1 = 0;
00039 _surface_parameters.slip2 = 0;
00040 }
00041
00042 OdeSurfaceParameters::
00043 OdeSurfaceParameters(const dSurfaceParameters &surface_parameters) :
00044 _surface_parameters() {
00045 _surface_parameters.mode = surface_parameters.mode;
00046 _surface_parameters.mu = surface_parameters.mu;
00047 _surface_parameters.mu2 = surface_parameters.mu2;
00048 _surface_parameters.bounce = surface_parameters.bounce;
00049 _surface_parameters.bounce = surface_parameters.bounce_vel;
00050 _surface_parameters.soft_erp = surface_parameters.soft_erp;
00051 _surface_parameters.soft_cfm = surface_parameters.soft_cfm;
00052 _surface_parameters.motion1 = surface_parameters.motion1;
00053 _surface_parameters.motion2 = surface_parameters.motion2;
00054 _surface_parameters.slip1 = surface_parameters.slip1;
00055 _surface_parameters.slip2 = surface_parameters.slip2;
00056 }
00057
00058 OdeSurfaceParameters::
00059 ~OdeSurfaceParameters() {
00060 }
00061
00062 const dSurfaceParameters *OdeSurfaceParameters::
00063 get_surface_parameters_ptr() const {
00064 return &_surface_parameters;
00065 }
00066
00067 void OdeSurfaceParameters::
00068 operator = (const OdeSurfaceParameters ©) {
00069 _surface_parameters.mode = copy._surface_parameters.mode;
00070 _surface_parameters.mu = copy._surface_parameters.mu;
00071 _surface_parameters.mu2 = copy._surface_parameters.mu2;
00072 _surface_parameters.bounce = copy._surface_parameters.bounce;
00073 _surface_parameters.bounce = copy._surface_parameters.bounce_vel;
00074 _surface_parameters.soft_erp = copy._surface_parameters.soft_erp;
00075 _surface_parameters.soft_cfm = copy._surface_parameters.soft_cfm;
00076 _surface_parameters.motion1 = copy._surface_parameters.motion1;
00077 _surface_parameters.motion2 = copy._surface_parameters.motion2;
00078 _surface_parameters.slip1 = copy._surface_parameters.slip1;
00079 _surface_parameters.slip2 = copy._surface_parameters.slip2;
00080 }