mirror of
https://github.com/godotengine/godot.git
synced 2024-11-21 19:42:43 +00:00
clang-format: Enable BreakBeforeTernaryOperators
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.
This commit is contained in:
parent
3a6be64c12
commit
0ae65472e7
@ -56,7 +56,7 @@ AllowShortFunctionsOnASingleLine: Inline
|
|||||||
# BreakBeforeBraces: Attach
|
# BreakBeforeBraces: Attach
|
||||||
# BreakBeforeInheritanceComma: false
|
# BreakBeforeInheritanceComma: false
|
||||||
# BreakInheritanceList: BeforeColon
|
# BreakInheritanceList: BeforeColon
|
||||||
BreakBeforeTernaryOperators: false
|
# BreakBeforeTernaryOperators: true
|
||||||
# BreakConstructorInitializersBeforeComma: false
|
# BreakConstructorInitializersBeforeComma: false
|
||||||
BreakConstructorInitializers: AfterColon
|
BreakConstructorInitializers: AfterColon
|
||||||
# BreakStringLiterals: true
|
# BreakStringLiterals: true
|
||||||
|
@ -701,9 +701,9 @@ Quaternion Basis::get_quaternion() const {
|
|||||||
temp[1] = ((m.elements[0][2] - m.elements[2][0]) * s);
|
temp[1] = ((m.elements[0][2] - m.elements[2][0]) * s);
|
||||||
temp[2] = ((m.elements[1][0] - m.elements[0][1]) * s);
|
temp[2] = ((m.elements[1][0] - m.elements[0][1]) * s);
|
||||||
} else {
|
} else {
|
||||||
int i = m.elements[0][0] < m.elements[1][1] ?
|
int i = m.elements[0][0] < m.elements[1][1]
|
||||||
(m.elements[1][1] < m.elements[2][2] ? 2 : 1) :
|
? (m.elements[1][1] < m.elements[2][2] ? 2 : 1)
|
||||||
(m.elements[0][0] < m.elements[2][2] ? 2 : 0);
|
: (m.elements[0][0] < m.elements[2][2] ? 2 : 0);
|
||||||
int j = (i + 1) % 3;
|
int j = (i + 1) % 3;
|
||||||
int k = (i + 2) % 3;
|
int k = (i + 2) % 3;
|
||||||
|
|
||||||
|
@ -265,8 +265,7 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
int32_t get_sign() const {
|
int32_t get_sign() const {
|
||||||
return ((int64_t)high < 0) ? -1 : (high || low) ? 1 :
|
return ((int64_t)high < 0) ? -1 : ((high || low) ? 1 : 0);
|
||||||
0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool operator<(const Int128 &b) const {
|
bool operator<(const Int128 &b) const {
|
||||||
@ -790,8 +789,7 @@ int32_t ConvexHullInternal::Rational128::compare(const Rational128 &b) const {
|
|||||||
int32_t ConvexHullInternal::Rational128::compare(int64_t b) const {
|
int32_t ConvexHullInternal::Rational128::compare(int64_t b) const {
|
||||||
if (is_int_64) {
|
if (is_int_64) {
|
||||||
int64_t a = sign * (int64_t)numerator.low;
|
int64_t a = sign * (int64_t)numerator.low;
|
||||||
return (a > b) ? 1 : (a < b) ? -1 :
|
return (a > b) ? 1 : ((a < b) ? -1 : 0);
|
||||||
0;
|
|
||||||
}
|
}
|
||||||
if (b > 0) {
|
if (b > 0) {
|
||||||
if (sign <= 0) {
|
if (sign <= 0) {
|
||||||
@ -1443,8 +1441,7 @@ void ConvexHullInternal::merge(IntermediateHull &p_h0, IntermediateHull &p_h1) {
|
|||||||
c1->edges = e;
|
c1->edges = e;
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
int32_t cmp = !min0 ? 1 : !min1 ? -1 :
|
int32_t cmp = !min0 ? 1 : (!min1 ? -1 : min_cot0.compare(min_cot1));
|
||||||
min_cot0.compare(min_cot1);
|
|
||||||
#ifdef DEBUG_CONVEX_HULL
|
#ifdef DEBUG_CONVEX_HULL
|
||||||
printf(" -> Result %d\n", cmp);
|
printf(" -> Result %d\n", cmp);
|
||||||
#endif
|
#endif
|
||||||
|
@ -4964,9 +4964,9 @@ void EditorNode::_scene_tab_closed(int p_tab, int option) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool unsaved = (p_tab == editor_data.get_edited_scene()) ?
|
bool unsaved = (p_tab == editor_data.get_edited_scene())
|
||||||
saved_version != editor_data.get_undo_redo().get_version() :
|
? saved_version != editor_data.get_undo_redo().get_version()
|
||||||
editor_data.get_scene_version(p_tab) != 0;
|
: editor_data.get_scene_version(p_tab) != 0;
|
||||||
if (unsaved) {
|
if (unsaved) {
|
||||||
save_confirmation->get_ok_button()->set_text(TTR("Save & Close"));
|
save_confirmation->get_ok_button()->set_text(TTR("Save & Close"));
|
||||||
save_confirmation->set_text(vformat(TTR("Save changes to '%s' before closing?"), scene->get_scene_file_path() != "" ? scene->get_scene_file_path() : "unsaved scene"));
|
save_confirmation->set_text(vformat(TTR("Save changes to '%s' before closing?"), scene->get_scene_file_path() != "" ? scene->get_scene_file_path() : "unsaved scene"));
|
||||||
|
@ -1650,8 +1650,7 @@ void ColladaImport::create_animation(int p_clip, bool p_import_value_tracks) {
|
|||||||
|
|
||||||
Vector3 s = xform.basis.get_scale();
|
Vector3 s = xform.basis.get_scale();
|
||||||
bool singular_matrix = Math::is_zero_approx(s.x) || Math::is_zero_approx(s.y) || Math::is_zero_approx(s.z);
|
bool singular_matrix = Math::is_zero_approx(s.x) || Math::is_zero_approx(s.y) || Math::is_zero_approx(s.z);
|
||||||
Quaternion q = singular_matrix ? Quaternion() :
|
Quaternion q = singular_matrix ? Quaternion() : xform.basis.get_rotation_quaternion();
|
||||||
xform.basis.get_rotation_quaternion();
|
|
||||||
Vector3 l = xform.origin;
|
Vector3 l = xform.origin;
|
||||||
|
|
||||||
if (position_idx >= 0) {
|
if (position_idx >= 0) {
|
||||||
|
@ -2983,16 +2983,16 @@ void CanvasItemEditor::_draw_ruler_tool() {
|
|||||||
|
|
||||||
const Vector2 end_to_begin = (end - begin);
|
const Vector2 end_to_begin = (end - begin);
|
||||||
|
|
||||||
real_t arc_1_start_angle = end_to_begin.x < 0 ?
|
real_t arc_1_start_angle = end_to_begin.x < 0
|
||||||
(end_to_begin.y < 0 ? 3.0 * Math_PI / 2.0 - vertical_angle_rad : Math_PI / 2.0) :
|
? (end_to_begin.y < 0 ? 3.0 * Math_PI / 2.0 - vertical_angle_rad : Math_PI / 2.0)
|
||||||
(end_to_begin.y < 0 ? 3.0 * Math_PI / 2.0 : Math_PI / 2.0 - vertical_angle_rad);
|
: (end_to_begin.y < 0 ? 3.0 * Math_PI / 2.0 : Math_PI / 2.0 - vertical_angle_rad);
|
||||||
real_t arc_1_end_angle = arc_1_start_angle + vertical_angle_rad;
|
real_t arc_1_end_angle = arc_1_start_angle + vertical_angle_rad;
|
||||||
// Constrain arc to triangle height & max size
|
// Constrain arc to triangle height & max size
|
||||||
real_t arc_1_radius = MIN(MIN(arc_radius_max_length_percent * ruler_length, ABS(end_to_begin.y)), arc_max_radius);
|
real_t arc_1_radius = MIN(MIN(arc_radius_max_length_percent * ruler_length, ABS(end_to_begin.y)), arc_max_radius);
|
||||||
|
|
||||||
real_t arc_2_start_angle = end_to_begin.x < 0 ?
|
real_t arc_2_start_angle = end_to_begin.x < 0
|
||||||
(end_to_begin.y < 0 ? 0.0 : -horizontal_angle_rad) :
|
? (end_to_begin.y < 0 ? 0.0 : -horizontal_angle_rad)
|
||||||
(end_to_begin.y < 0 ? Math_PI - horizontal_angle_rad : Math_PI);
|
: (end_to_begin.y < 0 ? Math_PI - horizontal_angle_rad : Math_PI);
|
||||||
real_t arc_2_end_angle = arc_2_start_angle + horizontal_angle_rad;
|
real_t arc_2_end_angle = arc_2_start_angle + horizontal_angle_rad;
|
||||||
// Constrain arc to triangle width & max size
|
// Constrain arc to triangle width & max size
|
||||||
real_t arc_2_radius = MIN(MIN(arc_radius_max_length_percent * ruler_length, ABS(end_to_begin.x)), arc_max_radius);
|
real_t arc_2_radius = MIN(MIN(arc_radius_max_length_percent * ruler_length, ABS(end_to_begin.x)), arc_max_radius);
|
||||||
|
@ -354,9 +354,9 @@ void CurveEditor::open_context_menu(Vector2 pos) {
|
|||||||
|
|
||||||
_context_menu->add_check_item(TTR("Linear"), CONTEXT_LINEAR);
|
_context_menu->add_check_item(TTR("Linear"), CONTEXT_LINEAR);
|
||||||
|
|
||||||
bool is_linear = _selected_tangent == TANGENT_LEFT ?
|
bool is_linear = _selected_tangent == TANGENT_LEFT
|
||||||
_curve_ref->get_point_left_mode(_selected_point) == Curve::TANGENT_LINEAR :
|
? _curve_ref->get_point_left_mode(_selected_point) == Curve::TANGENT_LINEAR
|
||||||
_curve_ref->get_point_right_mode(_selected_point) == Curve::TANGENT_LINEAR;
|
: _curve_ref->get_point_right_mode(_selected_point) == Curve::TANGENT_LINEAR;
|
||||||
|
|
||||||
_context_menu->set_item_checked(_context_menu->get_item_index(CONTEXT_LINEAR), is_linear);
|
_context_menu->set_item_checked(_context_menu->get_item_index(CONTEXT_LINEAR), is_linear);
|
||||||
|
|
||||||
|
@ -2498,8 +2498,7 @@ Error GLTFDocument::_parse_meshes(Ref<GLTFState> state) {
|
|||||||
ERR_FAIL_COND_V(!d.has("primitives"), ERR_PARSE_ERROR);
|
ERR_FAIL_COND_V(!d.has("primitives"), ERR_PARSE_ERROR);
|
||||||
|
|
||||||
Array primitives = d["primitives"];
|
Array primitives = d["primitives"];
|
||||||
const Dictionary &extras = d.has("extras") ? (Dictionary)d["extras"] :
|
const Dictionary &extras = d.has("extras") ? (Dictionary)d["extras"] : Dictionary();
|
||||||
Dictionary();
|
|
||||||
Ref<ImporterMesh> import_mesh;
|
Ref<ImporterMesh> import_mesh;
|
||||||
import_mesh.instantiate();
|
import_mesh.instantiate();
|
||||||
String mesh_name = "mesh";
|
String mesh_name = "mesh";
|
||||||
|
@ -3528,10 +3528,10 @@ Error CSharpScript::load_source_code(const String &p_path) {
|
|||||||
Error ferr = read_all_file_utf8(p_path, source);
|
Error ferr = read_all_file_utf8(p_path, source);
|
||||||
|
|
||||||
ERR_FAIL_COND_V_MSG(ferr != OK, ferr,
|
ERR_FAIL_COND_V_MSG(ferr != OK, ferr,
|
||||||
ferr == ERR_INVALID_DATA ?
|
ferr == ERR_INVALID_DATA
|
||||||
"Script '" + p_path + "' contains invalid unicode (UTF-8), so it was not loaded."
|
? "Script '" + p_path + "' contains invalid unicode (UTF-8), so it was not loaded."
|
||||||
" Please ensure that scripts are saved in valid UTF-8 unicode." :
|
" Please ensure that scripts are saved in valid UTF-8 unicode."
|
||||||
"Failed to read file: '" + p_path + "'.");
|
: "Failed to read file: '" + p_path + "'.");
|
||||||
|
|
||||||
#ifdef TOOLS_ENABLED
|
#ifdef TOOLS_ENABLED
|
||||||
source_changed_cache = true;
|
source_changed_cache = true;
|
||||||
|
@ -365,8 +365,7 @@ String BindingsGenerator::bbcode_to_xml(const String &p_bbcode, const TypeInterf
|
|||||||
xml_output.append(link_target);
|
xml_output.append(link_target);
|
||||||
xml_output.append("</c>");
|
xml_output.append("</c>");
|
||||||
} else if (link_tag == "enum") {
|
} else if (link_tag == "enum") {
|
||||||
StringName search_cname = !target_itype ? target_cname :
|
StringName search_cname = !target_itype ? target_cname : StringName(target_itype->name + "." + (String)target_cname);
|
||||||
StringName(target_itype->name + "." + (String)target_cname);
|
|
||||||
|
|
||||||
const Map<StringName, TypeInterface>::Element *enum_match = enum_types.find(search_cname);
|
const Map<StringName, TypeInterface>::Element *enum_match = enum_types.find(search_cname);
|
||||||
|
|
||||||
|
@ -592,9 +592,9 @@ bool GDMono::load_assembly_from(const String &p_name, const String &p_path, GDMo
|
|||||||
ApiAssemblyInfo::Version ApiAssemblyInfo::Version::get_from_loaded_assembly(GDMonoAssembly *p_api_assembly, ApiAssemblyInfo::Type p_api_type) {
|
ApiAssemblyInfo::Version ApiAssemblyInfo::Version::get_from_loaded_assembly(GDMonoAssembly *p_api_assembly, ApiAssemblyInfo::Type p_api_type) {
|
||||||
ApiAssemblyInfo::Version api_assembly_version;
|
ApiAssemblyInfo::Version api_assembly_version;
|
||||||
|
|
||||||
const char *nativecalls_name = p_api_type == ApiAssemblyInfo::API_CORE ?
|
const char *nativecalls_name = p_api_type == ApiAssemblyInfo::API_CORE
|
||||||
BINDINGS_CLASS_NATIVECALLS :
|
? BINDINGS_CLASS_NATIVECALLS
|
||||||
BINDINGS_CLASS_NATIVECALLS_EDITOR;
|
: BINDINGS_CLASS_NATIVECALLS_EDITOR;
|
||||||
|
|
||||||
GDMonoClass *nativecalls_klass = p_api_assembly->get_class(BINDINGS_NAMESPACE, nativecalls_name);
|
GDMonoClass *nativecalls_klass = p_api_assembly->get_class(BINDINGS_NAMESPACE, nativecalls_name);
|
||||||
|
|
||||||
@ -754,14 +754,10 @@ bool GDMono::_temp_domain_load_are_assemblies_out_of_sync(const String &p_config
|
|||||||
}
|
}
|
||||||
|
|
||||||
String GDMono::update_api_assemblies_from_prebuilt(const String &p_config, const bool *p_core_api_out_of_sync, const bool *p_editor_api_out_of_sync) {
|
String GDMono::update_api_assemblies_from_prebuilt(const String &p_config, const bool *p_core_api_out_of_sync, const bool *p_editor_api_out_of_sync) {
|
||||||
#define FAIL_REASON(m_out_of_sync, m_prebuilt_exists) \
|
#define FAIL_REASON(m_out_of_sync, m_prebuilt_exists) \
|
||||||
( \
|
( \
|
||||||
(m_out_of_sync ? \
|
(m_out_of_sync ? String("The assembly is invalidated ") : String("The assembly was not found ")) + \
|
||||||
String("The assembly is invalidated ") : \
|
(m_prebuilt_exists ? String("and the prebuilt assemblies are missing.") : String("and we failed to copy the prebuilt assemblies.")))
|
||||||
String("The assembly was not found ")) + \
|
|
||||||
(m_prebuilt_exists ? \
|
|
||||||
String("and the prebuilt assemblies are missing.") : \
|
|
||||||
String("and we failed to copy the prebuilt assemblies.")))
|
|
||||||
|
|
||||||
String dst_assemblies_dir = GodotSharpDirs::get_res_assemblies_base_dir().plus_file(p_config);
|
String dst_assemblies_dir = GodotSharpDirs::get_res_assemblies_base_dir().plus_file(p_config);
|
||||||
|
|
||||||
@ -819,9 +815,9 @@ bool GDMono::_load_core_api_assembly(LoadedApiAssembly &r_loaded_api_assembly, c
|
|||||||
// For the editor and the editor player we want to load it from a specific path to make sure we can keep it up to date
|
// For the editor and the editor player we want to load it from a specific path to make sure we can keep it up to date
|
||||||
|
|
||||||
// If running the project manager, load it from the prebuilt API directory
|
// If running the project manager, load it from the prebuilt API directory
|
||||||
String assembly_dir = !Main::is_project_manager() ?
|
String assembly_dir = !Main::is_project_manager()
|
||||||
GodotSharpDirs::get_res_assemblies_base_dir().plus_file(p_config) :
|
? GodotSharpDirs::get_res_assemblies_base_dir().plus_file(p_config)
|
||||||
GodotSharpDirs::get_data_editor_prebuilt_api_dir().plus_file(p_config);
|
: GodotSharpDirs::get_data_editor_prebuilt_api_dir().plus_file(p_config);
|
||||||
|
|
||||||
String assembly_path = assembly_dir.plus_file(CORE_API_ASSEMBLY_NAME ".dll");
|
String assembly_path = assembly_dir.plus_file(CORE_API_ASSEMBLY_NAME ".dll");
|
||||||
|
|
||||||
@ -852,9 +848,9 @@ bool GDMono::_load_editor_api_assembly(LoadedApiAssembly &r_loaded_api_assembly,
|
|||||||
// For the editor and the editor player we want to load it from a specific path to make sure we can keep it up to date
|
// For the editor and the editor player we want to load it from a specific path to make sure we can keep it up to date
|
||||||
|
|
||||||
// If running the project manager, load it from the prebuilt API directory
|
// If running the project manager, load it from the prebuilt API directory
|
||||||
String assembly_dir = !Main::is_project_manager() ?
|
String assembly_dir = !Main::is_project_manager()
|
||||||
GodotSharpDirs::get_res_assemblies_base_dir().plus_file(p_config) :
|
? GodotSharpDirs::get_res_assemblies_base_dir().plus_file(p_config)
|
||||||
GodotSharpDirs::get_data_editor_prebuilt_api_dir().plus_file(p_config);
|
: GodotSharpDirs::get_data_editor_prebuilt_api_dir().plus_file(p_config);
|
||||||
|
|
||||||
String assembly_path = assembly_dir.plus_file(EDITOR_API_ASSEMBLY_NAME ".dll");
|
String assembly_path = assembly_dir.plus_file(EDITOR_API_ASSEMBLY_NAME ".dll");
|
||||||
|
|
||||||
|
@ -1736,12 +1736,12 @@ Callable managed_to_callable(const M_Callable &p_managed_callable) {
|
|||||||
CallableCustom *managed_callable = memnew(ManagedCallable(p_managed_callable.delegate));
|
CallableCustom *managed_callable = memnew(ManagedCallable(p_managed_callable.delegate));
|
||||||
return Callable(managed_callable);
|
return Callable(managed_callable);
|
||||||
} else {
|
} else {
|
||||||
Object *target = p_managed_callable.target ?
|
Object *target = p_managed_callable.target
|
||||||
unbox<Object *>(CACHED_FIELD(GodotObject, ptr)->get_value(p_managed_callable.target)) :
|
? unbox<Object *>(CACHED_FIELD(GodotObject, ptr)->get_value(p_managed_callable.target))
|
||||||
nullptr;
|
: nullptr;
|
||||||
StringName *method_ptr = p_managed_callable.method_string_name ?
|
StringName *method_ptr = p_managed_callable.method_string_name
|
||||||
unbox<StringName *>(CACHED_FIELD(StringName, ptr)->get_value(p_managed_callable.method_string_name)) :
|
? unbox<StringName *>(CACHED_FIELD(StringName, ptr)->get_value(p_managed_callable.method_string_name))
|
||||||
nullptr;
|
: nullptr;
|
||||||
StringName method = method_ptr ? *method_ptr : StringName();
|
StringName method = method_ptr ? *method_ptr : StringName();
|
||||||
return Callable(target, method);
|
return Callable(target, method);
|
||||||
}
|
}
|
||||||
@ -1784,12 +1784,12 @@ M_Callable callable_to_managed(const Callable &p_callable) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Signal managed_to_signal_info(const M_SignalInfo &p_managed_signal) {
|
Signal managed_to_signal_info(const M_SignalInfo &p_managed_signal) {
|
||||||
Object *owner = p_managed_signal.owner ?
|
Object *owner = p_managed_signal.owner
|
||||||
unbox<Object *>(CACHED_FIELD(GodotObject, ptr)->get_value(p_managed_signal.owner)) :
|
? unbox<Object *>(CACHED_FIELD(GodotObject, ptr)->get_value(p_managed_signal.owner))
|
||||||
nullptr;
|
: nullptr;
|
||||||
StringName *name_ptr = p_managed_signal.name_string_name ?
|
StringName *name_ptr = p_managed_signal.name_string_name
|
||||||
unbox<StringName *>(CACHED_FIELD(StringName, ptr)->get_value(p_managed_signal.name_string_name)) :
|
? unbox<StringName *>(CACHED_FIELD(StringName, ptr)->get_value(p_managed_signal.name_string_name))
|
||||||
nullptr;
|
: nullptr;
|
||||||
StringName name = name_ptr ? *name_ptr : StringName();
|
StringName name = name_ptr ? *name_ptr : StringName();
|
||||||
return Signal(owner, name);
|
return Signal(owner, name);
|
||||||
}
|
}
|
||||||
|
@ -210,16 +210,16 @@ public class GodotGLRenderView extends GLSurfaceView implements GodotRenderView
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
if (GLUtils.use_32) {
|
if (GLUtils.use_32) {
|
||||||
setEGLConfigChooser(translucent ?
|
setEGLConfigChooser(translucent
|
||||||
new RegularFallbackConfigChooser(8, 8, 8, 8, 24, stencil,
|
? new RegularFallbackConfigChooser(8, 8, 8, 8, 24, stencil,
|
||||||
new RegularConfigChooser(8, 8, 8, 8, 16, stencil)) :
|
new RegularConfigChooser(8, 8, 8, 8, 16, stencil))
|
||||||
new RegularFallbackConfigChooser(8, 8, 8, 8, 24, stencil,
|
: new RegularFallbackConfigChooser(8, 8, 8, 8, 24, stencil,
|
||||||
new RegularConfigChooser(5, 6, 5, 0, 16, stencil)));
|
new RegularConfigChooser(5, 6, 5, 0, 16, stencil)));
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
setEGLConfigChooser(translucent ?
|
setEGLConfigChooser(translucent
|
||||||
new RegularConfigChooser(8, 8, 8, 8, 16, stencil) :
|
? new RegularConfigChooser(8, 8, 8, 8, 16, stencil)
|
||||||
new RegularConfigChooser(5, 6, 5, 0, 16, stencil));
|
: new RegularConfigChooser(5, 6, 5, 0, 16, stencil));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -288,15 +288,12 @@ void GPUParticlesCollisionSDF::_find_closest_distance(const Vector3 &p_pos, cons
|
|||||||
Vector3 nor = ba.cross(ac);
|
Vector3 nor = ba.cross(ac);
|
||||||
|
|
||||||
inside_d = Math::sqrt(
|
inside_d = Math::sqrt(
|
||||||
(SGN(ba.cross(nor).dot(pa)) +
|
(SGN(ba.cross(nor).dot(pa)) + SGN(cb.cross(nor).dot(pb)) + SGN(ac.cross(nor).dot(pc)) < 2.0)
|
||||||
SGN(cb.cross(nor).dot(pb)) +
|
? MIN(MIN(
|
||||||
SGN(ac.cross(nor).dot(pc)) <
|
Vector3_dot2(ba * CLAMP(ba.dot(pa) / Vector3_dot2(ba), 0.0, 1.0) - pa),
|
||||||
2.0) ?
|
Vector3_dot2(cb * CLAMP(cb.dot(pb) / Vector3_dot2(cb), 0.0, 1.0) - pb)),
|
||||||
MIN(MIN(
|
Vector3_dot2(ac * CLAMP(ac.dot(pc) / Vector3_dot2(ac), 0.0, 1.0) - pc))
|
||||||
Vector3_dot2(ba * CLAMP(ba.dot(pa) / Vector3_dot2(ba), 0.0, 1.0) - pa),
|
: nor.dot(pa) * nor.dot(pa) / Vector3_dot2(nor));
|
||||||
Vector3_dot2(cb * CLAMP(cb.dot(pb) / Vector3_dot2(cb), 0.0, 1.0) - pb)),
|
|
||||||
Vector3_dot2(ac * CLAMP(ac.dot(pc) / Vector3_dot2(ac), 0.0, 1.0) - pc)) :
|
|
||||||
nor.dot(pa) * nor.dot(pa) / Vector3_dot2(nor));
|
|
||||||
|
|
||||||
closest_distance = MIN(closest_distance, inside_d);
|
closest_distance = MIN(closest_distance, inside_d);
|
||||||
}
|
}
|
||||||
|
@ -94,11 +94,6 @@ void Node3D::_propagate_transform_changed(Node3D *p_origin) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
if (data.dirty&DIRTY_GLOBAL)
|
|
||||||
return; //already dirty
|
|
||||||
*/
|
|
||||||
|
|
||||||
data.children_lock++;
|
data.children_lock++;
|
||||||
|
|
||||||
for (Node3D *&E : data.children) {
|
for (Node3D *&E : data.children) {
|
||||||
@ -244,10 +239,9 @@ Quaternion Node3D::get_quaternion() const {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Node3D::set_global_transform(const Transform3D &p_transform) {
|
void Node3D::set_global_transform(const Transform3D &p_transform) {
|
||||||
Transform3D xform =
|
Transform3D xform = (data.parent && !data.top_level_active)
|
||||||
(data.parent && !data.top_level_active) ?
|
? data.parent->get_global_transform().affine_inverse() * p_transform
|
||||||
data.parent->get_global_transform().affine_inverse() * p_transform :
|
: p_transform;
|
||||||
p_transform;
|
|
||||||
|
|
||||||
set_transform(xform);
|
set_transform(xform);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user