[Bf-blender-cvs] [f04a173d7b5] temp-lanpr-staging: Diff for adding LANPR only.
YimingWu
noreply at git.blender.org
Sun Aug 11 11:16:28 CEST 2019
Commit: f04a173d7b5a7f1540ec64906e8314922300cd96
Author: YimingWu
Date: Sun Aug 11 16:12:04 2019 +0800
Branches: temp-lanpr-staging
https://developer.blender.org/rBf04a173d7b5a7f1540ec64906e8314922300cd96
Diff for adding LANPR only.
===================================================================
M release/datafiles/locale
M release/scripts/addons
M release/scripts/addons_contrib
M release/scripts/startup/bl_operators/__init__.py
M release/scripts/startup/bl_operators/freestyle.py
A release/scripts/startup/bl_operators/lanpr.py
M release/scripts/startup/bl_ui/__init__.py
A release/scripts/startup/bl_ui/properties_collection.py
M release/scripts/startup/bl_ui/properties_data_modifier.py
A release/scripts/startup/bl_ui/properties_lanpr.py
M release/scripts/startup/bl_ui/properties_material.py
M release/scripts/startup/bl_ui/properties_render.py
M release/scripts/startup/bl_ui/space_view3d.py
M source/blender/blenkernel/BKE_gpencil.h
M source/blender/blenkernel/BKE_scene.h
M source/blender/blenkernel/intern/customdata.c
M source/blender/blenkernel/intern/data_transfer.c
M source/blender/blenkernel/intern/gpencil.c
M source/blender/blenkernel/intern/scene.c
M source/blender/blenlib/BLI_math_base.h
M source/blender/blenlib/BLI_math_vector.h
M source/blender/blenlib/intern/math_base_inline.c
M source/blender/blenlib/intern/math_vector.c
M source/blender/blenloader/intern/readfile.c
M source/blender/blenloader/intern/versioning_280.c
M source/blender/blenloader/intern/writefile.c
M source/blender/draw/CMakeLists.txt
A source/blender/draw/engines/lanpr/lanpr_all.h
A source/blender/draw/engines/lanpr/lanpr_chain_draw.c
A source/blender/draw/engines/lanpr/lanpr_cpu.c
A source/blender/draw/engines/lanpr/lanpr_dpix.c
A source/blender/draw/engines/lanpr/lanpr_engine.c
A source/blender/draw/engines/lanpr/lanpr_snake.c
A source/blender/draw/engines/lanpr/shaders/lanpr_dpix_preview_frag.glsl
A source/blender/draw/engines/lanpr/shaders/lanpr_dpix_preview_geom.glsl
A source/blender/draw/engines/lanpr/shaders/lanpr_dpix_project_clip_frag.glsl
A source/blender/draw/engines/lanpr/shaders/lanpr_dpix_project_passthrough_vert.glsl
A source/blender/draw/engines/lanpr/shaders/lanpr_snake_edge_frag.glsl
A source/blender/draw/engines/lanpr/shaders/lanpr_snake_image_peel_frag.glsl
A source/blender/draw/engines/lanpr/shaders/lanpr_snake_line_connection_frag.glsl
A source/blender/draw/engines/lanpr/shaders/lanpr_snake_line_connection_geom.glsl
A source/blender/draw/engines/lanpr/shaders/lanpr_snake_line_connection_vert.glsl
A source/blender/draw/engines/lanpr/shaders/lanpr_snake_multichannel_frag.glsl
A source/blender/draw/engines/lanpr/shaders/lanpr_software_chain_geom.glsl
A source/blender/draw/engines/lanpr/shaders/lanpr_software_line_chain_geom.glsl
A source/blender/draw/engines/lanpr/shaders/lanpr_software_passthrough_vert.glsl
M source/blender/draw/intern/DRW_render.h
M source/blender/draw/intern/draw_cache_impl_mesh.c
M source/blender/draw/intern/draw_common.c
M source/blender/draw/intern/draw_manager.c
M source/blender/draw/intern/draw_manager_texture.c
M source/blender/editors/CMakeLists.txt
A source/blender/editors/include/ED_lanpr.h
M source/blender/editors/include/UI_resources.h
M source/blender/editors/interface/resources.c
A source/blender/editors/lanpr/CMakeLists.txt
A source/blender/editors/lanpr/lanpr_chain.c
A source/blender/editors/lanpr/lanpr_cpu.c
A source/blender/editors/lanpr/lanpr_ops.c
A source/blender/editors/lanpr/lanpr_util.c
M source/blender/editors/mesh/editmesh_path.c
M source/blender/editors/mesh/editmesh_select_similar.c
M source/blender/editors/mesh/editmesh_tools.c
M source/blender/editors/mesh/mesh_intern.h
M source/blender/editors/mesh/mesh_ops.c
M source/blender/editors/render/render_update.c
M source/blender/editors/space_api/spacetypes.c
M source/blender/editors/space_buttons/buttons_context.c
M source/blender/editors/space_buttons/space_buttons.c
M source/blender/editors/space_view3d/space_view3d.c
M source/blender/freestyle/intern/blender_interface/BlenderFileLoader.cpp
M source/blender/makesdna/DNA_collection_types.h
M source/blender/makesdna/DNA_customdata_types.h
M source/blender/makesdna/DNA_gpencil_types.h
A source/blender/makesdna/DNA_lanpr_types.h
M source/blender/makesdna/DNA_material_types.h
M source/blender/makesdna/DNA_meshdata_types.h
M source/blender/makesdna/DNA_modifier_types.h
M source/blender/makesdna/DNA_object_types.h
M source/blender/makesdna/DNA_scene_types.h
M source/blender/makesdna/DNA_space_types.h
M source/blender/makesdna/intern/makesdna.c
M source/blender/makesrna/RNA_access.h
M source/blender/makesrna/intern/CMakeLists.txt
M source/blender/makesrna/intern/makesrna.c
M source/blender/makesrna/intern/rna_collection.c
M source/blender/makesrna/intern/rna_internal.h
A source/blender/makesrna/intern/rna_lanpr.c
M source/blender/makesrna/intern/rna_material.c
M source/blender/makesrna/intern/rna_mesh.c
M source/blender/makesrna/intern/rna_modifier.c
M source/blender/makesrna/intern/rna_object.c
M source/blender/makesrna/intern/rna_scene.c
M source/blender/makesrna/intern/rna_space.c
M source/blender/modifiers/CMakeLists.txt
M source/blender/modifiers/MOD_modifiertypes.h
M source/blender/modifiers/intern/MOD_edgesplit.c
A source/blender/modifiers/intern/MOD_featureline.c
M source/blender/modifiers/intern/MOD_util.c
M source/blender/python/bmesh/bmesh_py_types_customdata.c
M source/tools
===================================================================
diff --git a/release/datafiles/locale b/release/datafiles/locale
index 63f65770e67..ad82c4ce43e 160000
--- a/release/datafiles/locale
+++ b/release/datafiles/locale
@@ -1 +1 @@
-Subproject commit 63f65770e67f38db29f76ac910dd87bd9841b919
+Subproject commit ad82c4ce43ef2801ef51e75af1f9702992478b02
diff --git a/release/scripts/addons b/release/scripts/addons
index 37a8bdc6616..8e6f485cf5b 160000
--- a/release/scripts/addons
+++ b/release/scripts/addons
@@ -1 +1 @@
-Subproject commit 37a8bdc661649cb6197e73b5eb96481cd5fb0c5e
+Subproject commit 8e6f485cf5b160c425d7da7c743879b20f3d6a96
diff --git a/release/scripts/addons_contrib b/release/scripts/addons_contrib
index d9ed9d4d064..7077ff07384 160000
--- a/release/scripts/addons_contrib
+++ b/release/scripts/addons_contrib
@@ -1 +1 @@
-Subproject commit d9ed9d4d064c74c86e2767cd4be32d602a0ee317
+Subproject commit 7077ff07384491d1f7630484995557f1c7302dae
diff --git a/release/scripts/startup/bl_operators/__init__.py b/release/scripts/startup/bl_operators/__init__.py
index bb92e070d00..3cdded79fd2 100644
--- a/release/scripts/startup/bl_operators/__init__.py
+++ b/release/scripts/startup/bl_operators/__init__.py
@@ -32,6 +32,7 @@ _modules = [
"constraint",
"file",
"image",
+ "lanpr",
"mask",
"mesh",
"node",
diff --git a/release/scripts/startup/bl_operators/freestyle.py b/release/scripts/startup/bl_operators/freestyle.py
index 3d619f97e6e..14456941eb8 100644
--- a/release/scripts/startup/bl_operators/freestyle.py
+++ b/release/scripts/startup/bl_operators/freestyle.py
@@ -148,7 +148,7 @@ class SCENE_OT_freestyle_add_edge_marks_to_keying_set(bpy.types.Operator):
scene = context.scene
ks = scene.keying_sets.active
if ks is None:
- ks = scene.keying_sets.new(idname="FreestyleEdgeMarkKeyingSet", name="Freestyle Edge Mark Keying Set")
+ ks = scene.keying_sets.new(idname="LanprEdgeMarkKeyingSet", name="Freestyle Edge Mark Keying Set")
ks.bl_description = ""
# add data paths to the keying set
ob = context.active_object
@@ -179,7 +179,7 @@ class SCENE_OT_freestyle_add_face_marks_to_keying_set(bpy.types.Operator):
scene = context.scene
ks = scene.keying_sets.active
if ks is None:
- ks = scene.keying_sets.new(idname="FreestyleFaceMarkKeyingSet", name="Freestyle Face Mark Keying Set")
+ ks = scene.keying_sets.new(idname="LanprFaceMarkKeyingSet", name="Freestyle Face Mark Keying Set")
ks.bl_description = ""
# add data paths to the keying set
ob = context.active_object
diff --git a/release/scripts/startup/bl_operators/lanpr.py b/release/scripts/startup/bl_operators/lanpr.py
new file mode 100644
index 00000000000..8cdf0842ae7
--- /dev/null
+++ b/release/scripts/startup/bl_operators/lanpr.py
@@ -0,0 +1,41 @@
+# ##### BEGIN GPL LICENSE BLOCK #####
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# ##### END GPL LICENSE BLOCK #####
+
+# <pep8 compliant>
+
+import bpy
+import string
+
+class LANPR_reset_object_transfromations(bpy.types.Operator):
+ """Reset Transformations"""
+ bl_idname = "lanpr.reset_object_transfromations"
+ bl_label = "Reset Transformations"
+
+ obj = bpy.props.StringProperty(name="Target Object")
+
+ def execute(self, context):
+ print(self.obj)
+ ob = bpy.data.objects[self.obj]
+ ob.location.zero()
+ ob.rotation_euler.zero()
+ ob.scale.xyz=[1,1,1]
+ return {'FINISHED'}
+
+classes=(
+ LANPR_reset_object_transfromations,
+)
diff --git a/release/scripts/startup/bl_ui/__init__.py b/release/scripts/startup/bl_ui/__init__.py
index 44229b2afdf..3d3511e0035 100644
--- a/release/scripts/startup/bl_ui/__init__.py
+++ b/release/scripts/startup/bl_ui/__init__.py
@@ -65,6 +65,8 @@ _modules = [
"properties_scene",
"properties_texture",
"properties_world",
+ "properties_collection",
+ "properties_lanpr",
# Generic Space Modules
#
diff --git a/release/scripts/startup/bl_ui/properties_collection.py b/release/scripts/startup/bl_ui/properties_collection.py
new file mode 100644
index 00000000000..94b2a1aabd8
--- /dev/null
+++ b/release/scripts/startup/bl_ui/properties_collection.py
@@ -0,0 +1,119 @@
+# ##### BEGIN GPL LICENSE BLOCK #####
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# ##### END GPL LICENSE BLOCK #####
+
+# <pep8 compliant>
+from bpy.types import Panel
+from bpy import data
+from mathutils import Vector
+
+
+class CollectionButtonsPanel:
+ bl_space_type = 'PROPERTIES'
+ bl_region_type = 'WINDOW'
+ bl_context = "collection"
+ # COMPAT_ENGINES must be defined in each subclass, external engines can add themselves here
+
+ @classmethod
+ def poll(cls, context):
+ return (context.engine in cls.COMPAT_ENGINES)
+
+class COLLECTION_PT_collection_flags(CollectionButtonsPanel, Panel):
+ bl_label = "Collection Flags"
+
+ def draw(self, context):
+ layout=self.layout
+ collection=context.collection
+ vl = context.view_layer
+ vlc = vl.active_layer_collection
+ if vlc.name == 'Master Collection':
+ row = layout.row()
+ row.label(text="This is the master collection")
+ return
+
+ row = layout.row()
+ col = row.column(align=True)
+ col.prop(vlc,"hide_viewport")
+ col.prop(vlc,"holdout")
+ col.prop(vlc,"indirect_only")
+ row = layout.row()
+ col = row.column(align=True)
+ col.prop(collection,"hide_select")
+ col.prop(collection,"hide_viewport")
+ col.prop(collection,"hide_render")
+
+def is_unit_transformation(ob):
+ if ob.scale.xyz==Vector((1,1,1)) and ob.location.xyz==Vector((0,0,0)) and \
+ ob.rotation_euler.x == 0.0 and ob.rotation_euler.y == 0.0 and ob.rotation_euler.z == 0.0:
+ return True
+ return False
+
+
+class COLLECTION_PT_lanpr_collection(CollectionButtonsPanel, Panel):
+ bl_label = "Collection LANPR"
+
+ @classmethod
+ def poll(cls, context):
+ return context.scene.render.engine == 'BLENDER_LANPR' or context.scene.lanpr.enabled
+
+ def draw(self,context):
+ layout = self.layout
+ layout.use_property_split = True
+ layout.use_property_decorate = False
+ collection = context.collection
+ lanpr = collection.lanpr
+ row = layout.row()
+ row.prop(lanpr,"usage")
+ if lanpr.usage!='INCLUDE':
+ layout.prop(lanpr,"force")
+ else:
+ layout.prop(lanpr,"target")
+
+ if lanpr.target:
+
+ if not is_unit_transformation(lanpr.target):
+ layout.label(text = "Target GP has self transformations.")
+ layout.operator("lanpr.reset_object_transfromations").obj=lanpr.target.name
+
+ layout.prop(lanpr,'use_multiple_levels', text="Multiple Levels")
+
+ if lanpr.use_multiple_levels:
+ col = layout.column(align=True)
+ col.prop(lanpr,'level_begin',text="Level Begin")
+ col.prop(lanpr,'level_end',text="End")
+ else:
+ layout.prop(lanpr,'level_begin',text="Level")
+
+ layout.prop(lanpr,'enable_contour')
+ layout.prop(lanpr,'enable_crease')
+ layout.prop(lanpr,'enable_mark')
+ layout.prop(lanpr,'enable_material')
+ layout.prop(lanpr,'enable_intersection')
+
+ layout.prop(lanpr,'layer')
+ layout.prop(lanpr,'material')
+
+
+classes = (
+ COLLECTION_PT_collection_flags,
+ COLLECTION_PT_lanpr_collection,
+)
+
+if __name__ == "__main__": # only for live edit.
+ from bpy.utils import register_class
+ for cls in classes:
+ register_class(cls)
diff --git a/release/scripts/startup/bl_ui/properties_data_modifier.py b/release/scripts/startup/bl_ui/properties_data_modifier.py
index 1d1ee2e52be..396d0a5db88 100644
--- a/release/scripts/startup/bl_ui/properties_data_modifier.py
+++ b/release/scripts/startup/bl_ui/properties_data_modifier.py
@@ -20,6 +20,7 @@
import bpy
from bpy.types import Panel
from bpy.app.translations import pgettext_iface as iface_
+from mathutils import Vector
class ModifierButtonsPanel:
@@ -400,6 +401,10 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
split.prop(md, "use_edge_sharp", text="Sharp Edges")
+ layout.prop(md, "ignore_lanpr")
+ if md.ignore_lanpr:
+ layout.label(text="Enabeling edge split may cause problems in LANPR.")
+
def EXPLODE(self, layout, ob, md):
split = layout.split()
@@ -1641,6 +1646,12 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
col.prop(m
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list