定义基本几何图元
这里暂时只定义点,直线和圆,其它几何图元陆续增加。
1.几何图元基类
为何需要一个基类?简单地说,CAD/CAM的业务流程要求需要对大量的各种几何图元进行统一的管理和操作。
// j-geometry.h
#pragma once
#include <assert.h>
namespace JNSGeometry {
class JGeometry {
public:
JGeometry() = default;
virtual ~JGeometry() = default;
/// Copy or Clone APIs
virtual JGeometry* Copy(){ assert(false); return nullptr; }
/// is APIs
virtual bool IsGeoPoint() const { return false; }
virtual bool IsGeoLine() const { return false; }
virtual bool IsGeoCircle() const { return false; }
};
}
这个基类如此的简陋,只是为了更清楚地表示出基本框架。