| 1 |
< |
#include "Integrator.hpp" |
| 2 |
< |
#include "simError.h" |
| 1 |
> |
#include "integrators/Integrator.hpp" |
| 2 |
> |
#include "utils/simError.h" |
| 3 |
|
#include <math.h> |
| 4 |
|
|
| 5 |
|
const double INFINITE_TIME = 10e30; |
| 13 |
|
//get properties from SimInfo |
| 14 |
|
GenericData* data; |
| 15 |
|
ZConsParaData* zConsParaData; |
| 16 |
< |
DoubleData* sampleTime; |
| 17 |
< |
DoubleData* tolerance; |
| 18 |
< |
DoubleData* gap; |
| 19 |
< |
DoubleData* fixtime; |
| 20 |
< |
StringData* policy; |
| 21 |
< |
StringData* filename; |
| 22 |
< |
IntData* smdFlag; |
| 16 |
> |
DoubleGenericData* sampleTime; |
| 17 |
> |
DoubleGenericData* tolerance; |
| 18 |
> |
DoubleGenericData* gap; |
| 19 |
> |
DoubleGenericData* fixtime; |
| 20 |
> |
StringGenericData* policy; |
| 21 |
> |
StringGenericData* filename; |
| 22 |
> |
IntGenericData* smdFlag; |
| 23 |
|
double COM[3]; |
| 24 |
|
|
| 25 |
|
//by default, the direction of constraint is z |
| 47 |
|
forcePolicy = (ForceSubtractionPolicy *) new PolicyByMass(this); |
| 48 |
|
} |
| 49 |
|
else{ |
| 50 |
< |
policy = dynamic_cast<StringData*>(data); |
| 50 |
> |
policy = dynamic_cast<StringGenericData*>(data); |
| 51 |
|
|
| 52 |
|
if (!policy){ |
| 53 |
|
sprintf(painCave.errMsg, |
| 54 |
< |
"ZConstraint Error: Convertion from GenericData to StringData failure, " |
| 54 |
> |
"ZConstraint Error: Convertion from GenericData to StringGenericData failure, " |
| 55 |
|
"PolicyByMass is used\n"); |
| 56 |
|
painCave.isFatal = 0; |
| 57 |
|
simError(); |
| 86 |
|
simError(); |
| 87 |
|
} |
| 88 |
|
else{ |
| 89 |
< |
sampleTime = dynamic_cast<DoubleData*>(data); |
| 89 |
> |
sampleTime = dynamic_cast<DoubleGenericData*>(data); |
| 90 |
|
|
| 91 |
|
if (!sampleTime){ |
| 92 |
|
sprintf(painCave.errMsg, |
| 109 |
|
simError(); |
| 110 |
|
} |
| 111 |
|
else{ |
| 112 |
< |
filename = dynamic_cast<StringData*>(data); |
| 112 |
> |
filename = dynamic_cast<StringGenericData*>(data); |
| 113 |
|
|
| 114 |
|
if (!filename){ |
| 115 |
|
sprintf(painCave.errMsg, |
| 131 |
|
simError(); |
| 132 |
|
} |
| 133 |
|
else{ |
| 134 |
< |
tolerance = dynamic_cast<DoubleData*>(data); |
| 134 |
> |
tolerance = dynamic_cast<DoubleGenericData*>(data); |
| 135 |
|
|
| 136 |
|
if (!tolerance){ |
| 137 |
|
sprintf(painCave.errMsg, |
| 148 |
|
data = info->getProperty(ZCONSGAP_ID); |
| 149 |
|
|
| 150 |
|
if (data){ |
| 151 |
< |
gap = dynamic_cast<DoubleData*>(data); |
| 151 |
> |
gap = dynamic_cast<DoubleGenericData*>(data); |
| 152 |
|
|
| 153 |
|
if (!gap){ |
| 154 |
|
sprintf(painCave.errMsg, |
| 167 |
|
data = info->getProperty(ZCONSFIXTIME_ID); |
| 168 |
|
|
| 169 |
|
if (data){ |
| 170 |
< |
fixtime = dynamic_cast<DoubleData*>(data); |
| 170 |
> |
fixtime = dynamic_cast<DoubleGenericData*>(data); |
| 171 |
|
if (!fixtime){ |
| 172 |
|
sprintf(painCave.errMsg, |
| 173 |
|
"ZConstraint error: Can not get zconsFixTime from SimInfo\n"); |
| 190 |
|
data = info->getProperty(ZCONSUSINGSMD_ID); |
| 191 |
|
|
| 192 |
|
if (data){ |
| 193 |
< |
smdFlag = dynamic_cast<IntData*>(data); |
| 193 |
> |
smdFlag = dynamic_cast<IntGenericData*>(data); |
| 194 |
|
|
| 195 |
|
if (!smdFlag){ |
| 196 |
|
sprintf(painCave.errMsg, |