diff --git a/Common/gmsh.h b/Common/gmsh.h index 7965c2ffefe926d0c6a9a608eb1b220fd0bd0fc6..9338931b1016d09d9b8aabd9fc69ea64bf002d3f 100644 --- a/Common/gmsh.h +++ b/Common/gmsh.h @@ -180,22 +180,26 @@ GMSH_API gmshModelOccBooleanUnion(int tag, const vector_pair &objectDimTags, const vector_pair &toolDimTags, vector_pair &outDimTags, std::vector<vector_pair > &outDimTagsMap, - bool removeObject, bool removeTool); + bool removeObject = true, + bool removeTool = true); GMSH_API gmshModelOccBooleanIntersection(int tag, const vector_pair &objectDimTags, const vector_pair &toolDimTags, vector_pair &outDimTags, std::vector<vector_pair > &outDimTagsMap, - bool removeObject, bool removeTool); + bool removeObject = true, + bool removeTool = true); GMSH_API gmshModelOccBooleanDifference(int tag, const vector_pair &objectDimTags, const vector_pair &toolDimTags, vector_pair &outDimTags, std::vector<vector_pair > &outDimTagsMap, - bool removeObject, bool removeTool); + bool removeObject = true, + bool removeTool = true); GMSH_API gmshModelOccBooleanFragments(int tag, const vector_pair &objectDimTags, const vector_pair &toolDimTags, vector_pair &outDimTags, std::vector<vector_pair> &outDimTagsMap, - bool removeObject, bool removeTool); + bool removeObject = true, + bool removeTool = true); GMSH_API gmshModelOccSynchronize(); diff --git a/demos/api/boolean.cpp b/demos/api/boolean.cpp index eb4a08d981861fecb8967c244c0c967ddc3e435e..a040f45d6b5041d6ef8fbd324abfa0db58d262a4 100644 --- a/demos/api/boolean.cpp +++ b/demos/api/boolean.cpp @@ -17,31 +17,19 @@ int main(int argc, char **argv) double R = 1.4, Rs = R*.7, Rt = R*1.25; - std::vector<int> tag = {1,2,3,4,5,6,7,8}; - gmshModelOccAddBox(tag[0], -R,-R,-R, 2*R,2*R,2*R); - gmshModelOccAddSphere(tag[1], 0,0,0,Rt); - - std::vector<std::pair<int, int> > obj, tool, out; - std::vector<std::vector<std::pair<int, int> > > outMap; - - obj.push_back(std::pair<int, int>(3, 1)); - tool.push_back(std::pair<int, int>(3, 2)); - gmshModelOccBooleanIntersection(tag[2], obj, tool, out, outMap, true, true); - - gmshModelOccAddCylinder(tag[3], -2*R,0,0, 4*R,0,0, Rs); - gmshModelOccAddCylinder(tag[4], 0,-2*R,0, 0,4*R,0, Rs); - gmshModelOccAddCylinder(tag[5], 0,0,-2*R, 0,0,4*R, Rs); - - obj.clear(); tool.clear(); - obj.push_back(std::pair<int, int>(3, 4)); - tool.push_back(std::pair<int, int>(3, 5)); - tool.push_back(std::pair<int, int>(3, 6)); - gmshModelOccBooleanUnion(tag[6], obj, tool, out, outMap, true, true); - - obj.clear(); tool.clear(); - obj.push_back(std::pair<int, int>(3, 3)); - tool.push_back(std::pair<int, int>(3, 7)); - gmshModelOccBooleanDifference(tag[7], obj, tool, out, outMap, true, true); + std::vector<int> t = {1,2,3,4,5,6,7,8}; + gmshModelOccAddBox(t[0], -R,-R,-R, 2*R,2*R,2*R); + gmshModelOccAddSphere(t[1], 0,0,0,Rt); + + std::vector<std::pair<int, int> > o; + std::vector<std::vector<std::pair<int, int> > > om; + + gmshModelOccBooleanIntersection(t[2], {{3, t[0]}}, {{3, t[1]}}, o, om); + gmshModelOccAddCylinder(t[3], -2*R,0,0, 4*R,0,0, Rs); + gmshModelOccAddCylinder(t[4], 0,-2*R,0, 0,4*R,0, Rs); + gmshModelOccAddCylinder(t[5], 0,0,-2*R, 0,0,4*R, Rs); + gmshModelOccBooleanUnion(t[6], {{3, t[3]}, {3, t[4]}}, {{3, t[5]}}, o, om); + gmshModelOccBooleanDifference(t[7], {{3, t[2]}}, {{3, t[6]}}, o, om); gmshModelOccSynchronize();