Skip to content

Instantly share code, notes, and snippets.

@GainDeveloper
Created July 14, 2024 15:39
Show Gist options
  • Save GainDeveloper/8d336714356173b2445b339a4a44636a to your computer and use it in GitHub Desktop.
Save GainDeveloper/8d336714356173b2445b339a4a44636a to your computer and use it in GitHub Desktop.
Selects matching colours.
import modo
selected = modo.Mesh()
rgbaMap = selected.geometry.vmaps.rgbaMaps[0]
selectedPolygon = selected.geometry.polygons.selected[0]
def GetAverageRGB(vertices):
average = (0,0,0)
numVertices = len(vertices)
for vertex in vertices:
vertexColour = rgbaMap[vertex.index]
average = (average[0] + vertexColour[0], average[1] + vertexColour[1], average[2] + vertexColour[2])
return (average[0] / numVertices, average[1] / numVertices, average[2] / numVertices)
averageSelectedPolygonColour = GetAverageRGB(selectedPolygon.vertices)
def IsMatchingRGB(colour):
for x in range(3):
if abs(colour[x] - averageSelectedPolygonColour[x]) > 0.05:
return False
return True
for polygon in selected.geometry.polygons:
polygonColour = GetAverageRGB(polygon.vertices)
if IsMatchingRGB(polygonColour):
polygon.select()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment