Topologic is a software modelling library enabling hierarchical and topological representations of architectural spaces, buildings and artefacts through non-manifold topology.
GNU Affero General Public License v3.0
74
stars
19
forks
source link
Repeating the same Boolean operation with the same operands may produce different results. #1
Expected Behavior
Performing the same Boolean operation with the same operands should return the same result when repeated.
Current Behavior
Some operations return different and wrong results when repeated.
Possible Solution
Steps to Reproduce (for bugs)
p1 = Point.ByCoordinates(-5,-5,0);
p2 = Point.ByCoordinates(5,-5,0);
p3 = Point.ByCoordinates(5,5,0);
p4 = Point.ByCoordinates(-5,5,0);
s1 = Surface.ByPerimeterPoints({p1,p2,p3,p4});
A = TopoLogic.Face.BySurface(s1);
p1 = Point.ByCoordinates(1,1,0);
p2 = Point.ByCoordinates(10,1,0);
p3 = Point.ByCoordinates(10,10,0);
p4 = Point.ByCoordinates(1,10,0);
s2 = Surface.ByPerimeterPoints({p1,p2,p3,p4});
B = TopoLogic.Face.BySurface(s2);
Create a node A.Union(B)
C = A.Union(B)
Connect A and B to the Union node, see the result. (There is a separate bug with drawing the face).
Disconnect one of the inputs, reconnect it again. See the result.
Context
Your Environment