summaryrefslogtreecommitdiffstats
path: root/scene/3d/node_3d.h
Commit message (Collapse)AuthorAgeFilesLines
* Fixed Timestep Interpolation (3D)Ricardo Buring2024-07-071-11/+34
| | | | | | | Adds 3D fixed timestep interpolation to the rendering server. This does not yet include support for multimeshes or particles. Co-authored-by: lawnjelly <lawnjelly@gmail.com>
* Make Advanced Import lights more like the mesh and material editorsJeronimo Schreyer2024-04-161-0/+1
| | | | Co-authored-by: Aaron Franke <arnfranke@yahoo.com>
* Move 3D-only resources to their own folderAaron Franke2024-02-261-1/+1
|
* Add `global_basis` property to `Node3D`Mikael Hermansson2023-08-111-0/+2
|
* Fix non functional Node3D op_level propertyChristian Ringshofer2023-06-181-1/+0
| | | | Fixes #50813.
* Add the ability to look-at in model-space.Juan Linietsky2023-05-241-2/+2
| | | | | | | | | | This is a much simpler attempt to solve the same problem as #76060, but without breaking any compatibility. * Adds a description of what model space is in the Vector3 enums (MODEL_* constants). This has the proper axes laid out for imported 3D assets. * Adds the option to `look_at` using model_space, which uses Vector3.MODEL_FRONT as forward vector. The attempt of this PR is to still break the assumption that there is a single direction of forward (which is not the case in Godot) and make it easier to understand where 3D models are facing, as well as orienting them via look_at.
* Optimize threading-sensitive node data for single-threaded processingPedro J. Estébanez2023-05-171-1/+7
|
* Make more base nodes thread safeJuan Linietsky2023-05-151-2/+3
| | | | Ongoing work to make more of the base nodes thread safe.
* Merge pull request #36301 from KoBeWi/daddy_nodeRémi Verschelde2023-01-071-0/+1
|\ | | | | | | Add reparent methods to Node
| * Add methods for node reparentingTomasz Chabora2022-08-161-0/+1
| |
* | One Copyright Update to rule them allRémi Verschelde2023-01-051-29/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As many open source projects have started doing it, we're removing the current year from the copyright notice, so that we don't need to bump it every year. It seems like only the first year of publication is technically relevant for copyright notices, and even that seems to be something that many companies stopped listing altogether (in a version controlled codebase, the commits are a much better source of date of publication than a hardcoded copyright statement). We also now list Godot Engine contributors first as we're collectively the current maintainers of the project, and we clarify that the "exclusive" copyright of the co-founders covers the timespan before opensourcing (their further contributions are included as part of Godot Engine contributors). Also fixed "cf." Frenchism - it's meant as "refer to / see".
* | Restore 'rotation_degrees' properties.Juan Linietsky2022-12-191-0/+4
| | | | | | | | | | | | | | | | | | By popular demand, restoring the helper properties to rotate objects in degrees. Affected are local and global rotations for: * Node2D * Node3D * Control
* | Unify Node3D RotationOrder with global EulerOrderAaron Franke2022-11-021-12/+2
| |
* | Move EulerOrder enum to math_defs.h and global scopeAaron Franke2022-11-021-1/+1
| |
* | Merge pull request #67249 from wuyingnan/fix_quaternion_typoMax Hilbrunner2022-10-191-2/+2
|\ \ | | | | | | Fix a comment typo in node_3d.h
| * | fix typoYingnan Wu2022-10-111-2/+2
| | |
* | | Comment not to remove `data` structs in some NodesMicky2022-10-131-0/+1
|/ /
* | Replace Array return types with TypedArray 2kobewi2022-08-231-1/+1
| |
* | Make `_validate_property` a multilevel methodYuri Sizov2022-08-221-1/+1
| |
* | Make `property_*_revert` methods multilevel and expose them for scriptingYuri Sizov2022-08-181-2/+2
|/
* Add global_position and global_rotation to Node3Dfoxydevloper2022-07-011-0/+6
|
* Fix VECTOR/LOCAL transitions in Node3Dreduz2022-06-271-5/+25
| | | | Fixes #62225, supersedes #62227
* Revert "Refactored `rotation_mode` in Node3D"Juan Linietsky2022-06-251-1/+0
|
* fix method when rotation_mode changedSilc Renew2022-06-231-0/+1
|
* Object: Remove unused category boilerplateRémi Verschelde2022-03-261-1/+0
| | | | | | | | | We might want to re-add something like this if/when we find a good use case for it and do the effort to categorize all objects in the API properly. Until then, it's better to remove that boilerplate since it's not needed. Closes #18711.
* Improve compilation speed (forward declarations/includes cleanup)Hendrik Brucker2022-02-121-0/+1
|
* Fix incorrect default transform values on foreign 3D nodesSaracenOne2022-01-061-0/+3
|
* Minor code improvements in Node3D. Refactor Node3D::show/hide/set_visible to ↵Stijn2022-01-041-9/+9
| | | | a shared implementation.
* Update copyright statements to 2022Rémi Verschelde2022-01-031-2/+2
| | | | Happy new year to the wonderful Godot community!
* Refactored Node3D rotation modesreduz2021-10-251-0/+35
| | | | | | | | | * 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).
* Implemented SkeletonEditorGizmoSilc Renew2021-10-071-0/+4
| | | | Co-authored-by: Lyuma <xn.lyuma@gmail.com>
* Revert "Display a matrix for Node2D and don't display a duplicate origin"Juan Linietsky2021-08-291-2/+0
|
* Display a matrix for Node2D and don't display a duplicate originAaron Franke2021-08-291-0/+2
|
* Fix some unnecessary includesAaron Franke2021-08-131-1/+0
|
* Use real_t in 3D nodesAaron Franke2021-08-031-6/+6
|
* Node3D gizmo improvementsjfons2021-07-231-8/+12
| | | | | | | | * 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.
* Fix editor suffixes and degrees conversionreduz2021-06-301-2/+0
| | | | | | | | | | | | | * 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.
* Merge pull request #49458 from JFonS/fix_unwrap_xformRémi Verschelde2021-06-141-1/+1
|\ | | | | Rename get_parent_spatial() to get_parent_node_3d()
| * Rename get_parent_spatial() to get_parent_node3d()jfons2021-06-141-1/+1
| | | | | | | | | | | | | | 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.
* | Implement visibility range and dependencies.jfons2021-06-141-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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).
* | Rename Reference to RefCountedPedro J. Estébanez2021-06-111-2/+2
|/
* Rename Node3D's property translation to positionMarcel Admiraal2021-06-041-2/+2
|
* Rename Transform to Transform3D in coreAaron Franke2021-06-031-9/+9
|
* Use Vector3.UP as a default value for look_at's up vectorAaron Franke2021-02-161-2/+2
|
* Update copyright statements to 2021Rémi Verschelde2021-01-011-2/+2
| | | | | | | | | | | | | | Happy new year to the wonderful Godot community! 2020 has been a tough year for most of us personally, but a good year for Godot development nonetheless with a huge amount of work done towards Godot 4.0 and great improvements backported to the long-lived 3.2 branch. We've had close to 400 contributors to engine code this year, authoring near 7,000 commit! (And that's only for the `master` branch and for the engine code, there's a lot more when counting docs, demos and other first-party repos.) Here's to a great year 2021 for all Godot users 🎆
* Move initialization of some classes to headersTomasz Chabora2020-12-111-17/+16
|
* Remove empty lines around braces with the formatting scriptAaron Franke2020-11-161-1/+0
|
* Renamed toplevel to be top_levelDuroxxigar2020-10-011-4/+4
|
* Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocksRémi Verschelde2020-05-141-3/+0
| | | | | | | | | | | | | | Which means that reduz' beloved style which we all became used to will now be changed automatically to remove the first empty line. This makes us lean closer to 1TBS (the one true brace style) instead of hybridating it with some Allman-inspired spacing. There's still the case of braces around single-statement blocks that needs to be addressed (but clang-format can't help with that, but clang-tidy may if we agree about it). Part of #33027.
* Change non-existent World to World3Dqarmin2020-04-181-1/+1
|