| 190 | } |
| 191 | |
| 192 | void afxCamera::setOrbitMode(GameBase *obj, Point3F &pos, AngAxisF &rot, F32 minDist, F32 maxDist, F32 curDist, bool ownClientObject) |
| 193 | { |
| 194 | mObservingClientObject = ownClientObject; |
| 195 | |
| 196 | if(bool(mOrbitObject)) { |
| 197 | clearProcessAfter(); |
| 198 | clearNotify(mOrbitObject); |
| 199 | } |
| 200 | mOrbitObject = obj; |
| 201 | if(bool(mOrbitObject)) |
| 202 | { |
| 203 | processAfter(mOrbitObject); |
| 204 | deleteNotify(mOrbitObject); |
| 205 | mOrbitObject->getWorldBox().getCenter(&mPosition); |
| 206 | mMode = OrbitObjectMode; |
| 207 | } |
| 208 | else |
| 209 | { |
| 210 | mMode = OrbitPointMode; |
| 211 | mPosition = pos; |
| 212 | } |
| 213 | |
| 214 | QuatF q(rot); |
| 215 | MatrixF tempMat(true); |
| 216 | q.setMatrix(&tempMat); |
| 217 | Point3F dir; |
| 218 | tempMat.getColumn(1, &dir); |
| 219 | |
| 220 | set_cam_pos(mPosition, dir); |
| 221 | |
| 222 | mMinOrbitDist = minDist; |
| 223 | mMaxOrbitDist = maxDist; |
| 224 | mCurOrbitDist = curDist; |
| 225 | } |
| 226 | |
| 227 | |
| 228 | void afxCamera::validateEyePoint(F32 pos, MatrixF *mat) |
no test coverage detected