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.
kev/Drawer/Module/GeoSigmaDraw/InterfaceBreak.cpp

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;
}