|
|
@ -1,5 +1,5 @@ |
|
|
|
#include "organizer/loader.hpp" |
|
|
|
#include "example_loader2.hpp" |
|
|
|
#include "organizer/loader.hpp" |
|
|
|
|
|
|
|
void loaderTest1() |
|
|
|
{ |
|
|
@ -782,15 +782,15 @@ void loaderTest2() |
|
|
|
/* 体111和体13布尔并 */ |
|
|
|
loader.unionNode(tag111, tag13); |
|
|
|
|
|
|
|
before = loader.getAreaAndVolume(tag1); |
|
|
|
// before = loader.getAreaAndVolume(tag1);
|
|
|
|
/* 体1和体111布尔差 */ |
|
|
|
loader.differentNode(tag1, tag111); |
|
|
|
after = loader.getAreaAndVolume(tag1); |
|
|
|
// after = loader.getAreaAndVolume(tag1);
|
|
|
|
|
|
|
|
/* 获取体1 布尔前后的体积差和面积差 */ |
|
|
|
areaDifference = after.first - before.first; |
|
|
|
volumeDifference = after.second - before.second; |
|
|
|
std::cout << areaDifference << ", " << volumeDifference << std::endl; |
|
|
|
// areaDifference = after.first - before.first;
|
|
|
|
// volumeDifference = after.second - before.second;
|
|
|
|
// std::cout << areaDifference << ", " << volumeDifference << std::endl;
|
|
|
|
|
|
|
|
/* 定义空体 扣减体1 */ |
|
|
|
auto subTag1 = loader.addEmpty(); |
|
|
@ -902,15 +902,15 @@ void loaderTest2() |
|
|
|
points.push_back(Point3D{-23121.583250388911, 11781.089681679974, -2900.0000000000000}); |
|
|
|
for (auto& point : points) { cycle(point); } |
|
|
|
|
|
|
|
before = loader.getAreaAndVolume(tag1); |
|
|
|
// before = loader.getAreaAndVolume(tag1);
|
|
|
|
/* 体1和扣减体1布尔差 */ |
|
|
|
loader.differentNode(tag1, subTag1); |
|
|
|
after = loader.getAreaAndVolume(tag1); |
|
|
|
// after = loader.getAreaAndVolume(tag1);
|
|
|
|
|
|
|
|
/* 获取 体1 布尔前后的 体积差 和 面积差 */ |
|
|
|
areaDifference = after.first - before.first; |
|
|
|
volumeDifference = after.second - before.second; |
|
|
|
std::cout << areaDifference << ", " << volumeDifference << std::endl; |
|
|
|
// areaDifference = after.first - before.first;
|
|
|
|
// volumeDifference = after.second - before.second;
|
|
|
|
// std::cout << areaDifference << ", " << volumeDifference << std::endl;
|
|
|
|
|
|
|
|
/* 体15:Ent1.bool */ |
|
|
|
bottomPoint = Point3D{0.0000, 0.0000, -3600.0000}; |
|
|
@ -1068,15 +1068,15 @@ void loaderTest2() |
|
|
|
offset = -2900; |
|
|
|
loader.offset(tag22, direction, offset); |
|
|
|
|
|
|
|
before = loader.getAreaAndVolume(tag1); |
|
|
|
// before = loader.getAreaAndVolume(tag1);
|
|
|
|
/* 体1和体22布尔差 */ |
|
|
|
loader.differentNode(tag1, tag22); |
|
|
|
after = loader.getAreaAndVolume(tag1); |
|
|
|
// after = loader.getAreaAndVolume(tag1);
|
|
|
|
|
|
|
|
/* 获取体1 布尔前后的体积差和面积差 */ |
|
|
|
areaDifference = after.first - before.first; |
|
|
|
volumeDifference = after.second - before.second; |
|
|
|
std::cout << areaDifference << ", " << volumeDifference << std::endl; |
|
|
|
// areaDifference = after.first - before.first;
|
|
|
|
// volumeDifference = after.second - before.second;
|
|
|
|
// std::cout << areaDifference << ", " << volumeDifference << std::endl;
|
|
|
|
|
|
|
|
/* 体23 */ |
|
|
|
points.clear(); |
|
|
@ -1097,15 +1097,15 @@ void loaderTest2() |
|
|
|
offset = -2900; |
|
|
|
loader.offset(tag23, direction, offset); |
|
|
|
|
|
|
|
before = loader.getAreaAndVolume(tag1); |
|
|
|
// before = loader.getAreaAndVolume(tag1);
|
|
|
|
/* 体1和体23布尔差 */ |
|
|
|
loader.differentNode(tag1, tag23); |
|
|
|
after = loader.getAreaAndVolume(tag1); |
|
|
|
// after = loader.getAreaAndVolume(tag1);
|
|
|
|
|
|
|
|
/* 获取体1 布尔前后的体积差和面积差 */ |
|
|
|
areaDifference = after.first - before.first; |
|
|
|
volumeDifference = after.second - before.second; |
|
|
|
std::cout << areaDifference << ", " << volumeDifference << std::endl; |
|
|
|
// areaDifference = after.first - before.first;
|
|
|
|
// volumeDifference = after.second - before.second;
|
|
|
|
// std::cout << areaDifference << ", " << volumeDifference << std::endl;
|
|
|
|
|
|
|
|
/* 以下为一个循环,凸度组固定,但点组不一样,其他操作一致 */ |
|
|
|
auto cycle1 = [&loader, tag1](const Point3D& point1, const Point3D point2) { |
|
|
@ -1326,20 +1326,25 @@ void loaderTest2() |
|
|
|
points.push_back(Point3D{9439.2132826892957, -23922.043573038238, 0.0000000000000000}); |
|
|
|
points.push_back(Point3D{8993.7087385355990, -24149.036306706977, 0.0000000000000000}); |
|
|
|
|
|
|
|
before = loader.getAreaAndVolume(tag1); |
|
|
|
// before = loader.getAreaAndVolume(tag1);
|
|
|
|
for (size_t i = 0; i < points.size(); i += 4) { cycle2(points[i], points[i + 1], points[i + 2], points[i + 3]); } |
|
|
|
after = loader.getAreaAndVolume(tag1); |
|
|
|
// after = loader.getAreaAndVolume(tag1);
|
|
|
|
|
|
|
|
/* 获取体1 布尔前后的体积差和面积差 */ |
|
|
|
areaDifference = after.first - before.first; |
|
|
|
volumeDifference = after.second - before.second; |
|
|
|
std::cout << areaDifference << ", " << volumeDifference << std::endl; |
|
|
|
// areaDifference = after.first - before.first;
|
|
|
|
// volumeDifference = after.second - before.second;
|
|
|
|
// std::cout << areaDifference << ", " << volumeDifference << std::endl;
|
|
|
|
|
|
|
|
//auto result = loader.getAreaAndVolume(tag1);
|
|
|
|
//std::cout << "result:" << result.first << ", " << result.second << std::endl;
|
|
|
|
|
|
|
|
loader.output(); |
|
|
|
} |
|
|
|
|
|
|
|
int main(int argc, char** argv) |
|
|
|
{ |
|
|
|
// loaderTest1();
|
|
|
|
loaderTest2(); |
|
|
|
// loaderPolyTilted();
|
|
|
|
loaderPolyThickPlane(); |
|
|
|
// loaderPolyThickPlane();
|
|
|
|
return 0; |
|
|
|
} |
|
|
|