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.
87 lines
2.0 KiB
C++
87 lines
2.0 KiB
C++
#include "stdafx.h"
|
|
#include "SigmaView.h"
|
|
#include "SectionDoc.h"
|
|
#include "ItemBreakCurve.h"
|
|
#include "ItemExtendCurve.h"
|
|
|
|
static CItemBreakCurve * GetItemBreakCurveFromView(CSigmaView * pView)
|
|
{
|
|
if (pView == NULL)
|
|
return 0;
|
|
|
|
CItem * pItem = pView->GetItem();
|
|
if (pItem == NULL)
|
|
return 0;
|
|
|
|
CItemBreakCurve * itemBreakCurve = dynamic_cast<CItemBreakCurve *>(pItem);
|
|
if (itemBreakCurve == NULL)
|
|
return 0;
|
|
|
|
return itemBreakCurve;
|
|
}
|
|
|
|
static CItemBreakCurveDirect * GetItemBreakCurveDirectFromView(CSigmaView * pView)
|
|
{
|
|
if (pView == NULL)
|
|
return 0;
|
|
|
|
CItem * pItem = pView->GetItem();
|
|
if (pItem == NULL)
|
|
return 0;
|
|
|
|
CItemBreakCurveDirect * itemBreakCurveDirectly = dynamic_cast<CItemBreakCurveDirect *>(pItem);
|
|
if (itemBreakCurveDirectly == NULL)
|
|
return 0;
|
|
|
|
return itemBreakCurveDirectly;
|
|
}
|
|
|
|
extern "C" __declspec(dllexport)
|
|
int BreakCurve_IsBreaked(CSigmaView * pView)
|
|
{
|
|
CItemBreakCurve * pItem = GetItemBreakCurveFromView(pView);
|
|
if (pItem == NULL)
|
|
return -1;
|
|
|
|
return pItem->IsBreaked()?1:-1;
|
|
}
|
|
|
|
extern "C" __declspec(dllexport)
|
|
int BreakCurve_GetSelectCount(CSigmaView * pView)
|
|
{
|
|
CItemBreakCurve * pItem = GetItemBreakCurveFromView(pView);
|
|
if (pItem == NULL)
|
|
return -1;
|
|
|
|
return pItem->GetSelectCount();
|
|
}
|
|
|
|
extern "C" __declspec(dllexport)
|
|
void BreakCurveDirect_EreasRubberLine(CSigmaView * pView, HDC hdc)
|
|
{
|
|
CItemBreakCurveDirect * pBreackCurveDirectly = GetItemBreakCurveDirectFromView(pView);
|
|
if (pBreackCurveDirectly == NULL)
|
|
return ;
|
|
|
|
//pBreackCurveDirectly->EreaseRubberLine();
|
|
}
|
|
|
|
/**
|
|
* 判断延伸是否成功
|
|
* 按说这个接口不应该放在这个文件里面的,但是由于它目前只有一个接口,暂时放在这里,有更多接口了,再移到单独的 interface 文件中
|
|
*
|
|
* \param pView
|
|
* \return
|
|
*/
|
|
extern "C" __declspec(dllexport)
|
|
bool BreakCurve_ExtendCurveFinished(CSigmaView * pView)
|
|
{
|
|
CItemBreakCurve * pItem = GetItemBreakCurveFromView(pView);
|
|
if (pItem == nullptr)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
auto * itemBreakCurve = dynamic_cast<CItemExtendCurve*>(pItem);
|
|
return itemBreakCurve->m_bExtendCurveFinished;
|
|
} |