Skip to content

Commit

Permalink
U20231224
Browse files Browse the repository at this point in the history
Graphic Draw for Blender 4.0 Fixed. Abort primitive issue fixed.
  • Loading branch information
NevilArt committed Dec 24, 2023
1 parent 34e4e99 commit a29ef6c
Show file tree
Hide file tree
Showing 59 changed files with 1,350 additions and 737 deletions.
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
# 0, 1, 2, 20231210
* Backburner submiter optimized, Same functionality with less registerd operators.
* Reset operator open new empty scene with one click. (File/Reset)
* Note: You still able to add and delete defult cube from New. (File/New/General)
* Join plus rename UVs chanels if chanels count is same in surce and target objects. (Optinal)
* Quadmenu Convert to issues fixed. (3DsMax mode)
* After effect exporter is part of BsMax now (Original authors Bartek Skorupa & Damien Picard)

# 0, 1, 2, 20231127
* Backburner timeout limit issue fixed.
* Backburner submiter shows numbeer of frames are going to render, helps to avoid submit thousands of frame by mistake.
Expand Down
9 changes: 3 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,12 +36,9 @@ If you found this product useful and want to support this project you can Donate
* [Download Older Version (2.80-2.92)(2.93-3.2)](https://github.com/NevilArt/BsMax_2_80)

## Recent Updates and Changes
* Backburner submiter optimized, Same functionality with less registerd operators.
* Reset operator open new empty scene with one click. (File/Reset)
* Note: You still able to add and delete defult cube from New. (File/New/General)
* Join plus rename UVs chanels if chanels count is same in surce and target objects. (Optinal)
* Quadmenu Convert to issues fixed. (3DsMax mode)
* After effect exporter is part of BsMax now (Original authors Bartek Skorupa & Damien Picard)
* Align objects and Target weld preview line is back for Blender 4.0.
* Draw Primitives Local preview gride is back for Blender 4.0.
* Draw Primitives Abort issue in Blender 4.0 Fixed.
* [Change log ...](https://github.com/NevilArt/BsMax/blob/master/CHANGELOG.md)

## License
Expand Down
2 changes: 1 addition & 1 deletion __init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
'name': 'BsMax',
'description': 'Package of many tools + other CG apps UI mimic',
'author': 'Naser Merati (Nevil)',
'version': (0, 1, 2, 20231210),
'version': (0, 1, 2, 20231225),
'blender': (3, 3, 0),# 3.3LTS ~ 4.0
'location': 'Almost Everywhere in Blender',
'wiki_url': 'https://github.com/NevilArt/BsMax/wiki',
Expand Down
62 changes: 7 additions & 55 deletions bsmax/graphic.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
import bpy
import gpu

from bgl import glEnable, GL_BLEND, glDisable, glLineWidth
from gpu_extras.batch import batch_for_shader
from bpy_extras.view3d_utils import location_3d_to_region_2d
from bpy.app import version
Expand All @@ -34,8 +33,7 @@ def get_uniform_color(mode="2D"):
if version < (3, 6, 0):
if mode == "2D":
return "2D_UNIFORM_COLOR"
else:
return "3D_UNIFORM_COLOR"
return "3D_UNIFORM_COLOR"
return "UNIFORM_COLOR"


Expand All @@ -47,50 +45,6 @@ def get_screen_pos(ctx,coord):



def draw_line(self, mode, color):
if version < (4, 0, 0):
glEnable(GL_BLEND)
coords = [self.start, self.end]
shader = gpu.shader.from_builtin(mode)
batch = batch_for_shader(shader, 'LINE_STRIP', {'pos': coords})
shader.bind()
shader.uniform_float('color', color)
batch.draw(shader)
glDisable(GL_BLEND)

else:
pass



def register_line(ctx, self, mode, color):
""" owner most have to 'start' and 'end' point values """
""" self.start self.end """
space = ctx.area.spaces.active
if mode == '2d':
return space.draw_handler_add(
draw_line,
tuple([self, get_uniform_color(mode="2D"), color]),
'WINDOW',
'POST_PIXEL'
)

if mode == '3d':
return space.draw_handler_add(
draw_line,
tuple([self, get_uniform_color(mode="3D"), color]),
'WINDOW',
'POST_VIEW'
)



def unregister_line(handle):
if handle:
bpy.types.SpaceView3D.draw_handler_remove(handle, 'WINDOW')



def rubber_band_create(self, sx, sy, ex, ey):
self.vertices.clear()
self.colors.clear()
Expand All @@ -100,10 +54,8 @@ def rubber_band_create(self, sx, sy, ex, ey):
self.colors.append(self.color_b)


def rubber_band_draw(self):
# glEnable(GL_BLEND)
glLineWidth(self.size)

def rubber_band_draw(self):
if len(self.vertices) == 2:
coords = [self.vertices[0], self.vertices[1]]
batch = batch_for_shader(self.shader, 'LINE_STRIP', {"pos": coords})
Expand All @@ -112,7 +64,6 @@ def rubber_band_draw(self):
self.shader.uniform_float("color", self.color_a)

batch.draw(self.shader)
# glDisable(GL_BLEND)



Expand All @@ -125,7 +76,7 @@ def __init__(self):
self.draw_handler = None
self.vertices = []
self.colors = []
self.color_a = (0.0, 0.5, 0.5, 1.0)
self.color_a = (0.0, 0.75, 0.75, 1.0)
self.color_b = (0.2, 0.0, 0.0, 1.0)
self.shader = gpu.shader.from_builtin(get_uniform_color(mode="2D"))

Expand All @@ -137,10 +88,11 @@ def draw_rubber(self):

def register(self):
SpaceView3D = bpy.types.SpaceView3D
self.draw_handler = SpaceView3D.draw_handler_add(self.draw_rubber, (),
'WINDOW', 'POST_PIXEL')
self.draw_handler = SpaceView3D.draw_handler_add(
self.draw_rubber, (), 'WINDOW', 'POST_PIXEL'
)

def unregister(self):
if self.draw_handler:
bpy.types.SpaceView3D.draw_handler_remove(self.draw_handler, 'WINDOW')
self.draw_handler = None
self.draw_handler = None
22 changes: 20 additions & 2 deletions bsmax/gride.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,16 @@
import bpy
import gpu

from bgl import glEnable, GL_BLEND, glDisable, glLineWidth
from gpu_extras.batch import batch_for_shader
from mathutils import Vector

from bsmax.bsmatrix import BsMatrix, transform_point_to_matrix

from bpy.app import version

if version < (4, 0, 0):
from bgl import glEnable, GL_BLEND, glDisable, glLineWidth



def get_uniform_color(mode="2D"):
Expand Down Expand Up @@ -121,7 +123,23 @@ def local_gride_draw(self):
glDisable(GL_BLEND)

else:
pass
shader = gpu.shader.from_builtin(get_uniform_color(mode="3D"))

# draw gride
self.draw_shader(shader, self.gride, 'LINES', self.gride_color)

# draw border
if self.border:
self.draw_shader(shader, self.border,
'LINE_STRIP', self.border_color)

# draw closs
if self.cross:
self.draw_shader(shader, self.cross[0:2],
'LINES', self.cross_x_color)

self.draw_shader(shader, self.cross[2:4],
'LINES', self.cross_y_color)



Expand Down
2 changes: 1 addition & 1 deletion primitive/adaptive_plane.py
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ def update(self):
self.update_mesh(mesh)

def abort(self):
bpy.ops.object.delete({'selected_objects': [self.owner]})
bpy.ops.object.delete(confirm=False)



Expand Down
2 changes: 1 addition & 1 deletion primitive/arc.py
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ def update(self):
self.update_curve(shapes)

def abort(self):
bpy.ops.object.delete({'selected_objects': [self.owner]})
bpy.ops.object.delete(confirm=False)



Expand Down
2 changes: 1 addition & 1 deletion primitive/bolt.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ def update(self):
self.update_mesh(mesh)

def abort(self):
bpy.ops.object.delete({'selected_objects': [self.owner]})
bpy.ops.object.delete(confirm=False)



Expand Down
2 changes: 1 addition & 1 deletion primitive/bone.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ def abort(self):

# remove armature if no bone created
if len(self.data.bones) == 0:
bpy.ops.object.delete({'selected_objects': [self.owner]})
bpy.ops.object.delete(confirm=False)

self.reset()

Expand Down
2 changes: 1 addition & 1 deletion primitive/box.py
Original file line number Diff line number Diff line change
Expand Up @@ -270,7 +270,7 @@ def update(self):
self.update_mesh(mesh)

def abort(self):
bpy.ops.object.delete({'selected_objects': [self.owner]})
bpy.ops.object.delete(confirm=False)



Expand Down
7 changes: 4 additions & 3 deletions primitive/camera.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,10 @@ def init(self):
self.target = None

def abort(self):
bpy.ops.object.delete({'selected_objects': [self.owner]})
if self.target:
bpy.ops.object.delete({'selected_objects': [self.target]})
bpy.ops.object.select_all(action='DESELECT')
self.owner.select_set(True)
self.target.select_set(True)
bpy.ops.object.delete(confirm=False)



Expand Down
2 changes: 1 addition & 1 deletion primitive/capsule.py
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ def update(self):
self.update_mesh(mesh)

def abort(self):
bpy.ops.object.delete({'selected_objects': [self.owner]})
bpy.ops.object.delete(confirm=False)



Expand Down
2 changes: 1 addition & 1 deletion primitive/circle.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ def update(self):
self.update_curve(shapes)

def abort(self):
bpy.ops.object.delete({'selected_objects': [self.owner]})
bpy.ops.object.delete(confirm=False)



Expand Down
4 changes: 2 additions & 2 deletions primitive/cylinder.py
Original file line number Diff line number Diff line change
Expand Up @@ -238,7 +238,7 @@ def update(self):
self.update_mesh(mesh)

def abort(self):
bpy.ops.object.delete({'selected_objects': [self.owner]})
bpy.ops.object.delete(confirm=False)



Expand All @@ -262,7 +262,7 @@ def update(self):
self.update_mesh(mesh)

def abort(self):
bpy.ops.object.delete({'selected_objects': [self.owner]})
bpy.ops.object.delete(confirm=False)



Expand Down
2 changes: 1 addition & 1 deletion primitive/donut.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ def update(self):
self.update_curve(shapes)

def abort(self):
bpy.ops.object.delete({'selected_objects': [self.owner]})
bpy.ops.object.delete(confirm=False)



Expand Down
2 changes: 1 addition & 1 deletion primitive/effector.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ def init(self):
self.owner = None

def abort(self):
bpy.ops.object.delete({'selected_objects': [self.owner]})
bpy.ops.object.delete(confirm=False)



Expand Down
2 changes: 1 addition & 1 deletion primitive/ellipse.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ def update(self):
self.update_curve(shapes)

def abort(self):
bpy.ops.object.delete({'selected_objects': [self.owner]})
bpy.ops.object.delete(confirm=False)



Expand Down
2 changes: 1 addition & 1 deletion primitive/empty.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ def init(self):
self.owner = None

def abort(self):
bpy.ops.object.delete({'selected_objects': [self.owner]})
bpy.ops.object.delete(confirm=False)



Expand Down
4 changes: 2 additions & 2 deletions primitive/extrude.py
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ def update(self):
self.update_curve(shapes)

def abort(self):
bpy.ops.object.delete({'selected_objects': [self.owner]})
bpy.ops.object.delete(confirm=False)



Expand Down Expand Up @@ -161,7 +161,7 @@ def update(self, ctx):
self.update_mesh(mesh)

def abort(self):
bpy.ops.object.delete({'selected_objects': [self.owner]})
bpy.ops.object.delete(confirm=False)



Expand Down
2 changes: 1 addition & 1 deletion primitive/gear.py
Original file line number Diff line number Diff line change
Expand Up @@ -990,7 +990,7 @@ def update(self):
self.update_mesh(mesh)

def abort(self):
bpy.ops.object.delete({'selected_objects': [self.owner]})
bpy.ops.object.delete(confirm=False)


class Create_OT_Gear(Draw_Primitive):
Expand Down
2 changes: 1 addition & 1 deletion primitive/greacepencil.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ def create(self, ctx, gpencil_type):
self.data = self.owner.data

def abort(self):
bpy.ops.object.delete({'selected_objects': [self.owner]})
bpy.ops.object.delete(confirm=False)



Expand Down
Loading

0 comments on commit a29ef6c

Please sign in to comment.