#pragma once #include "PositiveElevationCalc.h" // 标高计算反算 class ReverseElevationCalc: public ElevationCalc { public: ReverseElevationCalc(); virtual void InitCalcSys(); virtual void LayingDepthCalc(); virtual void AutoCalc(BOOL bModify = FALSE); virtual void CheckSys(CWnd *pWnd = NULL); BOOL IsModifyEleforEndWell(); // 是否修改了排出井的管内底标高 private: double GetPipeEleUp2(const std::vector &data, const AcDbObjectId &idEWell); // 管段起点井管内顶标高 double GetPipeEleDown2(const std::vector &data, const AcDbObjectId &idEWell); // 管段起点井管内底标高 void SortforCalcP(std::vector &data); // 按正算顺序排序计算单元(目的提高计算时的速度) void SortforCalcR(std::vector &data); // 按反算排序(目的提高计算时的速度) void DeleteDropWell(); // 将跌水井改为普通井 void CheckDropWell(); // 检查用户设置的跌水井是否与计算结果一致 bool isDropWell(std::vector &data, const AcDbObjectId &idSWell); // cet 2011.11.29 add 判断是否产生跌水井 };