Here we go again
Или я опять всё напутал в начальных условиях
This commit is contained in:
21
src/Mesh.cpp
21
src/Mesh.cpp
@@ -3,7 +3,6 @@
|
||||
#include <Object.hpp>
|
||||
|
||||
Mesh::Mesh(Object& _obj, double _step) : obj(_obj), step(_step) {
|
||||
|
||||
for (double y = 0.0; y <= _obj.Height(); y += _step) {
|
||||
mesh.push_back(std::vector<Node*>());
|
||||
for (double x = 0.0; x <= _obj.Width(); x += _step) {
|
||||
@@ -16,7 +15,6 @@ Mesh::Mesh(Object& _obj, double _step) : obj(_obj), step(_step) {
|
||||
}
|
||||
|
||||
void Mesh::LinkX() {
|
||||
|
||||
for (int i = 0; i < mesh.size(); i++) {
|
||||
mesh[i][0]->LinkX(nullptr, mesh[i][1]);
|
||||
for (int j = 1; j < mesh[i].size() - 1; j++)
|
||||
@@ -27,7 +25,6 @@ void Mesh::LinkX() {
|
||||
hlines.push_back(mesh[i][0]);
|
||||
}
|
||||
|
||||
|
||||
void Mesh::LinkY() {
|
||||
for (int j = 0; j < mesh[0].size(); j++) {
|
||||
mesh[0][j]->LinkY(nullptr, mesh[1][j]);
|
||||
@@ -39,7 +36,6 @@ void Mesh::LinkY() {
|
||||
vlines.push_back(mesh[0][i]);
|
||||
}
|
||||
|
||||
|
||||
void Mesh::Adapt() {
|
||||
for (int i = 0; i < mesh.size(); i++) {
|
||||
int s = mesh[i].size();
|
||||
@@ -55,25 +51,31 @@ void Mesh::Adapt() {
|
||||
|
||||
void Mesh::Delnode(int i, int j) {
|
||||
Node* node = mesh[i][j];
|
||||
double bndX1 = obj.Fillx(node->X(), node->Y()).first;
|
||||
double bndX2 = obj.Fillx(node->X(), node->Y()).second;
|
||||
double bndY1 = obj.Filly(node->X(), node->Y()).first;
|
||||
double bndY2 = obj.Filly(node->X(), node->Y()).second;
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> X <20> Y */
|
||||
double bndX1 = obj.FillX(node->X(), node->Y()).first;
|
||||
double bndX2 = obj.FillX(node->X(), node->Y()).second;
|
||||
double bndY1 = obj.FillY(node->X(), node->Y()).first;
|
||||
double bndY2 = obj.FillY(node->X(), node->Y()).second;
|
||||
/* <20><> <20><><EFBFBD><EFBFBD><EFBFBD> */
|
||||
int btype = obj.Who(node->X(), node->Y())->GetB();
|
||||
if (node->l()) {
|
||||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if (node->l()->X() != bndX2 && node->l()->X() != bndX1) {
|
||||
if (bndX1 != bndX2) {
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> bndX2 <20> bndX1 <20> <20><> btype */
|
||||
Node* left = new Node(bndX2, node->Y(), btype);
|
||||
Node* right = new Node(bndX1, node->Y(), btype);
|
||||
node->l()->r() = left;
|
||||
if (node->r())
|
||||
node->r()->l() = right;
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> X */
|
||||
left->LinkX(node->l(), right);
|
||||
right->LinkX(left, node->r());
|
||||
node->l() = right;
|
||||
mesh[i].push_back(left);
|
||||
mesh[i].push_back(right);
|
||||
}
|
||||
/* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> X <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> */
|
||||
else {
|
||||
Node* left = new Node(bndX2, node->Y(), btype);
|
||||
node->l()->r() = left;
|
||||
@@ -84,9 +86,10 @@ void Mesh::Delnode(int i, int j) {
|
||||
mesh[i].push_back(left);
|
||||
}
|
||||
}
|
||||
/* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
else
|
||||
node->l()->r() = node->r();
|
||||
}
|
||||
} /* <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> */
|
||||
if (node->r()) {
|
||||
node->r()->l() = node->l();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user