summaryrefslogtreecommitdiff
path: root/scene/3d/node_3d.cpp
AgeCommit message (Collapse)Author
2022-09-02Rename `or_lesser` range property hint to `or_less`Hugo Locurcio
"less" should be used for quantity, rather than "lesser". Existing scripts that use `or_lesser` in `_get_property_list()` will need to be updated to account for this change.
2022-09-02Add `is_zero_approx` methods to `Vector2`, `3`, and `4`Jonathan Nicholl
2022-08-24Merge pull request #64691 from TokageItLab/Quaternion-editorRémi Verschelde
2022-08-24Implement Quaternion EditorSilc Renew
2022-08-23Replace Array return types with TypedArray 2kobewi
2022-08-22Make `_validate_property` a multilevel methodYuri Sizov
2022-08-18Make `property_*_revert` methods multilevel and expose them for scriptingYuri Sizov
2022-07-16rename translate(d) to translate(d)_local in Transform 2D/3DFabian Keller
2022-07-01Add global_position and global_rotation to Node3Dfoxydevloper
2022-06-27Merge pull request #62396 from reduz/fix-local-vector-transitions-in-node3dRémi Verschelde
Fix VECTOR/LOCAL transitions in Node3D
2022-06-27Fix VECTOR/LOCAL transitions in Node3Dreduz
Fixes #62225, supersedes #62227
2022-06-25Merge pull request #62372 from MarcusElg/nosliderrenameRémi Verschelde
Rename @export_range's noslider option to no_slider
2022-06-25Revert "Refactored `rotation_mode` in Node3D"Juan Linietsky
2022-06-25fix set_position()Silc Renew
2022-06-24Rename export_range's noslider option to no_sliderMarcus Elg
2022-06-23fix method when rotation_mode changedSilc Renew
2022-06-14Add vector value linkingkobewi
Co-authored-by: redlamp <244062+redlamp@users.noreply.github.com>
2022-05-19Use suffixes for units in nodes and resourcesAaron Franke
2022-05-18Defer group calls in Node3Dkobewi
2022-04-13Ensure gizmos are added to newly created Node3D-derivatives and silence ↵SaracenOne
error for attempting to create gizmos twice
2022-02-15Use `switch` consistently in `_notification` (`scene` folder)Rémi Verschelde
2022-01-29simplify formatting scripts, add a clang-tidy script, and run clang-tidyNathan Franke
2022-01-25Node2D/Node3D: Fix Undraggable Position Property.Anilforextra
2022-01-06Fix incorrect default transform values on foreign 3D nodesSaracenOne
2022-01-05Merge pull request #53684 from TokageItLab/orthogonal-modeRémi Verschelde
2022-01-04Minor code improvements in Node3D. Refactor Node3D::show/hide/set_visible to ↵Stijn
a shared implementation.
2022-01-03Update copyright statements to 2022Rémi Verschelde
Happy new year to the wonderful Godot community!
2021-12-25Fix some gizmo behavior to make more consistentSilc 'Tokage' Renew
2021-11-23Rename `remove()` to `remove_at()` when removing by indexLightning_A
2021-11-03Rename `PROPERTY_USAGE_NOEDITOR` to `PROPERTY_USAGE_NO_EDITOR`Hugo Locurcio
This is consistent with other constants that include `NO`, such as `PROPERTY_HINT_COLOR_NO_ALPHA`.
2021-10-28clang-format: Enable `BreakBeforeTernaryOperators`Rémi Verschelde
clang-format keeps breaking the way it handles break *after* ternary operators, so I give up and go with the only style they seem to actually test.
2021-10-28clang-format: Various fixes to comments alignment from `clang-format` 13Rémi Verschelde
All reviewed manually and occasionally rewritten to avoid bad auto formatting.
2021-10-28clang-format: Disable alignment of operands, too unreliableRémi Verschelde
Sets `AlignOperands` to `DontAlign`. `clang-format` developers seem to mostly care about space-based indentation and every other version of clang-format breaks the bad mismatch of tabs and spaces that it seems to use for operand alignment. So it's better without, so that it respects our two-tabs `ContinuationIndentWidth`.
2021-10-25Refactored Node3D rotation modesreduz
* Made the Basis euler orders indexed via enum. * Node3D has a new rotation_order property to choose Euler rotation order. * Node3D has also a rotation_mode property to choose between Euler, Quaternion and Basis Exposing these modes as well as the order makes Godot a lot friendlier for animators, which can choose the best way to interpolate rotations. The new *Basis* mode makes the (exposed) transform property obsolete, so it was removed (can still be accessed by code of course).
2021-10-21Remove unimplemented methodsMarcel Admiraal
2021-10-16Implement Animation Blend Shape Tracksreduz
* New track type BLEND_SHAPE * Blend shapes are imported via this new track type * Processing is more optimized (no longer relies on variants) * Modified the Blend Shape API in MeshInstance3D to use indices rather than StringNames (more optimizes) * Promo: Fixed a small bug in gizmo updating in Node3D that affected performance Dedicated BlendShape tracks are required for both optimization and eventually implementing them in animation compression.
2021-10-07Implemented SkeletonEditorGizmoSilc Renew
Co-authored-by: Lyuma <xn.lyuma@gmail.com>
2021-08-29Revert "Display a matrix for Node2D and don't display a duplicate origin"Juan Linietsky
2021-08-29Display a matrix for Node2D and don't display a duplicate originAaron Franke
2021-08-13Fix some unnecessary includesAaron Franke
2021-08-10Merge pull request #50682 from aaronfranke/basis-looking-atRémi Verschelde
Move code for looking_at to Basis
2021-08-03Use real_t in 3D nodesAaron Franke
2021-08-01Move code for looking_at to BasisAaron Franke
2021-07-23Use C++ iterators for Lists in many situationsAaron Franke
2021-07-23Node3D gizmo improvementsjfons
* Clean-up of node_3d_editor_plugin.{h,cpp}: removed unused code, fixed some bugs. * Moved node_3d_editor_gizmos.{h,cpp} to editor/plugins. * Added support for multiple gizmos per node. This means custom gizmos will no longer override the built-in ones and that multiple gizmos can be used in more complex nodes. * Added support for handle IDs. When adding handles to a gizmo, an ID can be specified for each one, making it easier to work with gizmos that have a variable number of handles. * Added support for subgizmos, selectable elements that can be transformed without needing a node of their own. By overriding _subgizmo_intersect_frustum() and/or _subgizmo_intersect_ray() gizmos can define which subgizmos should be selected on a region or click selection. Subgizmo transformations are applied using get/set/commit virtual methods, similar to how handles work.
2021-06-30Fix editor suffixes and degrees conversionreduz
* Functions to convert to/from degrees are all gone. Conversion is done by the editor. * Use PROPERTY_HINT_ANGLE instead of PROPERTY_HINT_RANGE to edit radian angles in degrees. * Added possibility to add suffixes to range properties, use "min,max[,step][,suffix:<something>]" example "0,100,1,suffix:m" * In general, can add suffixes for EditorSpinSlider Not covered by this PR, will have to be addressed by future ones: * Ability to switch radians/degrees in the inspector for angle properties (if actually wanted). * Animations previously made will most likely break, need to add a way to make old ones compatible. * Only added a "px" suffix to 2D position and a "m" one to 3D position, someone needs to go through the rest of the engine and add all remaining suffixes. * Likely also need to track down usage of EditorSpinSlider outside properties to add suffixes to it too.
2021-06-17Add PROPERTY_USAGE_NONE and use itAaron Franke
2021-06-14Merge pull request #49458 from JFonS/fix_unwrap_xformRémi Verschelde
Rename get_parent_spatial() to get_parent_node_3d()
2021-06-14Rename get_parent_spatial() to get_parent_node3d()jfons
Renames get_parent_spatial() to get_parent_node3d() and changes its implementation. Before it was not returning a correct pointer if the node wasn't added to a SceneTree. Now it uses the same implementation as CanvasItem, which will be correct even for nodes outside a SceneTree.
2021-06-14Implement visibility range and dependencies.jfons
This commit adds the following properties to GeometryInstance3D: `visibility_range_begin`, `visibility_range_begin_margin`, `visibility_range_end`, `visibility_range_end_margin`. Together they define a range in which the GeometryInstance3D will be visible from the camera, taking hysteresis into account for state changes. A begin or end value of 0 will be ignored, so the visibility range can be open-ended in both directions. This commit also adds the `visibility_parent` property to 'Node3D'. Which defines the visibility parents of the node and its subtree (until another parent is defined). Visual instances with a visibility parent will only be visible when the parent, and all of its ancestors recursively, are hidden because they are closer to the camera than their respective `visibility_range_begin` thresholds. Combining visibility ranges and visibility parents users can set-up a quick HLOD system that shows high detail meshes when close (i.e buildings, trees) and merged low detail meshes for far away groups (i.e. cities, woods).