Path: blob/master/modules/godot_physics_2d/godot_area_pair_2d.h
10277 views
/**************************************************************************/1/* godot_area_pair_2d.h */2/**************************************************************************/3/* This file is part of: */4/* GODOT ENGINE */5/* https://godotengine.org */6/**************************************************************************/7/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */8/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */9/* */10/* Permission is hereby granted, free of charge, to any person obtaining */11/* a copy of this software and associated documentation files (the */12/* "Software"), to deal in the Software without restriction, including */13/* without limitation the rights to use, copy, modify, merge, publish, */14/* distribute, sublicense, and/or sell copies of the Software, and to */15/* permit persons to whom the Software is furnished to do so, subject to */16/* the following conditions: */17/* */18/* The above copyright notice and this permission notice shall be */19/* included in all copies or substantial portions of the Software. */20/* */21/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */22/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */23/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */24/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */25/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */26/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */27/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */28/**************************************************************************/2930#pragma once3132#include "godot_area_2d.h"33#include "godot_body_2d.h"34#include "godot_constraint_2d.h"3536class GodotAreaPair2D : public GodotConstraint2D {37GodotBody2D *body = nullptr;38GodotArea2D *area = nullptr;39int body_shape = 0;40int area_shape = 0;41bool colliding = false;42bool has_space_override = false;43bool process_collision = false;44bool body_has_attached_area = false;4546public:47virtual bool setup(real_t p_step) override;48virtual bool pre_solve(real_t p_step) override;49virtual void solve(real_t p_step) override;5051GodotAreaPair2D(GodotBody2D *p_body, int p_body_shape, GodotArea2D *p_area, int p_area_shape);52~GodotAreaPair2D();53};5455class GodotArea2Pair2D : public GodotConstraint2D {56GodotArea2D *area_a = nullptr;57GodotArea2D *area_b = nullptr;58int shape_a = 0;59int shape_b = 0;60bool colliding_a = false;61bool colliding_b = false;62bool process_collision_a = false;63bool process_collision_b = false;64bool area_a_monitorable;65bool area_b_monitorable;6667public:68virtual bool setup(real_t p_step) override;69virtual bool pre_solve(real_t p_step) override;70virtual void solve(real_t p_step) override;7172GodotArea2Pair2D(GodotArea2D *p_area_a, int p_shape_a, GodotArea2D *p_area_b, int p_shape_b);73~GodotArea2Pair2D();74};757677