You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

46 lines
883 B
C++

/**
* @file CCurveClosure.h
* @brief 曲线闭合区域类接口
* @author N
*/
#pragma once
#ifndef AFX_EXT_CLASS
#define AFX_EXT_CLASS Q_DECL_IMPORT
#endif
#include <set>
#include <vector>
#include <map>
#include <iostream>
#include "TBase/TGraph.h"
#include "curvegraph.h"
using namespace std;
namespace GObjects
{
/* @brief 曲线闭合区域类*/
class CCurveClosure : public CCurveGraph
{
public:
CCurveClosure(void);
virtual ~CCurveClosure();
//读取曲线数据
virtual void ReadCurves(CCurveList& curList);
/** @brief 指定目标点,生成包围它的最小闭合曲线*/
CMyCurve* CreateClosedCurve(CPoint3D& dfp);
protected:
//通过中心点向m_rayRadian方向做射线查找最近相交的线段
bool GetStartedNodePair(CPoint3D& centPoint, PT3Node*& p3dStart, PT3Node*& p3dNext);
double m_rayRadian; //射线角度 默认0
//CPoint3D m_centPoint; //中心点
};
};
using namespace GObjects;