Path: blob/master/modules/godot_physics_3d/godot_area_pair_3d.h
10277 views
/**************************************************************************/1/* godot_area_pair_3d.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_3d.h"33#include "godot_body_3d.h"34#include "godot_constraint_3d.h"35#include "godot_soft_body_3d.h"3637class GodotAreaPair3D : public GodotConstraint3D {38GodotBody3D *body = nullptr;39GodotArea3D *area = nullptr;40int body_shape;41int area_shape;42bool colliding = false;43bool process_collision = false;44bool has_space_override = false;45bool body_has_attached_area = false;4647public:48virtual bool setup(real_t p_step) override;49virtual bool pre_solve(real_t p_step) override;50virtual void solve(real_t p_step) override;5152GodotAreaPair3D(GodotBody3D *p_body, int p_body_shape, GodotArea3D *p_area, int p_area_shape);53~GodotAreaPair3D();54};5556class GodotArea2Pair3D : public GodotConstraint3D {57GodotArea3D *area_a = nullptr;58GodotArea3D *area_b = nullptr;59int shape_a;60int shape_b;61bool colliding_a = false;62bool colliding_b = false;63bool process_collision_a = false;64bool process_collision_b = false;65bool area_a_monitorable;66bool area_b_monitorable;6768public:69virtual bool setup(real_t p_step) override;70virtual bool pre_solve(real_t p_step) override;71virtual void solve(real_t p_step) override;7273GodotArea2Pair3D(GodotArea3D *p_area_a, int p_shape_a, GodotArea3D *p_area_b, int p_shape_b);74~GodotArea2Pair3D();75};7677class GodotAreaSoftBodyPair3D : public GodotConstraint3D {78GodotSoftBody3D *soft_body = nullptr;79GodotArea3D *area = nullptr;80int soft_body_shape;81int area_shape;82bool colliding = false;83bool process_collision = false;84bool has_space_override = false;85bool body_has_attached_area = false;8687public:88virtual bool setup(real_t p_step) override;89virtual bool pre_solve(real_t p_step) override;90virtual void solve(real_t p_step) override;9192GodotAreaSoftBodyPair3D(GodotSoftBody3D *p_sof_body, int p_soft_body_shape, GodotArea3D *p_area, int p_area_shape);93~GodotAreaSoftBodyPair3D();94};959697