def some_other(): vectors = vectors_component(delta) unit_vectors = vectors_component_unit(delta) for i in range(int(len(vectors))): vector = vectors[int(i)] unit_vector = unit_vectors[int(i)] vector_inv = array_scaled(vector, -1.0) child_start = point_farthest(position, max, vector_inv) crash_time = time_denorm_point_plane(peak, child_start, vector) if ((crash_time >= 0.0) and (crash_time < 1.0)): child_end = sum_arrays(child_start, unit_vector) end_time = time_denorm_point_plane(peak, child_end, vector) if (crash_time == end_time): print json.dumps(["Error crash_bounds crash_time same as end_time", child_start, child_end], cls=SyrupEncoder) elif (crash_time > end_time): print json.dumps(["Error end_time greater than crash_time", crash_time, end_time], cls=SyrupEncoder) else: test_time = ((crash_time + end_time) / 2.0) test_position = sum_arrays(position_i, array_scaled(delta, test_time)) test_max = sum_arrays_3(test_position, size) if is_overlap_cuboids(test_position, size, test_max, dest_point, dest_size, bounds["max"]): crash_time = crash_time is_hit = True hit_normal = unit_vector break return
def crash_bounds(position_i, size, peak, delta, bounds): is_hit = False crash_time = 0.0 hit_normal = [] dest_point = bounds["position"] dest_size = bounds["size"] for i in range(3): magnitude = delta[int(i)] if (magnitude == 0.0): continue sign = 0.0 if (magnitude > 0.0): sign = 1.0 b_peak = farthest_axis_sign(dest_point, bounds["max"], i, (1.0 - sign)) crash_time = ((b_peak - peak[int(i)]) / magnitude) if ((crash_time >= 0.0) and (crash_time < 1.0)): if (magnitude > 0.0): test = (b_peak + 0.5) else: test = (b_peak - 0.5) test_time = ((test - peak[int(i)]) / magnitude) test_position = sum_arrays(position_i, array_scaled(delta, test_time)) test_max = sum_arrays_3(test_position, size) if is_overlap_cuboids(test_position, size, test_max, dest_point, dest_size, bounds["max"]): crash_time = crash_time is_hit = True hit_normal = vector_axis_sign(i, sign) break return is_hit, crash_time, hit_normal
def some_other(): vectors = vectors_component(delta) unit_vectors = vectors_component_unit(delta) for i in range(int(len(vectors))): vector = vectors[int(i)] unit_vector = unit_vectors[int(i)] vector_inv = array_scaled(vector, -1.0) child_start = point_farthest(position, max, vector_inv) crash_time = time_denorm_point_plane(peak, child_start, vector) if ((crash_time >= 0.0) and (crash_time < 1.0)): child_end = sum_arrays(child_start, unit_vector) end_time = time_denorm_point_plane(peak, child_end, vector) if (crash_time == end_time): print json.dumps([ "Error crash_bounds crash_time same as end_time", child_start, child_end ], cls=SyrupEncoder) elif (crash_time > end_time): print json.dumps([ "Error end_time greater than crash_time", crash_time, end_time ], cls=SyrupEncoder) else: test_time = ((crash_time + end_time) / 2.0) test_position = sum_arrays(position_i, array_scaled(delta, test_time)) test_max = sum_arrays_3(test_position, size) if is_overlap_cuboids(test_position, size, test_max, dest_point, dest_size, bounds["max"]): crash_time = crash_time is_hit = True hit_normal = unit_vector break return