#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(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(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(pItem); return itemBreakCurve->m_bExtendCurveFinished; }