import c4d, random
ID_GRADIENT = 1001
ID_BUTTON_DO = 1002
class MonDlg(c4d.gui.GeDialog):
def CreateLayout(self):
self.grad = self.AddCustomGui(ID_GRADIENT, c4d.CUSTOMGUI_GRADIENT, 'degrade', c4d.BFH_SCALEFIT, 50, 10)#, bc)
self.AddButton(ID_BUTTON_DO,c4d.BFH_SCALEFIT,name = 'Appliquer la couleur')
return True
def InitValues(self):
gradient = c4d.Gradient()
gradient.InsertKnot(col = c4d.Vector(1,0,0), pos = 0)
gradient.InsertKnot(col = c4d.Vector(1,1,0), pos = 0.5)
gradient.InsertKnot(col = c4d.Vector(0,1,0), pos = 1)
self.grad.SetGradient(gradient)
return True
def Command(self, id, msg):
if id == ID_BUTTON_DO:
gradient = self.grad.GetGradient()
irs = c4d.modules.render.InitRenderStruct()
if gradient.InitRender(irs):
doc.StartUndo()
for o in doc.GetActiveObjects(c4d.GETACTIVEOBJECTFLAGS_0):
doc.AddUndo(c4d.UNDOTYPE_CHANGE_SMALL,o)
o[c4d.ID_BASEOBJECT_USECOLOR] = c4d.ID_BASEOBJECT_USECOLOR_ALWAYS
o[c4d.ID_BASEOBJECT_COLOR] = gradient.CalcGradientPixel(random.random())
gradient.FreeRender()
doc.EndUndo()
c4d.EventAdd()
return True
if __name__=='__main__':
dlg = MonDlg()
dlg.Open(c4d.DLG_TYPE_ASYNC)