| 30 | } |
| 31 | |
| 32 | GeoSignal::GeoSignal(const CrsData::SObject &obj) : GeographyObj(obj), mLink(this) { |
| 33 | |
| 34 | if (sSupervisorCreateNum == 0) { |
| 35 | sSupervisor = new GeoSignalSupervisor(); |
| 36 | sSupervisorCreateNum++; |
| 37 | } |
| 38 | reset(); |
| 39 | |
| 40 | mFrDir.set(mObjData->zNorm); |
| 41 | mFrDir.scale(0.0001f); |
| 42 | |
| 43 | mUpDir.set(mObjData->yNorm); |
| 44 | mUpDir.scale(0.0001f); |
| 45 | |
| 46 | mLfDir.cross(mUpDir, mFrDir); |
| 47 | mLfDir.normalize(); |
| 48 | |
| 49 | sSupervisor->entrySignal(this); |
| 50 | } |
| 51 | |
| 52 | void GeoSignal::reset() { |
| 53 | GeographyObj::resetObject(); |