5 changed files with 532 additions and 239 deletions
@ -0,0 +1,223 @@ |
|||
#include "organizer/loader.hpp" |
|||
|
|||
void loaderTest1() |
|||
{ |
|||
Loader loader; |
|||
|
|||
std::vector<Point3D> points; |
|||
std::vector<double> bulges; |
|||
Vector3D extusion; |
|||
Point3D topPoint, bottomPoint, basePoint; |
|||
Direction3D direction; |
|||
|
|||
double offset, radius1, radius2; |
|||
|
|||
/* 体1 */ |
|||
points.clear(); |
|||
bulges.clear(); |
|||
points.push_back(Point3D{-32450.000001122418, -3.8391231093737305e-07, 0.0000000000000000}); |
|||
points.push_back(Point3D{32449.999998877582, -3.8392495305561452e-07, 0.0000000000000000}); |
|||
bulges.push_back(0.99999999999999989); |
|||
bulges.push_back(0.99999999999999989); |
|||
extusion = Vector3D{0.0000000000000000, 0.0000000000000000, 3300.0000000000000}; |
|||
auto tag1 = loader.addExtrude(points, bulges, extusion); |
|||
|
|||
loader.output(tag1); |
|||
|
|||
/* 体2 */ |
|||
points.clear(); |
|||
bulges.clear(); |
|||
points.push_back(Point3D{-32450.000001122418, -3.8391231093737305e-07, 0.0000000000000000}); |
|||
points.push_back(Point3D{32449.999998877582, -3.8392495305561452e-07, 0.0000000000000000}); |
|||
points.push_back(Point3D{33538.999998877582, -3.8392534654100421e-07, 0.0000000000000000}); |
|||
points.push_back(Point3D{-33539.000001122418, -3.8391228016184551e-07, 0.0000000000000000}); |
|||
bulges.push_back(0.99999999999999989); |
|||
bulges.push_back(0.0000000000000000); |
|||
bulges.push_back(-0.99999999999999989); |
|||
bulges.push_back(0.0000000000000000); |
|||
extusion = Vector3D{0.0000000000000000, 0.0000000000000000, 3300.0000000000000}; |
|||
auto tag2 = loader.addExtrude(points, bulges, extusion); |
|||
|
|||
/* 体3 */ |
|||
points.clear(); |
|||
bulges.clear(); |
|||
points.push_back(Point3D{-32450.000001122418, -3.8391231093737305e-07, 0.0000000000000000}); |
|||
points.push_back(Point3D{32449.999998877582, -3.8392495305561452e-07, 0.0000000000000000}); |
|||
points.push_back(Point3D{33538.999998877582, -3.8392534654100421e-07, 0.0000000000000000}); |
|||
points.push_back(Point3D{-33539.000001122418, -3.8391228016184551e-07, 0.0000000000000000}); |
|||
bulges.push_back(0.99999999999999989); |
|||
bulges.push_back(0.0000000000000000); |
|||
bulges.push_back(-0.99999999999999989); |
|||
bulges.push_back(0.0000000000000000); |
|||
extusion = Vector3D{0.0000000000000000, 0.0000000000000000, 3300.0000000000000}; |
|||
auto tag3 = loader.addExtrude(points, bulges, extusion); |
|||
|
|||
/* 体4 */ |
|||
topPoint = Point3D{-1.1224183253943920e-06, -3.8391322798592142e-07, 0.0000000000000000}; |
|||
bottomPoint = Point3D{-1.1224183253943920e-06, -3.8391322798592142e-07, 3300.0000000000000000}; |
|||
radius1 = 32450.000000000000; |
|||
radius2 = 33539.000000000000; |
|||
auto tag4 = loader.addCone(topPoint, bottomPoint, radius1, radius2); |
|||
|
|||
/* 体3被切割 */ |
|||
basePoint = Point3D{-1.1224183253943920e-06, -3.8391322798592142e-07, 0.0000000000000000}; |
|||
direction = Direction3D{0, 0, 1}; |
|||
loader.split(tag3, basePoint, direction); |
|||
|
|||
/* 体3和体4布尔差 */ |
|||
loader.differentNode(tag3, tag4); |
|||
|
|||
/* 体5 */ |
|||
points.clear(); |
|||
bulges.clear(); |
|||
points.push_back(Point3D{-32450.000001122418, -3.8391231093737305e-07, 0.0000000000000000}); |
|||
points.push_back(Point3D{32449.999998877582, -3.8392495305561452e-07, 0.0000000000000000}); |
|||
points.push_back(Point3D{33538.999998877582, -3.8392534654100421e-07, 0.0000000000000000}); |
|||
points.push_back(Point3D{-33539.000001122418, -3.8391228016184551e-07, 0.0000000000000000}); |
|||
bulges.push_back(0.99999999999999989); |
|||
bulges.push_back(0.0000000000000000); |
|||
bulges.push_back(-0.99999999999999989); |
|||
bulges.push_back(0.0000000000000000); |
|||
extusion = Vector3D{0.0000000000000000, 0.0000000000000000, 3300.0000000000000}; |
|||
auto tag5 = loader.addExtrude(points, bulges, extusion); |
|||
|
|||
/* 体5被切割 */ |
|||
basePoint = Point3D{-1.1224183253943920e-06, -3.8391322798592142e-07, 3300.0000000000000000}; |
|||
direction = Direction3D{0, 0, 1}; |
|||
loader.split(tag3, basePoint, direction); |
|||
|
|||
/* 体3和体5布尔并 */ |
|||
loader.unionNode(tag3, tag5); |
|||
|
|||
/* 体6 */ |
|||
points.clear(); |
|||
bulges.clear(); |
|||
points.push_back(Point3D{-32450.000001122418, -3.8391231093737305e-07, 0.0000000000000000}); |
|||
points.push_back(Point3D{32449.999998877582, -3.8392495305561452e-07, 0.0000000000000000}); |
|||
points.push_back(Point3D{33538.999998877582, -3.8392534654100421e-07, 0.0000000000000000}); |
|||
points.push_back(Point3D{-33539.000001122418, -3.8391228016184551e-07, 0.0000000000000000}); |
|||
bulges.push_back(0.99999999999999989); |
|||
bulges.push_back(0.0000000000000000); |
|||
bulges.push_back(-0.99999999999999989); |
|||
bulges.push_back(0.0000000000000000); |
|||
extusion = Vector3D{0.0000000000000000, 0.0000000000000000, 3300.0000000000000}; |
|||
auto tag6 = loader.addExtrude(points, bulges, extusion); |
|||
|
|||
/* 体6被切割 */ |
|||
basePoint = Point3D{-1.1224183253943920e-06, -3.8391322798592142e-07, 3300.0000000000000000}; |
|||
direction = Direction3D{0, 0, 1}; |
|||
loader.split(tag6, basePoint, direction); |
|||
|
|||
/* 体3和体6布尔并 */ |
|||
loader.unionNode(tag3, tag6); |
|||
|
|||
/* 体2和体3布尔差 */ |
|||
loader.differentNode(tag2, tag3); |
|||
|
|||
/* 体7 */ |
|||
points.clear(); |
|||
bulges.clear(); |
|||
points.push_back(Point3D{32449.999998877582, -3.8392495305561452e-07, 0.0000000000000000}); |
|||
points.push_back(Point3D{-32450.000001122418, -3.8391231093737305e-07, 0.0000000000000000}); |
|||
points.push_back(Point3D{-33539.000001122418, -3.8391191745198337e-07, 0.0000000000000000}); |
|||
points.push_back(Point3D{33538.999998877582, -3.8392498383114206e-07, 0.0000000000000000}); |
|||
bulges.push_back(0.99999999999999989); |
|||
bulges.push_back(0.0000000000000000); |
|||
bulges.push_back(-0.99999999999999989); |
|||
bulges.push_back(0.0000000000000000); |
|||
extusion = Vector3D{0.0000000000000000, 0.0000000000000000, 3300.0000000000000}; |
|||
auto tag7 = loader.addExtrude(points, bulges, extusion); |
|||
|
|||
/* 体8 */ |
|||
points.clear(); |
|||
bulges.clear(); |
|||
points.push_back(Point3D{32449.999998877582, -3.8392495305561452e-07, 0.0000000000000000}); |
|||
points.push_back(Point3D{-32450.000001122418, -3.8391231093737305e-07, 0.0000000000000000}); |
|||
points.push_back(Point3D{-33539.000001122418, -3.8391191745198337e-07, 0.0000000000000000}); |
|||
points.push_back(Point3D{33538.999998877582, -3.8392498383114206e-07, 0.0000000000000000}); |
|||
bulges.push_back(0.99999999999999989); |
|||
bulges.push_back(0.0000000000000000); |
|||
bulges.push_back(-0.99999999999999989); |
|||
bulges.push_back(0.0000000000000000); |
|||
extusion = Vector3D{0.0000000000000000, 0.0000000000000000, 3300.0000000000000}; |
|||
auto tag8 = loader.addExtrude(points, bulges, extusion); |
|||
|
|||
/* 体9 */ |
|||
topPoint = Point3D{-1.1224183253943920e-06, -3.8392403600706615e-07, 0.0000000000000000}; |
|||
bottomPoint = Point3D{-1.1224183253943920e-06, -3.8392403600706615e-07, 3300.0000000000000000}; |
|||
radius1 = 32450.000000000000; |
|||
radius2 = 33539.000000000000; |
|||
auto tag9 = loader.addCone(topPoint, bottomPoint, radius1, radius2); |
|||
|
|||
/* 体8被切割 */ |
|||
basePoint = Point3D{-1.1224183253943920e-06, -3.8392403600706615e-07, 3300.0000000000000000}; |
|||
direction = Direction3D{0, 0, 1}; |
|||
loader.split(tag8, basePoint, direction); |
|||
|
|||
/* 体8和体9布尔差 */ |
|||
loader.differentNode(tag8, tag9); |
|||
|
|||
/* 体10 */ |
|||
points.clear(); |
|||
bulges.clear(); |
|||
points.push_back(Point3D{32449.999998877582, -3.8392495305561452e-07, 0.0000000000000000}); |
|||
points.push_back(Point3D{-32450.000001122418, -3.8391231093737305e-07, 0.0000000000000000}); |
|||
points.push_back(Point3D{-33539.000001122418, -3.8391191745198337e-07, 0.0000000000000000}); |
|||
points.push_back(Point3D{33538.999998877582, -3.8392498383114206e-07, 0.0000000000000000}); |
|||
bulges.push_back(0.99999999999999989); |
|||
bulges.push_back(0.0000000000000000); |
|||
bulges.push_back(-0.99999999999999989); |
|||
bulges.push_back(0.0000000000000000); |
|||
extusion = Vector3D{0.0000000000000000, 0.0000000000000000, 3300.0000000000000}; |
|||
auto tag10 = loader.addExtrude(points, bulges, extusion); |
|||
|
|||
/* 体10被切割 */ |
|||
basePoint = Point3D{-1.1224183253943920e-06, -3.8392403600706615e-07, 3300.0000000000000000}; |
|||
direction = Direction3D{0, 0, 1}; |
|||
loader.split(tag10, basePoint, direction); |
|||
|
|||
/* 体8和体10布尔并 */ |
|||
loader.unionNode(tag8, tag10); |
|||
|
|||
/* 体11 */ |
|||
points.clear(); |
|||
bulges.clear(); |
|||
points.push_back(Point3D{32449.999998877582, -3.8392495305561452e-07, 0.0000000000000000}); |
|||
points.push_back(Point3D{-32450.000001122418, -3.8391231093737305e-07, 0.0000000000000000}); |
|||
points.push_back(Point3D{-33539.000001122418, -3.8391191745198337e-07, 0.0000000000000000}); |
|||
points.push_back(Point3D{33538.999998877582, -3.8392498383114206e-07, 0.0000000000000000}); |
|||
bulges.push_back(0.99999999999999989); |
|||
bulges.push_back(0.0000000000000000); |
|||
bulges.push_back(-0.99999999999999989); |
|||
bulges.push_back(0.0000000000000000); |
|||
extusion = Vector3D{0.0000000000000000, 0.0000000000000000, 3300.0000000000000}; |
|||
auto tag11 = loader.addExtrude(points, bulges, extusion); |
|||
|
|||
/* 体11被切割 */ |
|||
basePoint = Point3D{-1.1224183253943920e-06, -3.8392403600706615e-07, 3300.0000000000000000}; |
|||
direction = Direction3D{0, 0, 1}; |
|||
loader.split(tag11, basePoint, direction); |
|||
|
|||
/* 体8和体11布尔并 */ |
|||
loader.unionNode(tag8, tag11); |
|||
|
|||
/* 体7和体8布尔差 */ |
|||
loader.differentNode(tag7, tag8); |
|||
|
|||
/* 体2和体7布尔并 */ |
|||
loader.unionNode(tag2, tag7); |
|||
|
|||
/* 体1和体2布尔并 */ |
|||
loader.unionNode(tag1, tag2); |
|||
|
|||
/* 体1 Z轴偏移 -3600 */ |
|||
direction = Direction3D{0, 0, 1}; |
|||
offset = -3600; |
|||
loader.offset(tag1, direction, offset); |
|||
} |
|||
|
|||
int main(int argc, char** argv) |
|||
{ |
|||
loaderTest1(); |
|||
return 0; |
|||
} |
Loading…
Reference in new issue