|
|
/**
|
|
|
* @file UtilityClass.h
|
|
|
* @brief 常用的简单类集合
|
|
|
* @author 沙漠乌鸦
|
|
|
* @time 2010-01-14
|
|
|
*/
|
|
|
#pragma once
|
|
|
|
|
|
/** @brief 深度范围 */
|
|
|
class AFX_EXT_CLASS DEPTHRANGE
|
|
|
{
|
|
|
public:
|
|
|
explicit DEPTHRANGE(double top = 0.0, double bottom = 0.0) {topdepth = top; bottomdepth = bottom;}
|
|
|
|
|
|
/**
|
|
|
* @brief 判断深度范围是否包含另一个深度范围
|
|
|
* @param [in] depthRange 深度范围
|
|
|
* @return 若包含,则返回TURE,否则返回FALSE
|
|
|
*/
|
|
|
bool Contain(DEPTHRANGE depthRange,int iPrecision = 1) const;
|
|
|
|
|
|
/**
|
|
|
* @brief 判断深度范围是否包含一个深度
|
|
|
* @param [in] dDepth 深度
|
|
|
* @return 若包含,则返回TRUE,否则返回FALSE
|
|
|
*/
|
|
|
bool Contain(double dDepth,int iPrecision = 1) const;
|
|
|
|
|
|
/**
|
|
|
* @brief 判断深度范围是否包含另一个深度范围,并且顶底或底深不相等
|
|
|
* @param [in] depthRange 深度范围
|
|
|
* @return 若包含并不相等,则返回TURE,否则返回FALSE
|
|
|
* 1> 776.5--777.2与776.8--777.2返回FALSE,底深相等
|
|
|
* 2> 776.5--777.2与776.5--777.0返回FALSE,顶深相等
|
|
|
* 3> 776.5--777.2与776.8--777.0返回TRUE
|
|
|
*/
|
|
|
bool ContainApart(DEPTHRANGE depthRange,int iPrecision = 1) const;
|
|
|
|
|
|
/**
|
|
|
* @brief 判断深度范围是否包含另一个深度,并且深度不与顶深或底深相等
|
|
|
*/
|
|
|
bool ContainApart(double dDepth,int iPrecision = 1) const;
|
|
|
|
|
|
/** @brief 判断深度范围是否相交 */
|
|
|
bool Overlap(DEPTHRANGE depthRange,int iPrecision = 1) const;
|
|
|
|
|
|
/** @brief 判断两个深度范围是否完全相等 */
|
|
|
bool Equal(DEPTHRANGE depthRange,int iPrecision = 1) const;
|
|
|
|
|
|
/** @brief 判断深度范围是否为空 */
|
|
|
bool IsEmpty() const;
|
|
|
|
|
|
/** @brief 获取深度范围的厚度值 */
|
|
|
double GetThick() const;
|
|
|
|
|
|
/** @brief 获取中间深度 */
|
|
|
double GetCenter() const;
|
|
|
|
|
|
public:
|
|
|
/** @brief 对深度范围进行四舍五入操作 */
|
|
|
DEPTHRANGE GetPrecision(int iPrecision = 1) const;
|
|
|
|
|
|
// operator
|
|
|
bool operator < (const DEPTHRANGE& value);
|
|
|
|
|
|
public:
|
|
|
double topdepth;
|
|
|
double bottomdepth;
|
|
|
}; |