blob: 5df312c0f88aab4c34511ad17b2c499cf8b41c58 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
#include "ElectricCalculation.h"
#include "ElementDataObject.h"
ElementDataObject::ElementDataObject(Workspace* workspace)
: wxDataObjectSimple(wxDataFormat("PSPCopy"))
{
if(workspace) {
m_elementsLists = new ElementsLists();
ElectricCalculation m_allElements;
std::vector<Element*> elementsList = workspace->GetElementList();
std::vector<Text*> textList = workspace->GetTextList();
m_allElements.GetElementsFromList(elementsList);
std::vector<Bus*> busList = m_allElements.GetBusList();
for(int i = 0; i < (int)busList.size(); i++) {
Bus* origBus = busList[i];
// Set bus number.
auto data = origBus->GetEletricalData();
data.number = i;
origBus->SetElectricalData(data);
if(origBus->IsSelected()) {
Bus* copyBus = new Bus();
*copyBus = *origBus;
m_elementsLists->busList.push_back(copyBus);
}
}
std::vector<Line*> lineList = m_allElements.GetLineList();
for(int i = 0; i < (int)lineList.size(); i++) {
Line* origLine = lineList[i];
if(origLine->IsSelected()) {
Line* copyLine = new Line();
*copyLine = *origLine;
m_elementsLists->lineList.push_back(copyLine);
}
}
std::vector<Transformer*> transformerList = m_allElements.GetTransformerList();
for(int i = 0; i < (int)transformerList.size(); i++) {
Transformer* origTransformer = transformerList[i];
if(origTransformer->IsSelected()) {
Transformer* copyTransformer = new Transformer();
*copyTransformer = *origTransformer;
m_elementsLists->transformerList.push_back(copyTransformer);
}
}
}
}
ElementDataObject::~ElementDataObject() {}
size_t ElementDataObject::GetDataSize() const { return sizeof(void*); }
bool ElementDataObject::GetDataHere(void* buf) const
{
*(ElementsLists**)buf = m_elementsLists;
return true;
}
bool ElementDataObject::SetData(size_t len, const void* buf)
{
m_elementsLists = *(ElementsLists**)buf;
return true;
}
|