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.
106 lines
2.7 KiB
C++
106 lines
2.7 KiB
C++
#include "stdafx.h"
|
|
#include "SigmaView.h"
|
|
#include "SectionDoc.h"
|
|
#include "ItemWellGroup.h"
|
|
#include "ActionAddItem.h"
|
|
|
|
extern "C" __declspec(dllexport)
|
|
int AddWellGroupSetWellPointZ(CSigmaView * pView, double z)
|
|
{
|
|
CItem * pItem = pView->GetItem();
|
|
if (pItem == NULL)
|
|
return 0;
|
|
|
|
CItemWellGroup * itemWellGroup = dynamic_cast<CItemWellGroup *>(pItem);
|
|
if (itemWellGroup == NULL)
|
|
return 0;
|
|
itemWellGroup->SetWellPointZ(z);
|
|
return 1;
|
|
}
|
|
extern "C" __declspec(dllexport)
|
|
int XyWellGroupAdd(CXy* pXy, LPCTSTR layerName, BYTE* buffElement, int buffLen)
|
|
{
|
|
//CLayer * pLayer = pXy->FindAddLayer(layerName);
|
|
CWellGroup* pWellGroup = new CWellGroup;
|
|
int64_t oneID = pWellGroup->GetId();
|
|
TRACE("pWellGroup ID: %I64d\r\n", oneID);
|
|
pWellGroup->x0 = 0;
|
|
pWellGroup->y0 = 0;
|
|
pWellGroup->z0 = 0; // m_pt.z0;
|
|
//pWellGroup->angle = m_angle;
|
|
//pWellGroup->SetName(m_pointName);
|
|
COne* pOne = pXy->CreateOne(pWellGroup, WELL_GROUP);
|
|
oneID = pOne->GetId();
|
|
TRACE("One ID: %I64d\r\n", oneID);
|
|
pOne->ReadMemory(buffElement, 0, buffLen, 3);
|
|
oneID = pOne->GetId();
|
|
TRACE("One ID: %I64d\r\n", oneID);
|
|
POSITION pos = pXy->AddElement(pOne->value, WELL_GROUP);
|
|
pXy->SetElementLayer(pos, layerName);
|
|
//pOne->SetLayer(pLayer);
|
|
//pOne->SetViewState(LAYER_ViewEdit);
|
|
//POSITION pos = pXy->AddTailOne(pOne);
|
|
return 1;
|
|
}
|
|
extern "C" __declspec(dllexport)
|
|
int AddWellGroupSetData(CSigmaView * pView, BYTE* buffElement, int buffLen)
|
|
{
|
|
CItem * pItem = pView->GetItem();
|
|
if (pItem == NULL)
|
|
return 0;
|
|
|
|
CItemWellGroup * itemWellGroup = dynamic_cast<CItemWellGroup *>(pItem);
|
|
if (itemWellGroup == NULL)
|
|
return 0;
|
|
itemWellGroup->SetData(buffElement, buffLen);
|
|
return 1;
|
|
}
|
|
extern "C" __declspec(dllexport)
|
|
void AddWellGroup_ApplyData(CSigmaView * pView)
|
|
{
|
|
CItem * pItem = pView->GetItem();
|
|
if (pItem == NULL)
|
|
return;
|
|
|
|
CItemWellGroup * itemWellGroup = dynamic_cast<CItemWellGroup *>(pItem);
|
|
if (itemWellGroup == NULL)
|
|
return;
|
|
itemWellGroup->ApplyData();
|
|
}
|
|
extern "C" __declspec(dllexport)
|
|
void AddWellGroup_Update(CSigmaView * pView, HDC hdc)
|
|
{
|
|
CDC * pDC = CDC::FromHandle(hdc);
|
|
if (pDC == 0)
|
|
return;
|
|
CItem * pItem = pView->GetItem();
|
|
if (pItem == NULL)
|
|
return;
|
|
|
|
CItemWellGroup * itemWellGroup = dynamic_cast<CItemWellGroup *>(pItem);
|
|
if (itemWellGroup == NULL)
|
|
return;
|
|
|
|
itemWellGroup->UpdateDraw(pDC);
|
|
}
|
|
extern "C" __declspec(dllexport)
|
|
int GetWellGroupPointFromItem(CSigmaView* pView, double& x, double& y) {
|
|
|
|
CItem * pItem = pView->GetItem();
|
|
if (pItem == NULL)
|
|
return 0;
|
|
|
|
CItemWellGroup * itemWellGroup = dynamic_cast<CItemWellGroup *>(pItem);
|
|
if (itemWellGroup == NULL)
|
|
return 0;
|
|
|
|
//double x = 0;
|
|
//double y = 0;
|
|
double z = 0;
|
|
if (itemWellGroup->GetWellPoint(&x, &y, &z))
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
return -1;
|
|
} |