# Fuse Collinear Edges within a Wire

import salome
salome.salome_init()
import GEOM
from salome.geom import geomBuilder
geompy = geomBuilder.New(salome.myStudy)

# create vertices
p1 = geompy.MakeVertex(0, 0, 0)
p2 = geompy.MakeVertex(70, 0, 0)
p3 = geompy.MakeVertex(70, 50, 0)
p4 = geompy.MakeVertex(70, 80, 0)
p5 = geompy.MakeVertex(50, 80, 0)
p6 = geompy.MakeVertex(20, 80, 0)
p7 = geompy.MakeVertex(0, 80, 0)
p8 = geompy.MakeVertex(0, 30, 0)

points = [p1, p2, p3, p4, p5, p6, p7, p8]

# make a wire
wire_1 = geompy.MakePolyline(points, True)

# suppress some vertices in the wire
wire_2 = geompy.FuseCollinearEdgesWithinWire(wire_1, [p3])
wire_3 = geompy.FuseCollinearEdgesWithinWire(wire_1, [p5, p6])

# suppress all suitable vertices in the wire
wire_4 = geompy.FuseCollinearEdgesWithinWire(wire_1, [])

wires = [wire_1, wire_2, wire_3, wire_4]

# add objects in the study
ii = 1
for point in points:
    geompy.addToStudy(point, "p%d"%ii)
    ii = ii + 1
    pass

ii = 1
for wire in wires:
    geompy.addToStudy(wire, "wire_%d"%ii)
    wire_points = geompy.SubShapeAllSortedCentres(wire, geompy.ShapeType["VERTEX"])
    jj = 1
    for point in wire_points:
        geompy.addToStudyInFather(wire, point, "point_%d"%jj)
        jj = jj + 1
        pass
    ii = ii + 1
    pass

salome.sg.updateObjBrowser(1) 
