mirror of http://CODE.RHODECODE.COM/u/O/O/O
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
125 lines
4.1 KiB
125 lines
4.1 KiB
import bpy |
|
import gpu |
|
import blf |
|
from gpu_extras.batch import batch_for_shader |
|
|
|
|
|
def RA_modal_Draw(self, context, prefs): |
|
height = bpy.context.region.height |
|
width = bpy.context.region.width |
|
CO = context.object |
|
|
|
font_id = 0 |
|
|
|
#+ text |
|
if CO.RA_Unq_mode == True: |
|
blf.color (font_id,0.9,0.32,0.35,1) |
|
else: |
|
blf.color (font_id,0.85,0.85,0.85,1) |
|
#* Offset |
|
blf.position(font_id, (width/2) - 200, (height/2) - 250, 0) |
|
blf.size(font_id, 20, 60) |
|
blf.draw(font_id, ("{} {}".format("Offset: ",str(round(CO.RA_Offset, 2)))) ) |
|
|
|
#* Object Selectable |
|
blf.position(font_id, (width/2) + 50, (height/2) - 250, 0) |
|
|
|
blf.draw(font_id, ("{} {}".format("Selectable: ",str(CO.RA_Sel_Status))) ) |
|
|
|
#* Object Number "Count" |
|
blf.position(font_id, (width/2) - 50, (height/2) - 250, 0) |
|
if CO.RA_Unq_mode == True: |
|
blf.color (font_id,0.5,0.5,0.5,1) |
|
else: |
|
blf.color (font_id,0.85,0.85,0.85,1) |
|
|
|
blf.draw(font_id, ("{} {}".format("Count: ",str(round(CO.RA_ObjNum, 2)))) ) |
|
#* Show/Hide Help |
|
blf.color (font_id,1,1,1,1) |
|
text = "Show/Hide Help 'H'" |
|
blf.position(font_id, (width/2 - blf.dimensions(font_id, text)[0] / 2), (height/2) - 230, 0) |
|
|
|
blf.draw(font_id, text) |
|
#+--------------------------------------------------------------+# |
|
#* Unique Mode |
|
blf.color (font_id,0.8,0.4,0.0,1) |
|
text = "Unique Mode: " |
|
blf.position(font_id, (width/2 - 84), (height/2) - 270, 0) |
|
blf.draw(font_id, text) |
|
#-------------------------# |
|
if CO.RA_Unq_mode == True: |
|
blf.color (font_id,0.1,0.94,0.4,1) |
|
unq_text = "Active" |
|
else: |
|
blf.color (font_id,0.6,0.1,0.0,1) |
|
unq_text = "--------" |
|
blf.position(font_id, (width/2 + 34), (height/2) - 270, 0) |
|
blf.draw(font_id, unq_text) |
|
#+--------------------------------------------------------------+# |
|
#* Help |
|
blf.color (font_id,0.6,1,0.6,1) |
|
if prefs.modal_help == True: |
|
lines = ["Reset 'R'", |
|
"Apply 'A'", |
|
"Join 'J' ends radial mode and merges all objects", |
|
"Grab 'G'", |
|
"Unique Mode 'Q' unlinks objects data block", |
|
"'RMB' and Esc to Cancel", |
|
"'Shift' to snap offset", |
|
"'Mouse Wheel' Increase/Decrease Count" |
|
] |
|
for index, l in enumerate(lines): |
|
text = l |
|
blf.position(font_id, (width/2) - 200, (height/2 -200) + 20 * index, 0) |
|
|
|
blf.draw(font_id, text) |
|
|
|
def RA_draw_B(self, context, prefs): |
|
height = bpy.context.region.height |
|
width = bpy.context.region.width |
|
CO = bpy.context.object |
|
#+-----------------------------------------------------------------------+# |
|
vertices = ( |
|
(width/2 - 80 , height/2 - 215),(width/2 + 80, height/2 - 215), |
|
(width/2 - 90, height/2 - 233),( width/2 + 90, height/2 - 233) ) |
|
|
|
indices = ( |
|
(0, 1, 2), (2, 1, 3)) |
|
|
|
shader = gpu.shader.from_builtin('2D_UNIFORM_COLOR') |
|
batch = batch_for_shader(shader, 'TRIS', {"pos": vertices}, indices=indices) |
|
|
|
shader.bind() |
|
|
|
shader.uniform_float("color", (0.8,0.4,0.0,1)) |
|
batch.draw(shader) |
|
#+-----------------------------------------------------------------------+# |
|
vertices = ( |
|
(width/2 - 216 , height/2 - 234),(width/2 + 206, height/2 - 234), |
|
(width/2 - 220, height/2 - 254),( width/2 + 200, height/2 - 254) ) |
|
|
|
indices = ( |
|
(0, 1, 2), (2, 1, 3)) |
|
|
|
shader = gpu.shader.from_builtin('2D_UNIFORM_COLOR') |
|
batch = batch_for_shader(shader, 'TRIS', {"pos": vertices}, indices=indices) |
|
|
|
|
|
|
|
shader.bind() |
|
shader.uniform_float("color", (0.15,0.15,0.15,1)) |
|
batch.draw(shader) |
|
#+-----------------------------------------------------------------------+# |
|
vertices = ( |
|
(width/2 - 96 , height/2 - 253),(width/2 + 96, height/2 - 253), |
|
(width/2 - 86, height/2 - 274),( width/2 + 86, height/2 - 274) ) |
|
|
|
indices = ( |
|
(0, 1, 2), (2, 1, 3)) |
|
|
|
shader = gpu.shader.from_builtin('2D_UNIFORM_COLOR') |
|
batch = batch_for_shader(shader, 'TRIS', {"pos": vertices}, indices=indices) |
|
|
|
shader.bind() |
|
shader.uniform_float("color", (0.15,0.15,0.15,1)) |
|
batch.draw(shader) |