2023-08-15 14:20:26 +00:00
|
|
|
# SPDX-FileCopyrightText: 2009-2023 Blender Authors
|
2023-06-15 03:09:04 +00:00
|
|
|
#
|
2022-02-10 22:07:11 +00:00
|
|
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
2023-06-15 03:09:04 +00:00
|
|
|
|
2020-03-17 13:41:48 +00:00
|
|
|
import bpy
|
2020-08-19 16:12:52 +00:00
|
|
|
from bpy.types import Menu, Panel, UIList
|
2020-03-17 13:41:48 +00:00
|
|
|
from rna_prop_ui import PropertyPanel
|
|
|
|
|
|
|
|
|
|
|
|
class DataButtonsPanel:
|
|
|
|
bl_space_type = 'PROPERTIES'
|
|
|
|
bl_region_type = 'WINDOW'
|
|
|
|
bl_context = "data"
|
|
|
|
|
|
|
|
@classmethod
|
|
|
|
def poll(cls, context):
|
|
|
|
engine = context.scene.render.engine
|
2023-01-06 02:52:57 +00:00
|
|
|
return hasattr(context, "curves") and context.curves and (engine in cls.COMPAT_ENGINES)
|
2020-03-17 13:41:48 +00:00
|
|
|
|
|
|
|
|
Curves: Rename "Hair" types, variables, and functions to "Curves"
Based on discussions from T95355 and T94193, the plan is to use
the name "Curves" to describe the data-block container for multiple
curves. Eventually this will replace the existing "Curve" data-block.
However, it will be a while before the curve data-block can be replaced
so in order to distinguish the two curve types in the UI, "Hair Curves"
will be used, but eventually changed back to "Curves".
This patch renames "hair-related" files, functions, types, and variable
names to this convention. A deep rename is preferred to keep code
consistent and to avoid any "hair" terminology from leaking, since the
new data-block is meant for all curve types, not just hair use cases.
The downside of this naming is that the difference between "Curve"
and "Curves" has become important. That was considered during
design discussons and deemed acceptable, especially given the
non-permanent nature of the somewhat common conflict.
Some points of interest:
- All DNA compatibility is lost, just like rBf59767ff9729.
- I renamed `ID_HA` to `ID_CV` so there is no complete mismatch.
- `hair_curves` is used where necessary to distinguish from the
existing "curves" plural.
- I didn't rename any of the cycles/rendering code function names,
since that is also used by the old hair particle system.
Differential Revision: https://developer.blender.org/D14007
2022-02-07 17:55:54 +00:00
|
|
|
class DATA_PT_context_curves(DataButtonsPanel, Panel):
|
2020-03-17 13:41:48 +00:00
|
|
|
bl_label = ""
|
|
|
|
bl_options = {'HIDE_HEADER'}
|
2023-01-24 16:58:58 +00:00
|
|
|
COMPAT_ENGINES = {
|
|
|
|
'BLENDER_RENDER',
|
|
|
|
'BLENDER_EEVEE',
|
|
|
|
'BLENDER_EEVEE_NEXT',
|
2023-09-29 04:32:54 +00:00
|
|
|
'BLENDER_WORKBENCH',
|
|
|
|
}
|
2020-03-17 13:41:48 +00:00
|
|
|
|
|
|
|
def draw(self, context):
|
|
|
|
layout = self.layout
|
|
|
|
|
|
|
|
ob = context.object
|
Curves: Rename "Hair" types, variables, and functions to "Curves"
Based on discussions from T95355 and T94193, the plan is to use
the name "Curves" to describe the data-block container for multiple
curves. Eventually this will replace the existing "Curve" data-block.
However, it will be a while before the curve data-block can be replaced
so in order to distinguish the two curve types in the UI, "Hair Curves"
will be used, but eventually changed back to "Curves".
This patch renames "hair-related" files, functions, types, and variable
names to this convention. A deep rename is preferred to keep code
consistent and to avoid any "hair" terminology from leaking, since the
new data-block is meant for all curve types, not just hair use cases.
The downside of this naming is that the difference between "Curve"
and "Curves" has become important. That was considered during
design discussons and deemed acceptable, especially given the
non-permanent nature of the somewhat common conflict.
Some points of interest:
- All DNA compatibility is lost, just like rBf59767ff9729.
- I renamed `ID_HA` to `ID_CV` so there is no complete mismatch.
- `hair_curves` is used where necessary to distinguish from the
existing "curves" plural.
- I didn't rename any of the cycles/rendering code function names,
since that is also used by the old hair particle system.
Differential Revision: https://developer.blender.org/D14007
2022-02-07 17:55:54 +00:00
|
|
|
curves = context.curves
|
2020-03-17 13:41:48 +00:00
|
|
|
space = context.space_data
|
|
|
|
|
|
|
|
if ob:
|
|
|
|
layout.template_ID(ob, "data")
|
Curves: Rename "Hair" types, variables, and functions to "Curves"
Based on discussions from T95355 and T94193, the plan is to use
the name "Curves" to describe the data-block container for multiple
curves. Eventually this will replace the existing "Curve" data-block.
However, it will be a while before the curve data-block can be replaced
so in order to distinguish the two curve types in the UI, "Hair Curves"
will be used, but eventually changed back to "Curves".
This patch renames "hair-related" files, functions, types, and variable
names to this convention. A deep rename is preferred to keep code
consistent and to avoid any "hair" terminology from leaking, since the
new data-block is meant for all curve types, not just hair use cases.
The downside of this naming is that the difference between "Curve"
and "Curves" has become important. That was considered during
design discussons and deemed acceptable, especially given the
non-permanent nature of the somewhat common conflict.
Some points of interest:
- All DNA compatibility is lost, just like rBf59767ff9729.
- I renamed `ID_HA` to `ID_CV` so there is no complete mismatch.
- `hair_curves` is used where necessary to distinguish from the
existing "curves" plural.
- I didn't rename any of the cycles/rendering code function names,
since that is also used by the old hair particle system.
Differential Revision: https://developer.blender.org/D14007
2022-02-07 17:55:54 +00:00
|
|
|
elif curves:
|
2020-03-17 13:41:48 +00:00
|
|
|
layout.template_ID(space, "pin_id")
|
|
|
|
|
|
|
|
|
2022-02-25 12:22:42 +00:00
|
|
|
class DATA_PT_curves_surface(DataButtonsPanel, Panel):
|
|
|
|
bl_label = "Surface"
|
2023-01-24 16:58:58 +00:00
|
|
|
COMPAT_ENGINES = {
|
|
|
|
'BLENDER_RENDER',
|
|
|
|
'BLENDER_EEVEE',
|
|
|
|
'BLENDER_EEVEE_NEXT',
|
2023-09-29 04:32:54 +00:00
|
|
|
'BLENDER_WORKBENCH',
|
|
|
|
}
|
2022-02-25 12:22:42 +00:00
|
|
|
|
|
|
|
def draw(self, context):
|
|
|
|
layout = self.layout
|
|
|
|
ob = context.object
|
|
|
|
|
2022-03-11 20:57:50 +00:00
|
|
|
layout.use_property_split = True
|
|
|
|
|
2022-02-25 12:22:42 +00:00
|
|
|
layout.prop(ob.data, "surface")
|
2022-09-13 11:19:15 +00:00
|
|
|
has_surface = ob.data.surface is not None
|
|
|
|
if has_surface:
|
2024-01-28 10:59:10 +00:00
|
|
|
layout.prop_search(
|
|
|
|
ob.data,
|
|
|
|
"surface_uv_map",
|
|
|
|
ob.data.surface.data,
|
|
|
|
"uv_layers",
|
|
|
|
text="UV Map",
|
|
|
|
icon='GROUP_UVS')
|
2022-09-13 11:19:15 +00:00
|
|
|
else:
|
|
|
|
row = layout.row()
|
|
|
|
row.prop(ob.data, "surface_uv_map", text="UV Map")
|
2024-01-27 00:06:32 +00:00
|
|
|
row.active = has_surface
|
2022-02-25 12:22:42 +00:00
|
|
|
|
|
|
|
|
Curves: Rename "Hair" types, variables, and functions to "Curves"
Based on discussions from T95355 and T94193, the plan is to use
the name "Curves" to describe the data-block container for multiple
curves. Eventually this will replace the existing "Curve" data-block.
However, it will be a while before the curve data-block can be replaced
so in order to distinguish the two curve types in the UI, "Hair Curves"
will be used, but eventually changed back to "Curves".
This patch renames "hair-related" files, functions, types, and variable
names to this convention. A deep rename is preferred to keep code
consistent and to avoid any "hair" terminology from leaking, since the
new data-block is meant for all curve types, not just hair use cases.
The downside of this naming is that the difference between "Curve"
and "Curves" has become important. That was considered during
design discussons and deemed acceptable, especially given the
non-permanent nature of the somewhat common conflict.
Some points of interest:
- All DNA compatibility is lost, just like rBf59767ff9729.
- I renamed `ID_HA` to `ID_CV` so there is no complete mismatch.
- `hair_curves` is used where necessary to distinguish from the
existing "curves" plural.
- I didn't rename any of the cycles/rendering code function names,
since that is also used by the old hair particle system.
Differential Revision: https://developer.blender.org/D14007
2022-02-07 17:55:54 +00:00
|
|
|
class CURVES_MT_add_attribute(Menu):
|
2020-08-19 16:12:52 +00:00
|
|
|
bl_label = "Add Attribute"
|
|
|
|
|
|
|
|
@staticmethod
|
Curves: Rename "Hair" types, variables, and functions to "Curves"
Based on discussions from T95355 and T94193, the plan is to use
the name "Curves" to describe the data-block container for multiple
curves. Eventually this will replace the existing "Curve" data-block.
However, it will be a while before the curve data-block can be replaced
so in order to distinguish the two curve types in the UI, "Hair Curves"
will be used, but eventually changed back to "Curves".
This patch renames "hair-related" files, functions, types, and variable
names to this convention. A deep rename is preferred to keep code
consistent and to avoid any "hair" terminology from leaking, since the
new data-block is meant for all curve types, not just hair use cases.
The downside of this naming is that the difference between "Curve"
and "Curves" has become important. That was considered during
design discussons and deemed acceptable, especially given the
non-permanent nature of the somewhat common conflict.
Some points of interest:
- All DNA compatibility is lost, just like rBf59767ff9729.
- I renamed `ID_HA` to `ID_CV` so there is no complete mismatch.
- `hair_curves` is used where necessary to distinguish from the
existing "curves" plural.
- I didn't rename any of the cycles/rendering code function names,
since that is also used by the old hair particle system.
Differential Revision: https://developer.blender.org/D14007
2022-02-07 17:55:54 +00:00
|
|
|
def add_standard_attribute(layout, curves, name, data_type, domain):
|
|
|
|
exists = curves.attributes.get(name) is not None
|
2020-08-19 16:12:52 +00:00
|
|
|
|
|
|
|
col = layout.column()
|
|
|
|
col.enabled = not exists
|
|
|
|
col.operator_context = 'EXEC_DEFAULT'
|
|
|
|
|
|
|
|
props = col.operator("geometry.attribute_add", text=name)
|
|
|
|
props.name = name
|
|
|
|
props.data_type = data_type
|
|
|
|
props.domain = domain
|
2020-03-17 13:41:48 +00:00
|
|
|
|
|
|
|
def draw(self, context):
|
|
|
|
layout = self.layout
|
Curves: Rename "Hair" types, variables, and functions to "Curves"
Based on discussions from T95355 and T94193, the plan is to use
the name "Curves" to describe the data-block container for multiple
curves. Eventually this will replace the existing "Curve" data-block.
However, it will be a while before the curve data-block can be replaced
so in order to distinguish the two curve types in the UI, "Hair Curves"
will be used, but eventually changed back to "Curves".
This patch renames "hair-related" files, functions, types, and variable
names to this convention. A deep rename is preferred to keep code
consistent and to avoid any "hair" terminology from leaking, since the
new data-block is meant for all curve types, not just hair use cases.
The downside of this naming is that the difference between "Curve"
and "Curves" has become important. That was considered during
design discussons and deemed acceptable, especially given the
non-permanent nature of the somewhat common conflict.
Some points of interest:
- All DNA compatibility is lost, just like rBf59767ff9729.
- I renamed `ID_HA` to `ID_CV` so there is no complete mismatch.
- `hair_curves` is used where necessary to distinguish from the
existing "curves" plural.
- I didn't rename any of the cycles/rendering code function names,
since that is also used by the old hair particle system.
Differential Revision: https://developer.blender.org/D14007
2022-02-07 17:55:54 +00:00
|
|
|
curves = context.curves
|
2020-08-19 16:12:52 +00:00
|
|
|
|
2023-01-06 02:52:57 +00:00
|
|
|
self.add_standard_attribute(layout, curves, "radius", 'FLOAT', 'POINT')
|
|
|
|
self.add_standard_attribute(layout, curves, "color", 'FLOAT_COLOR', 'POINT')
|
2020-08-19 16:12:52 +00:00
|
|
|
|
|
|
|
layout.separator()
|
|
|
|
|
|
|
|
layout.operator_context = 'INVOKE_DEFAULT'
|
|
|
|
layout.operator("geometry.attribute_add", text="Custom...")
|
|
|
|
|
|
|
|
|
Curves: Rename "Hair" types, variables, and functions to "Curves"
Based on discussions from T95355 and T94193, the plan is to use
the name "Curves" to describe the data-block container for multiple
curves. Eventually this will replace the existing "Curve" data-block.
However, it will be a while before the curve data-block can be replaced
so in order to distinguish the two curve types in the UI, "Hair Curves"
will be used, but eventually changed back to "Curves".
This patch renames "hair-related" files, functions, types, and variable
names to this convention. A deep rename is preferred to keep code
consistent and to avoid any "hair" terminology from leaking, since the
new data-block is meant for all curve types, not just hair use cases.
The downside of this naming is that the difference between "Curve"
and "Curves" has become important. That was considered during
design discussons and deemed acceptable, especially given the
non-permanent nature of the somewhat common conflict.
Some points of interest:
- All DNA compatibility is lost, just like rBf59767ff9729.
- I renamed `ID_HA` to `ID_CV` so there is no complete mismatch.
- `hair_curves` is used where necessary to distinguish from the
existing "curves" plural.
- I didn't rename any of the cycles/rendering code function names,
since that is also used by the old hair particle system.
Differential Revision: https://developer.blender.org/D14007
2022-02-07 17:55:54 +00:00
|
|
|
class CURVES_UL_attributes(UIList):
|
2022-06-14 04:30:09 +00:00
|
|
|
def filter_items(self, _context, data, property):
|
2022-05-31 11:20:16 +00:00
|
|
|
attributes = getattr(data, property)
|
|
|
|
flags = []
|
|
|
|
indices = [i for i in range(len(attributes))]
|
|
|
|
|
2022-12-02 11:50:00 +00:00
|
|
|
# Filtering by name
|
|
|
|
if self.filter_name:
|
|
|
|
flags = bpy.types.UI_UL_list.filter_items_by_name(
|
|
|
|
self.filter_name, self.bitflag_filter_item, attributes, "name", reverse=self.use_filter_invert)
|
|
|
|
if not flags:
|
|
|
|
flags = [self.bitflag_filter_item] * len(attributes)
|
|
|
|
|
|
|
|
# Filtering internal attributes
|
|
|
|
for idx, item in enumerate(attributes):
|
|
|
|
flags[idx] = 0 if item.is_internal else flags[idx]
|
2022-05-31 11:20:16 +00:00
|
|
|
|
2024-01-09 08:26:06 +00:00
|
|
|
# Reorder by name.
|
|
|
|
if self.use_filter_sort_alpha:
|
|
|
|
indices = bpy.types.UI_UL_list.sort_items_by_name(attributes, "name")
|
|
|
|
|
2022-05-31 11:20:16 +00:00
|
|
|
return flags, indices
|
|
|
|
|
2021-03-06 07:21:17 +00:00
|
|
|
def draw_item(self, _context, layout, _data, attribute, _icon, _active_data, _active_propname, _index):
|
2023-01-06 02:52:57 +00:00
|
|
|
data_type = attribute.bl_rna.properties["data_type"].enum_items[attribute.data_type]
|
|
|
|
domain = attribute.bl_rna.properties["domain"].enum_items[attribute.domain]
|
2020-08-19 16:12:52 +00:00
|
|
|
|
|
|
|
split = layout.split(factor=0.5)
|
2020-12-20 17:27:02 +00:00
|
|
|
split.emboss = 'NONE'
|
2020-08-19 16:12:52 +00:00
|
|
|
row = split.row()
|
2020-12-20 17:27:02 +00:00
|
|
|
row.prop(attribute, "name", text="")
|
2020-08-19 16:12:52 +00:00
|
|
|
sub = split.split()
|
|
|
|
sub.alignment = 'RIGHT'
|
|
|
|
sub.active = False
|
|
|
|
sub.label(text=domain.name)
|
|
|
|
sub.label(text=data_type.name)
|
|
|
|
|
|
|
|
|
Curves: Rename "Hair" types, variables, and functions to "Curves"
Based on discussions from T95355 and T94193, the plan is to use
the name "Curves" to describe the data-block container for multiple
curves. Eventually this will replace the existing "Curve" data-block.
However, it will be a while before the curve data-block can be replaced
so in order to distinguish the two curve types in the UI, "Hair Curves"
will be used, but eventually changed back to "Curves".
This patch renames "hair-related" files, functions, types, and variable
names to this convention. A deep rename is preferred to keep code
consistent and to avoid any "hair" terminology from leaking, since the
new data-block is meant for all curve types, not just hair use cases.
The downside of this naming is that the difference between "Curve"
and "Curves" has become important. That was considered during
design discussons and deemed acceptable, especially given the
non-permanent nature of the somewhat common conflict.
Some points of interest:
- All DNA compatibility is lost, just like rBf59767ff9729.
- I renamed `ID_HA` to `ID_CV` so there is no complete mismatch.
- `hair_curves` is used where necessary to distinguish from the
existing "curves" plural.
- I didn't rename any of the cycles/rendering code function names,
since that is also used by the old hair particle system.
Differential Revision: https://developer.blender.org/D14007
2022-02-07 17:55:54 +00:00
|
|
|
class DATA_PT_CURVES_attributes(DataButtonsPanel, Panel):
|
2020-08-19 16:12:52 +00:00
|
|
|
bl_label = "Attributes"
|
2023-01-24 16:58:58 +00:00
|
|
|
COMPAT_ENGINES = {
|
|
|
|
'BLENDER_RENDER',
|
|
|
|
'BLENDER_EEVEE',
|
|
|
|
'BLENDER_EEVEE_NEXT',
|
2023-09-29 04:32:54 +00:00
|
|
|
'BLENDER_WORKBENCH',
|
|
|
|
}
|
2020-08-19 16:12:52 +00:00
|
|
|
|
|
|
|
def draw(self, context):
|
Curves: Rename "Hair" types, variables, and functions to "Curves"
Based on discussions from T95355 and T94193, the plan is to use
the name "Curves" to describe the data-block container for multiple
curves. Eventually this will replace the existing "Curve" data-block.
However, it will be a while before the curve data-block can be replaced
so in order to distinguish the two curve types in the UI, "Hair Curves"
will be used, but eventually changed back to "Curves".
This patch renames "hair-related" files, functions, types, and variable
names to this convention. A deep rename is preferred to keep code
consistent and to avoid any "hair" terminology from leaking, since the
new data-block is meant for all curve types, not just hair use cases.
The downside of this naming is that the difference between "Curve"
and "Curves" has become important. That was considered during
design discussons and deemed acceptable, especially given the
non-permanent nature of the somewhat common conflict.
Some points of interest:
- All DNA compatibility is lost, just like rBf59767ff9729.
- I renamed `ID_HA` to `ID_CV` so there is no complete mismatch.
- `hair_curves` is used where necessary to distinguish from the
existing "curves" plural.
- I didn't rename any of the cycles/rendering code function names,
since that is also used by the old hair particle system.
Differential Revision: https://developer.blender.org/D14007
2022-02-07 17:55:54 +00:00
|
|
|
curves = context.curves
|
2020-08-19 16:12:52 +00:00
|
|
|
|
|
|
|
layout = self.layout
|
|
|
|
row = layout.row()
|
|
|
|
|
|
|
|
col = row.column()
|
2020-10-02 00:15:51 +00:00
|
|
|
col.template_list(
|
Curves: Rename "Hair" types, variables, and functions to "Curves"
Based on discussions from T95355 and T94193, the plan is to use
the name "Curves" to describe the data-block container for multiple
curves. Eventually this will replace the existing "Curve" data-block.
However, it will be a while before the curve data-block can be replaced
so in order to distinguish the two curve types in the UI, "Hair Curves"
will be used, but eventually changed back to "Curves".
This patch renames "hair-related" files, functions, types, and variable
names to this convention. A deep rename is preferred to keep code
consistent and to avoid any "hair" terminology from leaking, since the
new data-block is meant for all curve types, not just hair use cases.
The downside of this naming is that the difference between "Curve"
and "Curves" has become important. That was considered during
design discussons and deemed acceptable, especially given the
non-permanent nature of the somewhat common conflict.
Some points of interest:
- All DNA compatibility is lost, just like rBf59767ff9729.
- I renamed `ID_HA` to `ID_CV` so there is no complete mismatch.
- `hair_curves` is used where necessary to distinguish from the
existing "curves" plural.
- I didn't rename any of the cycles/rendering code function names,
since that is also used by the old hair particle system.
Differential Revision: https://developer.blender.org/D14007
2022-02-07 17:55:54 +00:00
|
|
|
"CURVES_UL_attributes",
|
2020-10-02 00:15:51 +00:00
|
|
|
"attributes",
|
Curves: Rename "Hair" types, variables, and functions to "Curves"
Based on discussions from T95355 and T94193, the plan is to use
the name "Curves" to describe the data-block container for multiple
curves. Eventually this will replace the existing "Curve" data-block.
However, it will be a while before the curve data-block can be replaced
so in order to distinguish the two curve types in the UI, "Hair Curves"
will be used, but eventually changed back to "Curves".
This patch renames "hair-related" files, functions, types, and variable
names to this convention. A deep rename is preferred to keep code
consistent and to avoid any "hair" terminology from leaking, since the
new data-block is meant for all curve types, not just hair use cases.
The downside of this naming is that the difference between "Curve"
and "Curves" has become important. That was considered during
design discussons and deemed acceptable, especially given the
non-permanent nature of the somewhat common conflict.
Some points of interest:
- All DNA compatibility is lost, just like rBf59767ff9729.
- I renamed `ID_HA` to `ID_CV` so there is no complete mismatch.
- `hair_curves` is used where necessary to distinguish from the
existing "curves" plural.
- I didn't rename any of the cycles/rendering code function names,
since that is also used by the old hair particle system.
Differential Revision: https://developer.blender.org/D14007
2022-02-07 17:55:54 +00:00
|
|
|
curves,
|
2020-10-02 00:15:51 +00:00
|
|
|
"attributes",
|
Curves: Rename "Hair" types, variables, and functions to "Curves"
Based on discussions from T95355 and T94193, the plan is to use
the name "Curves" to describe the data-block container for multiple
curves. Eventually this will replace the existing "Curve" data-block.
However, it will be a while before the curve data-block can be replaced
so in order to distinguish the two curve types in the UI, "Hair Curves"
will be used, but eventually changed back to "Curves".
This patch renames "hair-related" files, functions, types, and variable
names to this convention. A deep rename is preferred to keep code
consistent and to avoid any "hair" terminology from leaking, since the
new data-block is meant for all curve types, not just hair use cases.
The downside of this naming is that the difference between "Curve"
and "Curves" has become important. That was considered during
design discussons and deemed acceptable, especially given the
non-permanent nature of the somewhat common conflict.
Some points of interest:
- All DNA compatibility is lost, just like rBf59767ff9729.
- I renamed `ID_HA` to `ID_CV` so there is no complete mismatch.
- `hair_curves` is used where necessary to distinguish from the
existing "curves" plural.
- I didn't rename any of the cycles/rendering code function names,
since that is also used by the old hair particle system.
Differential Revision: https://developer.blender.org/D14007
2022-02-07 17:55:54 +00:00
|
|
|
curves.attributes,
|
2020-10-02 00:15:51 +00:00
|
|
|
"active_index",
|
|
|
|
rows=3,
|
|
|
|
)
|
2020-08-19 16:12:52 +00:00
|
|
|
|
|
|
|
col = row.column(align=True)
|
Curves: Rename "Hair" types, variables, and functions to "Curves"
Based on discussions from T95355 and T94193, the plan is to use
the name "Curves" to describe the data-block container for multiple
curves. Eventually this will replace the existing "Curve" data-block.
However, it will be a while before the curve data-block can be replaced
so in order to distinguish the two curve types in the UI, "Hair Curves"
will be used, but eventually changed back to "Curves".
This patch renames "hair-related" files, functions, types, and variable
names to this convention. A deep rename is preferred to keep code
consistent and to avoid any "hair" terminology from leaking, since the
new data-block is meant for all curve types, not just hair use cases.
The downside of this naming is that the difference between "Curve"
and "Curves" has become important. That was considered during
design discussons and deemed acceptable, especially given the
non-permanent nature of the somewhat common conflict.
Some points of interest:
- All DNA compatibility is lost, just like rBf59767ff9729.
- I renamed `ID_HA` to `ID_CV` so there is no complete mismatch.
- `hair_curves` is used where necessary to distinguish from the
existing "curves" plural.
- I didn't rename any of the cycles/rendering code function names,
since that is also used by the old hair particle system.
Differential Revision: https://developer.blender.org/D14007
2022-02-07 17:55:54 +00:00
|
|
|
col.menu("CURVES_MT_add_attribute", icon='ADD', text="")
|
2020-08-19 16:12:52 +00:00
|
|
|
col.operator("geometry.attribute_remove", icon='REMOVE', text="")
|
|
|
|
|
|
|
|
|
Curves: Rename "Hair" types, variables, and functions to "Curves"
Based on discussions from T95355 and T94193, the plan is to use
the name "Curves" to describe the data-block container for multiple
curves. Eventually this will replace the existing "Curve" data-block.
However, it will be a while before the curve data-block can be replaced
so in order to distinguish the two curve types in the UI, "Hair Curves"
will be used, but eventually changed back to "Curves".
This patch renames "hair-related" files, functions, types, and variable
names to this convention. A deep rename is preferred to keep code
consistent and to avoid any "hair" terminology from leaking, since the
new data-block is meant for all curve types, not just hair use cases.
The downside of this naming is that the difference between "Curve"
and "Curves" has become important. That was considered during
design discussons and deemed acceptable, especially given the
non-permanent nature of the somewhat common conflict.
Some points of interest:
- All DNA compatibility is lost, just like rBf59767ff9729.
- I renamed `ID_HA` to `ID_CV` so there is no complete mismatch.
- `hair_curves` is used where necessary to distinguish from the
existing "curves" plural.
- I didn't rename any of the cycles/rendering code function names,
since that is also used by the old hair particle system.
Differential Revision: https://developer.blender.org/D14007
2022-02-07 17:55:54 +00:00
|
|
|
class DATA_PT_custom_props_curves(DataButtonsPanel, PropertyPanel, Panel):
|
2023-01-24 16:58:58 +00:00
|
|
|
COMPAT_ENGINES = {
|
|
|
|
'BLENDER_RENDER',
|
|
|
|
'BLENDER_EEVEE',
|
|
|
|
'BLENDER_EEVEE_NEXT',
|
2023-09-29 04:32:54 +00:00
|
|
|
'BLENDER_WORKBENCH',
|
|
|
|
}
|
2020-03-17 13:41:48 +00:00
|
|
|
_context_path = "object.data"
|
Curves: Rename "Hair" types, variables, and functions to "Curves"
Based on discussions from T95355 and T94193, the plan is to use
the name "Curves" to describe the data-block container for multiple
curves. Eventually this will replace the existing "Curve" data-block.
However, it will be a while before the curve data-block can be replaced
so in order to distinguish the two curve types in the UI, "Hair Curves"
will be used, but eventually changed back to "Curves".
This patch renames "hair-related" files, functions, types, and variable
names to this convention. A deep rename is preferred to keep code
consistent and to avoid any "hair" terminology from leaking, since the
new data-block is meant for all curve types, not just hair use cases.
The downside of this naming is that the difference between "Curve"
and "Curves" has become important. That was considered during
design discussons and deemed acceptable, especially given the
non-permanent nature of the somewhat common conflict.
Some points of interest:
- All DNA compatibility is lost, just like rBf59767ff9729.
- I renamed `ID_HA` to `ID_CV` so there is no complete mismatch.
- `hair_curves` is used where necessary to distinguish from the
existing "curves" plural.
- I didn't rename any of the cycles/rendering code function names,
since that is also used by the old hair particle system.
Differential Revision: https://developer.blender.org/D14007
2022-02-07 17:55:54 +00:00
|
|
|
_property_type = bpy.types.Curves if hasattr(bpy.types, "Curves") else None
|
2020-03-17 13:41:48 +00:00
|
|
|
|
|
|
|
|
|
|
|
classes = (
|
Curves: Rename "Hair" types, variables, and functions to "Curves"
Based on discussions from T95355 and T94193, the plan is to use
the name "Curves" to describe the data-block container for multiple
curves. Eventually this will replace the existing "Curve" data-block.
However, it will be a while before the curve data-block can be replaced
so in order to distinguish the two curve types in the UI, "Hair Curves"
will be used, but eventually changed back to "Curves".
This patch renames "hair-related" files, functions, types, and variable
names to this convention. A deep rename is preferred to keep code
consistent and to avoid any "hair" terminology from leaking, since the
new data-block is meant for all curve types, not just hair use cases.
The downside of this naming is that the difference between "Curve"
and "Curves" has become important. That was considered during
design discussons and deemed acceptable, especially given the
non-permanent nature of the somewhat common conflict.
Some points of interest:
- All DNA compatibility is lost, just like rBf59767ff9729.
- I renamed `ID_HA` to `ID_CV` so there is no complete mismatch.
- `hair_curves` is used where necessary to distinguish from the
existing "curves" plural.
- I didn't rename any of the cycles/rendering code function names,
since that is also used by the old hair particle system.
Differential Revision: https://developer.blender.org/D14007
2022-02-07 17:55:54 +00:00
|
|
|
DATA_PT_context_curves,
|
|
|
|
DATA_PT_CURVES_attributes,
|
2022-02-25 12:22:42 +00:00
|
|
|
DATA_PT_curves_surface,
|
Curves: Rename "Hair" types, variables, and functions to "Curves"
Based on discussions from T95355 and T94193, the plan is to use
the name "Curves" to describe the data-block container for multiple
curves. Eventually this will replace the existing "Curve" data-block.
However, it will be a while before the curve data-block can be replaced
so in order to distinguish the two curve types in the UI, "Hair Curves"
will be used, but eventually changed back to "Curves".
This patch renames "hair-related" files, functions, types, and variable
names to this convention. A deep rename is preferred to keep code
consistent and to avoid any "hair" terminology from leaking, since the
new data-block is meant for all curve types, not just hair use cases.
The downside of this naming is that the difference between "Curve"
and "Curves" has become important. That was considered during
design discussons and deemed acceptable, especially given the
non-permanent nature of the somewhat common conflict.
Some points of interest:
- All DNA compatibility is lost, just like rBf59767ff9729.
- I renamed `ID_HA` to `ID_CV` so there is no complete mismatch.
- `hair_curves` is used where necessary to distinguish from the
existing "curves" plural.
- I didn't rename any of the cycles/rendering code function names,
since that is also used by the old hair particle system.
Differential Revision: https://developer.blender.org/D14007
2022-02-07 17:55:54 +00:00
|
|
|
DATA_PT_custom_props_curves,
|
|
|
|
CURVES_MT_add_attribute,
|
|
|
|
CURVES_UL_attributes,
|
2020-03-17 13:41:48 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
if __name__ == "__main__": # only for live edit.
|
|
|
|
from bpy.utils import register_class
|
|
|
|
for cls in classes:
|
|
|
|
register_class(cls)
|