Merge branch 'master' into sculpt-dev
This commit is contained in:
commit
29078186f8
|
@ -13,7 +13,7 @@ Invocation:
|
|||
export CLANG_BIND_DIR="/dsk/src/llvm/tools/clang/bindings/python"
|
||||
export CLANG_LIB_DIR="/opt/llvm/lib"
|
||||
|
||||
python2 clang_array_check.py somefile.c -DSOME_DEFINE -I/some/include
|
||||
python clang_array_check.py somefile.c -DSOME_DEFINE -I/some/include
|
||||
|
||||
... defines and includes are optional
|
||||
|
||||
|
@ -76,6 +76,32 @@ defs_precalc = {
|
|||
"glNormal3bv": {0: 3},
|
||||
"glNormal3iv": {0: 3},
|
||||
"glNormal3sv": {0: 3},
|
||||
|
||||
# GPU immediate mode.
|
||||
"immVertex2iv": {1: 2},
|
||||
|
||||
"immVertex2fv": {1: 2},
|
||||
"immVertex3fv": {1: 3},
|
||||
|
||||
"immAttr2fv": {1: 2},
|
||||
"immAttr3fv": {1: 3},
|
||||
"immAttr4fv": {1: 4},
|
||||
|
||||
"immAttr3ubv": {1: 3},
|
||||
"immAttr4ubv": {1: 4},
|
||||
|
||||
"immUniform2fv": {1: 2},
|
||||
"immUniform3fv": {1: 3},
|
||||
"immUniform4fv": {1: 4},
|
||||
|
||||
"immUniformColor3fv": {0: 3},
|
||||
"immUniformColor4fv": {0: 4},
|
||||
|
||||
"immUniformColor3ubv": {1: 3},
|
||||
"immUniformColor4ubv": {1: 4},
|
||||
|
||||
"immUniformColor3fvAlpha": {0: 3},
|
||||
"immUniformColor4fvAlpha": {0: 4},
|
||||
}
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
|
@ -100,7 +126,8 @@ else:
|
|||
if CLANG_LIB_DIR is None:
|
||||
print("$CLANG_LIB_DIR clang lib dir not set")
|
||||
|
||||
sys.path.append(CLANG_BIND_DIR)
|
||||
if CLANG_BIND_DIR:
|
||||
sys.path.append(CLANG_BIND_DIR)
|
||||
|
||||
import clang
|
||||
import clang.cindex
|
||||
|
@ -108,7 +135,8 @@ from clang.cindex import (CursorKind,
|
|||
TypeKind,
|
||||
TokenKind)
|
||||
|
||||
clang.cindex.Config.set_library_path(CLANG_LIB_DIR)
|
||||
if CLANG_LIB_DIR:
|
||||
clang.cindex.Config.set_library_path(CLANG_LIB_DIR)
|
||||
|
||||
index = clang.cindex.Index.create()
|
||||
|
||||
|
|
|
@ -32,7 +32,7 @@ CHECKER_IGNORE_PREFIX = [
|
|||
"intern/moto",
|
||||
]
|
||||
|
||||
CHECKER_BIN = "python2"
|
||||
CHECKER_BIN = "python3"
|
||||
|
||||
CHECKER_ARGS = [
|
||||
os.path.join(os.path.dirname(__file__), "clang_array_check.py"),
|
||||
|
|
|
@ -237,7 +237,7 @@ Examples:
|
|||
{'FINISHED'}
|
||||
>>> bpy.ops.mesh.hide(unselected=False)
|
||||
{'FINISHED'}
|
||||
>>> bpy.ops.object.scale_apply()
|
||||
>>> bpy.ops.object.transform_apply()
|
||||
{'FINISHED'}
|
||||
|
||||
.. tip::
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
/* Prevent Long enum lists */
|
||||
.field-body {
|
||||
display: block;
|
||||
width: 100%;
|
||||
/* T76453: Prevent Long enum lists */
|
||||
.field-list li {
|
||||
max-height: 245px;
|
||||
overflow-y: auto !important;
|
||||
}
|
||||
|
|
|
@ -49,7 +49,7 @@ DeviceInfo blender_device_info(BL::Preferences &b_preferences, BL::Scene &b_scen
|
|||
PointerRNA cpreferences;
|
||||
BL::Preferences::addons_iterator b_addon_iter;
|
||||
for (b_preferences.addons.begin(b_addon_iter); b_addon_iter != b_preferences.addons.end();
|
||||
++b_addon_iter) {
|
||||
++b_addon_iter) {
|
||||
if (b_addon_iter->module() == "cycles") {
|
||||
cpreferences = b_addon_iter->preferences().ptr;
|
||||
break;
|
||||
|
|
|
@ -118,27 +118,27 @@ void MEM_lockfree_freeN(void *vmemh);
|
|||
void *MEM_lockfree_dupallocN(const void *vmemh) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT;
|
||||
void *MEM_lockfree_reallocN_id(void *vmemh,
|
||||
size_t len,
|
||||
const char *UNUSED(str)) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
|
||||
const char *str) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
|
||||
ATTR_ALLOC_SIZE(2);
|
||||
void *MEM_lockfree_recallocN_id(void *vmemh,
|
||||
size_t len,
|
||||
const char *UNUSED(str)) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
|
||||
const char *str) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
|
||||
ATTR_ALLOC_SIZE(2);
|
||||
void *MEM_lockfree_callocN(size_t len, const char *UNUSED(str)) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
|
||||
void *MEM_lockfree_callocN(size_t len, const char *str) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
|
||||
ATTR_ALLOC_SIZE(1) ATTR_NONNULL(2);
|
||||
void *MEM_lockfree_calloc_arrayN(size_t len,
|
||||
size_t size,
|
||||
const char *UNUSED(str)) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
|
||||
const char *str) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
|
||||
ATTR_ALLOC_SIZE(1, 2) ATTR_NONNULL(3);
|
||||
void *MEM_lockfree_mallocN(size_t len, const char *UNUSED(str)) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
|
||||
void *MEM_lockfree_mallocN(size_t len, const char *str) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
|
||||
ATTR_ALLOC_SIZE(1) ATTR_NONNULL(2);
|
||||
void *MEM_lockfree_malloc_arrayN(size_t len,
|
||||
size_t size,
|
||||
const char *UNUSED(str)) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
|
||||
const char *str) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
|
||||
ATTR_ALLOC_SIZE(1, 2) ATTR_NONNULL(3);
|
||||
void *MEM_lockfree_mallocN_aligned(size_t len,
|
||||
size_t alignment,
|
||||
const char *UNUSED(str)) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
|
||||
const char *str) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
|
||||
ATTR_ALLOC_SIZE(1) ATTR_NONNULL(3);
|
||||
void MEM_lockfree_printmemlist_pydict(void);
|
||||
void MEM_lockfree_printmemlist(void);
|
||||
|
@ -161,27 +161,27 @@ void MEM_guarded_freeN(void *vmemh);
|
|||
void *MEM_guarded_dupallocN(const void *vmemh) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT;
|
||||
void *MEM_guarded_reallocN_id(void *vmemh,
|
||||
size_t len,
|
||||
const char *UNUSED(str)) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
|
||||
const char *str) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
|
||||
ATTR_ALLOC_SIZE(2);
|
||||
void *MEM_guarded_recallocN_id(void *vmemh,
|
||||
size_t len,
|
||||
const char *UNUSED(str)) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
|
||||
const char *str) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
|
||||
ATTR_ALLOC_SIZE(2);
|
||||
void *MEM_guarded_callocN(size_t len, const char *UNUSED(str)) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
|
||||
void *MEM_guarded_callocN(size_t len, const char *str) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
|
||||
ATTR_ALLOC_SIZE(1) ATTR_NONNULL(2);
|
||||
void *MEM_guarded_calloc_arrayN(size_t len,
|
||||
size_t size,
|
||||
const char *UNUSED(str)) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
|
||||
const char *str) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
|
||||
ATTR_ALLOC_SIZE(1, 2) ATTR_NONNULL(3);
|
||||
void *MEM_guarded_mallocN(size_t len, const char *UNUSED(str)) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
|
||||
void *MEM_guarded_mallocN(size_t len, const char *str) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
|
||||
ATTR_ALLOC_SIZE(1) ATTR_NONNULL(2);
|
||||
void *MEM_guarded_malloc_arrayN(size_t len,
|
||||
size_t size,
|
||||
const char *UNUSED(str)) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
|
||||
const char *str) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
|
||||
ATTR_ALLOC_SIZE(1, 2) ATTR_NONNULL(3);
|
||||
void *MEM_guarded_mallocN_aligned(size_t len,
|
||||
size_t alignment,
|
||||
const char *UNUSED(str)) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
|
||||
const char *str) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
|
||||
ATTR_ALLOC_SIZE(1) ATTR_NONNULL(3);
|
||||
void MEM_guarded_printmemlist_pydict(void);
|
||||
void MEM_guarded_printmemlist(void);
|
||||
|
|
|
@ -34,12 +34,16 @@ if LANG is not None:
|
|||
url_manual_prefix = url_manual_prefix.replace("manual/en", "manual/" + LANG)
|
||||
|
||||
url_manual_mapping = (
|
||||
("bpy.types.movietrackingsettings.refine_intrinsics_tangential_distortion*", "movie_clip/tracking/clip/toolbar/solve.html#bpy-types-movietrackingsettings-refine-intrinsics-tangential-distortion"),
|
||||
("bpy.types.movietrackingsettings.refine_intrinsics_radial_distortion*", "movie_clip/tracking/clip/toolbar/solve.html#bpy-types-movietrackingsettings-refine-intrinsics-radial-distortion"),
|
||||
("bpy.types.fluiddomainsettings.sndparticle_potential_max_trappedair*", "physics/fluid/type/domain/liquid/particles.html#bpy-types-fluiddomainsettings-sndparticle-potential-max-trappedair"),
|
||||
("bpy.types.fluiddomainsettings.sndparticle_potential_min_trappedair*", "physics/fluid/type/domain/liquid/particles.html#bpy-types-fluiddomainsettings-sndparticle-potential-min-trappedair"),
|
||||
("bpy.types.fluiddomainsettings.sndparticle_potential_max_wavecrest*", "physics/fluid/type/domain/liquid/particles.html#bpy-types-fluiddomainsettings-sndparticle-potential-max-wavecrest"),
|
||||
("bpy.types.fluiddomainsettings.sndparticle_potential_min_wavecrest*", "physics/fluid/type/domain/liquid/particles.html#bpy-types-fluiddomainsettings-sndparticle-potential-min-wavecrest"),
|
||||
("bpy.types.movietrackingsettings.refine_intrinsics_principal_point*", "movie_clip/tracking/clip/toolbar/solve.html#bpy-types-movietrackingsettings-refine-intrinsics-principal-point"),
|
||||
("bpy.types.fluiddomainsettings.sndparticle_potential_max_energy*", "physics/fluid/type/domain/liquid/particles.html#bpy-types-fluiddomainsettings-sndparticle-potential-max-energy"),
|
||||
("bpy.types.fluiddomainsettings.sndparticle_potential_min_energy*", "physics/fluid/type/domain/liquid/particles.html#bpy-types-fluiddomainsettings-sndparticle-potential-min-energy"),
|
||||
("bpy.types.movietrackingsettings.refine_intrinsics_focal_length*", "movie_clip/tracking/clip/toolbar/solve.html#bpy-types-movietrackingsettings-refine-intrinsics-focal-length"),
|
||||
("bpy.types.rigidbodyconstraint.rigidbodyconstraint.use_breaking*", "physics/rigid_body/constraints/introduction.html#bpy-types-rigidbodyconstraint-rigidbodyconstraint-use-breaking"),
|
||||
("bpy.types.fluiddomainsettings.sndparticle_sampling_trappedair*", "physics/fluid/type/domain/liquid/particles.html#bpy-types-fluiddomainsettings-sndparticle-sampling-trappedair"),
|
||||
("bpy.types.fluiddomainsettings.sndparticle_sampling_wavecrest*", "physics/fluid/type/domain/liquid/particles.html#bpy-types-fluiddomainsettings-sndparticle-sampling-wavecrest"),
|
||||
|
@ -62,6 +66,7 @@ url_manual_mapping = (
|
|||
("bpy.types.brushgpencilsettings.use_settings_stabilizer*", "grease_pencil/modes/draw/tools/draw.html#bpy-types-brushgpencilsettings-use-settings-stabilizer"),
|
||||
("bpy.types.fluiddomainsettings.use_collision_border_top*", "physics/fluid/type/domain/settings.html#bpy-types-fluiddomainsettings-use-collision-border-top"),
|
||||
("bpy.types.gpencilsculptsettings.use_multiframe_falloff*", "grease_pencil/multiframe.html#bpy-types-gpencilsculptsettings-use-multiframe-falloff"),
|
||||
("bpy.types.movietrackingsettings.use_keyframe_selection*", "movie_clip/tracking/clip/toolbar/solve.html#bpy-types-movietrackingsettings-use-keyframe-selection"),
|
||||
("bpy.types.rendersettings.simplify_gpencil_antialiasing*", "render/cycles/render_settings/simplify.html#bpy-types-rendersettings-simplify-gpencil-antialiasing"),
|
||||
("bpy.types.toolsettings.use_transform_pivot_point_align*", "scene_layout/object/tools/tool_settings.html#bpy-types-toolsettings-use-transform-pivot-point-align"),
|
||||
("bpy.types.brush.show_multiplane_scrape_planes_preview*", "sculpt_paint/sculpting/tools/multiplane_scrape.html#bpy-types-brush-show-multiplane-scrape-planes-preview"),
|
||||
|
@ -115,6 +120,7 @@ url_manual_mapping = (
|
|||
("bpy.types.linestylegeometrymodifier_perlinnoise1d*", "render/freestyle/parameter_editor/line_style/modifiers/geometry/perlin_noise_1d.html#bpy-types-linestylegeometrymodifier-perlinnoise1d"),
|
||||
("bpy.types.linestylegeometrymodifier_perlinnoise2d*", "render/freestyle/parameter_editor/line_style/modifiers/geometry/perlin_noise_2d.html#bpy-types-linestylegeometrymodifier-perlinnoise2d"),
|
||||
("bpy.types.materialgpencilstyle.use_stroke_holdout*", "grease_pencil/materials/grease_pencil_shader.html#bpy-types-materialgpencilstyle-use-stroke-holdout"),
|
||||
("bpy.types.movietrackingsettings.use_tripod_solver*", "movie_clip/tracking/clip/toolbar/solve.html#bpy-types-movietrackingsettings-use-tripod-solver"),
|
||||
("bpy.types.rendersettings.use_high_quality_normals*", "render/eevee/render_settings/performance.html#bpy-types-rendersettings-use-high-quality-normals"),
|
||||
("bpy.types.toolsettings.use_proportional_connected*", "editors/3dview/controls/proportional_editing.html#bpy-types-toolsettings-use-proportional-connected"),
|
||||
("bpy.types.toolsettings.use_proportional_projected*", "editors/3dview/controls/proportional_editing.html#bpy-types-toolsettings-use-proportional-projected"),
|
||||
|
@ -144,6 +150,7 @@ url_manual_mapping = (
|
|||
("bpy.types.toolsettings.proportional_edit_falloff*", "editors/3dview/controls/proportional_editing.html#bpy-types-toolsettings-proportional-edit-falloff"),
|
||||
("bpy.types.toolsettings.use_edge_path_live_unwrap*", "modeling/meshes/tools/tool_settings.html#bpy-types-toolsettings-use-edge-path-live-unwrap"),
|
||||
("bpy.types.toolsettings.use_gpencil_draw_additive*", "grease_pencil/modes/draw/introduction.html#bpy-types-toolsettings-use-gpencil-draw-additive"),
|
||||
("bpy.types.toolsettings.use_snap_backface_culling*", "editors/3dview/controls/snapping.html#bpy-types-toolsettings-use-snap-backface-culling"),
|
||||
("bpy.types.toolsettings.use_transform_data_origin*", "scene_layout/object/tools/tool_settings.html#bpy-types-toolsettings-use-transform-data-origin"),
|
||||
("bpy.types.view3doverlay.sculpt_mode_mask_opacity*", "sculpt_paint/sculpting/editing/mask.html#bpy-types-view3doverlay-sculpt-mode-mask-opacity"),
|
||||
("bpy.ops.outliner.collection_indirect_only_clear*", "render/layers/layers.html#bpy-ops-outliner-collection-indirect-only-clear"),
|
||||
|
@ -176,6 +183,7 @@ url_manual_mapping = (
|
|||
("bpy.types.fluiddomainsettings.guide_vel_factor*", "physics/fluid/type/domain/guides.html#bpy-types-fluiddomainsettings-guide-vel-factor"),
|
||||
("bpy.types.fluideffectorsettings.use_plane_init*", "physics/fluid/type/effector.html#bpy-types-fluideffectorsettings-use-plane-init"),
|
||||
("bpy.types.linestylegeometrymodifier_tipremover*", "render/freestyle/parameter_editor/line_style/modifiers/geometry/tip_remover.html#bpy-types-linestylegeometrymodifier-tipremover"),
|
||||
("bpy.types.movietrackingcamera.distortion_model*", "movie_clip/tracking/clip/sidebar/track/camera.html#bpy-types-movietrackingcamera-distortion-model"),
|
||||
("bpy.types.rendersettings.resolution_percentage*", "render/output/properties/dimensions.html#bpy-types-rendersettings-resolution-percentage"),
|
||||
("bpy.types.rendersettings_simplify_gpencil_tint*", "render/cycles/render_settings/simplify.html#bpy-types-rendersettings-simplify-gpencil-tint"),
|
||||
("bpy.types.toolsettings.use_gpencil_draw_onback*", "grease_pencil/modes/draw/introduction.html#bpy-types-toolsettings-use-gpencil-draw-onback"),
|
||||
|
@ -199,6 +207,7 @@ url_manual_mapping = (
|
|||
("bpy.types.fluiddomainsettings.particle_radius*", "physics/fluid/type/domain/settings.html#bpy-types-fluiddomainsettings-particle-radius"),
|
||||
("bpy.types.fluiddomainsettings.slice_per_voxel*", "physics/fluid/type/domain/gas/viewport_display.html#bpy-types-fluiddomainsettings-slice-per-voxel"),
|
||||
("bpy.types.fluiddomainsettings.surface_tension*", "physics/fluid/type/domain/liquid/diffusion.html#bpy-types-fluiddomainsettings-surface-tension"),
|
||||
("bpy.types.fluiddomainsettings.viscosity_value*", "physics/fluid/type/domain/liquid/viscosity.html#bpy-types-fluiddomainsettings-viscosity-value"),
|
||||
("bpy.types.fluideffectorsettings.effector_type*", "physics/fluid/type/effector.html#bpy-types-fluideffectorsettings-effector-type"),
|
||||
("bpy.types.fluidflowsettings.use_particle_size*", "physics/fluid/type/flow.html#bpy-types-fluidflowsettings-use-particle-size"),
|
||||
("bpy.types.linestylegeometrymodifier_blueprint*", "render/freestyle/parameter_editor/line_style/modifiers/geometry/blueprint.html#bpy-types-linestylegeometrymodifier-blueprint"),
|
||||
|
@ -207,6 +216,7 @@ url_manual_mapping = (
|
|||
("bpy.types.spacesequenceeditor.show_region_hud*", "video_editing/sequencer/navigating.html#bpy-types-spacesequenceeditor-show-region-hud"),
|
||||
("bpy.types.toolsettings.use_snap_grid_absolute*", "editors/3dview/controls/snapping.html#bpy-types-toolsettings-use-snap-grid-absolute"),
|
||||
("bpy.types.view3doverlay.show_face_orientation*", "editors/3dview/display/overlays.html#bpy-types-view3doverlay-show-face-orientation"),
|
||||
("bpy.ops.object.blenderkit_material_thumbnail*", "addons/3d_view/blenderkit.html#bpy-ops-object-blenderkit-material-thumbnail"),
|
||||
("bpy.ops.object.vertex_group_copy_to_selected*", "modeling/meshes/properties/vertex_groups/vertex_groups.html#bpy-ops-object-vertex-group-copy-to-selected"),
|
||||
("bpy.ops.outliner.collection_duplicate_linked*", "editors/outliner/editing.html#bpy-ops-outliner-collection-duplicate-linked"),
|
||||
("bpy.ops.view3d.edit_mesh_extrude_move_normal*", "modeling/meshes/editing/face/extrude_faces.html#bpy-ops-view3d-edit-mesh-extrude-move-normal"),
|
||||
|
@ -243,6 +253,7 @@ url_manual_mapping = (
|
|||
("bpy.types.fluiddomainsettings.timesteps_min*", "physics/fluid/type/domain/settings.html#bpy-types-fluiddomainsettings-timesteps-min"),
|
||||
("bpy.types.fluiddomainsettings.use_diffusion*", "physics/fluid/type/domain/liquid/diffusion.html#bpy-types-fluiddomainsettings-use-diffusion"),
|
||||
("bpy.types.fluiddomainsettings.use_fractions*", "physics/fluid/type/domain/settings.html#bpy-types-fluiddomainsettings-use-fractions"),
|
||||
("bpy.types.fluiddomainsettings.use_viscosity*", "physics/fluid/type/domain/liquid/viscosity.html#bpy-types-fluiddomainsettings-use-viscosity"),
|
||||
("bpy.types.fluidflowsettings.particle_system*", "physics/fluid/type/flow.html#bpy-types-fluidflowsettings-particle-system"),
|
||||
("bpy.types.fluidflowsettings.velocity_factor*", "physics/fluid/type/flow.html#bpy-types-fluidflowsettings-velocity-factor"),
|
||||
("bpy.types.fluidflowsettings.velocity_normal*", "physics/fluid/type/flow.html#bpy-types-fluidflowsettings-velocity-normal"),
|
||||
|
@ -277,6 +288,9 @@ url_manual_mapping = (
|
|||
("bpy.types.fluidflowsettings.velocity_coord*", "physics/fluid/type/flow.html#bpy-types-fluidflowsettings-velocity-coord"),
|
||||
("bpy.types.fluidflowsettings.volume_density*", "physics/fluid/type/flow.html#bpy-types-fluidflowsettings-volume-density"),
|
||||
("bpy.types.materialgpencilstyle.show_stroke*", "grease_pencil/materials/grease_pencil_shader.html#bpy-types-materialgpencilstyle-show-stroke"),
|
||||
("bpy.types.movietrackingcamera.focal_length*", "movie_clip/tracking/clip/sidebar/track/camera.html#bpy-types-movietrackingcamera-focal-length"),
|
||||
("bpy.types.movietrackingcamera.pixel_aspect*", "movie_clip/tracking/clip/sidebar/track/camera.html#bpy-types-movietrackingcamera-pixel-aspect"),
|
||||
("bpy.types.movietrackingcamera.sensor_width*", "movie_clip/tracking/clip/sidebar/track/camera.html#bpy-types-movietrackingcamera-sensor-width"),
|
||||
("bpy.types.posebone.use_ik_rotation_control*", "animation/armatures/posing/bone_constraints/inverse_kinematics/introduction.html#bpy-types-posebone-use-ik-rotation-control"),
|
||||
("bpy.types.scenegpencil.antialias_threshold*", "render/cycles/render_settings/grease_pencil.html#bpy-types-scenegpencil-antialias-threshold"),
|
||||
("bpy.types.spaceuveditor.sticky_select_mode*", "editors/uv/selecting.html#bpy-types-spaceuveditor-sticky-select-mode"),
|
||||
|
@ -320,6 +334,7 @@ url_manual_mapping = (
|
|||
("bpy.types.spaceuveditor.show_pixel_coords*", "editors/uv/sidebar.html#bpy-types-spaceuveditor-show-pixel-coords"),
|
||||
("bpy.types.spaceview3d.show_reconstruction*", "editors/3dview/display/overlays.html#bpy-types-spaceview3d-show-reconstruction"),
|
||||
("bpy.types.toolsettings.gpencil_selectmode*", "grease_pencil/selecting.html#bpy-types-toolsettings-gpencil-selectmode"),
|
||||
("bpy.types.toolsettings.use_auto_normalize*", "sculpt_paint/weight_paint/tool_settings/options.html#bpy-types-toolsettings-use-auto-normalize"),
|
||||
("bpy.types.toolsettings.use_snap_translate*", "editors/3dview/controls/snapping.html#bpy-types-toolsettings-use-snap-translate"),
|
||||
("bpy.types.toolsettings.use_uv_select_sync*", "editors/uv/selecting.html#bpy-types-toolsettings-use-uv-select-sync"),
|
||||
("bpy.ops.gpencil.active_frames_delete_all*", "grease_pencil/animation/tools.html#bpy-ops-gpencil-active-frames-delete-all"),
|
||||
|
@ -344,6 +359,8 @@ url_manual_mapping = (
|
|||
("bpy.types.fluiddomainsettings.time_scale*", "physics/fluid/type/domain/settings.html#bpy-types-fluiddomainsettings-time-scale"),
|
||||
("bpy.types.fluidflowsettings.texture_size*", "physics/fluid/type/flow.html#bpy-types-fluidflowsettings-texture-size"),
|
||||
("bpy.types.fluidflowsettings.use_absolute*", "physics/fluid/type/flow.html#bpy-types-fluidflowsettings-use-absolute"),
|
||||
("bpy.types.geometrynodeattributerandomize*", "modeling/modifiers/nodes/attribute/attribute_randomize.html#bpy-types-geometrynodeattributerandomize"),
|
||||
("bpy.types.geometrynodesubdivisionsurface*", "modeling/modifiers/nodes/mesh/subdivision_surface.html#bpy-types-geometrynodesubdivisionsurface"),
|
||||
("bpy.types.imageformatsettings.color_mode*", "render/output/properties/output.html#bpy-types-imageformatsettings-color-mode"),
|
||||
("bpy.types.linestyle*modifier_alongstroke*", "render/freestyle/parameter_editor/line_style/modifiers/color/along_stroke.html#bpy-types-linestyle-modifier-alongstroke"),
|
||||
("bpy.types.linestyle*modifier_creaseangle*", "render/freestyle/parameter_editor/line_style/modifiers/color/crease_angle.html#bpy-types-linestyle-modifier-creaseangle"),
|
||||
|
@ -351,12 +368,17 @@ url_manual_mapping = (
|
|||
("bpy.types.materialgpencilstyle.mix_color*", "grease_pencil/materials/grease_pencil_shader.html#bpy-types-materialgpencilstyle-mix-color"),
|
||||
("bpy.types.materialgpencilstyle.show_fill*", "grease_pencil/materials/grease_pencil_shader.html#bpy-types-materialgpencilstyle-show-fill"),
|
||||
("bpy.types.mesh.use_mirror_vertex_group_x*", "sculpt_paint/weight_paint/tool_settings/symmetry.html#bpy-types-mesh-use-mirror-vertex-group-x"),
|
||||
("bpy.types.movietrackingcamera.division_k*", "movie_clip/tracking/clip/sidebar/track/camera.html#bpy-types-movietrackingcamera-division-k"),
|
||||
("bpy.types.movietrackingobject.keyframe_a*", "movie_clip/tracking/clip/toolbar/solve.html#bpy-types-movietrackingobject-keyframe-a"),
|
||||
("bpy.types.movietrackingobject.keyframe_b*", "movie_clip/tracking/clip/toolbar/solve.html#bpy-types-movietrackingobject-keyframe-b"),
|
||||
("bpy.types.rendersettings.use_compositing*", "render/output/properties/post_processing.html#bpy-types-rendersettings-use-compositing"),
|
||||
("bpy.types.rendersettings.use_placeholder*", "render/output/properties/output.html#bpy-types-rendersettings-use-placeholder"),
|
||||
("bpy.types.shadernodesubsurfacescattering*", "render/shader_nodes/shader/sss.html#bpy-types-shadernodesubsurfacescattering"),
|
||||
("bpy.types.spacedopesheeteditor.auto_snap*", "editors/dope_sheet/editing.html#bpy-types-spacedopesheeteditor-auto-snap"),
|
||||
("bpy.types.spacetexteditor.use_match_case*", "editors/text_editor.html#bpy-types-spacetexteditor-use-match-case"),
|
||||
("bpy.types.spaceview3d.show_object_select*", "editors/3dview/display/visibility.html#bpy-types-spaceview3d-show-object-select"),
|
||||
("bpy.types.toolsettings.use_lock_relative*", "sculpt_paint/weight_paint/tool_settings/options.html#bpy-types-toolsettings-use-lock-relative"),
|
||||
("bpy.types.vertexpaint.use_group_restrict*", "sculpt_paint/weight_paint/tool_settings/options.html#bpy-types-vertexpaint-use-group-restrict"),
|
||||
("bpy.types.volumedisplay.wireframe_detail*", "modeling/volumes/properties.html#bpy-types-volumedisplay-wireframe-detail"),
|
||||
("bpy.ops.armature.rigify_add_bone_groups*", "addons/rigging/rigify/metarigs.html#bpy-ops-armature-rigify-add-bone-groups"),
|
||||
("bpy.ops.object.assign_property_defaults*", "animation/armatures/posing/editing/apply.html#bpy-ops-object-assign-property-defaults"),
|
||||
|
@ -386,6 +408,8 @@ url_manual_mapping = (
|
|||
("bpy.types.layercollection.hide_viewport*", "editors/outliner/interface.html#bpy-types-layercollection-hide-viewport"),
|
||||
("bpy.types.layercollection.indirect_only*", "editors/outliner/interface.html#bpy-types-layercollection-indirect-only"),
|
||||
("bpy.types.material.use_sss_translucency*", "render/eevee/materials/settings.html#bpy-types-material-use-sss-translucency"),
|
||||
("bpy.types.movietrackingcamera.principal*", "movie_clip/tracking/clip/sidebar/track/camera.html#bpy-types-movietrackingcamera-principal"),
|
||||
("bpy.types.object.use_camera_lock_parent*", "scene_layout/object/properties/relations.html#bpy-types-object-use-camera-lock-parent"),
|
||||
("bpy.types.rendersettings.pixel_aspect_x*", "render/output/properties/dimensions.html#bpy-types-rendersettings-pixel-aspect-x"),
|
||||
("bpy.types.rendersettings.pixel_aspect_y*", "render/output/properties/dimensions.html#bpy-types-rendersettings-pixel-aspect-y"),
|
||||
("bpy.types.rigidbodyconstraint.use_limit*", "physics/rigid_body/constraints/introduction.html#bpy-types-rigidbodyconstraint-use-limit"),
|
||||
|
@ -401,6 +425,7 @@ url_manual_mapping = (
|
|||
("bpy.types.vertexweightproximitymodifier*", "modeling/modifiers/modify/weight_proximity.html#bpy-types-vertexweightproximitymodifier"),
|
||||
("bpy.types.view3doverlay.show_wireframes*", "editors/3dview/display/overlays.html#bpy-types-view3doverlay-show-wireframes"),
|
||||
("bpy.ops.mesh.vertices_smooth_laplacian*", "modeling/meshes/editing/vertex/laplacian_smooth.html#bpy-ops-mesh-vertices-smooth-laplacian"),
|
||||
("bpy.ops.view3d.blenderkit_set_category*", "addons/3d_view/blenderkit.html#bpy-ops-view3d-blenderkit-set-category"),
|
||||
("bpy.types.armature.rigify_colors_index*", "addons/rigging/rigify/metarigs.html#bpy-types-armature-rigify-colors-index"),
|
||||
("bpy.types.armature.rigify_theme_to_add*", "addons/rigging/rigify/metarigs.html#bpy-types-armature-rigify-theme-to-add"),
|
||||
("bpy.types.brush.pose_smooth_iterations*", "sculpt_paint/sculpting/tools/pose.html#bpy-types-brush-pose-smooth-iterations"),
|
||||
|
@ -410,6 +435,7 @@ url_manual_mapping = (
|
|||
("bpy.types.compositornodedoubleedgemask*", "compositing/types/matte/double_edge_mask.html#bpy-types-compositornodedoubleedgemask"),
|
||||
("bpy.types.fluiddomainsettings.clipping*", "physics/fluid/type/domain/settings.html#bpy-types-fluiddomainsettings-clipping"),
|
||||
("bpy.types.fluiddomainsettings.use_mesh*", "physics/fluid/type/domain/liquid/mesh.html#bpy-types-fluiddomainsettings-use-mesh"),
|
||||
("bpy.types.geometrynodeattributecompare*", "modeling/modifiers/nodes/attribute/attribute_compare.html#bpy-types-geometrynodeattributecompare"),
|
||||
("bpy.types.material.preview_render_type*", "render/materials/preview.html#bpy-types-material-preview-render-type"),
|
||||
("bpy.types.materialgpencilstyle.pattern*", "grease_pencil/materials/grease_pencil_shader.html#bpy-types-materialgpencilstyle-pattern"),
|
||||
("bpy.types.materialgpencilstyle.texture*", "grease_pencil/materials/grease_pencil_shader.html#bpy-types-materialgpencilstyle-texture"),
|
||||
|
@ -449,8 +475,11 @@ url_manual_mapping = (
|
|||
("bpy.types.fluiddomainsettings.gravity*", "physics/fluid/type/domain/settings.html#bpy-types-fluiddomainsettings-gravity"),
|
||||
("bpy.types.fluidflowsettings.flow_type*", "physics/fluid/type/flow.html#bpy-types-fluidflowsettings-flow-type"),
|
||||
("bpy.types.fluidflowsettings.subframes*", "physics/fluid/type/flow.html#bpy-types-fluidflowsettings-subframes"),
|
||||
("bpy.types.geometrynodepointdistribute*", "modeling/modifiers/nodes/point/point_distribute.html#bpy-types-geometrynodepointdistribute"),
|
||||
("bpy.types.imagepaint.screen_grab_size*", "sculpt_paint/texture_paint/tool_settings/options.html#bpy-types-imagepaint-screen-grab-size"),
|
||||
("bpy.types.linestyle*modifier_material*", "render/freestyle/parameter_editor/line_style/modifiers/color/material.html#bpy-types-linestyle-modifier-material"),
|
||||
("bpy.types.movietrackingcamera.brown_k*", "movie_clip/tracking/clip/sidebar/track/camera.html#bpy-types-movietrackingcamera-brown-k"),
|
||||
("bpy.types.movietrackingcamera.brown_p*", "movie_clip/tracking/clip/sidebar/track/camera.html#bpy-types-movietrackingcamera-brown-p"),
|
||||
("bpy.types.particlesettingstextureslot*", "physics/particles/texture_influence.html#bpy-types-particlesettingstextureslot"),
|
||||
("bpy.types.posebone.ik_rotation_weight*", "animation/armatures/posing/bone_constraints/inverse_kinematics/introduction.html#bpy-types-posebone-ik-rotation-weight"),
|
||||
("bpy.types.regionview3d.show_sync_view*", "editors/3dview/navigate/views.html#bpy-types-regionview3d-show-sync-view"),
|
||||
|
@ -465,6 +494,7 @@ url_manual_mapping = (
|
|||
("bpy.types.sequenceeditor.show_overlay*", "video_editing/preview/sidebar.html#bpy-types-sequenceeditor-show-overlay"),
|
||||
("bpy.types.spacetexteditor.show_margin*", "editors/text_editor.html#bpy-types-spacetexteditor-show-margin"),
|
||||
("bpy.types.spline.radius_interpolation*", "modeling/curves/properties/active_spline.html#bpy-types-spline-radius-interpolation"),
|
||||
("bpy.types.toolsettings.use_multipaint*", "sculpt_paint/weight_paint/tool_settings/options.html#bpy-types-toolsettings-use-multipaint"),
|
||||
("bpy.types.toolsettings.use_snap_scale*", "editors/3dview/controls/snapping.html#bpy-types-toolsettings-use-snap-scale"),
|
||||
("bpy.types.toolsettings.uv_select_mode*", "editors/uv/selecting.html#bpy-types-toolsettings-uv-select-mode"),
|
||||
("bpy.types.viewlayer.material_override*", "render/layers/layers.html#bpy-types-viewlayer-material-override"),
|
||||
|
@ -472,6 +502,7 @@ url_manual_mapping = (
|
|||
("bpy.ops.mesh.normals_make_consistent*", "modeling/meshes/editing/mesh/normals.html#bpy-ops-mesh-normals-make-consistent"),
|
||||
("bpy.ops.mesh.offset_edge_loops_slide*", "modeling/meshes/editing/edge/offset_edge_slide.html#bpy-ops-mesh-offset-edge-loops-slide"),
|
||||
("bpy.ops.object.duplicate_move_linked*", "scene_layout/object/editing/duplicate_linked.html#bpy-ops-object-duplicate-move-linked"),
|
||||
("bpy.ops.object.parent_no_inverse_set*", "scene_layout/object/editing/parent.html#bpy-ops-object-parent-no-inverse-set"),
|
||||
("bpy.ops.object.vertex_group_quantize*", "sculpt_paint/weight_paint/editing.html#bpy-ops-object-vertex-group-quantize"),
|
||||
("bpy.ops.outliner.collection_instance*", "editors/outliner/editing.html#bpy-ops-outliner-collection-instance"),
|
||||
("bpy.ops.sequencer.change_effect_type*", "video_editing/sequencer/editing.html#bpy-ops-sequencer-change-effect-type"),
|
||||
|
@ -494,6 +525,7 @@ url_manual_mapping = (
|
|||
("bpy.types.gpencillayer.use_solo_mode*", "grease_pencil/properties/layers.html#bpy-types-gpencillayer-use-solo-mode"),
|
||||
("bpy.types.greasepencil.use_multiedit*", "grease_pencil/multiframe.html#bpy-types-greasepencil-use-multiedit"),
|
||||
("bpy.types.materialgpencilstyle.color*", "grease_pencil/materials/grease_pencil_shader.html#bpy-types-materialgpencilstyle-color"),
|
||||
("bpy.types.movietrackingcamera.nuke_k*", "movie_clip/tracking/clip/sidebar/track/camera.html#bpy-types-movietrackingcamera-nuke-k"),
|
||||
("bpy.types.movietrackingstabilization*", "movie_clip/tracking/clip/sidebar/stabilization/index.html#bpy-types-movietrackingstabilization"),
|
||||
("bpy.types.object.display_bounds_type*", "scene_layout/object/properties/display.html#bpy-types-object-display-bounds-type"),
|
||||
("bpy.types.regionview3d.lock_rotation*", "editors/3dview/navigate/views.html#bpy-types-regionview3d-lock-rotation"),
|
||||
|
@ -518,6 +550,7 @@ url_manual_mapping = (
|
|||
("bpy.ops.outliner.collection_isolate*", "editors/outliner/editing.html#bpy-ops-outliner-collection-isolate"),
|
||||
("bpy.ops.pose.visual_transform_apply*", "animation/armatures/posing/editing/apply.html#bpy-ops-pose-visual-transform-apply"),
|
||||
("bpy.ops.sequencer.view_ghost_border*", "video_editing/preview/sidebar.html#bpy-ops-sequencer-view-ghost-border"),
|
||||
("bpy.ops.view3d.blenderkit_asset_bar*", "addons/3d_view/blenderkit.html#bpy-ops-view3d-blenderkit-asset-bar"),
|
||||
("bpy.types.animdata.action_influence*", "editors/nla/sidebar.html#bpy-types-animdata-action-influence"),
|
||||
("bpy.types.armature.layers_protected*", "animation/armatures/properties/skeleton.html#bpy-types-armature-layers-protected"),
|
||||
("bpy.types.brush.crease_pinch_factor*", "sculpt_paint/sculpting/tools/snake_hook.html#bpy-types-brush-crease-pinch-factor"),
|
||||
|
@ -533,6 +566,10 @@ url_manual_mapping = (
|
|||
("bpy.types.dynamicpaintbrushsettings*", "physics/dynamic_paint/brush.html#bpy-types-dynamicpaintbrushsettings"),
|
||||
("bpy.types.fluiddomainsettings.alpha*", "physics/fluid/type/domain/settings.html#bpy-types-fluiddomainsettings-alpha"),
|
||||
("bpy.types.fluidflowsettings.density*", "physics/fluid/type/flow.html#bpy-types-fluidflowsettings-density"),
|
||||
("bpy.types.geometrynodeattributefill*", "modeling/modifiers/nodes/attribute/attribute_fill.html#bpy-types-geometrynodeattributefill"),
|
||||
("bpy.types.geometrynodeattributemath*", "modeling/modifiers/nodes/attribute/attribute_math.html#bpy-types-geometrynodeattributemath"),
|
||||
("bpy.types.geometrynodepointinstance*", "modeling/modifiers/nodes/point/point_instance.html#bpy-types-geometrynodepointinstance"),
|
||||
("bpy.types.geometrynodepointseparate*", "modeling/modifiers/nodes/point/point_separate.html#bpy-types-geometrynodepointseparate"),
|
||||
("bpy.types.light.use_custom_distance*", "render/eevee/lighting.html#bpy-types-light-use-custom-distance"),
|
||||
("bpy.types.materialgpencilstyle.flip*", "grease_pencil/materials/grease_pencil_shader.html#bpy-types-materialgpencilstyle-flip"),
|
||||
("bpy.types.materialgpencilstyle.mode*", "grease_pencil/materials/grease_pencil_shader.html#bpy-types-materialgpencilstyle-mode"),
|
||||
|
@ -596,6 +633,8 @@ url_manual_mapping = (
|
|||
("bpy.types.cyclesvisibilitysettings*", "render/cycles/object_settings/object_data.html#bpy-types-cyclesvisibilitysettings"),
|
||||
("bpy.types.fluiddomainsettings.beta*", "physics/fluid/type/domain/settings.html#bpy-types-fluiddomainsettings-beta"),
|
||||
("bpy.types.fluidmodifier.fluid_type*", "physics/fluid/type/index.html#bpy-types-fluidmodifier-fluid-type"),
|
||||
("bpy.types.functionnodefloatcompare*", "modeling/modifiers/nodes/utilities/float_compare.html#bpy-types-functionnodefloatcompare"),
|
||||
("bpy.types.geometrynodejoingeometry*", "modeling/modifiers/nodes/geometry/join_geometry.html#bpy-types-geometrynodejoingeometry"),
|
||||
("bpy.types.image.use_half_precision*", "editors/image/image_settings.html#bpy-types-image-use-half-precision"),
|
||||
("bpy.types.imagepaint.interpolation*", "sculpt_paint/texture_paint/tool_settings/texture_slots.html#bpy-types-imagepaint-interpolation"),
|
||||
("bpy.types.linestyle*modifier_noise*", "render/freestyle/parameter_editor/line_style/modifiers/color/noise.html#bpy-types-linestyle-modifier-noise"),
|
||||
|
@ -615,6 +654,7 @@ url_manual_mapping = (
|
|||
("bpy.types.vertexweighteditmodifier*", "modeling/modifiers/modify/weight_edit.html#bpy-types-vertexweighteditmodifier"),
|
||||
("bpy.types.volumedisplay.slice_axis*", "modeling/volumes/properties.html#bpy-types-volumedisplay-slice-axis"),
|
||||
("bpy.ops.anim.channels_clean_empty*", "editors/nla/editing.html#bpy-ops-anim-channels-clean-empty"),
|
||||
("bpy.ops.clip.set_center_principal*", "movie_clip/tracking/clip/sidebar/track/camera.html#bpy-ops-clip-set-center-principal"),
|
||||
("bpy.ops.curve.match_texture_space*", "modeling/meshes/uv/uv_texture_spaces.html#bpy-ops-curve-match-texture-space"),
|
||||
("bpy.ops.font.text_paste_from_file*", "modeling/texts/editing.html#bpy-ops-font-text-paste-from-file"),
|
||||
("bpy.ops.gpencil.frame_clean_loose*", "grease_pencil/modes/edit/grease_pencil_menu.html#bpy-ops-gpencil-frame-clean-loose"),
|
||||
|
@ -624,6 +664,7 @@ url_manual_mapping = (
|
|||
("bpy.ops.object.vertex_group_clean*", "sculpt_paint/weight_paint/editing.html#bpy-ops-object-vertex-group-clean"),
|
||||
("bpy.ops.preferences.theme_install*", "editors/preferences/themes.html#bpy-ops-preferences-theme-install"),
|
||||
("bpy.ops.render.play-rendered-anim*", "render/output/animation_player.html#bpy-ops-render-play-rendered-anim"),
|
||||
("bpy.ops.scene.blenderkit_download*", "addons/3d_view/blenderkit.html#bpy-ops-scene-blenderkit-download"),
|
||||
("bpy.ops.sculpt.set_pivot_position*", "sculpt_paint/sculpting/editing/sculpt.html#bpy-ops-sculpt-set-pivot-position"),
|
||||
("bpy.ops.sequencer.reassign_inputs*", "video_editing/sequencer/editing.html#bpy-ops-sequencer-reassign-inputs"),
|
||||
("bpy.ops.view3d.view_center_camera*", "editors/3dview/navigate/camera_view.html#bpy-ops-view3d-view-center-camera"),
|
||||
|
@ -647,6 +688,8 @@ url_manual_mapping = (
|
|||
("bpy.types.constraint.target_space*", "animation/constraints/interface/common.html#bpy-types-constraint-target-space"),
|
||||
("bpy.types.curve.use_deform_bounds*", "modeling/curves/properties/shape.html#bpy-types-curve-use-deform-bounds"),
|
||||
("bpy.types.freestylemodulesettings*", "render/freestyle/python.html#bpy-types-freestylemodulesettings"),
|
||||
("bpy.types.functionnodebooleanmath*", "modeling/modifiers/nodes/utilities/boolean_math.html#bpy-types-functionnodebooleanmath"),
|
||||
("bpy.types.geometrynodetriangulate*", "modeling/modifiers/nodes/mesh/triangulate.html#bpy-types-geometrynodetriangulate"),
|
||||
("bpy.types.gpencillayer.blend_mode*", "grease_pencil/properties/layers.html#bpy-types-gpencillayer-blend-mode"),
|
||||
("bpy.types.gpencillayer.mask_layer*", "grease_pencil/properties/layers.html#bpy-types-gpencillayer-mask-layer"),
|
||||
("bpy.types.gpencilsculptguide.type*", "grease_pencil/modes/draw/guides.html#bpy-types-gpencilsculptguide-type"),
|
||||
|
@ -693,6 +736,7 @@ url_manual_mapping = (
|
|||
("bpy.ops.sculpt.detail_flood_fill*", "sculpt_paint/sculpting/tool_settings/dyntopo.html#bpy-ops-sculpt-detail-flood-fill"),
|
||||
("bpy.ops.sequencer.duplicate_move*", "video_editing/sequencer/editing.html#bpy-ops-sequencer-duplicate-move"),
|
||||
("bpy.ops.uv.average_islands_scale*", "modeling/meshes/uv/editing.html#bpy-ops-uv-average-islands-scale"),
|
||||
("bpy.ops.view3d.blenderkit_search*", "addons/3d_view/blenderkit.html#bpy-ops-view3d-blenderkit-search"),
|
||||
("bpy.types.armature.pose_position*", "animation/armatures/properties/skeleton.html#bpy-types-armature-pose-position"),
|
||||
("bpy.types.brightcontrastmodifier*", "video_editing/sequencer/sidebar/modifiers.html#bpy-types-brightcontrastmodifier"),
|
||||
("bpy.types.brush.cursor_color_add*", "sculpt_paint/brush/cursor.html#bpy-types-brush-cursor-color-add"),
|
||||
|
@ -705,6 +749,7 @@ url_manual_mapping = (
|
|||
("bpy.types.compositornodecurvergb*", "compositing/types/color/rgb_curves.html#bpy-types-compositornodecurvergb"),
|
||||
("bpy.types.compositornodecurvevec*", "compositing/types/vector/vector_curves.html#bpy-types-compositornodecurvevec"),
|
||||
("bpy.types.compositornodedisplace*", "compositing/types/distort/displace.html#bpy-types-compositornodedisplace"),
|
||||
("bpy.types.compositornodeexposure*", "compositing/types/color/exposure.html#bpy-types-compositornodeexposure"),
|
||||
("bpy.types.compositornodelensdist*", "compositing/types/distort/lens_distortion.html#bpy-types-compositornodelensdist"),
|
||||
("bpy.types.compositornodemaprange*", "compositing/types/vector/map_range.html#bpy-types-compositornodemaprange"),
|
||||
("bpy.types.compositornodemapvalue*", "compositing/types/vector/map_value.html#bpy-types-compositornodemapvalue"),
|
||||
|
@ -720,6 +765,7 @@ url_manual_mapping = (
|
|||
("bpy.types.curve.bevel_resolution*", "modeling/curves/properties/geometry.html#bpy-types-curve-bevel-resolution"),
|
||||
("bpy.types.cyclesmaterialsettings*", "render/cycles/material_settings.html#bpy-types-cyclesmaterialsettings"),
|
||||
("bpy.types.dopesheet.show_summary*", "editors/dope_sheet/introduction.html#bpy-types-dopesheet-show-summary"),
|
||||
("bpy.types.geometrynodeobjectinfo*", "modeling/modifiers/nodes/input/object_info.html#bpy-types-geometrynodeobjectinfo"),
|
||||
("bpy.types.imagepaint.use_occlude*", "sculpt_paint/texture_paint/tool_settings/options.html#bpy-types-imagepaint-use-occlude"),
|
||||
("bpy.types.latticegpencilmodifier*", "grease_pencil/modifiers/deform/lattice.html#bpy-types-latticegpencilmodifier"),
|
||||
("bpy.types.mesh.auto_smooth_angle*", "modeling/meshes/structure.html#bpy-types-mesh-auto-smooth-angle"),
|
||||
|
@ -740,6 +786,7 @@ url_manual_mapping = (
|
|||
("bpy.types.volumerender.step_size*", "modeling/volumes/properties.html#bpy-types-volumerender-step-size"),
|
||||
("bpy.types.weightednormalmodifier*", "modeling/modifiers/modify/weighted_normal.html#bpy-types-weightednormalmodifier"),
|
||||
("bpy.ops.armature.autoside_names*", "animation/armatures/bones/editing/naming.html#bpy-ops-armature-autoside-names"),
|
||||
("bpy.ops.clip.create_plane_track*", "movie_clip/tracking/clip/toolbar/solve.html#bpy-ops-clip-create-plane-track"),
|
||||
("bpy.ops.curve.spline_weight_set*", "modeling/curves/editing/other.html#bpy-ops-curve-spline-weight-set"),
|
||||
("bpy.ops.gpencil.blank_frame_add*", "grease_pencil/animation/tools.html#bpy-ops-gpencil-blank-frame-add"),
|
||||
("bpy.ops.gpencil.frame_duplicate*", "grease_pencil/animation/tools.html#bpy-ops-gpencil-frame-duplicate"),
|
||||
|
@ -794,11 +841,14 @@ url_manual_mapping = (
|
|||
("bpy.types.dopesheet.filter_text*", "editors/graph_editor/channels.html#bpy-types-dopesheet-filter-text"),
|
||||
("bpy.types.fluideffectorsettings*", "physics/fluid/type/effector.html#bpy-types-fluideffectorsettings"),
|
||||
("bpy.types.followtrackconstraint*", "animation/constraints/motion_tracking/follow_track.html#bpy-types-followtrackconstraint"),
|
||||
("bpy.types.geometrynodeedgesplit*", "modeling/modifiers/nodes/mesh/edge_split.html#bpy-types-geometrynodeedgesplit"),
|
||||
("bpy.types.geometrynodetransform*", "modeling/modifiers/nodes/geometry/transform.html#bpy-types-geometrynodetransform"),
|
||||
("bpy.types.gpencilsculptsettings*", "grease_pencil/properties/index.html#bpy-types-gpencilsculptsettings"),
|
||||
("bpy.types.light.cutoff_distance*", "render/eevee/lighting.html#bpy-types-light-cutoff-distance"),
|
||||
("bpy.types.lockedtrackconstraint*", "animation/constraints/tracking/locked_track.html#bpy-types-lockedtrackconstraint"),
|
||||
("bpy.types.material.blend_method*", "render/eevee/materials/settings.html#bpy-types-material-blend-method"),
|
||||
("bpy.types.mirrorgpencilmodifier*", "grease_pencil/modifiers/generate/mirror.html#bpy-types-mirrorgpencilmodifier"),
|
||||
("bpy.types.movietrackingcamera.k*", "movie_clip/tracking/clip/sidebar/track/camera.html#bpy-types-movietrackingcamera-k"),
|
||||
("bpy.types.offsetgpencilmodifier*", "grease_pencil/modifiers/deform/offset.html#bpy-types-offsetgpencilmodifier"),
|
||||
("bpy.types.particlefluidsettings*", "physics/particles/emitter/physics/fluid.html#bpy-types-particlefluidsettings"),
|
||||
("bpy.types.posebone.custom_shape*", "animation/armatures/bones/properties/display.html#bpy-types-posebone-custom-shape"),
|
||||
|
@ -943,6 +993,7 @@ url_manual_mapping = (
|
|||
("bpy.types.curve.use_map_taper*", "modeling/curves/properties/geometry.html#bpy-types-curve-use-map-taper"),
|
||||
("bpy.types.cyclesworldsettings*", "render/cycles/world_settings.html#bpy-types-cyclesworldsettings"),
|
||||
("bpy.types.fluiddomainsettings*", "physics/fluid/type/domain/index.html#bpy-types-fluiddomainsettings"),
|
||||
("bpy.types.geometrynodeboolean*", "modeling/modifiers/nodes/mesh/boolean.html#bpy-types-geometrynodeboolean"),
|
||||
("bpy.types.hookgpencilmodifier*", "grease_pencil/modifiers/deform/hook.html#bpy-types-hookgpencilmodifier"),
|
||||
("bpy.types.imageformatsettings*", "files/media/image_formats.html#bpy-types-imageformatsettings"),
|
||||
("bpy.types.kinematicconstraint*", "animation/constraints/tracking/ik_solver.html#bpy-types-kinematicconstraint"),
|
||||
|
@ -979,7 +1030,9 @@ url_manual_mapping = (
|
|||
("bpy.ops.anim.keyframe_delete*", "animation/keyframes/editing.html#bpy-ops-anim-keyframe-delete"),
|
||||
("bpy.ops.anim.keyframe_insert*", "animation/keyframes/editing.html#bpy-ops-anim-keyframe-insert"),
|
||||
("bpy.ops.armature.bone_layers*", "animation/armatures/bones/editing/change_layers.html#bpy-ops-armature-bone-layers"),
|
||||
("bpy.ops.clip.detect_features*", "movie_clip/tracking/clip/editing/track.html#bpy-ops-clip-detect-features"),
|
||||
("bpy.ops.clip.add_marker_move*", "movie_clip/tracking/clip/editing/track.html#bpy-ops-clip-add-marker-move"),
|
||||
("bpy.ops.clip.bundles_to_mesh*", "movie_clip/tracking/clip/editing/reconstruction.html#bpy-ops-clip-bundles-to-mesh"),
|
||||
("bpy.ops.clip.detect_features*", "movie_clip/tracking/clip/toolbar/track.html#bpy-ops-clip-detect-features"),
|
||||
("bpy.ops.console.autocomplete*", "editors/python_console.html#bpy-ops-console-autocomplete"),
|
||||
("bpy.ops.curve.dissolve_verts*", "modeling/curves/editing/curve.html#bpy-ops-curve-dissolve-verts"),
|
||||
("bpy.ops.curve.duplicate_move*", "modeling/curves/editing/curve.html#bpy-ops-curve-duplicate-move"),
|
||||
|
@ -1011,6 +1064,7 @@ url_manual_mapping = (
|
|||
("bpy.ops.transform.edge_slide*", "modeling/meshes/editing/edge/edge_slide.html#bpy-ops-transform-edge-slide"),
|
||||
("bpy.ops.transform.vert_slide*", "modeling/meshes/editing/vertex/slide_vertices.html#bpy-ops-transform-vert-slide"),
|
||||
("bpy.ops.uv.project_from_view*", "modeling/meshes/editing/uv.html#bpy-ops-uv-project-from-view"),
|
||||
("bpy.ops.wm.blenderkit_logout*", "addons/3d_view/blenderkit.html#bpy-ops-wm-blenderkit-logout"),
|
||||
("bpy.ops.wm.memory_statistics*", "advanced/operators.html#bpy-ops-wm-memory-statistics"),
|
||||
("bpy.types.adjustmentsequence*", "video_editing/sequencer/strips/adjustment.html#bpy-types-adjustmentsequence"),
|
||||
("bpy.types.alphaundersequence*", "video_editing/sequencer/strips/effects/alpha_over_under_overdrop.html#bpy-types-alphaundersequence"),
|
||||
|
@ -1041,6 +1095,7 @@ url_manual_mapping = (
|
|||
("bpy.types.object.empty_image*", "modeling/empties.html#bpy-types-object-empty-image"),
|
||||
("bpy.types.object.hide_render*", "scene_layout/object/properties/visibility.html#bpy-types-object-hide-render"),
|
||||
("bpy.types.object.hide_select*", "scene_layout/object/properties/visibility.html#bpy-types-object-hide-select"),
|
||||
("bpy.types.object.parent_type*", "scene_layout/object/properties/relations.html#bpy-types-object-parent-type"),
|
||||
("bpy.types.object.show_bounds*", "scene_layout/object/properties/display.html#bpy-types-object-show-bounds"),
|
||||
("bpy.types.rendersettings.fps*", "render/output/properties/dimensions.html#bpy-types-rendersettings-fps"),
|
||||
("bpy.types.scene.audio_volume*", "scene_layout/scene/properties.html#bpy-types-scene-audio-volume"),
|
||||
|
@ -1068,6 +1123,7 @@ url_manual_mapping = (
|
|||
("bpy.types.volumerender.space*", "modeling/volumes/properties.html#bpy-types-volumerender-space"),
|
||||
("bpy.ops.anim.keyframe_clear*", "animation/keyframes/editing.html#bpy-ops-anim-keyframe-clear"),
|
||||
("bpy.ops.armature.flip_names*", "animation/armatures/bones/editing/naming.html#bpy-ops-armature-flip-names"),
|
||||
("bpy.ops.clip.track_to_empty*", "movie_clip/tracking/clip/editing/reconstruction.html#bpy-ops-clip-track-to-empty"),
|
||||
("bpy.ops.curve.cyclic_toggle*", "modeling/curves/editing/curve.html#bpy-ops-curve-cyclic-toggle"),
|
||||
("bpy.ops.curve.primitive*add*", "modeling/curves/primitives.html#bpy-ops-curve-primitive-add"),
|
||||
("bpy.ops.curve.smooth_radius*", "modeling/curves/editing/control_points.html#bpy-ops-curve-smooth-radius"),
|
||||
|
@ -1092,6 +1148,7 @@ url_manual_mapping = (
|
|||
("bpy.ops.mesh.smooth_normals*", "modeling/meshes/editing/mesh/normals.html#bpy-ops-mesh-smooth-normals"),
|
||||
("bpy.ops.nla.action_pushdown*", "editors/nla/tracks.html#bpy-ops-nla-action-pushdown"),
|
||||
("bpy.ops.nla.tweakmode_enter*", "editors/nla/editing.html#bpy-ops-nla-tweakmode-enter"),
|
||||
("bpy.ops.object.origin_clear*", "scene_layout/object/editing/clear.html#bpy-ops-object-origin-clear"),
|
||||
("bpy.ops.object.parent_clear*", "scene_layout/object/editing/parent.html#bpy-ops-object-parent-clear"),
|
||||
("bpy.ops.object.shade_smooth*", "scene_layout/object/editing/shading.html#bpy-ops-object-shade-smooth"),
|
||||
("bpy.ops.object.voxel_remesh*", "modeling/meshes/retopology.html#bpy-ops-object-voxel-remesh"),
|
||||
|
@ -1108,6 +1165,7 @@ url_manual_mapping = (
|
|||
("bpy.ops.uv.cylinder_project*", "modeling/meshes/editing/uv.html#bpy-ops-uv-cylinder-project"),
|
||||
("bpy.ops.uv.minimize_stretch*", "modeling/meshes/uv/editing.html#bpy-ops-uv-minimize-stretch"),
|
||||
("bpy.ops.uv.select_edge_ring*", "editors/uv/selecting.html#bpy-ops-uv-select-edge-ring"),
|
||||
("bpy.ops.wm.blenderkit_login*", "addons/3d_view/blenderkit.html#bpy-ops-wm-blenderkit-login"),
|
||||
("bpy.types.alphaoversequence*", "video_editing/sequencer/strips/effects/alpha_over_under_overdrop.html#bpy-types-alphaoversequence"),
|
||||
("bpy.types.armatureeditbones*", "animation/armatures/bones/editing/index.html#bpy-types-armatureeditbones"),
|
||||
("bpy.types.brush.pose_offset*", "sculpt_paint/sculpting/tools/pose.html#bpy-types-brush-pose-offset"),
|
||||
|
@ -1135,6 +1193,7 @@ url_manual_mapping = (
|
|||
("bpy.types.meshcachemodifier*", "modeling/modifiers/modify/mesh_cache.html#bpy-types-meshcachemodifier"),
|
||||
("bpy.types.movieclipsequence*", "video_editing/sequencer/strips/clip_mask.html#bpy-types-movieclipsequence"),
|
||||
("bpy.types.object.dimensions*", "scene_layout/object/properties/transforms.html#bpy-types-object-dimensions"),
|
||||
("bpy.types.object.pass_index*", "scene_layout/object/properties/relations.html#bpy-types-object-pass-index"),
|
||||
("bpy.types.object.track_axis*", "scene_layout/object/properties/relations.html#bpy-types-object-track-axis"),
|
||||
("bpy.types.pose.use_mirror_x*", "animation/armatures/posing/tool_settings.html#bpy-types-pose-use-mirror-x"),
|
||||
("bpy.types.preferencessystem*", "editors/preferences/system.html#bpy-types-preferencessystem"),
|
||||
|
@ -1242,6 +1301,9 @@ url_manual_mapping = (
|
|||
("bpy.types.texturenodegroup*", "editors/texture_node/types/groups.html#bpy-types-texturenodegroup"),
|
||||
("bpy.types.texturenodeimage*", "editors/texture_node/types/input/image.html#bpy-types-texturenodeimage"),
|
||||
("bpy.types.viewlayer.use_ao*", "render/layers/layers.html#bpy-types-viewlayer-use-ao"),
|
||||
("bpy.ops.clip.clean_tracks*", "movie_clip/tracking/clip/editing/track.html#bpy-ops-clip-clean-tracks"),
|
||||
("bpy.ops.clip.delete_track*", "movie_clip/tracking/clip/editing/track.html#bpy-ops-clip-delete-track"),
|
||||
("bpy.ops.clip.solve_camera*", "movie_clip/tracking/clip/editing/track.html#bpy-ops-clip-solve-camera"),
|
||||
("bpy.ops.curve.smooth_tilt*", "modeling/curves/editing/control_points.html#bpy-ops-curve-smooth-tilt"),
|
||||
("bpy.ops.fluid.bake_guides*", "physics/fluid/type/domain/guides.html#bpy-ops-fluid-bake-guides"),
|
||||
("bpy.ops.fluid.free_guides*", "physics/fluid/type/domain/guides.html#bpy-ops-fluid-free-guides"),
|
||||
|
@ -1312,6 +1374,7 @@ url_manual_mapping = (
|
|||
("bpy.types.subsurfmodifier*", "modeling/modifiers/generate/subdivision_surface.html#bpy-types-subsurfmodifier"),
|
||||
("bpy.types.texturenodemath*", "editors/texture_node/types/converter/math.html#bpy-types-texturenodemath"),
|
||||
("bpy.types.volume.filepath*", "modeling/volumes/properties.html#bpy-types-volume-filepath"),
|
||||
("bpy.ops.clip.join_tracks*", "movie_clip/tracking/clip/editing/track.html#bpy-ops-clip-join-tracks"),
|
||||
("bpy.ops.curve.select_row*", "modeling/surfaces/selecting.html#bpy-ops-curve-select-row"),
|
||||
("bpy.ops.curve.tilt_clear*", "modeling/curves/editing/control_points.html#bpy-ops-curve-tilt-clear"),
|
||||
("bpy.ops.curve.vertex_add*", "modeling/curves/editing/other.html#bpy-ops-curve-vertex-add"),
|
||||
|
@ -1373,6 +1436,7 @@ url_manual_mapping = (
|
|||
("bpy.ops.*.select_circle*", "interface/selecting.html#bpy-ops-select-circle"),
|
||||
("bpy.ops.anim.keying_set*", "animation/keyframes/keying_sets.html#bpy-ops-anim-keying-set"),
|
||||
("bpy.ops.armature.delete*", "animation/armatures/bones/editing/delete.html#bpy-ops-armature-delete"),
|
||||
("bpy.ops.clip.set_origin*", "movie_clip/tracking/clip/editing/reconstruction.html#bpy-ops-clip-set-origin"),
|
||||
("bpy.ops.curve.subdivide*", "modeling/curves/editing/segments.html#bpy-ops-curve-subdivide"),
|
||||
("bpy.ops.ed.undo_history*", "interface/undo_redo.html#bpy-ops-ed-undo-history"),
|
||||
("bpy.ops.fluid.bake_data*", "physics/fluid/type/domain/settings.html#bpy-ops-fluid-bake-data"),
|
||||
|
@ -1427,6 +1491,7 @@ url_manual_mapping = (
|
|||
("bpy.types.movietracking*", "movie_clip/tracking/index.html#bpy-types-movietracking"),
|
||||
("bpy.types.nlastrip.mute*", "editors/nla/sidebar.html#bpy-types-nlastrip-mute"),
|
||||
("bpy.types.nlastrip.name*", "editors/nla/sidebar.html#bpy-types-nlastrip-name"),
|
||||
("bpy.types.nodesmodifier*", "modeling/modifiers/generate/geometry_nodes.html#bpy-types-nodesmodifier"),
|
||||
("bpy.types.object.parent*", "scene_layout/object/editing/parent.html#bpy-types-object-parent"),
|
||||
("bpy.types.oceanmodifier*", "modeling/modifiers/physics/ocean.html#bpy-types-oceanmodifier"),
|
||||
("bpy.types.particlebrush*", "physics/particles/mode.html#bpy-types-particlebrush"),
|
||||
|
@ -1446,6 +1511,8 @@ url_manual_mapping = (
|
|||
("bpy.types.volumedisplay*", "modeling/volumes/properties.html#bpy-types-volumedisplay"),
|
||||
("bpy.types.windowmanager*", "interface/index.html#bpy-types-windowmanager"),
|
||||
("bpy.ops.*.select_lasso*", "interface/selecting.html#bpy-ops-select-lasso"),
|
||||
("bpy.ops.clip.set_plane*", "movie_clip/tracking/clip/editing/reconstruction.html#bpy-ops-clip-set-plane"),
|
||||
("bpy.ops.clip.set_scale*", "movie_clip/tracking/clip/editing/reconstruction.html#bpy-ops-clip-set-scale"),
|
||||
("bpy.ops.curve.decimate*", "modeling/curves/editing/curve.html#bpy-ops-curve-decimate"),
|
||||
("bpy.ops.curve.separate*", "modeling/curves/editing/curve.html#bpy-ops-curve-separate"),
|
||||
("bpy.ops.fluid.bake_all*", "physics/fluid/type/domain/cache.html#bpy-ops-fluid-bake-all"),
|
||||
|
@ -1511,6 +1578,8 @@ url_manual_mapping = (
|
|||
("bpy.types.wavemodifier*", "modeling/modifiers/deform/wave.html#bpy-types-wavemodifier"),
|
||||
("bpy.types.weldmodifier*", "modeling/modifiers/generate/weld.html#bpy-types-weldmodifier"),
|
||||
("bpy.types.wipesequence*", "video_editing/sequencer/strips/transitions/wipe.html#bpy-types-wipesequence"),
|
||||
("bpy.ops.clip.prefetch*", "movie_clip/tracking/clip/editing/clip.html#bpy-ops-clip-prefetch"),
|
||||
("bpy.ops.clip.set_axis*", "movie_clip/tracking/clip/editing/reconstruction.html#bpy-ops-clip-set-axis"),
|
||||
("bpy.ops.gpencil.paste*", "grease_pencil/modes/edit/grease_pencil_menu.html#bpy-ops-gpencil-paste"),
|
||||
("bpy.ops.image.project*", "sculpt_paint/texture_paint/tool_settings/options.html#bpy-ops-image-project"),
|
||||
("bpy.ops.mesh.decimate*", "modeling/meshes/editing/mesh/cleanup.html#bpy-ops-mesh-decimate"),
|
||||
|
@ -1580,6 +1649,7 @@ url_manual_mapping = (
|
|||
("bpy.types.renderview*", "render/output/properties/stereoscopy/index.html#bpy-types-renderview"),
|
||||
("bpy.types.sceneeevee*", "render/eevee/index.html#bpy-types-sceneeevee"),
|
||||
("bpy.types.vectorfont*", "modeling/texts/index.html#bpy-types-vectorfont"),
|
||||
("bpy.ops.clip.reload*", "movie_clip/tracking/clip/editing/clip.html#bpy-ops-clip-reload"),
|
||||
("bpy.ops.curve.split*", "modeling/curves/editing/curve.html#bpy-ops-curve-split"),
|
||||
("bpy.ops.graph.clean*", "editors/graph_editor/fcurves/editing.html#bpy-ops-graph-clean"),
|
||||
("bpy.ops.graph.paste*", "editors/graph_editor/fcurves/editing.html#bpy-ops-graph-paste"),
|
||||
|
@ -1593,6 +1663,7 @@ url_manual_mapping = (
|
|||
("bpy.ops.uv.rip_move*", "modeling/meshes/uv/tools/rip.html#bpy-ops-uv-rip-move"),
|
||||
("bpy.ops.view3d.snap*", "scene_layout/object/editing/snap.html#bpy-ops-view3d-snap"),
|
||||
("bpy.ops.view3d.zoom*", "editors/3dview/navigate/navigation.html#bpy-ops-view3d-zoom"),
|
||||
("bpy.ops.wm.url_open*", "addons/3d_view/blenderkit.html#bpy-ops-wm-url-open"),
|
||||
("bpy.types.*texspace*", "modeling/meshes/uv/uv_texture_spaces.html#bpy-types-texspace"),
|
||||
("bpy.types.arealight*", "render/lights/light_object.html#bpy-types-arealight"),
|
||||
("bpy.types.blenddata*", "files/data_blocks.html#bpy-types-blenddata"),
|
||||
|
@ -1647,6 +1718,7 @@ url_manual_mapping = (
|
|||
("bpy.types.shapekey*", "animation/shape_keys/index.html#bpy-types-shapekey"),
|
||||
("bpy.types.spacenla*", "editors/nla/index.html#bpy-types-spacenla"),
|
||||
("bpy.types.sunlight*", "render/lights/light_object.html#bpy-types-sunlight"),
|
||||
("bpy.ops.clip.open*", "movie_clip/tracking/clip/editing/clip.html#bpy-ops-clip-open"),
|
||||
("bpy.ops.mesh.fill*", "modeling/meshes/editing/face/fill.html#bpy-ops-mesh-fill"),
|
||||
("bpy.ops.mesh.poke*", "modeling/meshes/editing/face/poke_faces.html#bpy-ops-mesh-poke"),
|
||||
("bpy.ops.mesh.spin*", "modeling/meshes/tools/spin.html#bpy-ops-mesh-spin"),
|
||||
|
|
|
@ -69,7 +69,7 @@ class NewGeometryNodesModifier(bpy.types.Operator):
|
|||
|
||||
|
||||
class NewGeometryNodeTreeAssign(bpy.types.Operator):
|
||||
"""Create a new geometry node group and assign it the the active modifier"""
|
||||
"""Create a new geometry node group and assign it to the active modifier"""
|
||||
|
||||
bl_idname = "node.new_geometry_node_group_assign"
|
||||
bl_label = "Assign New Geometry Node Group"
|
||||
|
|
|
@ -59,7 +59,7 @@ class DATA_PT_empty(DataButtonsPanel, Panel):
|
|||
col.prop(ob, "show_empty_image_perspective", text="Perspective")
|
||||
col.prop(ob, "show_empty_image_only_axis_aligned", text="Only Axis Aligned")
|
||||
|
||||
col = layout.column(align=False, heading="Transparency")
|
||||
col = layout.column(align=False, heading="Opacity")
|
||||
col.use_property_decorate = False
|
||||
row = col.row(align=True)
|
||||
sub = row.row(align=True)
|
||||
|
|
|
@ -807,16 +807,19 @@ class CLIP_PT_track_settings(CLIP_PT_tracking_panel, Panel):
|
|||
layout.use_property_decorate = False
|
||||
|
||||
clip = context.space_data.clip
|
||||
active = clip.tracking.tracks.active
|
||||
|
||||
if not active:
|
||||
layout.active = False
|
||||
layout.label(text="No active track")
|
||||
return
|
||||
|
||||
col = layout.column()
|
||||
col.prop(active, "motion_model")
|
||||
col.prop(active, "pattern_match", text="Match")
|
||||
|
||||
active = clip.tracking.tracks.active
|
||||
if active:
|
||||
col.prop(active, "motion_model")
|
||||
col.prop(active, "pattern_match", text="Match")
|
||||
|
||||
col.prop(active, "use_brute")
|
||||
col.prop(active, "use_normalization")
|
||||
col.prop(active, "use_brute")
|
||||
col.prop(active, "use_normalization")
|
||||
|
||||
|
||||
class CLIP_PT_track_settings_extras(CLIP_PT_tracking_panel, Panel):
|
||||
|
@ -827,6 +830,12 @@ class CLIP_PT_track_settings_extras(CLIP_PT_tracking_panel, Panel):
|
|||
bl_parent_id = 'CLIP_PT_track_settings'
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
clip = context.space_data.clip
|
||||
|
||||
return clip.tracking.tracks.active
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
layout.use_property_split = True
|
||||
|
|
|
@ -5478,12 +5478,12 @@ class VIEW3D_PT_view3d_lock(Panel):
|
|||
view, "lock_bone", lock_object.data,
|
||||
"edit_bones" if lock_object.mode == 'EDIT'
|
||||
else "bones",
|
||||
text="",
|
||||
text="Bone",
|
||||
)
|
||||
else:
|
||||
subcol = sub.column(heading="Lock")
|
||||
subcol.prop(view, "lock_cursor", text="To 3D Cursor")
|
||||
|
||||
col = layout.column(heading="Lock", align=True)
|
||||
if not lock_object:
|
||||
col.prop(view, "lock_cursor", text="To 3D Cursor")
|
||||
col.prop(view, "lock_camera", text="Camera to View")
|
||||
|
||||
|
||||
|
|
|
@ -14,13 +14,12 @@
|
|||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#ifndef __BKE_ASSET_H__
|
||||
#define __BKE_ASSET_H__
|
||||
|
||||
/** \file
|
||||
* \ingroup bke
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "BLI_utildefines.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
@ -55,5 +54,3 @@ void BKE_asset_metadata_read(struct BlendDataReader *reader, struct AssetMetaDat
|
|||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __BKE_ASSET_H__ */
|
||||
|
|
|
@ -69,9 +69,6 @@ void BKE_brush_gpencil_weight_presets(struct Main *bmain,
|
|||
const bool reset);
|
||||
void BKE_gpencil_brush_preset_set(struct Main *bmain, struct Brush *brush, const short type);
|
||||
|
||||
/* image icon function */
|
||||
struct ImBuf *get_brush_icon(struct Brush *brush);
|
||||
|
||||
/* jitter */
|
||||
void BKE_brush_jitter_pos(const struct Scene *scene,
|
||||
struct Brush *brush,
|
||||
|
|
|
@ -24,19 +24,30 @@
|
|||
#pragma once
|
||||
|
||||
#include "BLI_sys_types.h"
|
||||
#include "DNA_layer_types.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
struct Main;
|
||||
struct CryptomatteSession;
|
||||
struct Material;
|
||||
struct ID;
|
||||
struct Main;
|
||||
struct Object;
|
||||
struct RenderResult;
|
||||
|
||||
struct CryptomatteSession *BKE_cryptomatte_init(void);
|
||||
void BKE_cryptomatte_finish(struct CryptomatteSession *session);
|
||||
void BKE_cryptomatte_free(struct CryptomatteSession *session);
|
||||
|
||||
uint32_t BKE_cryptomatte_hash(const char *name, int name_len);
|
||||
uint32_t BKE_cryptomatte_object_hash(const struct Object *object);
|
||||
uint32_t BKE_cryptomatte_material_hash(const struct Material *material);
|
||||
uint32_t BKE_cryptomatte_asset_hash(const struct Object *object);
|
||||
uint32_t BKE_cryptomatte_object_hash(struct CryptomatteSession *session,
|
||||
const struct Object *object);
|
||||
uint32_t BKE_cryptomatte_material_hash(struct CryptomatteSession *session,
|
||||
const struct Material *material);
|
||||
uint32_t BKE_cryptomatte_asset_hash(struct CryptomatteSession *session,
|
||||
const struct Object *object);
|
||||
float BKE_cryptomatte_hash_to_float(uint32_t cryptomatte_hash);
|
||||
|
||||
char *BKE_cryptomatte_entries_to_matte_id(struct NodeCryptomatte *node_storage);
|
||||
|
@ -44,6 +55,12 @@ void BKE_cryptomatte_matte_id_to_entries(const struct Main *bmain,
|
|||
struct NodeCryptomatte *node_storage,
|
||||
const char *matte_id);
|
||||
|
||||
void BKE_cryptomatte_store_metadata(struct CryptomatteSession *session,
|
||||
struct RenderResult *render_result,
|
||||
const ViewLayer *view_layer,
|
||||
eViewLayerCryptomatteFlags cryptomatte_layer,
|
||||
const char *cryptomatte_layer_name);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif
|
|
@ -23,27 +23,30 @@
|
|||
* \ingroup bke
|
||||
*/
|
||||
|
||||
#include "BLI_utildefines.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
struct Main;
|
||||
struct Mesh;
|
||||
struct MirrorModifierData;
|
||||
struct ModifierEvalContext;
|
||||
struct Object;
|
||||
|
||||
struct Mesh *BKE_mesh_mirror_bisect_on_mirror_plane(struct MirrorModifierData *mmd,
|
||||
const struct Mesh *mesh,
|
||||
int axis,
|
||||
const float plane_co[3],
|
||||
float plane_no[3]);
|
||||
struct Mesh *BKE_mesh_mirror_bisect_on_mirror_plane_for_modifier(struct MirrorModifierData *mmd,
|
||||
const struct Mesh *mesh,
|
||||
int axis,
|
||||
const float plane_co[3],
|
||||
float plane_no[3]);
|
||||
|
||||
struct Mesh *BKE_mesh_mirror_apply_mirror_on_axis(struct MirrorModifierData *mmd,
|
||||
const struct ModifierEvalContext *UNUSED(ctx),
|
||||
struct Object *ob,
|
||||
const struct Mesh *mesh,
|
||||
int axis);
|
||||
void BKE_mesh_mirror_apply_mirror_on_axis(struct Main *bmain,
|
||||
struct Mesh *mesh,
|
||||
const int axis,
|
||||
const float dist);
|
||||
|
||||
struct Mesh *BKE_mesh_mirror_apply_mirror_on_axis_for_modifier(struct MirrorModifierData *mmd,
|
||||
struct Object *ob,
|
||||
const struct Mesh *mesh,
|
||||
int axis);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
|
|
@ -40,9 +40,9 @@ set(INC
|
|||
../sequencer
|
||||
../shader_fx
|
||||
../simulation
|
||||
../../../intern/eigen
|
||||
../../../intern/ghost
|
||||
../../../intern/glew-mx
|
||||
../../../intern/eigen
|
||||
../../../intern/guardedalloc
|
||||
../../../intern/iksolver/extern
|
||||
../../../intern/atomic
|
||||
|
@ -272,10 +272,10 @@ set(SRC
|
|||
BKE_animsys.h
|
||||
BKE_appdir.h
|
||||
BKE_armature.h
|
||||
BKE_asset.h
|
||||
BKE_attribute.h
|
||||
BKE_attribute_access.hh
|
||||
BKE_autoexec.h
|
||||
BKE_asset.h
|
||||
BKE_blender.h
|
||||
BKE_blender_copybuffer.h
|
||||
BKE_blender_undo.h
|
||||
|
@ -354,8 +354,8 @@ set(SRC
|
|||
BKE_mball.h
|
||||
BKE_mball_tessellate.h
|
||||
BKE_mesh.h
|
||||
BKE_mesh_iterators.h
|
||||
BKE_mesh_fair.h
|
||||
BKE_mesh_iterators.h
|
||||
BKE_mesh_mapping.h
|
||||
BKE_mesh_mirror.h
|
||||
BKE_mesh_remap.h
|
||||
|
|
|
@ -1748,12 +1748,12 @@ static void editbmesh_calc_modifiers(struct Depsgraph *depsgraph,
|
|||
if (!BKE_mesh_runtime_ensure_edit_data(me_orig)) {
|
||||
BKE_mesh_runtime_reset_edit_data(me_orig);
|
||||
}
|
||||
me_orig->runtime.edit_data->vertexCos = (float(*)[3])MEM_dupallocN(deformed_verts);
|
||||
me_orig->runtime.edit_data->vertexCos = (const float(*)[3])MEM_dupallocN(deformed_verts);
|
||||
}
|
||||
mesh_cage = BKE_mesh_wrapper_from_editmesh_with_coords(
|
||||
em_input,
|
||||
&final_datamask,
|
||||
deformed_verts ? (float(*)[3])MEM_dupallocN(deformed_verts) : nullptr,
|
||||
deformed_verts ? (const float(*)[3])MEM_dupallocN(deformed_verts) : nullptr,
|
||||
mesh_input);
|
||||
}
|
||||
}
|
||||
|
@ -2263,9 +2263,9 @@ void DM_calc_loop_tangents(DerivedMesh *dm,
|
|||
calc_active_tangent,
|
||||
tangent_names,
|
||||
tangent_names_len,
|
||||
(float(*)[3])CustomData_get_layer(&dm->polyData, CD_NORMAL),
|
||||
(float(*)[3])dm->getLoopDataArray(dm, CD_NORMAL),
|
||||
(float(*)[3])dm->getVertDataArray(dm, CD_ORCO), /* may be nullptr */
|
||||
(const float(*)[3])CustomData_get_layer(&dm->polyData, CD_NORMAL),
|
||||
(const float(*)[3])dm->getLoopDataArray(dm, CD_NORMAL),
|
||||
(const float(*)[3])dm->getVertDataArray(dm, CD_ORCO), /* may be nullptr */
|
||||
/* result */
|
||||
&dm->loopData,
|
||||
dm->getNumLoops(dm),
|
||||
|
|
|
@ -987,7 +987,7 @@ static const int app_template_directory_id[2] = {
|
|||
bool BKE_appdir_app_template_any(void)
|
||||
{
|
||||
char temp_dir[FILE_MAX];
|
||||
for (int i = 0; i < 2; i++) {
|
||||
for (int i = 0; i < ARRAY_SIZE(app_template_directory_id); i++) {
|
||||
if (BKE_appdir_folder_id_ex(app_template_directory_id[i],
|
||||
app_template_directory_search[i],
|
||||
temp_dir,
|
||||
|
@ -1000,7 +1000,7 @@ bool BKE_appdir_app_template_any(void)
|
|||
|
||||
bool BKE_appdir_app_template_id_search(const char *app_template, char *path, size_t path_len)
|
||||
{
|
||||
for (int i = 0; i < 2; i++) {
|
||||
for (int i = 0; i < ARRAY_SIZE(app_template_directory_id); i++) {
|
||||
char subdir[FILE_MAX];
|
||||
BLI_join_dirfile(subdir, sizeof(subdir), app_template_directory_search[i], app_template);
|
||||
if (BKE_appdir_folder_id_ex(app_template_directory_id[i], subdir, path, path_len)) {
|
||||
|
@ -1014,7 +1014,7 @@ bool BKE_appdir_app_template_has_userpref(const char *app_template)
|
|||
{
|
||||
/* Test if app template provides a `userpref.blend`.
|
||||
* If not, we will share user preferences with the rest of Blender. */
|
||||
if (!app_template && app_template[0]) {
|
||||
if (app_template[0] == '\0') {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -1034,7 +1034,7 @@ void BKE_appdir_app_templates(ListBase *templates)
|
|||
{
|
||||
BLI_listbase_clear(templates);
|
||||
|
||||
for (int i = 0; i < 2; i++) {
|
||||
for (int i = 0; i < ARRAY_SIZE(app_template_directory_id); i++) {
|
||||
char subdir[FILE_MAX];
|
||||
if (!BKE_appdir_folder_id_ex(app_template_directory_id[i],
|
||||
app_template_directory_search[i],
|
||||
|
|
|
@ -1926,7 +1926,7 @@ void BKE_pchan_rot_to_mat3(const bPoseChannel *pchan, float r_mat[3][3])
|
|||
{
|
||||
/* rotations may either be quats, eulers (with various rotation orders), or axis-angle */
|
||||
if (pchan->rotmode > 0) {
|
||||
/* euler rotations (will cause gimble lock,
|
||||
/* Euler rotations (will cause gimbal lock,
|
||||
* but this can be alleviated a bit with rotation orders) */
|
||||
eulO_to_mat3(r_mat, pchan->eul, pchan->rotmode);
|
||||
}
|
||||
|
|
|
@ -1788,7 +1788,7 @@ static void layer_collection_flags_restore_recursive(LayerCollection *layer_coll
|
|||
/* There should be a flag struct for every layer collection. */
|
||||
BLI_assert(BLI_listbase_count(&layer_collection->layer_collections) ==
|
||||
BLI_listbase_count(&flag->children));
|
||||
/* The flag and the the layer collection should actually correspond. */
|
||||
/* The flag and the layer collection should actually correspond. */
|
||||
BLI_assert(flag->collection == layer_collection->collection);
|
||||
|
||||
LayerCollectionFlag *child_flag = flag->children.first;
|
||||
|
|
|
@ -22,8 +22,10 @@
|
|||
*/
|
||||
|
||||
#include "BKE_cryptomatte.h"
|
||||
#include "BKE_image.h"
|
||||
#include "BKE_main.h"
|
||||
|
||||
#include "DNA_layer_types.h"
|
||||
#include "DNA_material_types.h"
|
||||
#include "DNA_node_types.h"
|
||||
#include "DNA_object_types.h"
|
||||
|
@ -32,48 +34,142 @@
|
|||
#include "BLI_dynstr.h"
|
||||
#include "BLI_hash_mm3.h"
|
||||
#include "BLI_listbase.h"
|
||||
#include "BLI_set.hh"
|
||||
#include "BLI_string.h"
|
||||
|
||||
#include "MEM_guardedalloc.h"
|
||||
|
||||
#include <cstring>
|
||||
#include <iomanip>
|
||||
#include <sstream>
|
||||
#include <string>
|
||||
|
||||
static uint32_t cryptomatte_hash(const ID *id)
|
||||
enum CryptomatteLayerState {
|
||||
EMPTY,
|
||||
FILLED,
|
||||
CLOSED,
|
||||
};
|
||||
|
||||
struct CryptomatteLayer {
|
||||
CryptomatteLayerState state = CryptomatteLayerState::EMPTY;
|
||||
blender::Set<std::string> names;
|
||||
std::stringstream manifest;
|
||||
|
||||
#ifdef WITH_CXX_GUARDEDALLOC
|
||||
MEM_CXX_CLASS_ALLOC_FUNCS("cryptomatte:CryptomatteLayer")
|
||||
#endif
|
||||
|
||||
void add_hash(std::string name, uint32_t cryptomatte_hash)
|
||||
{
|
||||
BLI_assert(state != CryptomatteLayerState::CLOSED);
|
||||
const bool first_item = names.is_empty();
|
||||
if (!names.add(name)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (first_item) {
|
||||
state = CryptomatteLayerState::FILLED;
|
||||
manifest << "{";
|
||||
}
|
||||
else {
|
||||
manifest << ",";
|
||||
}
|
||||
manifest << quoted(name) << ":\"";
|
||||
manifest << std::setfill('0') << std::setw(sizeof(uint32_t) * 2) << std::hex
|
||||
<< cryptomatte_hash;
|
||||
manifest << "\"";
|
||||
}
|
||||
|
||||
void close_manifest()
|
||||
{
|
||||
BLI_assert(state != CryptomatteLayerState::CLOSED);
|
||||
if (state == CryptomatteLayerState::FILLED) {
|
||||
manifest << "}";
|
||||
}
|
||||
state = CryptomatteLayerState::CLOSED;
|
||||
}
|
||||
|
||||
std::string manifest_get_string()
|
||||
{
|
||||
BLI_assert(state == CryptomatteLayerState::CLOSED);
|
||||
return manifest.str();
|
||||
}
|
||||
};
|
||||
|
||||
struct CryptomatteSession {
|
||||
CryptomatteLayer objects;
|
||||
CryptomatteLayer assets;
|
||||
CryptomatteLayer materials;
|
||||
|
||||
#ifdef WITH_CXX_GUARDEDALLOC
|
||||
MEM_CXX_CLASS_ALLOC_FUNCS("cryptomatte:CryptomatteSession")
|
||||
#endif
|
||||
|
||||
void finish()
|
||||
{
|
||||
objects.close_manifest();
|
||||
materials.close_manifest();
|
||||
assets.close_manifest();
|
||||
}
|
||||
};
|
||||
|
||||
CryptomatteSession *BKE_cryptomatte_init(void)
|
||||
{
|
||||
const char *name = &id->name[2];
|
||||
const int name_len = BLI_strnlen(name, MAX_NAME);
|
||||
uint32_t cryptohash_int = BKE_cryptomatte_hash(name, name_len);
|
||||
return cryptohash_int;
|
||||
CryptomatteSession *session = new CryptomatteSession();
|
||||
return session;
|
||||
}
|
||||
|
||||
uint32_t BKE_cryptomatte_hash(const char *name, int name_len)
|
||||
void BKE_cryptomatte_finish(CryptomatteSession *session)
|
||||
{
|
||||
BLI_assert(session != nullptr);
|
||||
session->finish();
|
||||
}
|
||||
|
||||
void BKE_cryptomatte_free(CryptomatteSession *session)
|
||||
{
|
||||
BLI_assert(session != nullptr);
|
||||
delete session;
|
||||
}
|
||||
|
||||
uint32_t BKE_cryptomatte_hash(const char *name, const int name_len)
|
||||
{
|
||||
uint32_t cryptohash_int = BLI_hash_mm3((const unsigned char *)name, name_len, 0);
|
||||
return cryptohash_int;
|
||||
}
|
||||
|
||||
uint32_t BKE_cryptomatte_object_hash(const Object *object)
|
||||
static uint32_t cryptomatte_hash(CryptomatteLayer *layer, const ID *id)
|
||||
{
|
||||
return cryptomatte_hash(&object->id);
|
||||
const char *name = &id->name[2];
|
||||
const int name_len = BLI_strnlen(name, MAX_NAME - 2);
|
||||
uint32_t cryptohash_int = BKE_cryptomatte_hash(name, name_len);
|
||||
|
||||
if (layer != nullptr) {
|
||||
layer->add_hash(std::string(name, name_len), cryptohash_int);
|
||||
}
|
||||
|
||||
return cryptohash_int;
|
||||
}
|
||||
|
||||
uint32_t BKE_cryptomatte_material_hash(const Material *material)
|
||||
uint32_t BKE_cryptomatte_object_hash(CryptomatteSession *session, const Object *object)
|
||||
{
|
||||
return cryptomatte_hash(&session->objects, &object->id);
|
||||
}
|
||||
|
||||
uint32_t BKE_cryptomatte_material_hash(CryptomatteSession *session, const Material *material)
|
||||
{
|
||||
if (material == nullptr) {
|
||||
return 0.0f;
|
||||
}
|
||||
return cryptomatte_hash(&material->id);
|
||||
return cryptomatte_hash(&session->materials, &material->id);
|
||||
}
|
||||
|
||||
uint32_t BKE_cryptomatte_asset_hash(const Object *object)
|
||||
uint32_t BKE_cryptomatte_asset_hash(CryptomatteSession *session, const Object *object)
|
||||
{
|
||||
const Object *asset_object = object;
|
||||
while (asset_object->parent != nullptr) {
|
||||
asset_object = asset_object->parent;
|
||||
}
|
||||
return cryptomatte_hash(&asset_object->id);
|
||||
return cryptomatte_hash(&session->assets, &asset_object->id);
|
||||
}
|
||||
|
||||
/* Convert a cryptomatte hash to a float.
|
||||
|
@ -187,4 +283,64 @@ void BKE_cryptomatte_matte_id_to_entries(const Main *bmain,
|
|||
BLI_addtail(&node_storage->entries, entry);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static std::string cryptomatte_determine_name(const ViewLayer *view_layer,
|
||||
const std::string cryptomatte_layer_name)
|
||||
{
|
||||
std::stringstream stream;
|
||||
const size_t view_layer_name_len = BLI_strnlen(view_layer->name, sizeof(view_layer->name));
|
||||
stream << std::string(view_layer->name, view_layer_name_len) << "." << cryptomatte_layer_name;
|
||||
return stream.str();
|
||||
}
|
||||
|
||||
static uint32_t cryptomatte_determine_identifier(const std::string name)
|
||||
{
|
||||
return BLI_hash_mm3(reinterpret_cast<const unsigned char *>(name.c_str()), name.length(), 0);
|
||||
}
|
||||
|
||||
static std::string cryptomatte_determine_prefix(const std::string name)
|
||||
{
|
||||
std::stringstream stream;
|
||||
const uint32_t render_pass_identifier = cryptomatte_determine_identifier(name);
|
||||
stream << "cryptomatte/";
|
||||
stream << std::setfill('0') << std::setw(sizeof(uint32_t) * 2) << std::hex
|
||||
<< render_pass_identifier;
|
||||
stream << "/";
|
||||
return stream.str();
|
||||
}
|
||||
|
||||
void BKE_cryptomatte_store_metadata(struct CryptomatteSession *session,
|
||||
RenderResult *render_result,
|
||||
const ViewLayer *view_layer,
|
||||
eViewLayerCryptomatteFlags cryptomatte_layer,
|
||||
const char *cryptomatte_layer_name)
|
||||
{
|
||||
/* Create Manifest. */
|
||||
CryptomatteLayer *layer = nullptr;
|
||||
switch (cryptomatte_layer) {
|
||||
case VIEW_LAYER_CRYPTOMATTE_OBJECT:
|
||||
layer = &session->objects;
|
||||
break;
|
||||
case VIEW_LAYER_CRYPTOMATTE_MATERIAL:
|
||||
layer = &session->materials;
|
||||
break;
|
||||
case VIEW_LAYER_CRYPTOMATTE_ASSET:
|
||||
layer = &session->assets;
|
||||
break;
|
||||
default:
|
||||
BLI_assert(!"Incorrect cryptomatte layer");
|
||||
break;
|
||||
}
|
||||
|
||||
const std::string manifest = layer->manifest_get_string();
|
||||
const std::string name = cryptomatte_determine_name(view_layer, cryptomatte_layer_name);
|
||||
const std::string prefix = cryptomatte_determine_prefix(name);
|
||||
|
||||
/* Store the meta data into the render result. */
|
||||
BKE_render_result_stamp_data(render_result, (prefix + "name").c_str(), name.c_str());
|
||||
BKE_render_result_stamp_data(render_result, (prefix + "hash").c_str(), "MurmurHash3_32");
|
||||
BKE_render_result_stamp_data(
|
||||
render_result, (prefix + "conversion").c_str(), "uint32_to_float32");
|
||||
BKE_render_result_stamp_data(render_result, (prefix + "manifest").c_str(), manifest.c_str());
|
||||
}
|
||||
|
|
|
@ -1837,7 +1837,7 @@ static const LayerTypeInfo LAYERTYPEINFO[CD_NUMTYPES] = {
|
|||
layerMultiply_propfloat2,
|
||||
NULL,
|
||||
layerAdd_propfloat2},
|
||||
/* 50: CD_PROP_POOL */
|
||||
/* 50: CD_PROP_BOOL */
|
||||
{sizeof(bool),
|
||||
"bool",
|
||||
1,
|
||||
|
|
|
@ -1053,7 +1053,7 @@ static bool data_transfer_layersmapping_generate(ListBase *r_map,
|
|||
const uint64_t data_flag = 0;
|
||||
|
||||
if (!(me_src->cd_flag & ME_CDFLAG_EDGE_CREASE)) {
|
||||
if (use_delete && !me_dst) {
|
||||
if (use_delete) {
|
||||
me_dst->cd_flag &= ~ME_CDFLAG_EDGE_CREASE;
|
||||
}
|
||||
return true;
|
||||
|
@ -1085,7 +1085,7 @@ static bool data_transfer_layersmapping_generate(ListBase *r_map,
|
|||
const uint64_t data_flag = 0;
|
||||
|
||||
if (!(me_src->cd_flag & ME_CDFLAG_EDGE_BWEIGHT)) {
|
||||
if (use_delete && !me_dst) {
|
||||
if (use_delete) {
|
||||
me_dst->cd_flag &= ~ME_CDFLAG_EDGE_BWEIGHT;
|
||||
}
|
||||
return true;
|
||||
|
|
|
@ -3652,7 +3652,7 @@ static int manta_step(
|
|||
}
|
||||
|
||||
/* Total time must not exceed framecount times framelength. Correct tiny errors here. */
|
||||
CLAMP(fds->time_total, fds->time_total, time_total_old + fds->frame_length);
|
||||
CLAMP_MAX(fds->time_total, time_total_old + fds->frame_length);
|
||||
|
||||
/* Compute shadow grid for gas simulations. Make sure to skip if bake job was canceled early. */
|
||||
if (fds->type == FLUID_DOMAIN_TYPE_GAS && result) {
|
||||
|
|
|
@ -283,6 +283,7 @@ GeometryComponent *MeshComponent::copy() const
|
|||
if (mesh_ != nullptr) {
|
||||
new_component->mesh_ = BKE_mesh_copy_for_eval(mesh_, false);
|
||||
new_component->ownership_ = GeometryOwnershipType::Owned;
|
||||
new_component->vertex_group_names_ = blender::Map(vertex_group_names_);
|
||||
}
|
||||
return new_component;
|
||||
}
|
||||
|
|
|
@ -92,10 +92,10 @@ std::mutex gIconMutex;
|
|||
static GHash *gCachedPreviews = nullptr;
|
||||
|
||||
/* Queue of icons for deferred deletion. */
|
||||
typedef struct DeferredIconDeleteNode {
|
||||
struct DeferredIconDeleteNode {
|
||||
struct DeferredIconDeleteNode *next;
|
||||
int icon_id;
|
||||
} DeferredIconDeleteNode;
|
||||
};
|
||||
/* Protected by gIconMutex. */
|
||||
static LockfreeLinkList g_icon_delete_queue;
|
||||
|
||||
|
|
|
@ -1199,7 +1199,7 @@ static void init_meta(Depsgraph *depsgraph, PROCESS *process, Scene *scene, Obje
|
|||
zero_size = 0;
|
||||
ml = NULL;
|
||||
|
||||
/* If this metaball is the original that's used for duplication, only have it it visible when
|
||||
/* If this metaball is the original that's used for duplication, only have it visible when
|
||||
* the instancer is visible too. */
|
||||
if ((base->flag_legacy & OB_FROMDUPLI) == 0 && ob->parent != NULL &&
|
||||
(ob->parent->transflag & parenting_dupli_transflag) != 0 &&
|
||||
|
|
|
@ -427,7 +427,6 @@ class UniformVertexWeight : public VertexWeight {
|
|||
cached_[i] = false;
|
||||
}
|
||||
}
|
||||
~UniformVertexWeight() = default;
|
||||
|
||||
float weight_at_index(const int index) override
|
||||
{
|
||||
|
@ -464,7 +463,6 @@ class VoronoiVertexWeight : public VertexWeight {
|
|||
cached_[i] = false;
|
||||
}
|
||||
}
|
||||
~VoronoiVertexWeight() = default;
|
||||
|
||||
float weight_at_index(const int index) override
|
||||
{
|
||||
|
|
|
@ -41,11 +41,11 @@
|
|||
|
||||
#include "MOD_modifiertypes.h"
|
||||
|
||||
Mesh *BKE_mesh_mirror_bisect_on_mirror_plane(MirrorModifierData *mmd,
|
||||
const Mesh *mesh,
|
||||
int axis,
|
||||
const float plane_co[3],
|
||||
float plane_no[3])
|
||||
Mesh *BKE_mesh_mirror_bisect_on_mirror_plane_for_modifier(MirrorModifierData *mmd,
|
||||
const Mesh *mesh,
|
||||
int axis,
|
||||
const float plane_co[3],
|
||||
float plane_no[3])
|
||||
{
|
||||
bool do_bisect_flip_axis = ((axis == 0 && mmd->flag & MOD_MIR_BISECT_FLIP_AXIS_X) ||
|
||||
(axis == 1 && mmd->flag & MOD_MIR_BISECT_FLIP_AXIS_Y) ||
|
||||
|
@ -97,11 +97,47 @@ Mesh *BKE_mesh_mirror_bisect_on_mirror_plane(MirrorModifierData *mmd,
|
|||
return result;
|
||||
}
|
||||
|
||||
Mesh *BKE_mesh_mirror_apply_mirror_on_axis(MirrorModifierData *mmd,
|
||||
const ModifierEvalContext *UNUSED(ctx),
|
||||
Object *ob,
|
||||
const Mesh *mesh,
|
||||
int axis)
|
||||
void BKE_mesh_mirror_apply_mirror_on_axis(struct Main *bmain,
|
||||
Mesh *mesh,
|
||||
const int axis,
|
||||
const float dist)
|
||||
{
|
||||
BMesh *bm = BKE_mesh_to_bmesh_ex(mesh,
|
||||
&(struct BMeshCreateParams){
|
||||
.use_toolflags = 1,
|
||||
},
|
||||
&(struct BMeshFromMeshParams){
|
||||
.calc_face_normal = true,
|
||||
.cd_mask_extra =
|
||||
{
|
||||
.vmask = CD_MASK_SHAPEKEY,
|
||||
},
|
||||
});
|
||||
BMO_op_callf(bm,
|
||||
(BMO_FLAG_DEFAULTS & ~BMO_FLAG_RESPECT_HIDE),
|
||||
"symmetrize input=%avef direction=%i dist=%f use_shapekey=%b",
|
||||
axis,
|
||||
dist,
|
||||
true);
|
||||
|
||||
BM_mesh_bm_to_me(bmain,
|
||||
bm,
|
||||
mesh,
|
||||
(&(struct BMeshToMeshParams){
|
||||
.calc_object_remap = true,
|
||||
|
||||
}));
|
||||
BM_mesh_free(bm);
|
||||
}
|
||||
|
||||
/**
|
||||
* \warning This should _not_ be used to modify original meshes since
|
||||
* it doesn't handle shape-keys, use #BKE_mesh_mirror_apply_mirror_on_axis instead.
|
||||
*/
|
||||
Mesh *BKE_mesh_mirror_apply_mirror_on_axis_for_modifier(MirrorModifierData *mmd,
|
||||
Object *ob,
|
||||
const Mesh *mesh,
|
||||
const int axis)
|
||||
{
|
||||
const float tolerance_sq = mmd->tolerance * mmd->tolerance;
|
||||
const bool do_vtargetmap = (mmd->flag & MOD_MIR_NO_MERGE) == 0;
|
||||
|
@ -157,7 +193,8 @@ Mesh *BKE_mesh_mirror_apply_mirror_on_axis(MirrorModifierData *mmd,
|
|||
|
||||
Mesh *mesh_bisect = NULL;
|
||||
if (do_bisect) {
|
||||
mesh_bisect = BKE_mesh_mirror_bisect_on_mirror_plane(mmd, mesh, axis, plane_co, plane_no);
|
||||
mesh_bisect = BKE_mesh_mirror_bisect_on_mirror_plane_for_modifier(
|
||||
mmd, mesh, axis, plane_co, plane_no);
|
||||
mesh = mesh_bisect;
|
||||
}
|
||||
|
||||
|
|
|
@ -1564,7 +1564,7 @@ void BKE_modifier_blend_read_data(BlendDataReader *reader, ListBase *lb, Object
|
|||
}
|
||||
}
|
||||
|
||||
if (mti->blendRead != NULL) {
|
||||
if ((mti != NULL) && (mti->blendRead != NULL)) {
|
||||
mti->blendRead(reader, md);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -77,7 +77,7 @@ bool multires_reshape_assign_final_coords_from_ccg(const MultiresReshapeContext
|
|||
* not to be updated.
|
||||
*
|
||||
* This is a fragile logic, and is only working correctly because the code path is only
|
||||
* used by sculpt changes. In other usecases the code might not catch inconsistency and
|
||||
* used by sculpt changes. In other use cases the code might not catch inconsistency and
|
||||
* silently do wrong decision. */
|
||||
/* NOTE: There is a known bug in Undo code that results in first Sculpt step
|
||||
* after a Memfile one to never be undone (see T83806). This might be the root cause of
|
||||
|
|
|
@ -2873,7 +2873,7 @@ void BKE_object_rot_to_mat3(const Object *ob, float mat[3][3], bool use_drot)
|
|||
/* rotations may either be quats, eulers (with various rotation orders), or axis-angle */
|
||||
if (ob->rotmode > 0) {
|
||||
/* Euler rotations
|
||||
* (will cause gimble lock, but this can be alleviated a bit with rotation orders). */
|
||||
* (will cause gimbal lock, but this can be alleviated a bit with rotation orders). */
|
||||
eulO_to_mat3(rmat, ob->rot, ob->rotmode);
|
||||
eulO_to_mat3(dmat, ob->drot, ob->rotmode);
|
||||
}
|
||||
|
|
|
@ -475,15 +475,15 @@ void psys_tasks_create(ParticleThreadContext *ctx,
|
|||
{
|
||||
ParticleTask *tasks;
|
||||
int numtasks = min_ii(BLI_system_thread_count() * 4, endpart - startpart);
|
||||
float particles_per_task = (float)(endpart - startpart) / (float)numtasks, p, pnext;
|
||||
int i;
|
||||
float particles_per_task = numtasks > 0 ? (float)(endpart - startpart) / (float)numtasks : 0;
|
||||
|
||||
tasks = MEM_callocN(sizeof(ParticleTask) * numtasks, "ParticleThread");
|
||||
*r_numtasks = numtasks;
|
||||
*r_tasks = tasks;
|
||||
|
||||
p = (float)startpart;
|
||||
for (i = 0; i < numtasks; i++, p = pnext) {
|
||||
float pnext;
|
||||
float p = (float)startpart;
|
||||
for (int i = 0; i < numtasks; i++, p = pnext) {
|
||||
pnext = p + particles_per_task;
|
||||
|
||||
tasks[i].ctx = ctx;
|
||||
|
|
|
@ -653,7 +653,10 @@ static void ptcache_cloth_error(const ID *owner_id, void *cloth_v, const char *m
|
|||
{
|
||||
ClothModifierData *clmd = cloth_v;
|
||||
BLI_assert(GS(owner_id->name) == ID_OB);
|
||||
BKE_modifier_set_error((Object *)owner_id, &clmd->modifier, "%s", message);
|
||||
if (clmd->hairdata == NULL) {
|
||||
/* If there is hair data, this modifier does not actually exist on the object. */
|
||||
BKE_modifier_set_error((Object *)owner_id, &clmd->modifier, "%s", message);
|
||||
}
|
||||
}
|
||||
|
||||
static int ptcache_dynamicpaint_totpoint(void *sd, int UNUSED(cfra))
|
||||
|
@ -1006,7 +1009,8 @@ void BKE_ptcache_id_from_cloth(PTCacheID *pid, Object *ob, ClothModifierData *cl
|
|||
}
|
||||
|
||||
/* The fluid modifier does not actually use this anymore, but some parts of Blender expect that it
|
||||
* still has a point cache currently. */
|
||||
* still has a point cache currently. For example, the fluid modifier uses
|
||||
* #DEG_add_collision_relations, which internally creates relations with the point cache. */
|
||||
void BKE_ptcache_id_from_smoke(PTCacheID *pid, struct Object *ob, struct FluidModifierData *fmd)
|
||||
{
|
||||
FluidDomainSettings *fds = fmd->domain;
|
||||
|
@ -2549,6 +2553,12 @@ static int ptcache_write_needed(PTCacheID *pid, int cfra, int *overwrite)
|
|||
int BKE_ptcache_write(PTCacheID *pid, unsigned int cfra)
|
||||
{
|
||||
PointCache *cache = pid->cache;
|
||||
if (!pid->totpoint) {
|
||||
/* This happens when `pid->type == PTCACHE_TYPE_SMOKE_DOMAIN`. The fluid system does not
|
||||
* actually use the pointcache anymore for caching. */
|
||||
return 0;
|
||||
}
|
||||
|
||||
int totpoint = pid->totpoint(pid->calldata, cfra);
|
||||
int overwrite = 0, error = 0;
|
||||
|
||||
|
|
|
@ -306,19 +306,19 @@ static void UNUSED_FUNCTION(direction_to_cube_face_uv)(float r_uv[2],
|
|||
bool is_pos = (dir[0] > 0.0f);
|
||||
*r_face = is_pos ? STUDIOLIGHT_X_POS : STUDIOLIGHT_X_NEG;
|
||||
r_uv[0] = dir[2] / fabsf(dir[0]) * (is_pos ? 1 : -1);
|
||||
r_uv[1] = dir[1] / fabsf(dir[0]) * (is_pos ? -1 : -1);
|
||||
r_uv[1] = dir[1] / fabsf(dir[0]) * -1;
|
||||
}
|
||||
else if (fabsf(dir[1]) > fabsf(dir[0]) && fabsf(dir[1]) > fabsf(dir[2])) {
|
||||
bool is_pos = (dir[1] > 0.0f);
|
||||
*r_face = is_pos ? STUDIOLIGHT_Y_POS : STUDIOLIGHT_Y_NEG;
|
||||
r_uv[0] = dir[0] / fabsf(dir[1]) * (is_pos ? 1 : 1);
|
||||
r_uv[0] = dir[0] / fabsf(dir[1]) * 1;
|
||||
r_uv[1] = dir[2] / fabsf(dir[1]) * (is_pos ? -1 : 1);
|
||||
}
|
||||
else {
|
||||
bool is_pos = (dir[2] > 0.0f);
|
||||
*r_face = is_pos ? STUDIOLIGHT_Z_NEG : STUDIOLIGHT_Z_POS;
|
||||
r_uv[0] = dir[0] / fabsf(dir[2]) * (is_pos ? -1 : 1);
|
||||
r_uv[1] = dir[1] / fabsf(dir[2]) * (is_pos ? -1 : -1);
|
||||
r_uv[1] = dir[1] / fabsf(dir[2]) * -1;
|
||||
}
|
||||
r_uv[0] = r_uv[0] * 0.5f + 0.5f;
|
||||
r_uv[1] = r_uv[1] * 0.5f + 0.5f;
|
||||
|
|
|
@ -252,7 +252,7 @@ static struct VolumeFileCache {
|
|||
}
|
||||
|
||||
/* Cache contents */
|
||||
typedef std::unordered_set<Entry, EntryHasher, EntryEqual> EntrySet;
|
||||
using EntrySet = std::unordered_set<Entry, EntryHasher, EntryEqual>;
|
||||
EntrySet cache;
|
||||
/* Mutex for multithreaded access. */
|
||||
std::mutex mutex;
|
||||
|
|
|
@ -75,7 +75,7 @@ bool BLI_edgehash_remove(EdgeHash *eh,
|
|||
void *BLI_edgehash_popkey(EdgeHash *eh, unsigned int v0, unsigned int v1) ATTR_WARN_UNUSED_RESULT;
|
||||
bool BLI_edgehash_haskey(EdgeHash *eh, unsigned int v0, unsigned int v1) ATTR_WARN_UNUSED_RESULT;
|
||||
int BLI_edgehash_len(EdgeHash *eh) ATTR_WARN_UNUSED_RESULT;
|
||||
void BLI_edgehash_clear_ex(EdgeHash *eh, EdgeHashFreeFP free_value, const uint UNUSED(reserve));
|
||||
void BLI_edgehash_clear_ex(EdgeHash *eh, EdgeHashFreeFP free_value, const uint reserve);
|
||||
void BLI_edgehash_clear(EdgeHash *eh, EdgeHashFreeFP free_value);
|
||||
|
||||
EdgeHashIterator *BLI_edgehashIterator_new(EdgeHash *eh) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT;
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
/* Use a define instead of `#pragma once` because of `BLI_endian_switch_inline.h` */
|
||||
#ifndef __BLI_ENDIAN_SWITCH_H__
|
||||
#define __BLI_ENDIAN_SWITCH_H__
|
||||
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
/* Use a define instead of `#pragma once` because of `BLI_utildefines.h` */
|
||||
#ifndef __BLI_MEMORY_UTILS_H__
|
||||
#define __BLI_MEMORY_UTILS_H__
|
||||
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
/* Use a define instead of `#pragma once` because of `bmesh_iterators_inline.h` */
|
||||
#ifndef __BLI_TASK_H__
|
||||
#define __BLI_TASK_H__
|
||||
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
* All rights reserved.
|
||||
*/
|
||||
|
||||
/* Use a define instead of `#pragma once` because of `BLI_memory_utils.h` */
|
||||
#ifndef __BLI_UTILDEFINES_H__
|
||||
#define __BLI_UTILDEFINES_H__
|
||||
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
/* Apache License, Version 2.0 */
|
||||
|
||||
#ifndef __BLENDER_TESTING_BLI_RESSOURCE_STRING_H__
|
||||
#define __BLENDER_TESTING_BLI_RESSOURCE_STRING_H__
|
||||
#pragma once
|
||||
|
||||
/* Data file, don't format. */
|
||||
/* clang-format off */
|
||||
|
@ -606,5 +605,3 @@ const char words10k[] =
|
|||
;
|
||||
|
||||
/* clang-format on */
|
||||
|
||||
#endif /* __BLENDER_TESTING_BLI_RESSOURCE_STRING_H__ */
|
||||
|
|
|
@ -1496,5 +1496,23 @@ void blo_do_versions_290(FileData *fd, Library *UNUSED(lib), Main *bmain)
|
|||
BKE_brush_default_input_curves_set(br);
|
||||
}
|
||||
}
|
||||
|
||||
if (!DNA_struct_find(fd->filesdna, "NodeSetAlpha")) {
|
||||
LISTBASE_FOREACH (Scene *, scene, &bmain->scenes) {
|
||||
bNodeTree *nodetree = scene->nodetree;
|
||||
if (nodetree == NULL) {
|
||||
continue;
|
||||
}
|
||||
|
||||
LISTBASE_FOREACH (bNode *, node, &nodetree->nodes) {
|
||||
if (node->type != CMP_NODE_SETALPHA) {
|
||||
continue;
|
||||
}
|
||||
NodeSetAlpha *storage = MEM_callocN(sizeof(NodeSetAlpha), "NodeSetAlpha");
|
||||
storage->mode = CMP_NODE_SETALPHA_MODE_REPLACE_ALPHA;
|
||||
node->storage = storage;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,8 +15,8 @@
|
|||
*
|
||||
* The Original Code is Copyright (C) 2019 by Blender Foundation.
|
||||
*/
|
||||
#ifndef __BLENDFILE_LOADING_BASE_TEST_H__
|
||||
#define __BLENDFILE_LOADING_BASE_TEST_H__
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "DEG_depsgraph.h"
|
||||
#include "testing/testing.h"
|
||||
|
@ -60,5 +60,3 @@ class BlendfileLoadingBaseTest : public testing::Test {
|
|||
/* Free the depsgraph if it's not nullptr. */
|
||||
virtual void depsgraph_free();
|
||||
};
|
||||
|
||||
#endif /* __BLENDFILE_LOADING_BASE_TEST_H__ */
|
||||
|
|
|
@ -613,7 +613,7 @@ void BM_mesh_copy_init_customdata(BMesh *bm_dst, BMesh *bm_src, const BMAllocTem
|
|||
* \param bm_dst: BMesh whose custom-data layers will be added.
|
||||
* \param bm_src: BMesh whose custom-data layers will be copied.
|
||||
* \param htype: Specifies which custom-data layers will be initiated.
|
||||
* \param allocsize: Initialize the the memory-pool before use (may be an estimate).
|
||||
* \param allocsize: Initialize the memory-pool before use (may be an estimate).
|
||||
*/
|
||||
void BM_mesh_copy_init_customdata_all_layers(BMesh *bm_dst,
|
||||
BMesh *bm_src,
|
||||
|
|
|
@ -45,7 +45,7 @@ void BM_mesh_edgeloops_calc_normal(BMesh *bm, struct ListBase *eloops);
|
|||
void BM_mesh_edgeloops_calc_normal_aligned(BMesh *bm,
|
||||
struct ListBase *eloops,
|
||||
const float no_align[3]);
|
||||
void BM_mesh_edgeloops_calc_order(BMesh *UNUSED(bm), ListBase *eloops, const bool use_normals);
|
||||
void BM_mesh_edgeloops_calc_order(BMesh *bm, ListBase *eloops, const bool use_normals);
|
||||
|
||||
/* single edgeloop */
|
||||
struct BMEdgeLoopStore *BM_edgeloop_copy(struct BMEdgeLoopStore *el_store);
|
||||
|
|
|
@ -31,7 +31,7 @@ void BM_loop_interp_multires_ex(BMesh *bm,
|
|||
const int cd_loop_mdisp_offset);
|
||||
void BM_loop_interp_multires(BMesh *bm, BMLoop *l_dst, const BMFace *f_src);
|
||||
|
||||
void BM_face_interp_multires_ex(BMesh *UNUSED(bm),
|
||||
void BM_face_interp_multires_ex(BMesh *bm,
|
||||
BMFace *f_dst,
|
||||
const BMFace *f_src,
|
||||
const float f_dst_center[3],
|
||||
|
|
|
@ -326,6 +326,7 @@ static BMOpDefine bmo_mirror_def = {
|
|||
{"mirror_u", BMO_OP_SLOT_BOOL}, /* mirror UVs across the u axis */
|
||||
{"mirror_v", BMO_OP_SLOT_BOOL}, /* mirror UVs across the v axis */
|
||||
{"mirror_udim", BMO_OP_SLOT_BOOL}, /* mirror UVs in each tile */
|
||||
{"use_shapekey", BMO_OP_SLOT_BOOL}, /* Transform shape keys too. */
|
||||
{{'\0'}},
|
||||
},
|
||||
/* slots_out */
|
||||
|
@ -758,6 +759,7 @@ static BMOpDefine bmo_rotate_def = {
|
|||
{"matrix", BMO_OP_SLOT_MAT}, /* matrix defining rotation */
|
||||
{"verts", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* input vertices */
|
||||
{"space", BMO_OP_SLOT_MAT}, /* matrix to define the space (typically object matrix) */
|
||||
{"use_shapekey", BMO_OP_SLOT_BOOL}, /* Transform shape keys too. */
|
||||
{{'\0'}},
|
||||
},
|
||||
{{{'\0'}}}, /* no output */
|
||||
|
@ -776,6 +778,7 @@ static BMOpDefine bmo_translate_def = {
|
|||
{{"vec", BMO_OP_SLOT_VEC}, /* translation offset */
|
||||
{"space", BMO_OP_SLOT_MAT}, /* matrix to define the space (typically object matrix) */
|
||||
{"verts", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* input vertices */
|
||||
{"use_shapekey", BMO_OP_SLOT_BOOL}, /* Transform shape keys too. */
|
||||
{{'\0'}},
|
||||
},
|
||||
{{{'\0'}}}, /* no output */
|
||||
|
@ -794,6 +797,7 @@ static BMOpDefine bmo_scale_def = {
|
|||
{{"vec", BMO_OP_SLOT_VEC}, /* scale factor */
|
||||
{"space", BMO_OP_SLOT_MAT}, /* matrix to define the space (typically object matrix) */
|
||||
{"verts", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* input vertices */
|
||||
{"use_shapekey", BMO_OP_SLOT_BOOL}, /* Transform shape keys too. */
|
||||
{{'\0'}},
|
||||
},
|
||||
{{{'\0'}}}, /* no output */
|
||||
|
@ -814,6 +818,7 @@ static BMOpDefine bmo_transform_def = {
|
|||
{{"matrix", BMO_OP_SLOT_MAT}, /* transform matrix */
|
||||
{"space", BMO_OP_SLOT_MAT}, /* matrix to define the space (typically object matrix) */
|
||||
{"verts", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* input vertices */
|
||||
{"use_shapekey", BMO_OP_SLOT_BOOL}, /* Transform shape keys too. */
|
||||
{{'\0'}},
|
||||
},
|
||||
{{{'\0'}}}, /* no output */
|
||||
|
@ -2072,6 +2077,7 @@ static BMOpDefine bmo_symmetrize_def = {
|
|||
{{"input", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}}, /* input geometry */
|
||||
{"direction", BMO_OP_SLOT_INT, {(int)BMO_OP_SLOT_SUBTYPE_INT_ENUM}, bmo_enum_axis_neg_xyz_and_xyz}, /* axis to use */
|
||||
{"dist", BMO_OP_SLOT_FLT}, /* minimum distance */
|
||||
{"use_shapekey", BMO_OP_SLOT_BOOL}, /* Transform shape keys too. */
|
||||
{{'\0'}},
|
||||
},
|
||||
/* slots_out */
|
||||
|
|
|
@ -37,50 +37,45 @@ void bmo_mirror_exec(BMesh *bm, BMOperator *op)
|
|||
{
|
||||
BMOperator dupeop, weldop;
|
||||
BMOIter siter;
|
||||
BMIter iter;
|
||||
BMVert *v, **vmap;
|
||||
int vmap_size = 0;
|
||||
float mtx[4][4];
|
||||
float imtx[4][4];
|
||||
BMVert *v;
|
||||
float scale[3] = {1.0f, 1.0f, 1.0f};
|
||||
float dist = BMO_slot_float_get(op->slots_in, "merge_dist");
|
||||
int i, ototvert;
|
||||
int i;
|
||||
int axis = BMO_slot_int_get(op->slots_in, "axis");
|
||||
bool mirror_u = BMO_slot_bool_get(op->slots_in, "mirror_u");
|
||||
bool mirror_v = BMO_slot_bool_get(op->slots_in, "mirror_v");
|
||||
bool mirror_udim = BMO_slot_bool_get(op->slots_in, "mirror_udim");
|
||||
BMOpSlot *slot_targetmap;
|
||||
|
||||
ototvert = bm->totvert;
|
||||
|
||||
BMO_slot_mat4_get(op->slots_in, "matrix", mtx);
|
||||
invert_m4_m4(imtx, mtx);
|
||||
BMOpSlot *slot_vertmap;
|
||||
|
||||
BMO_op_initf(bm, &dupeop, op->flag, "duplicate geom=%s", op, "geom");
|
||||
BMO_op_exec(bm, &dupeop);
|
||||
|
||||
BMO_slot_buffer_flag_enable(bm, dupeop.slots_out, "geom.out", BM_ALL_NOLOOP, ELE_NEW);
|
||||
|
||||
/* create old -> new mappin */
|
||||
vmap = BMO_iter_as_arrayN(dupeop.slots_out, "geom.out", BM_VERT, &vmap_size, NULL, 0);
|
||||
|
||||
/* feed old data to transform bmo */
|
||||
scale[axis] = -1.0f;
|
||||
BMO_op_callf(bm, op->flag, "transform verts=%fv matrix=%m4", ELE_NEW, mtx);
|
||||
BMO_op_callf(bm, op->flag, "scale verts=%fv vec=%v", ELE_NEW, scale);
|
||||
BMO_op_callf(bm, op->flag, "transform verts=%fv matrix=%m4", ELE_NEW, imtx);
|
||||
BMO_op_callf(bm,
|
||||
op->flag,
|
||||
"scale verts=%fv vec=%v space=%s use_shapekey=%s",
|
||||
ELE_NEW,
|
||||
scale,
|
||||
op,
|
||||
"matrix",
|
||||
op,
|
||||
"use_shapekey");
|
||||
|
||||
BMO_op_init(bm, &weldop, op->flag, "weld_verts");
|
||||
|
||||
slot_targetmap = BMO_slot_get(weldop.slots_in, "targetmap");
|
||||
slot_vertmap = BMO_slot_get(dupeop.slots_out, "vert_map.out");
|
||||
|
||||
v = BM_iter_new(&iter, bm, BM_VERTS_OF_MESH, NULL);
|
||||
for (i = 0; i < ototvert; i++) {
|
||||
BMO_ITER (v, &siter, op->slots_in, "geom", BM_VERT) {
|
||||
if (fabsf(v->co[axis]) <= dist) {
|
||||
BLI_assert(vmap_size >= i);
|
||||
BMO_slot_map_elem_insert(&weldop, slot_targetmap, vmap[i], v);
|
||||
BMVert *v_new = BMO_slot_map_elem_get(slot_vertmap, v);
|
||||
BLI_assert(v_new != NULL);
|
||||
BMO_slot_map_elem_insert(&weldop, slot_targetmap, v_new, v);
|
||||
}
|
||||
v = BM_iter_step(&iter);
|
||||
}
|
||||
|
||||
if (mirror_u || mirror_v) {
|
||||
|
@ -123,8 +118,4 @@ void bmo_mirror_exec(BMesh *bm, BMOperator *op)
|
|||
BMO_op_finish(bm, &dupeop);
|
||||
|
||||
BMO_slot_buffer_from_enabled_flag(bm, op, op->slots_out, "geom.out", BM_ALL_NOLOOP, ELE_NEW);
|
||||
|
||||
if (vmap) {
|
||||
MEM_freeN(vmap);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -76,7 +76,14 @@ void bmo_symmetrize_exec(BMesh *bm, BMOperator *op)
|
|||
BMO_slot_buffer_flag_enable(bm, op_bisect.slots_out, "geom.out", BM_ALL_NOLOOP, ELE_OUT);
|
||||
BMO_slot_buffer_flag_enable(bm, op_dupe.slots_out, "geom.out", BM_ALL_NOLOOP, ELE_OUT);
|
||||
|
||||
BMO_op_callf(bm, op->flag, "scale verts=%S vec=%v", &op_dupe, "geom.out", scale);
|
||||
BMO_op_callf(bm,
|
||||
op->flag,
|
||||
"scale verts=%S vec=%v use_shapekey=%s",
|
||||
&op_dupe,
|
||||
"geom.out",
|
||||
scale,
|
||||
op,
|
||||
"use_shapekey");
|
||||
|
||||
/* important 'flip_multires' is disabled,
|
||||
* otherwise multi-res data will be reversed, see: T47788 */
|
||||
|
|
|
@ -46,12 +46,17 @@ void bmo_create_vert_exec(BMesh *bm, BMOperator *op)
|
|||
BMO_slot_buffer_from_enabled_flag(bm, op, op->slots_out, "vert.out", BM_VERT, ELE_NEW);
|
||||
}
|
||||
|
||||
void bmo_transform_exec(BMesh *UNUSED(bm), BMOperator *op)
|
||||
void bmo_transform_exec(BMesh *bm, BMOperator *op)
|
||||
{
|
||||
BMOIter iter;
|
||||
BMVert *v;
|
||||
float mat[4][4], mat_space[4][4], imat_space[4][4];
|
||||
|
||||
const uint shape_keys_len = BMO_slot_bool_get(op->slots_in, "use_shapekey") ?
|
||||
CustomData_number_of_layers(&bm->vdata, CD_SHAPEKEY) :
|
||||
0;
|
||||
const uint cd_shape_key_offset = CustomData_get_offset(&bm->vdata, CD_SHAPEKEY);
|
||||
|
||||
BMO_slot_mat4_get(op->slots_in, "matrix", mat);
|
||||
BMO_slot_mat4_get(op->slots_in, "space", mat_space);
|
||||
|
||||
|
@ -62,6 +67,13 @@ void bmo_transform_exec(BMesh *UNUSED(bm), BMOperator *op)
|
|||
|
||||
BMO_ITER (v, &iter, op->slots_in, "verts", BM_VERT) {
|
||||
mul_m4_v3(mat, v->co);
|
||||
|
||||
if (shape_keys_len != 0) {
|
||||
float(*co_dst)[3] = BM_ELEM_CD_GET_VOID_P(v, cd_shape_key_offset);
|
||||
for (int i = 0; i < shape_keys_len; i++, co_dst++) {
|
||||
mul_m4_v3(mat, *co_dst);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -74,8 +86,16 @@ void bmo_translate_exec(BMesh *bm, BMOperator *op)
|
|||
unit_m4(mat);
|
||||
copy_v3_v3(mat[3], vec);
|
||||
|
||||
BMO_op_callf(
|
||||
bm, op->flag, "transform matrix=%m4 space=%s verts=%s", mat, op, "space", op, "verts");
|
||||
BMO_op_callf(bm,
|
||||
op->flag,
|
||||
"transform matrix=%m4 space=%s verts=%s use_shapekey=%s",
|
||||
mat,
|
||||
op,
|
||||
"space",
|
||||
op,
|
||||
"verts",
|
||||
op,
|
||||
"use_shapekey");
|
||||
}
|
||||
|
||||
void bmo_scale_exec(BMesh *bm, BMOperator *op)
|
||||
|
@ -89,8 +109,16 @@ void bmo_scale_exec(BMesh *bm, BMOperator *op)
|
|||
mat[1][1] = vec[1];
|
||||
mat[2][2] = vec[2];
|
||||
|
||||
BMO_op_callf(
|
||||
bm, op->flag, "transform matrix=%m3 space=%s verts=%s", mat, op, "space", op, "verts");
|
||||
BMO_op_callf(bm,
|
||||
op->flag,
|
||||
"transform matrix=%m3 space=%s verts=%s use_shapekey=%s",
|
||||
mat,
|
||||
op,
|
||||
"space",
|
||||
op,
|
||||
"verts",
|
||||
op,
|
||||
"use_shapekey");
|
||||
}
|
||||
|
||||
void bmo_rotate_exec(BMesh *bm, BMOperator *op)
|
||||
|
@ -102,8 +130,16 @@ void bmo_rotate_exec(BMesh *bm, BMOperator *op)
|
|||
BMO_slot_mat4_get(op->slots_in, "matrix", mat);
|
||||
transform_pivot_set_m4(mat, center);
|
||||
|
||||
BMO_op_callf(
|
||||
bm, op->flag, "transform matrix=%m4 space=%s verts=%s", mat, op, "space", op, "verts");
|
||||
BMO_op_callf(bm,
|
||||
op->flag,
|
||||
"transform matrix=%m4 space=%s verts=%s use_shapekey=%s",
|
||||
mat,
|
||||
op,
|
||||
"space",
|
||||
op,
|
||||
"verts",
|
||||
op,
|
||||
"use_shapekey");
|
||||
}
|
||||
|
||||
void bmo_reverse_faces_exec(BMesh *bm, BMOperator *op)
|
||||
|
|
|
@ -355,8 +355,6 @@ set(SRC
|
|||
operations/COM_KeyingDespillOperation.h
|
||||
operations/COM_KeyingOperation.cpp
|
||||
operations/COM_KeyingOperation.h
|
||||
operations/COM_KeyingSetAlphaOperation.cpp
|
||||
operations/COM_KeyingSetAlphaOperation.h
|
||||
|
||||
operations/COM_ColorSpillOperation.cpp
|
||||
operations/COM_ColorSpillOperation.h
|
||||
|
@ -461,8 +459,10 @@ set(SRC
|
|||
operations/COM_MapRangeOperation.h
|
||||
operations/COM_MapValueOperation.cpp
|
||||
operations/COM_MapValueOperation.h
|
||||
operations/COM_SetAlphaOperation.cpp
|
||||
operations/COM_SetAlphaOperation.h
|
||||
operations/COM_SetAlphaMultiplyOperation.cpp
|
||||
operations/COM_SetAlphaMultiplyOperation.h
|
||||
operations/COM_SetAlphaReplaceOperation.cpp
|
||||
operations/COM_SetAlphaReplaceOperation.h
|
||||
|
||||
# Distort operation
|
||||
operations/COM_DisplaceOperation.cpp
|
||||
|
|
|
@ -34,7 +34,7 @@ class SingleThreadedOperation : public NodeOperation {
|
|||
SingleThreadedOperation();
|
||||
|
||||
/**
|
||||
* the inner loop of this program
|
||||
* The inner loop of this operation.
|
||||
*/
|
||||
void executePixel(float output[4], int x, int y, void *data);
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
#include "BKE_node.h"
|
||||
#include "COM_ChannelMatteOperation.h"
|
||||
#include "COM_ConvertOperation.h"
|
||||
#include "COM_SetAlphaOperation.h"
|
||||
#include "COM_SetAlphaMultiplyOperation.h"
|
||||
|
||||
ChannelMatteNode::ChannelMatteNode(bNode *editorNode) : Node(editorNode)
|
||||
{
|
||||
|
@ -64,7 +64,7 @@ void ChannelMatteNode::convertToOperations(NodeConverter &converter,
|
|||
operation->setSettings((NodeChroma *)node->storage, node->custom2);
|
||||
converter.addOperation(operation);
|
||||
|
||||
SetAlphaOperation *operationAlpha = new SetAlphaOperation();
|
||||
SetAlphaMultiplyOperation *operationAlpha = new SetAlphaMultiplyOperation();
|
||||
converter.addOperation(operationAlpha);
|
||||
|
||||
if (convert != nullptr) {
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
#include "BKE_node.h"
|
||||
#include "COM_ChromaMatteOperation.h"
|
||||
#include "COM_ConvertOperation.h"
|
||||
#include "COM_SetAlphaOperation.h"
|
||||
#include "COM_SetAlphaMultiplyOperation.h"
|
||||
|
||||
ChromaMatteNode::ChromaMatteNode(bNode *editorNode) : Node(editorNode)
|
||||
{
|
||||
|
@ -48,7 +48,7 @@ void ChromaMatteNode::convertToOperations(NodeConverter &converter,
|
|||
operation->setSettings((NodeChroma *)editorsnode->storage);
|
||||
converter.addOperation(operation);
|
||||
|
||||
SetAlphaOperation *operationAlpha = new SetAlphaOperation();
|
||||
SetAlphaMultiplyOperation *operationAlpha = new SetAlphaMultiplyOperation();
|
||||
converter.addOperation(operationAlpha);
|
||||
|
||||
converter.mapInputSocket(inputSocketImage, operationRGBToYCC_Image->getInputSocket(0));
|
||||
|
|
|
@ -16,8 +16,7 @@
|
|||
* Copyright 2020, Blender Foundation.
|
||||
*/
|
||||
|
||||
#ifndef __COM_EXPOSURENODE_H__
|
||||
#define __COM_EXPOSURENODE_H__
|
||||
#pragma once
|
||||
|
||||
#include "COM_Node.h"
|
||||
|
||||
|
@ -30,5 +29,3 @@ class ExposureNode : public Node {
|
|||
ExposureNode(bNode *editorNode);
|
||||
void convertToOperations(NodeConverter &converter, const CompositorContext &context) const;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
#include "BKE_node.h"
|
||||
#include "COM_ColorMatteOperation.h"
|
||||
#include "COM_ConvertOperation.h"
|
||||
#include "COM_SetAlphaOperation.h"
|
||||
#include "COM_SetAlphaMultiplyOperation.h"
|
||||
|
||||
ColorMatteNode::ColorMatteNode(bNode *editorNode) : Node(editorNode)
|
||||
{
|
||||
|
@ -46,7 +46,7 @@ void ColorMatteNode::convertToOperations(NodeConverter &converter,
|
|||
operation->setSettings((NodeChroma *)editorsnode->storage);
|
||||
converter.addOperation(operation);
|
||||
|
||||
SetAlphaOperation *operationAlpha = new SetAlphaOperation();
|
||||
SetAlphaMultiplyOperation *operationAlpha = new SetAlphaMultiplyOperation();
|
||||
converter.addOperation(operationAlpha);
|
||||
|
||||
converter.mapInputSocket(inputSocketImage, operationRGBToHSV_Image->getInputSocket(0));
|
||||
|
|
|
@ -19,13 +19,13 @@
|
|||
#include "COM_CryptomatteNode.h"
|
||||
#include "COM_ConvertOperation.h"
|
||||
#include "COM_CryptomatteOperation.h"
|
||||
#include "COM_SetAlphaOperation.h"
|
||||
|
||||
#include "BLI_assert.h"
|
||||
#include "BLI_hash_mm3.h"
|
||||
#include "BLI_listbase.h"
|
||||
#include "BLI_string.h"
|
||||
|
||||
#include "COM_SetAlphaMultiplyOperation.h"
|
||||
#include <iterator>
|
||||
|
||||
CryptomatteNode::CryptomatteNode(bNode *editorNode) : Node(editorNode)
|
||||
|
@ -61,13 +61,13 @@ void CryptomatteNode::convertToOperations(NodeConverter &converter,
|
|||
separateOperation->setChannel(3);
|
||||
converter.addOperation(separateOperation);
|
||||
|
||||
SetAlphaOperation *operationAlpha = new SetAlphaOperation();
|
||||
SetAlphaMultiplyOperation *operationAlpha = new SetAlphaMultiplyOperation();
|
||||
converter.addOperation(operationAlpha);
|
||||
|
||||
converter.addLink(operation->getOutputSocket(0), separateOperation->getInputSocket(0));
|
||||
converter.addLink(separateOperation->getOutputSocket(0), operationAlpha->getInputSocket(1));
|
||||
|
||||
SetAlphaOperation *clearAlphaOperation = new SetAlphaOperation();
|
||||
SetAlphaMultiplyOperation *clearAlphaOperation = new SetAlphaMultiplyOperation();
|
||||
converter.addOperation(clearAlphaOperation);
|
||||
converter.addInputValue(clearAlphaOperation->getInputSocket(1), 1.0f);
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
#include "COM_DifferenceMatteNode.h"
|
||||
#include "BKE_node.h"
|
||||
#include "COM_DifferenceMatteOperation.h"
|
||||
#include "COM_SetAlphaOperation.h"
|
||||
#include "COM_SetAlphaMultiplyOperation.h"
|
||||
|
||||
DifferenceMatteNode::DifferenceMatteNode(bNode *editorNode) : Node(editorNode)
|
||||
{
|
||||
|
@ -43,7 +43,7 @@ void DifferenceMatteNode::convertToOperations(NodeConverter &converter,
|
|||
converter.mapInputSocket(inputSocket2, operationSet->getInputSocket(1));
|
||||
converter.mapOutputSocket(outputSocketMatte, operationSet->getOutputSocket(0));
|
||||
|
||||
SetAlphaOperation *operation = new SetAlphaOperation();
|
||||
SetAlphaMultiplyOperation *operation = new SetAlphaMultiplyOperation();
|
||||
converter.addOperation(operation);
|
||||
|
||||
converter.mapInputSocket(inputSocket, operation->getInputSocket(0));
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
#include "COM_ConvertOperation.h"
|
||||
#include "COM_DistanceRGBMatteOperation.h"
|
||||
#include "COM_DistanceYCCMatteOperation.h"
|
||||
#include "COM_SetAlphaOperation.h"
|
||||
#include "COM_SetAlphaMultiplyOperation.h"
|
||||
|
||||
DistanceMatteNode::DistanceMatteNode(bNode *editorNode) : Node(editorNode)
|
||||
{
|
||||
|
@ -39,7 +39,7 @@ void DistanceMatteNode::convertToOperations(NodeConverter &converter,
|
|||
NodeOutput *outputSocketImage = this->getOutputSocket(0);
|
||||
NodeOutput *outputSocketMatte = this->getOutputSocket(1);
|
||||
|
||||
SetAlphaOperation *operationAlpha = new SetAlphaOperation();
|
||||
SetAlphaMultiplyOperation *operationAlpha = new SetAlphaMultiplyOperation();
|
||||
converter.addOperation(operationAlpha);
|
||||
|
||||
/* work in RGB color space */
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
|
||||
#include "COM_DilateErodeOperation.h"
|
||||
|
||||
#include "COM_KeyingSetAlphaOperation.h"
|
||||
#include "COM_SetAlphaMultiplyOperation.h"
|
||||
|
||||
#include "COM_GaussianAlphaXBlurOperation.h"
|
||||
#include "COM_GaussianAlphaYBlurOperation.h"
|
||||
|
@ -323,7 +323,7 @@ void KeyingNode::convertToOperations(NodeConverter &converter,
|
|||
}
|
||||
|
||||
/* set alpha channel to output image */
|
||||
KeyingSetAlphaOperation *alphaOperation = new KeyingSetAlphaOperation();
|
||||
SetAlphaMultiplyOperation *alphaOperation = new SetAlphaMultiplyOperation();
|
||||
converter.addOperation(alphaOperation);
|
||||
|
||||
converter.mapInputSocket(inputImage, alphaOperation->getInputSocket(0));
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
#include "BKE_node.h"
|
||||
#include "COM_ConvertOperation.h"
|
||||
#include "COM_LuminanceMatteOperation.h"
|
||||
#include "COM_SetAlphaOperation.h"
|
||||
#include "COM_SetAlphaMultiplyOperation.h"
|
||||
|
||||
LuminanceMatteNode::LuminanceMatteNode(bNode *editorNode) : Node(editorNode)
|
||||
{
|
||||
|
@ -42,7 +42,7 @@ void LuminanceMatteNode::convertToOperations(NodeConverter &converter,
|
|||
converter.mapInputSocket(inputSocket, operationSet->getInputSocket(0));
|
||||
converter.mapOutputSocket(outputSocketMatte, operationSet->getOutputSocket(0));
|
||||
|
||||
SetAlphaOperation *operation = new SetAlphaOperation();
|
||||
SetAlphaMultiplyOperation *operation = new SetAlphaMultiplyOperation();
|
||||
converter.addOperation(operation);
|
||||
|
||||
converter.mapInputSocket(inputSocket, operation->getInputSocket(0));
|
||||
|
|
|
@ -18,12 +18,23 @@
|
|||
|
||||
#include "COM_SetAlphaNode.h"
|
||||
#include "COM_ExecutionSystem.h"
|
||||
#include "COM_SetAlphaOperation.h"
|
||||
#include "COM_SetAlphaMultiplyOperation.h"
|
||||
#include "COM_SetAlphaReplaceOperation.h"
|
||||
|
||||
void SetAlphaNode::convertToOperations(NodeConverter &converter,
|
||||
const CompositorContext & /*context*/) const
|
||||
{
|
||||
SetAlphaOperation *operation = new SetAlphaOperation();
|
||||
const bNode *editorNode = this->getbNode();
|
||||
const NodeSetAlpha *storage = static_cast<const NodeSetAlpha *>(editorNode->storage);
|
||||
NodeOperation *operation = nullptr;
|
||||
switch (storage->mode) {
|
||||
case CMP_NODE_SETALPHA_MODE_APPLY:
|
||||
operation = new SetAlphaMultiplyOperation();
|
||||
break;
|
||||
case CMP_NODE_SETALPHA_MODE_REPLACE_ALPHA:
|
||||
operation = new SetAlphaReplaceOperation();
|
||||
break;
|
||||
}
|
||||
|
||||
if (!this->getInputSocket(0)->isLinked() && this->getInputSocket(1)->isLinked()) {
|
||||
operation->setResolutionInputSocketIndex(1);
|
||||
|
|
|
@ -32,7 +32,7 @@ class AlphaOverKeyOperation : public MixBaseOperation {
|
|||
AlphaOverKeyOperation();
|
||||
|
||||
/**
|
||||
* the inner loop of this program
|
||||
* The inner loop of this operation.
|
||||
*/
|
||||
void executePixelSampled(float output[4], float x, float y, PixelSampler sampler);
|
||||
};
|
||||
|
|
|
@ -35,7 +35,7 @@ class AlphaOverMixedOperation : public MixBaseOperation {
|
|||
AlphaOverMixedOperation();
|
||||
|
||||
/**
|
||||
* the inner loop of this program
|
||||
* The inner loop of this operation.
|
||||
*/
|
||||
void executePixelSampled(float output[4], float x, float y, PixelSampler sampler);
|
||||
|
||||
|
|
|
@ -32,7 +32,7 @@ class AlphaOverPremultiplyOperation : public MixBaseOperation {
|
|||
AlphaOverPremultiplyOperation();
|
||||
|
||||
/**
|
||||
* the inner loop of this program
|
||||
* The inner loop of this operation.
|
||||
*/
|
||||
void executePixelSampled(float output[4], float x, float y, PixelSampler sampler);
|
||||
};
|
||||
|
|
|
@ -37,7 +37,7 @@ class AntiAliasOperation : public NodeOperation {
|
|||
AntiAliasOperation();
|
||||
|
||||
/**
|
||||
* the inner loop of this program
|
||||
* The inner loop of this operation.
|
||||
*/
|
||||
void executePixel(float output[4], int x, int y, void *data);
|
||||
|
||||
|
|
|
@ -32,7 +32,7 @@ class BilateralBlurOperation : public NodeOperation, public QualityStepHelper {
|
|||
BilateralBlurOperation();
|
||||
|
||||
/**
|
||||
* the inner loop of this program
|
||||
* The inner loop of this operation.
|
||||
*/
|
||||
void executePixel(float output[4], int x, int y, void *data);
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ class BokehBlurOperation : public NodeOperation, public QualityStepHelper {
|
|||
|
||||
void *initializeTileData(rcti *rect);
|
||||
/**
|
||||
* the inner loop of this program
|
||||
* The inner loop of this operation.
|
||||
*/
|
||||
void executePixel(float output[4], int x, int y, void *data);
|
||||
|
||||
|
|
|
@ -108,7 +108,7 @@ class BokehImageOperation : public NodeOperation {
|
|||
BokehImageOperation();
|
||||
|
||||
/**
|
||||
* \brief the inner loop of this program
|
||||
* \brief The inner loop of this operation.
|
||||
*/
|
||||
void executePixelSampled(float output[4], float x, float y, PixelSampler sampler);
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ class BoxMaskOperation : public NodeOperation {
|
|||
BoxMaskOperation();
|
||||
|
||||
/**
|
||||
* the inner loop of this program
|
||||
* The inner loop of this operation.
|
||||
*/
|
||||
void executePixelSampled(float output[4], float x, float y, PixelSampler sampler);
|
||||
|
||||
|
|
|
@ -35,7 +35,7 @@ class BrightnessOperation : public NodeOperation {
|
|||
BrightnessOperation();
|
||||
|
||||
/**
|
||||
* the inner loop of this program
|
||||
* The inner loop of this operation.
|
||||
*/
|
||||
void executePixelSampled(float output[4], float x, float y, PixelSampler sampler);
|
||||
|
||||
|
|
|
@ -40,7 +40,7 @@ class CalculateMeanOperation : public NodeOperation {
|
|||
CalculateMeanOperation();
|
||||
|
||||
/**
|
||||
* the inner loop of this program
|
||||
* The inner loop of this operation.
|
||||
*/
|
||||
void executePixel(float output[4], int x, int y, void *data);
|
||||
|
||||
|
|
|
@ -34,7 +34,7 @@ class CalculateStandardDeviationOperation : public CalculateMeanOperation {
|
|||
CalculateStandardDeviationOperation();
|
||||
|
||||
/**
|
||||
* the inner loop of this program
|
||||
* The inner loop of this operation.
|
||||
*/
|
||||
void executePixel(float output[4], int x, int y, void *data);
|
||||
|
||||
|
|
|
@ -41,7 +41,7 @@ class ChangeHSVOperation : public NodeOperation {
|
|||
void deinitExecution();
|
||||
|
||||
/**
|
||||
* the inner loop of this program
|
||||
* The inner loop of this operation.
|
||||
*/
|
||||
void executePixelSampled(float output[4], float x, float y, PixelSampler sampler);
|
||||
};
|
||||
|
|
|
@ -111,10 +111,10 @@ void ChannelMatteOperation::executePixelSampled(float output[4],
|
|||
alpha = (alpha - limit_min) / limit_range;
|
||||
}
|
||||
|
||||
/* store matte(alpha) value in [0] to go with
|
||||
* COM_SetAlphaOperation and the Value output
|
||||
/* Store matte(alpha) value in [0] to go with
|
||||
* COM_SetAlphaMultiplyOperation and the Value output.
|
||||
*/
|
||||
|
||||
/* don't make something that was more transparent less transparent */
|
||||
/* Don't make something that was more transparent less transparent. */
|
||||
output[0] = min(alpha, inColor[3]);
|
||||
}
|
||||
|
|
|
@ -54,7 +54,7 @@ class ChannelMatteOperation : public NodeOperation {
|
|||
ChannelMatteOperation();
|
||||
|
||||
/**
|
||||
* the inner loop of this program
|
||||
* The inner loop of this operation.
|
||||
*/
|
||||
void executePixelSampled(float output[4], float x, float y, PixelSampler sampler);
|
||||
|
||||
|
|
|
@ -60,8 +60,8 @@ void ChromaMatteOperation::executePixelSampled(float output[4],
|
|||
this->m_inputKeyProgram->readSampled(inKey, x, y, sampler);
|
||||
this->m_inputImageProgram->readSampled(inImage, x, y, sampler);
|
||||
|
||||
/* store matte(alpha) value in [0] to go with
|
||||
* COM_SetAlphaOperation and the Value output
|
||||
/* Store matte(alpha) value in [0] to go with
|
||||
* COM_SetAlphaMultiplyOperation and the Value output.
|
||||
*/
|
||||
|
||||
/* Algorithm from book "Video Demistified," does not include the spill reduction part */
|
||||
|
|
|
@ -37,7 +37,7 @@ class ChromaMatteOperation : public NodeOperation {
|
|||
ChromaMatteOperation();
|
||||
|
||||
/**
|
||||
* the inner loop of this program
|
||||
* The inner loop of this operation.
|
||||
*/
|
||||
void executePixelSampled(float output[4], float x, float y, PixelSampler sampler);
|
||||
|
||||
|
|
|
@ -43,7 +43,7 @@ class ColorBalanceASCCDLOperation : public NodeOperation {
|
|||
ColorBalanceASCCDLOperation();
|
||||
|
||||
/**
|
||||
* the inner loop of this program
|
||||
* The inner loop of this operation.
|
||||
*/
|
||||
void executePixelSampled(float output[4], float x, float y, PixelSampler sampler);
|
||||
|
||||
|
|
|
@ -43,7 +43,7 @@ class ColorBalanceLGGOperation : public NodeOperation {
|
|||
ColorBalanceLGGOperation();
|
||||
|
||||
/**
|
||||
* the inner loop of this program
|
||||
* The inner loop of this operation.
|
||||
*/
|
||||
void executePixelSampled(float output[4], float x, float y, PixelSampler sampler);
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@ class ColorCorrectionOperation : public NodeOperation {
|
|||
ColorCorrectionOperation();
|
||||
|
||||
/**
|
||||
* the inner loop of this program
|
||||
* The inner loop of this operation.
|
||||
*/
|
||||
void executePixelSampled(float output[4], float x, float y, PixelSampler sampler);
|
||||
|
||||
|
|
|
@ -36,7 +36,7 @@ class ColorCurveOperation : public CurveBaseOperation {
|
|||
ColorCurveOperation();
|
||||
|
||||
/**
|
||||
* the inner loop of this program
|
||||
* The inner loop of this operation.
|
||||
*/
|
||||
void executePixelSampled(float output[4], float x, float y, PixelSampler sampler);
|
||||
|
||||
|
@ -65,7 +65,7 @@ class ConstantLevelColorCurveOperation : public CurveBaseOperation {
|
|||
ConstantLevelColorCurveOperation();
|
||||
|
||||
/**
|
||||
* the inner loop of this program
|
||||
* The inner loop of this operation.
|
||||
*/
|
||||
void executePixelSampled(float output[4], float x, float y, PixelSampler sampler);
|
||||
|
||||
|
|
|
@ -18,12 +18,12 @@
|
|||
|
||||
#include "COM_ColorExposureOperation.h"
|
||||
|
||||
ExposureOperation::ExposureOperation() : NodeOperation()
|
||||
ExposureOperation::ExposureOperation()
|
||||
{
|
||||
this->addInputSocket(COM_DT_COLOR);
|
||||
this->addInputSocket(COM_DT_VALUE);
|
||||
this->addOutputSocket(COM_DT_COLOR);
|
||||
this->m_inputProgram = NULL;
|
||||
this->m_inputProgram = nullptr;
|
||||
}
|
||||
|
||||
void ExposureOperation::initExecution()
|
||||
|
@ -52,6 +52,6 @@ void ExposureOperation::executePixelSampled(float output[4],
|
|||
|
||||
void ExposureOperation::deinitExecution()
|
||||
{
|
||||
this->m_inputProgram = NULL;
|
||||
this->m_inputExposureProgram = NULL;
|
||||
this->m_inputProgram = nullptr;
|
||||
this->m_inputExposureProgram = nullptr;
|
||||
}
|
||||
|
|
|
@ -16,8 +16,8 @@
|
|||
* Copyright 2020, Blender Foundation.
|
||||
*/
|
||||
|
||||
#ifndef __COM_COLOREXPOSUREOPERATION_H__
|
||||
#define __COM_COLOREXPOSUREOPERATION_H__
|
||||
#pragma once
|
||||
|
||||
#include "COM_NodeOperation.h"
|
||||
|
||||
class ExposureOperation : public NodeOperation {
|
||||
|
@ -32,7 +32,7 @@ class ExposureOperation : public NodeOperation {
|
|||
ExposureOperation();
|
||||
|
||||
/**
|
||||
* the inner loop of this program
|
||||
* The inner loop of this operation.
|
||||
*/
|
||||
void executePixelSampled(float output[4], float x, float y, PixelSampler sampler);
|
||||
|
||||
|
@ -46,4 +46,3 @@ class ExposureOperation : public NodeOperation {
|
|||
*/
|
||||
void deinitExecution();
|
||||
};
|
||||
#endif
|
||||
|
|
|
@ -58,8 +58,8 @@ void ColorMatteOperation::executePixelSampled(float output[4],
|
|||
this->m_inputImageProgram->readSampled(inColor, x, y, sampler);
|
||||
this->m_inputKeyProgram->readSampled(inKey, x, y, sampler);
|
||||
|
||||
/* store matte(alpha) value in [0] to go with
|
||||
* COM_SetAlphaOperation and the Value output
|
||||
/* Store matte(alpha) value in [0] to go with
|
||||
* COM_SetAlphaMultiplyOperation and the Value output.
|
||||
*/
|
||||
|
||||
if (
|
||||
|
|
|
@ -37,7 +37,7 @@ class ColorMatteOperation : public NodeOperation {
|
|||
ColorMatteOperation();
|
||||
|
||||
/**
|
||||
* the inner loop of this program
|
||||
* The inner loop of this operation.
|
||||
*/
|
||||
void executePixelSampled(float output[4], float x, float y, PixelSampler sampler);
|
||||
|
||||
|
|
|
@ -33,7 +33,7 @@ class ColorRampOperation : public NodeOperation {
|
|||
ColorRampOperation();
|
||||
|
||||
/**
|
||||
* the inner loop of this program
|
||||
* The inner loop of this operation.
|
||||
*/
|
||||
void executePixelSampled(float output[4], float x, float y, PixelSampler sampler);
|
||||
|
||||
|
|
|
@ -42,7 +42,7 @@ class ColorSpillOperation : public NodeOperation {
|
|||
ColorSpillOperation();
|
||||
|
||||
/**
|
||||
* the inner loop of this program
|
||||
* The inner loop of this operation.
|
||||
*/
|
||||
void executePixelSampled(float output[4], float x, float y, PixelSampler sampler);
|
||||
|
||||
|
|
|
@ -53,7 +53,7 @@ class ConvertColorProfileOperation : public NodeOperation {
|
|||
ConvertColorProfileOperation();
|
||||
|
||||
/**
|
||||
* the inner loop of this program
|
||||
* The inner loop of this operation.
|
||||
*/
|
||||
void executePixelSampled(float output[4], float x, float y, PixelSampler sampler);
|
||||
|
||||
|
|
|
@ -49,7 +49,7 @@ class ConvertDepthToRadiusOperation : public NodeOperation {
|
|||
ConvertDepthToRadiusOperation();
|
||||
|
||||
/**
|
||||
* the inner loop of this program
|
||||
* The inner loop of this operation.
|
||||
*/
|
||||
void executePixelSampled(float output[4], float x, float y, PixelSampler sampler);
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@ class DifferenceMatteOperation : public NodeOperation {
|
|||
DifferenceMatteOperation();
|
||||
|
||||
/**
|
||||
* the inner loop of this program
|
||||
* The inner loop of this operation.
|
||||
*/
|
||||
void executePixelSampled(float output[4], float x, float y, PixelSampler sampler);
|
||||
|
||||
|
|
|
@ -41,7 +41,7 @@ class DilateErodeThresholdOperation : public NodeOperation {
|
|||
DilateErodeThresholdOperation();
|
||||
|
||||
/**
|
||||
* the inner loop of this program
|
||||
* The inner loop of this operation.
|
||||
*/
|
||||
void executePixel(float output[4], int x, int y, void *data);
|
||||
|
||||
|
@ -88,7 +88,7 @@ class DilateDistanceOperation : public NodeOperation {
|
|||
DilateDistanceOperation();
|
||||
|
||||
/**
|
||||
* the inner loop of this program
|
||||
* The inner loop of this operation.
|
||||
*/
|
||||
void executePixel(float output[4], int x, int y, void *data);
|
||||
|
||||
|
@ -123,7 +123,7 @@ class ErodeDistanceOperation : public DilateDistanceOperation {
|
|||
ErodeDistanceOperation();
|
||||
|
||||
/**
|
||||
* the inner loop of this program
|
||||
* The inner loop of this operation.
|
||||
*/
|
||||
void executePixel(float output[4], int x, int y, void *data);
|
||||
|
||||
|
@ -148,7 +148,7 @@ class DilateStepOperation : public NodeOperation {
|
|||
DilateStepOperation();
|
||||
|
||||
/**
|
||||
* the inner loop of this program
|
||||
* The inner loop of this operation.
|
||||
*/
|
||||
void executePixel(float output[4], int x, int y, void *data);
|
||||
|
||||
|
|
|
@ -34,7 +34,7 @@ class DirectionalBlurOperation : public NodeOperation, public QualityStepHelper
|
|||
DirectionalBlurOperation();
|
||||
|
||||
/**
|
||||
* the inner loop of this program
|
||||
* The inner loop of this operation.
|
||||
*/
|
||||
void executePixel(float output[4], int x, int y, void *data);
|
||||
|
||||
|
|
|
@ -44,7 +44,7 @@ class DisplaceOperation : public NodeOperation {
|
|||
rcti *output);
|
||||
|
||||
/**
|
||||
* the inner loop of this program
|
||||
* The inner loop of this operation.
|
||||
*/
|
||||
void executePixelSampled(float output[4], float x, float y, PixelSampler sampler);
|
||||
|
||||
|
|
|
@ -44,7 +44,7 @@ class DisplaceSimpleOperation : public NodeOperation {
|
|||
rcti *output);
|
||||
|
||||
/**
|
||||
* the inner loop of this program
|
||||
* The inner loop of this operation.
|
||||
*/
|
||||
void executePixelSampled(float output[4], float x, float y, PixelSampler sampler);
|
||||
|
||||
|
|
|
@ -65,8 +65,8 @@ void DistanceRGBMatteOperation::executePixelSampled(float output[4],
|
|||
|
||||
distance = this->calculateDistance(inKey, inImage);
|
||||
|
||||
/* store matte(alpha) value in [0] to go with
|
||||
* COM_SetAlphaOperation and the Value output
|
||||
/* Store matte(alpha) value in [0] to go with
|
||||
* COM_SetAlphaMultiplyOperation and the Value output.
|
||||
*/
|
||||
|
||||
/*make 100% transparent */
|
||||
|
|
|
@ -39,7 +39,7 @@ class DistanceRGBMatteOperation : public NodeOperation {
|
|||
DistanceRGBMatteOperation();
|
||||
|
||||
/**
|
||||
* the inner loop of this program
|
||||
* The inner loop of this operation.
|
||||
*/
|
||||
void executePixelSampled(float output[4], float x, float y, PixelSampler sampler);
|
||||
|
||||
|
|
|
@ -36,7 +36,7 @@ class DoubleEdgeMaskOperation : public NodeOperation {
|
|||
|
||||
void doDoubleEdgeMask(float *imask, float *omask, float *res);
|
||||
/**
|
||||
* the inner loop of this program
|
||||
* The inner loop of this operation.
|
||||
*/
|
||||
void executePixel(float output[4], int x, int y, void *data);
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ class EllipseMaskOperation : public NodeOperation {
|
|||
EllipseMaskOperation();
|
||||
|
||||
/**
|
||||
* the inner loop of this program
|
||||
* The inner loop of this operation.
|
||||
*/
|
||||
void executePixelSampled(float output[4], float x, float y, PixelSampler sampler);
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue