63 lines
1.4 KiB
C++
63 lines
1.4 KiB
C++
//-----------------------------------------------------------------------------+
|
|
// Copyright (C), 1998-2007, SH Software Co. Ltd.
|
|
// = FileName : XCurveStream 类
|
|
// = Version : ver2.0
|
|
// = Author : zjq
|
|
// = CreateDate : 2002-09-09
|
|
// = Description: XCurveStream 定义
|
|
// = Maintainers:
|
|
//
|
|
//-----------------------------------------------------------------------------+
|
|
#include "StdAfx.h"
|
|
#include "XCurveStream.h"
|
|
#include "XGlobalCurveFunc.h"
|
|
|
|
XCurveStream::XCurveStream()
|
|
{
|
|
|
|
}
|
|
|
|
void XCurveStream::DrawXCurve(const XCurveSegment &cv,double nThick)
|
|
{
|
|
m_lstCurves.Append(new XCurveSegment(cv));
|
|
}
|
|
|
|
// 拷贝到另一个Dc去
|
|
void XCurveStream::CopyTo(XDcStream &toDc) const
|
|
{
|
|
for(int i = 0; i < m_lstCurves.Length(); i++)
|
|
{
|
|
toDc << m_lstCurves[i];
|
|
}
|
|
}
|
|
|
|
void XCurveStream::ClipIn(const XPoly2D &poly) //内裁剪
|
|
{
|
|
DList<XCurveSegment> lstIn, lstOut, lstEdge;
|
|
PolyClip(m_lstCurves, poly, lstIn, lstOut, lstEdge);
|
|
m_lstCurves.Reset();
|
|
|
|
*this << lstOut;
|
|
*this << lstEdge;
|
|
}
|
|
|
|
void XCurveStream::ClipOut(const XPoly2D &poly) //外裁剪
|
|
{
|
|
DList<XCurveSegment> lstIn, lstOut, lstEdge;
|
|
PolyClip(m_lstCurves, poly, lstIn, lstOut, lstEdge);
|
|
m_lstCurves.Reset();
|
|
|
|
*this << lstOut;
|
|
*this << lstEdge;
|
|
}
|
|
|
|
const TCHAR * XCurveStream::Descriptor()
|
|
{
|
|
return _T("XCurveStream");
|
|
}
|
|
|
|
const TCHAR * XCurveStream::Desc()
|
|
{
|
|
return Descriptor();
|
|
}
|