Commit headers.

This commit is contained in:
Relintai 2023-06-25 10:40:47 +02:00
parent a8f20c386d
commit 0d0a0006dd
34 changed files with 419630 additions and 2 deletions

2
.gitignore vendored
View File

@ -9,8 +9,6 @@ __pycache__
.vscode
.idea
pandemonium_headers/
# mac os thumbs files
.DS_Store

View File

@ -0,0 +1,56 @@
/**************************************************************************/
/* pandemonium_android.h */
/**************************************************************************/
/* This file is part of: */
/* PANDEMONIUM ENGINE */
/* https://pandemoniumengine.org */
/**************************************************************************/
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
/* "Software"), to deal in the Software without restriction, including */
/* without limitation the rights to use, copy, modify, merge, publish, */
/* distribute, sublicense, and/or sell copies of the Software, and to */
/* permit persons to whom the Software is furnished to do so, subject to */
/* the following conditions: */
/* */
/* The above copyright notice and this permission notice shall be */
/* included in all copies or substantial portions of the Software. */
/* */
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/**************************************************************************/
#ifndef PANDEMONIUM_ANDROID_H
#define PANDEMONIUM_ANDROID_H
#include <gdn/gdnative.h>
#ifdef __ANDROID__
#include <jni.h>
#else
#define JNIEnv void
#define jobject void *
#endif
#ifdef __cplusplus
extern "C" {
#endif
JNIEnv *GDAPI pandemonium_android_get_env();
jobject GDAPI pandemonium_android_get_activity();
jobject GDAPI pandemonium_android_get_surface();
bool GDAPI pandemonium_android_is_activity_resumed();
#ifdef __cplusplus
}
#endif
#endif // PANDEMONIUM_ANDROID_H

398436
pandemonium_headers/api.json Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,134 @@
/**************************************************************************/
/* aabb.h */
/**************************************************************************/
/* This file is part of: */
/* PANDEMONIUM ENGINE */
/* https://pandemoniumengine.org */
/**************************************************************************/
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
/* "Software"), to deal in the Software without restriction, including */
/* without limitation the rights to use, copy, modify, merge, publish, */
/* distribute, sublicense, and/or sell copies of the Software, and to */
/* permit persons to whom the Software is furnished to do so, subject to */
/* the following conditions: */
/* */
/* The above copyright notice and this permission notice shall be */
/* included in all copies or substantial portions of the Software. */
/* */
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/**************************************************************************/
#ifndef GDNATIVE_AABB_H
#define GDNATIVE_AABB_H
#ifdef __cplusplus
extern "C" {
#endif
#include <stdint.h>
#define PANDEMONIUM_AABB_SIZE 24
#ifndef PANDEMONIUM_CORE_API_PANDEMONIUM_AABB_TYPE_DEFINED
#define PANDEMONIUM_CORE_API_PANDEMONIUM_AABB_TYPE_DEFINED
typedef struct {
uint8_t _dont_touch_that[PANDEMONIUM_AABB_SIZE];
} pandemonium_aabb;
#endif
// reduce extern "C" nesting for VS2013
#ifdef __cplusplus
}
#endif
#include <gdn/gdnative.h>
#include <gdn/plane.h>
#include <gdn/vector3.h>
#ifdef __cplusplus
extern "C" {
#endif
pandemonium_real GDAPI pandemonium_aabb_get_volume(const pandemonium_aabb *p_self);
pandemonium_bool GDAPI pandemonium_aabb_has_no_volume(const pandemonium_aabb *p_self);
pandemonium_bool GDAPI pandemonium_aabb_has_no_surface(const pandemonium_aabb *p_self);
pandemonium_vector3 GDAPI pandemonium_aabb_get_position(const pandemonium_aabb *p_self);
void GDAPI pandemonium_aabb_set_position(const pandemonium_aabb *p_self, const pandemonium_vector3 *p_v);
pandemonium_vector3 GDAPI pandemonium_aabb_get_size(const pandemonium_aabb *p_self);
void GDAPI pandemonium_aabb_set_size(const pandemonium_aabb *p_self, const pandemonium_vector3 *p_v);
pandemonium_bool GDAPI pandemonium_aabb_operator_equal(const pandemonium_aabb *p_self, const pandemonium_aabb *p_b);
pandemonium_bool GDAPI pandemonium_aabb_is_equal_approx(const pandemonium_aabb *p_self, const pandemonium_aabb *p_aabb);
pandemonium_bool GDAPI pandemonium_aabb_intersects(const pandemonium_aabb *p_self, const pandemonium_aabb *p_with);
pandemonium_bool GDAPI pandemonium_aabb_intersects_inclusive(const pandemonium_aabb *p_self, const pandemonium_aabb *p_aabb);
pandemonium_bool GDAPI pandemonium_aabb_encloses(const pandemonium_aabb *p_self, const pandemonium_aabb *p_with);
pandemonium_aabb GDAPI pandemonium_aabb_merge(const pandemonium_aabb *p_self, const pandemonium_aabb *p_with);
void GDAPI pandemonium_aabb_merge_with(pandemonium_aabb *p_self, const pandemonium_aabb *p_with);
pandemonium_aabb GDAPI pandemonium_aabb_intersection(const pandemonium_aabb *p_self, const pandemonium_aabb *p_with);
pandemonium_bool GDAPI pandemonium_aabb_intersects_segment(const pandemonium_aabb *p_self, const pandemonium_vector3 *p_from, const pandemonium_vector3 *p_to);
pandemonium_bool GDAPI pandemonium_aabb_intersects_segment_clip(const pandemonium_aabb *p_self, const pandemonium_vector3 *p_from, const pandemonium_vector3 *p_to, const pandemonium_vector3 *r_clip);
pandemonium_bool GDAPI pandemonium_aabb_intersects_segment_clip_normal(const pandemonium_aabb *p_self, const pandemonium_vector3 *p_from, const pandemonium_vector3 *p_to, const pandemonium_vector3 *r_clip, const pandemonium_vector3 *r_normal);
pandemonium_bool GDAPI pandemonium_aabb_intersects_ray(const pandemonium_aabb *p_self, const pandemonium_aabb *p_from, const pandemonium_aabb *p_dir);
pandemonium_bool GDAPI pandemonium_aabb_intersects_ray_clip(const pandemonium_aabb *p_self, const pandemonium_aabb *p_from, const pandemonium_aabb *p_dir, pandemonium_aabb *r_clip);
pandemonium_bool GDAPI pandemonium_aabb_intersects_ray_clip_normal(const pandemonium_aabb *p_self, const pandemonium_aabb *p_from, const pandemonium_aabb *p_dir, pandemonium_aabb *r_clip, pandemonium_aabb *r_normal);
pandemonium_bool GDAPI pandemonium_aabb_intersects_smits_intersect_ray(const pandemonium_aabb *p_self, const pandemonium_vector3 *p_from, const pandemonium_vector3 *p_dir, const pandemonium_real t0, const pandemonium_real t1);
pandemonium_bool GDAPI pandemonium_aabb_intersects_plane(const pandemonium_aabb *p_self, const pandemonium_plane *p_plane);
pandemonium_bool GDAPI pandemonium_aabb_has_point(const pandemonium_aabb *p_self, const pandemonium_vector3 *p_point);
pandemonium_vector3 GDAPI pandemonium_aabb_get_support(const pandemonium_aabb *p_self, const pandemonium_vector3 *p_dir);
pandemonium_vector3 GDAPI pandemonium_aabb_get_longest_axis(const pandemonium_aabb *p_self);
pandemonium_int GDAPI pandemonium_aabb_get_longest_axis_index(const pandemonium_aabb *p_self);
pandemonium_real GDAPI pandemonium_aabb_get_longest_axis_size(const pandemonium_aabb *p_self);
pandemonium_vector3 GDAPI pandemonium_aabb_get_shortest_axis(const pandemonium_aabb *p_self);
pandemonium_int GDAPI pandemonium_aabb_get_shortest_axis_index(const pandemonium_aabb *p_self);
pandemonium_real GDAPI pandemonium_aabb_get_shortest_axis_size(const pandemonium_aabb *p_self);
pandemonium_aabb GDAPI pandemonium_aabb_grow(const pandemonium_aabb *p_self, const pandemonium_real p_by);
void GDAPI pandemonium_aabb_grow_by(pandemonium_aabb *p_self, const pandemonium_real p_amount);
void GDAPI pandemonium_aabb_get_edge(const pandemonium_aabb *p_self, const pandemonium_int p_edge, pandemonium_vector3 *r_from, pandemonium_vector3 *r_to);
pandemonium_vector3 GDAPI pandemonium_aabb_get_endpoint(const pandemonium_aabb *p_self, const pandemonium_int p_idx);
pandemonium_aabb GDAPI pandemonium_aabb_expand(const pandemonium_aabb *p_self, const pandemonium_vector3 *p_to_point);
void GDAPI pandemonium_aabb_project_range_in_plane(const pandemonium_aabb *p_self, const pandemonium_plane *p_plane, pandemonium_real *r_min, pandemonium_real *r_max);
void GDAPI pandemonium_aabb_expand_to(pandemonium_aabb *p_self, const pandemonium_vector3 *p_vector);
pandemonium_aabb GDAPI pandemonium_aabb_abs(const pandemonium_aabb *p_self);
pandemonium_variant GDAPI pandemonium_aabb_intersects_segmentv(const pandemonium_aabb *p_self, const pandemonium_vector3 *p_from, const pandemonium_vector3 *p_to);
pandemonium_variant GDAPI pandemonium_aabb_intersects_rayv(const pandemonium_aabb *p_self, const pandemonium_vector3 *p_from, const pandemonium_vector3 *p_dir);
void GDAPI pandemonium_aabb_quantize(pandemonium_aabb *p_self, const pandemonium_real p_unit);
pandemonium_aabb GDAPI pandemonium_aabb_quantized(const pandemonium_aabb *p_self, const pandemonium_real p_unit);
void GDAPI pandemonium_aabb_set_end(pandemonium_aabb *p_self, const pandemonium_vector3 *p_end);
pandemonium_vector3 GDAPI pandemonium_aabb_get_end(const pandemonium_aabb *p_self);
pandemonium_vector3 GDAPI pandemonium_aabb_get_center(const pandemonium_aabb *p_self);
pandemonium_string GDAPI pandemonium_aabb_as_string(const pandemonium_aabb *p_self);
void GDAPI pandemonium_aabb_new(pandemonium_aabb *r_dest, const pandemonium_vector3 *p_pos, const pandemonium_vector3 *p_size);
#ifdef __cplusplus
}
#endif
#endif // GDNATIVE_AABB_H

View File

@ -0,0 +1,145 @@
/**************************************************************************/
/* array.h */
/**************************************************************************/
/* This file is part of: */
/* PANDEMONIUM ENGINE */
/* https://pandemoniumengine.org */
/**************************************************************************/
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
/* "Software"), to deal in the Software without restriction, including */
/* without limitation the rights to use, copy, modify, merge, publish, */
/* distribute, sublicense, and/or sell copies of the Software, and to */
/* permit persons to whom the Software is furnished to do so, subject to */
/* the following conditions: */
/* */
/* The above copyright notice and this permission notice shall be */
/* included in all copies or substantial portions of the Software. */
/* */
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/**************************************************************************/
#ifndef GDNATIVE_ARRAY_H
#define GDNATIVE_ARRAY_H
#ifdef __cplusplus
extern "C" {
#endif
#include <stdint.h>
#define PANDEMONIUM_ARRAY_SIZE sizeof(void *)
#ifndef PANDEMONIUM_CORE_API_PANDEMONIUM_ARRAY_TYPE_DEFINED
#define PANDEMONIUM_CORE_API_PANDEMONIUM_ARRAY_TYPE_DEFINED
typedef struct {
uint8_t _dont_touch_that[PANDEMONIUM_ARRAY_SIZE];
} pandemonium_array;
#endif
// reduce extern "C" nesting for VS2013
#ifdef __cplusplus
}
#endif
#include <gdn/pool_arrays.h>
#include <gdn/variant.h>
#include <gdn/gdnative.h>
#ifdef __cplusplus
extern "C" {
#endif
pandemonium_variant GDAPI *pandemonium_array_operator_index(pandemonium_array *p_self, const pandemonium_int p_idx);
const pandemonium_variant GDAPI *pandemonium_array_operator_index_const(const pandemonium_array *p_self, const pandemonium_int p_idx);
void GDAPI pandemonium_array_set(pandemonium_array *p_self, const pandemonium_int p_idx, const pandemonium_variant *p_value);
pandemonium_variant GDAPI pandemonium_array_get(const pandemonium_array *p_self, const pandemonium_int p_idx);
pandemonium_int GDAPI pandemonium_array_size(const pandemonium_array *p_self);
pandemonium_bool GDAPI pandemonium_array_empty(const pandemonium_array *p_self);
void GDAPI pandemonium_array_clear(pandemonium_array *p_self);
pandemonium_bool GDAPI pandemonium_array_deep_equal(const pandemonium_array *p_self, const pandemonium_array *p_array);
pandemonium_bool GDAPI pandemonium_array_deep_equal_recursion_count(const pandemonium_array *p_self, const pandemonium_array *p_array, pandemonium_int p_recursion_count);
pandemonium_bool GDAPI pandemonium_array_operator_equals(pandemonium_array *p_self, const pandemonium_array *p_array);
pandemonium_int GDAPI pandemonium_array_hash(const pandemonium_array *p_self);
//bool operator=(const Array &p_array) const;
void GDAPI pandemonium_array_push_back(pandemonium_array *p_self, const pandemonium_variant *p_value);
void GDAPI pandemonium_array_append(pandemonium_array *p_self, const pandemonium_variant *p_value);
void GDAPI pandemonium_array_append_array(pandemonium_array *p_self, const pandemonium_array *p_array);
void GDAPI pandemonium_array_resize(pandemonium_array *p_self, const pandemonium_int p_size);
void GDAPI pandemonium_array_insert(pandemonium_array *p_self, const pandemonium_int p_pos, const pandemonium_variant *p_value);
void GDAPI pandemonium_array_remove(pandemonium_array *p_self, const pandemonium_int p_idx);
void GDAPI pandemonium_array_fill(pandemonium_array *p_self, const pandemonium_variant *p_value);
pandemonium_variant GDAPI pandemonium_array_front(const pandemonium_array *p_self);
pandemonium_variant GDAPI pandemonium_array_back(const pandemonium_array *p_self);
void GDAPI pandemonium_array_sort(pandemonium_array *p_self);
void GDAPI pandemonium_array_sort_custom(pandemonium_array *p_self, pandemonium_object *p_obj, const pandemonium_string *p_func);
void GDAPI pandemonium_array_shuffle(pandemonium_array *p_self);
//before variant
pandemonium_int GDAPI pandemonium_array_bsearch(pandemonium_array *p_self, const pandemonium_variant *p_value, const pandemonium_bool p_before);
pandemonium_int GDAPI pandemonium_array_bsearch_custom(pandemonium_array *p_self, const pandemonium_variant *p_value, pandemonium_object *p_obj, const pandemonium_string *p_func, const pandemonium_bool p_before);
void GDAPI pandemonium_array_invert(pandemonium_array *p_self);
pandemonium_int GDAPI pandemonium_array_find(const pandemonium_array *p_self, const pandemonium_variant *p_what);
pandemonium_int GDAPI pandemonium_array_find_from(const pandemonium_array *p_self, const pandemonium_variant *p_what, const pandemonium_int p_from);
pandemonium_int GDAPI pandemonium_array_rfind(const pandemonium_array *p_self, const pandemonium_variant *p_what);
pandemonium_int GDAPI pandemonium_array_rfind_from(const pandemonium_array *p_self, const pandemonium_variant *p_what, const pandemonium_int p_from);
pandemonium_int GDAPI pandemonium_array_find_last(const pandemonium_array *p_self, const pandemonium_variant *p_what);
pandemonium_int GDAPI pandemonium_array_count(const pandemonium_array *p_self, const pandemonium_variant *p_value);
pandemonium_bool GDAPI pandemonium_array_has(const pandemonium_array *p_self, const pandemonium_variant *p_value);
void GDAPI pandemonium_array_erase(pandemonium_array *p_self, const pandemonium_variant *p_value);
void GDAPI pandemonium_array_push_front(pandemonium_array *p_self, const pandemonium_variant *p_value);
pandemonium_variant GDAPI pandemonium_array_pop_back(pandemonium_array *p_self);
pandemonium_variant GDAPI pandemonium_array_pop_front(pandemonium_array *p_self);
pandemonium_variant GDAPI pandemonium_array_pop_at(pandemonium_array *p_self, pandemonium_int p_pos);
pandemonium_array GDAPI pandemonium_array_duplicate(const pandemonium_array *p_self);
pandemonium_array GDAPI pandemonium_array_duplicate_deep(const pandemonium_array *p_self, const pandemonium_bool p_deep);
pandemonium_array GDAPI pandemonium_array_slice(const pandemonium_array *p_self, const pandemonium_int p_begin, const pandemonium_int p_end);
pandemonium_array GDAPI pandemonium_array_slice_step(const pandemonium_array *p_self, const pandemonium_int p_begin, const pandemonium_int p_end, const pandemonium_int p_step);
pandemonium_array GDAPI pandemonium_array_slice_step_deep(const pandemonium_array *p_self, const pandemonium_int p_begin, const pandemonium_int p_end, const pandemonium_int p_step, const pandemonium_bool p_deep);
pandemonium_variant GDAPI pandemonium_array_min(const pandemonium_array *p_self);
pandemonium_variant GDAPI pandemonium_array_max(const pandemonium_array *p_self);
void GDAPI pandemonium_array_new(pandemonium_array *r_dest);
void GDAPI pandemonium_array_new_copy(pandemonium_array *r_dest, const pandemonium_array *p_src);
void GDAPI pandemonium_array_new_pool_byte_array(pandemonium_array *r_dest, const pandemonium_pool_byte_array *p_pba);
void GDAPI pandemonium_array_new_pool_int_array(pandemonium_array *r_dest, const pandemonium_pool_int_array *p_pia);
void GDAPI pandemonium_array_new_pool_real_array(pandemonium_array *r_dest, const pandemonium_pool_real_array *p_pra);
void GDAPI pandemonium_array_new_pool_string_array(pandemonium_array *r_dest, const pandemonium_pool_string_array *p_psa);
void GDAPI pandemonium_array_new_pool_vector2_array(pandemonium_array *r_dest, const pandemonium_pool_vector2_array *p_pv2a);
void GDAPI pandemonium_array_new_pool_vector2i_array(pandemonium_array *r_dest, const pandemonium_pool_vector2i_array *p_pv2a);
void GDAPI pandemonium_array_new_pool_vector3_array(pandemonium_array *r_dest, const pandemonium_pool_vector3_array *p_pv3a);
void GDAPI pandemonium_array_new_pool_vector3i_array(pandemonium_array *r_dest, const pandemonium_pool_vector3i_array *p_pv3a);
void GDAPI pandemonium_array_new_pool_vector4_array(pandemonium_array *r_dest, const pandemonium_pool_vector4_array *p_pv3a);
void GDAPI pandemonium_array_new_pool_vector4i_array(pandemonium_array *r_dest, const pandemonium_pool_vector4i_array *p_pv3a);
void GDAPI pandemonium_array_new_pool_color_array(pandemonium_array *r_dest, const pandemonium_pool_color_array *p_pca);
void GDAPI pandemonium_array_destroy(pandemonium_array *p_self);
#ifdef __cplusplus
}
#endif
#endif // GDNATIVE_ARRAY_H

View File

@ -0,0 +1,236 @@
/**************************************************************************/
/* basis.h */
/**************************************************************************/
/* This file is part of: */
/* PANDEMONIUM ENGINE */
/* https://pandemoniumengine.org */
/**************************************************************************/
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
/* "Software"), to deal in the Software without restriction, including */
/* without limitation the rights to use, copy, modify, merge, publish, */
/* distribute, sublicense, and/or sell copies of the Software, and to */
/* permit persons to whom the Software is furnished to do so, subject to */
/* the following conditions: */
/* */
/* The above copyright notice and this permission notice shall be */
/* included in all copies or substantial portions of the Software. */
/* */
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/**************************************************************************/
#ifndef GDNATIVE_BASIS_H
#define GDNATIVE_BASIS_H
#ifdef __cplusplus
extern "C" {
#endif
#include <stdint.h>
#define PANDEMONIUM_BASIS_SIZE 36
#ifndef PANDEMONIUM_CORE_API_PANDEMONIUM_BASIS_TYPE_DEFINED
#define PANDEMONIUM_CORE_API_PANDEMONIUM_BASIS_TYPE_DEFINED
typedef struct {
uint8_t _dont_touch_that[PANDEMONIUM_BASIS_SIZE];
} pandemonium_basis;
#endif
// reduce extern "C" nesting for VS2013
#ifdef __cplusplus
}
#endif
#include <gdn/gdnative.h>
#include <gdn/quaternion.h>
#include <gdn/vector3.h>
#include <gdn/vector3i.h>
#ifdef __cplusplus
extern "C" {
#endif
void GDAPI pandemonium_basis_invert(pandemonium_basis *p_self);
void GDAPI pandemonium_basis_transpose(pandemonium_basis *p_self);
pandemonium_basis GDAPI pandemonium_basis_inverse(const pandemonium_basis *p_self);
pandemonium_basis GDAPI pandemonium_basis_transposed(const pandemonium_basis *p_self);
pandemonium_real GDAPI pandemonium_basis_determinant(const pandemonium_basis *p_self);
void GDAPI pandemonium_basis_from_z(pandemonium_basis *p_self, const pandemonium_vector3 *p_z);
void GDAPI pandemonium_basis_rotate(pandemonium_basis *p_self, const pandemonium_vector3 *p_axis, pandemonium_real p_phi);
pandemonium_basis GDAPI pandemonium_basis_rotated(const pandemonium_basis *p_self, const pandemonium_vector3 *p_axis, const pandemonium_real p_phi);
void GDAPI pandemonium_basis_rotate_local(pandemonium_basis *p_self, const pandemonium_vector3 *p_axis, pandemonium_real p_phi);
pandemonium_basis GDAPI pandemonium_basis_rotated_local(const pandemonium_basis *p_self, const pandemonium_vector3 *p_axis, pandemonium_real p_phi);
void GDAPI pandemonium_basis_rotate_euler(pandemonium_basis *p_self, const pandemonium_vector3 *p_euler);
pandemonium_basis GDAPI pandemonium_basis_rotated_euler(const pandemonium_basis *p_self, const pandemonium_vector3 *p_euler);
void GDAPI pandemonium_basis_rotate_quat(pandemonium_basis *p_self, const pandemonium_quaternion *p_quat);
pandemonium_basis GDAPI pandemonium_basis_rotated_quat(const pandemonium_basis *p_self, const pandemonium_quaternion *p_quat);
void GDAPI pandemonium_basis_rotatev(pandemonium_basis *p_self, const pandemonium_vector3 *p_euler);
pandemonium_basis GDAPI pandemonium_basis_rotatedv(const pandemonium_basis *p_self, const pandemonium_vector3 *p_euler);
void GDAPI pandemonium_basis_rotateq(pandemonium_basis *p_self, const pandemonium_quaternion *p_quat);
pandemonium_basis GDAPI pandemonium_basis_rotatedq(const pandemonium_basis *p_self, const pandemonium_quaternion *p_quat);
pandemonium_vector3 GDAPI pandemonium_basis_get_rotation_euler(const pandemonium_basis *p_self);
void GDAPI pandemonium_basis_get_rotation_axis_angle(const pandemonium_basis *p_self, pandemonium_vector3 *p_axis, pandemonium_real p_angle);
void GDAPI pandemonium_basis_get_rotation_axis_angle_local(const pandemonium_basis *p_self, pandemonium_vector3 *p_axis, pandemonium_real p_angle);
pandemonium_quaternion GDAPI pandemonium_basis_get_rotation_quaternion(const pandemonium_basis *p_self);
pandemonium_vector3 GDAPI pandemonium_basis_get_rotation(const pandemonium_basis *p_self);
void GDAPI pandemonium_basis_rotate_to_align(pandemonium_basis *p_self, const pandemonium_vector3 *p_start_direction, const pandemonium_vector3 *p_end_direction);
pandemonium_vector3 GDAPI pandemonium_basis_rotref_posscale_decomposition(const pandemonium_basis *p_self, pandemonium_basis *rotref);
pandemonium_vector3 GDAPI pandemonium_basis_get_euler_xyz(const pandemonium_basis *p_self);
void GDAPI pandemonium_basis_set_euler_xyz(pandemonium_basis *p_self, const pandemonium_vector3 *p_euler);
pandemonium_vector3 GDAPI pandemonium_basis_get_euler_xzy(const pandemonium_basis *p_self);
void GDAPI pandemonium_basis_set_euler_xzy(pandemonium_basis *p_self, const pandemonium_vector3 *p_euler);
pandemonium_vector3 GDAPI pandemonium_basis_get_euler_yzx(const pandemonium_basis *p_self);
void GDAPI pandemonium_basis_set_euler_yzx(pandemonium_basis *p_self, const pandemonium_vector3 *p_euler);
pandemonium_vector3 GDAPI pandemonium_basis_get_euler_yxz(const pandemonium_basis *p_self);
void GDAPI pandemonium_basis_set_euler_yxz(pandemonium_basis *p_self, const pandemonium_vector3 *p_euler);
pandemonium_vector3 GDAPI pandemonium_basis_get_euler_zxy(const pandemonium_basis *p_self);
void GDAPI pandemonium_basis_set_euler_zxy(pandemonium_basis *p_self, const pandemonium_vector3 *p_euler);
pandemonium_vector3 GDAPI pandemonium_basis_get_euler_zyx(const pandemonium_basis *p_self);
void GDAPI pandemonium_basis_set_euler_zyx(pandemonium_basis *p_self, const pandemonium_vector3 *p_euler);
pandemonium_vector3 GDAPI pandemonium_basis_get_euler(const pandemonium_basis *p_self);
void GDAPI pandemonium_basis_set_euler(pandemonium_basis *p_self, const pandemonium_vector3 *p_euler);
pandemonium_quaternion GDAPI pandemonium_basis_get_quaternion(const pandemonium_basis *p_self);
void GDAPI pandemonium_basis_set_quaternion(pandemonium_basis *p_self, const pandemonium_quaternion *p_quaternion);
void GDAPI pandemonium_basis_get_axis_angle(const pandemonium_basis *p_self, pandemonium_vector3 *r_axis, pandemonium_real *r_angle);
void GDAPI pandemonium_basis_set_axis_angle(pandemonium_basis *p_self, const pandemonium_vector3 *p_axis, pandemonium_real p_phi);
void GDAPI pandemonium_basis_scale(pandemonium_basis *p_self, const pandemonium_vector3 *p_scale);
pandemonium_basis GDAPI pandemonium_basis_scaled(const pandemonium_basis *p_self, const pandemonium_vector3 *p_scale);
void GDAPI pandemonium_basis_scale_local(pandemonium_basis *p_self, const pandemonium_vector3 *p_scale);
pandemonium_basis GDAPI pandemonium_basis_scaled_local(const pandemonium_basis *p_self, const pandemonium_vector3 *p_scale);
void GDAPI pandemonium_basis_scale_orthogonal(pandemonium_basis *p_self, const pandemonium_vector3 *p_scale);
pandemonium_basis GDAPI pandemonium_basis_scaled_orthogonal(const pandemonium_basis *p_self, const pandemonium_vector3 *p_scale);
void GDAPI pandemonium_basis_make_scale_uniform(pandemonium_basis *p_self);
pandemonium_real GDAPI pandemonium_basis_get_uniform_scale(const pandemonium_basis *p_self);
pandemonium_vector3 GDAPI pandemonium_basis_get_scale(const pandemonium_basis *p_self);
pandemonium_vector3 GDAPI pandemonium_basis_get_scale_abs(const pandemonium_basis *p_self);
pandemonium_vector3 GDAPI pandemonium_basis_get_scale_local(const pandemonium_basis *p_self);
void GDAPI pandemonium_basis_set_axis_angle_scale(pandemonium_basis *p_self, const pandemonium_vector3 *p_axis, pandemonium_real p_phi, const pandemonium_vector3 *p_scale);
void GDAPI pandemonium_basis_set_euler_scale(pandemonium_basis *p_self, const pandemonium_vector3 *p_euler, const pandemonium_vector3 *p_scale);
void GDAPI pandemonium_basis_set_quaternion_scale(pandemonium_basis *p_self, const pandemonium_quaternion *p_quaternion, const pandemonium_vector3 *p_scale);
pandemonium_real GDAPI pandemonium_basis_tdotx(const pandemonium_basis *p_self, const pandemonium_vector3 *p_with);
pandemonium_real GDAPI pandemonium_basis_tdoty(const pandemonium_basis *p_self, const pandemonium_vector3 *p_with);
pandemonium_real GDAPI pandemonium_basis_tdotz(const pandemonium_basis *p_self, const pandemonium_vector3 *p_with);
pandemonium_bool GDAPI pandemonium_basis_is_equal_approx(const pandemonium_basis *p_self, const pandemonium_basis *p_basis);
pandemonium_bool GDAPI pandemonium_basis_is_equal_approx_ratio(const pandemonium_basis *p_self, const pandemonium_basis *p_a, const pandemonium_basis *p_b);
pandemonium_bool GDAPI pandemonium_basis_is_equal_approx_ratio_eps(const pandemonium_basis *p_self, const pandemonium_basis *p_a, const pandemonium_basis *p_b, pandemonium_real p_epsilon);
pandemonium_bool GDAPI pandemonium_basis_operator_equal(const pandemonium_basis *p_self, const pandemonium_basis *p_b);
pandemonium_vector3 GDAPI pandemonium_basis_xform(const pandemonium_basis *p_self, const pandemonium_vector3 *p_v);
pandemonium_vector3 GDAPI pandemonium_basis_xform_inv(const pandemonium_basis *p_self, const pandemonium_vector3 *p_v);
pandemonium_vector3i GDAPI pandemonium_basis_xform_v3i(const pandemonium_basis *p_self, const pandemonium_vector3i *p_vector);
pandemonium_vector3i GDAPI pandemonium_basis_xform_inv_v3i(const pandemonium_basis *p_self, const pandemonium_vector3i *p_vector);
pandemonium_basis GDAPI pandemonium_basis_operator_multiply(const pandemonium_basis *p_self, const pandemonium_basis *p_b);
pandemonium_basis GDAPI pandemonium_basis_operator_add(const pandemonium_basis *p_self, const pandemonium_basis *p_b);
pandemonium_basis GDAPI pandemonium_basis_operator_subtract(const pandemonium_basis *p_self, const pandemonium_basis *p_b);
pandemonium_basis GDAPI pandemonium_basis_operator_multiply_scalar(const pandemonium_basis *p_self, const pandemonium_real p_b);
pandemonium_int GDAPI pandemonium_basis_get_orthogonal_index(const pandemonium_basis *p_self);
void GDAPI pandemonium_basis_set_orthogonal_index(pandemonium_basis *p_self, pandemonium_int p_index);
void GDAPI pandemonium_basis_set_diagonal(pandemonium_basis *p_self, const pandemonium_vector3 *p_diag);
pandemonium_bool GDAPI pandemonium_basis_is_orthogonal(const pandemonium_basis *p_self);
pandemonium_bool GDAPI pandemonium_basis_is_diagonal(const pandemonium_basis *p_self);
pandemonium_bool GDAPI pandemonium_basis_is_rotation(const pandemonium_basis *p_self);
pandemonium_basis GDAPI pandemonium_basis_slerp(const pandemonium_basis *p_self, const pandemonium_basis *p_b, const pandemonium_real p_t);
pandemonium_basis GDAPI pandemonium_basis_lerp(const pandemonium_basis *p_self, const pandemonium_basis *p_to, const pandemonium_real p_weight);
void GDAPI pandemonium_basis_rotate_sh(pandemonium_basis *p_self, pandemonium_real *p_values);
pandemonium_string GDAPI pandemonium_basis_as_string(const pandemonium_basis *p_self);
void GDAPI pandemonium_basis_set_real(pandemonium_basis *p_self, pandemonium_real xx, pandemonium_real xy, pandemonium_real xz, pandemonium_real yx, pandemonium_real yy, pandemonium_real yz, pandemonium_real zx, pandemonium_real zy, pandemonium_real zz);
void GDAPI pandemonium_basis_set_vector3(pandemonium_basis *p_self, const pandemonium_vector3 *p_x, const pandemonium_vector3 *p_y, const pandemonium_vector3 *p_z);
pandemonium_vector3 GDAPI pandemonium_basis_get_column(const pandemonium_basis *p_self, pandemonium_int i);
void GDAPI pandemonium_basis_set_column(pandemonium_basis *p_self, pandemonium_int p_index, const pandemonium_vector3 *p_value);
void GDAPI pandemonium_basis_set_columns(pandemonium_basis *p_self, const pandemonium_vector3 *p_x, const pandemonium_vector3 *p_y, const pandemonium_vector3 *p_z);
pandemonium_vector3 GDAPI pandemonium_basis_get_row(const pandemonium_basis *p_self, const pandemonium_int p_row);
void GDAPI pandemonium_basis_set_row(pandemonium_basis *p_self, const pandemonium_int p_row, const pandemonium_vector3 *p_value);
pandemonium_vector3 GDAPI pandemonium_basis_get_axis(const pandemonium_basis *p_self, const pandemonium_int p_axis);
void GDAPI pandemonium_basis_set_axis(pandemonium_basis *p_self, const pandemonium_int p_axis, const pandemonium_vector3 *p_value);
pandemonium_vector3 GDAPI pandemonium_basis_get_main_diagonal(const pandemonium_basis *p_self);
void GDAPI pandemonium_basis_set_zero(pandemonium_basis *p_self);
pandemonium_basis GDAPI pandemonium_basis_transpose_xform(const pandemonium_basis *p_self, const pandemonium_basis *m);
void GDAPI pandemonium_basis_orthonormalize(pandemonium_basis *p_self);
pandemonium_basis GDAPI pandemonium_basis_orthonormalized(const pandemonium_basis *p_self);
void GDAPI pandemonium_basis_orthogonalize(pandemonium_basis *p_self);
pandemonium_basis GDAPI pandemonium_basis_orthogonalized(const pandemonium_basis *p_self);
pandemonium_bool GDAPI pandemonium_basis_is_symmetric(const pandemonium_basis *p_self);
pandemonium_basis GDAPI pandemonium_basis_diagonalize(pandemonium_basis *p_self);
pandemonium_basis GDAPI pandemonium_basis_get_normal_xform_basis(const pandemonium_basis *p_self);
pandemonium_vector3 GDAPI pandemonium_basis_xform_normal_fast(const pandemonium_basis *p_self, const pandemonium_vector3 *p_vector);
pandemonium_vector3 GDAPI pandemonium_basis_xform_normal(const pandemonium_basis *p_self, const pandemonium_vector3 *p_vector);
pandemonium_basis GDAPI pandemonium_basis_looking_at(const pandemonium_vector3 *p_target);
pandemonium_basis GDAPI pandemonium_basis_looking_at_up(const pandemonium_vector3 *p_target, const pandemonium_vector3 *p_up);
pandemonium_basis GDAPI pandemonium_basis_from_scale(const pandemonium_vector3 *p_scale);
// p_elements is a pointer to an array of 3 (!!) vector3
void GDAPI pandemonium_basis_get_elements(const pandemonium_basis *p_self, pandemonium_vector3 *p_elements);
void GDAPI pandemonium_basis_new(pandemonium_basis *r_dest);
void GDAPI pandemonium_basis_new_with_rows(pandemonium_basis *r_dest, const pandemonium_vector3 *p_x_axis, const pandemonium_vector3 *p_y_axis, const pandemonium_vector3 *p_z_axis);
void GDAPI pandemonium_basis_new_with_axis_and_angle(pandemonium_basis *r_dest, const pandemonium_vector3 *p_axis, const pandemonium_real p_phi);
void GDAPI pandemonium_basis_new_with_euler(pandemonium_basis *r_dest, const pandemonium_vector3 *p_euler);
void GDAPI pandemonium_basis_new_with_euler_quaternion(pandemonium_basis *r_dest, const pandemonium_quaternion *p_euler);
void GDAPI pandemonium_basis_new_quaternion_scale(pandemonium_basis *r_dest, const pandemonium_quaternion *p_quat, const pandemonium_vector3 *p_scale);
void GDAPI pandemonium_basis_new_euler_scale(pandemonium_basis *r_dest, const pandemonium_vector3 *p_euler, const pandemonium_vector3 *p_scale);
void GDAPI pandemonium_basis_new_axis_phi_scale(pandemonium_basis *r_dest, const pandemonium_vector3 *p_axis, pandemonium_real p_phi, const pandemonium_vector3 *p_scale);
void GDAPI pandemonium_basis_new_floats(pandemonium_basis *r_dest, pandemonium_real xx, pandemonium_real xy, pandemonium_real xz, pandemonium_real yx, pandemonium_real yy, pandemonium_real yz, pandemonium_real zx, pandemonium_real zy, pandemonium_real zz);
#ifdef __cplusplus
}
#endif
#endif // GDNATIVE_BASIS_H

View File

@ -0,0 +1,170 @@
/**************************************************************************/
/* color.h */
/**************************************************************************/
/* This file is part of: */
/* PANDEMONIUM ENGINE */
/* https://pandemoniumengine.org */
/**************************************************************************/
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
/* "Software"), to deal in the Software without restriction, including */
/* without limitation the rights to use, copy, modify, merge, publish, */
/* distribute, sublicense, and/or sell copies of the Software, and to */
/* permit persons to whom the Software is furnished to do so, subject to */
/* the following conditions: */
/* */
/* The above copyright notice and this permission notice shall be */
/* included in all copies or substantial portions of the Software. */
/* */
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/**************************************************************************/
#ifndef GDNATIVE_COLOR_H
#define GDNATIVE_COLOR_H
#ifdef __cplusplus
extern "C" {
#endif
#include <stdint.h>
#define PANDEMONIUM_COLOR_SIZE 16
#ifndef PANDEMONIUM_CORE_API_PANDEMONIUM_COLOR_TYPE_DEFINED
#define PANDEMONIUM_CORE_API_PANDEMONIUM_COLOR_TYPE_DEFINED
typedef struct {
uint8_t _dont_touch_that[PANDEMONIUM_COLOR_SIZE];
} pandemonium_color;
#endif
// reduce extern "C" nesting for VS2013
#ifdef __cplusplus
}
#endif
#include <gdn/gdnative.h>
#include <gdn/string.h>
#ifdef __cplusplus
extern "C" {
#endif
pandemonium_real pandemonium_color_get_r(const pandemonium_color *p_self);
void pandemonium_color_set_r(pandemonium_color *p_self, const pandemonium_real r);
pandemonium_real pandemonium_color_get_g(const pandemonium_color *p_self);
void pandemonium_color_set_g(pandemonium_color *p_self, const pandemonium_real g);
pandemonium_real pandemonium_color_get_b(const pandemonium_color *p_self);
void pandemonium_color_set_b(pandemonium_color *p_self, const pandemonium_real b);
pandemonium_real pandemonium_color_get_a(const pandemonium_color *p_self);
void pandemonium_color_set_a(pandemonium_color *p_self, const pandemonium_real a);
pandemonium_bool GDAPI pandemonium_color_operator_equal(const pandemonium_color *p_self, const pandemonium_color *p_b);
pandemonium_int GDAPI pandemonium_color_to_rgba32(const pandemonium_color *p_self);
pandemonium_int GDAPI pandemonium_color_to_argb32(const pandemonium_color *p_self);
pandemonium_int GDAPI pandemonium_color_to_abgr32(const pandemonium_color *p_self);
pandemonium_int GDAPI pandemonium_color_to_rgba64(const pandemonium_color *p_self);
pandemonium_int GDAPI pandemonium_color_to_argb64(const pandemonium_color *p_self);
pandemonium_int GDAPI pandemonium_color_to_abgr64(const pandemonium_color *p_self);
pandemonium_real GDAPI pandemonium_color_gray(const pandemonium_color *p_self);
pandemonium_real pandemonium_color_get_h(const pandemonium_color *p_self);
pandemonium_real pandemonium_color_get_s(const pandemonium_color *p_self);
pandemonium_real pandemonium_color_get_v(const pandemonium_color *p_self);
void GDAPI pandemonium_color_set_hsv(pandemonium_color *p_self, pandemonium_real p_h, pandemonium_real p_s, pandemonium_real p_v);
void GDAPI pandemonium_color_set_hsv_alpha(pandemonium_color *p_self, pandemonium_real p_h, pandemonium_real p_s, pandemonium_real p_v, pandemonium_real p_alpha);
pandemonium_real GDAPI *pandemonium_color_operator_index(pandemonium_color *p_self, pandemonium_int idx);
const pandemonium_real GDAPI *pandemonium_color_operator_index_const(const pandemonium_color *p_self, pandemonium_int idx);
pandemonium_color GDAPI pandemonium_color_operator_add(const pandemonium_color *p_self, const pandemonium_color *p_color);
void GDAPI pandemonium_color_operator_add_eq(pandemonium_color *p_self, const pandemonium_color *p_color);
pandemonium_color GDAPI pandemonium_color_operator_negate(const pandemonium_color *p_self);
pandemonium_color GDAPI pandemonium_color_operator_sub(const pandemonium_color *p_self, const pandemonium_color *p_color);
void GDAPI pandemonium_color_operator_sub_eq(pandemonium_color *p_self, const pandemonium_color *p_color);
pandemonium_color GDAPI pandemonium_color_operator_mul_color(const pandemonium_color *p_self, const pandemonium_color *p_color);
pandemonium_color GDAPI pandemonium_color_operator_mul_real(const pandemonium_color *p_self, const pandemonium_real rvalue);
void GDAPI pandemonium_color_operator_mul_color_eq(pandemonium_color *p_self, const pandemonium_color *p_color);
void GDAPI pandemonium_color_operator_mul_real_eq(pandemonium_color *p_self, const pandemonium_real rvalue);
pandemonium_color GDAPI pandemonium_color_operator_div_color(const pandemonium_color *p_self, const pandemonium_color *p_color);
pandemonium_color GDAPI pandemonium_color_operator_div_real(const pandemonium_color *p_self, const pandemonium_real rvalue);
void GDAPI pandemonium_color_operator_div_color_eq(pandemonium_color *p_self, const pandemonium_color *p_color);
void GDAPI pandemonium_color_operator_div_real_eq(pandemonium_color *p_self, const pandemonium_real rvalue);
pandemonium_bool GDAPI pandemonium_color_is_equal_approx(const pandemonium_color *p_self, const pandemonium_color *p_color);
pandemonium_color GDAPI pandemonium_color_clamp(const pandemonium_color *p_self, const pandemonium_color *p_min);
void GDAPI pandemonium_color_invert(pandemonium_color *p_self);
void GDAPI pandemonium_color_contrast(pandemonium_color *p_self);
pandemonium_color GDAPI pandemonium_color_inverted(const pandemonium_color *p_self);
pandemonium_color GDAPI pandemonium_color_contrasted(const pandemonium_color *p_self);
pandemonium_real GDAPI pandemonium_color_get_luminance(const pandemonium_color *p_self);
pandemonium_color GDAPI pandemonium_color_linear_interpolate(const pandemonium_color *p_self, const pandemonium_color *p_b, const pandemonium_real p_t);
pandemonium_color GDAPI pandemonium_color_darkened(const pandemonium_color *p_self, const pandemonium_real p_amount);
pandemonium_color GDAPI pandemonium_color_lightened(const pandemonium_color *p_self, const pandemonium_real p_amount);
pandemonium_int GDAPI pandemonium_color_to_rgbe9995(const pandemonium_color *p_self);
pandemonium_color GDAPI pandemonium_color_blend(const pandemonium_color *p_self, const pandemonium_color *p_over);
pandemonium_color GDAPI pandemonium_color_to_linear(const pandemonium_color *p_self);
pandemonium_color GDAPI pandemonium_color_to_srgb(const pandemonium_color *p_self);
pandemonium_color GDAPI pandemonium_color_hex(pandemonium_int p_hex);
pandemonium_color GDAPI pandemonium_color_hex64(pandemonium_int p_hex);
pandemonium_color GDAPI pandemonium_color_html(const pandemonium_string *p_color);
pandemonium_bool GDAPI pandemonium_color_html_is_valid(const pandemonium_string *p_color);
pandemonium_color GDAPI pandemonium_color_named(const pandemonium_string *p_name);
pandemonium_string GDAPI pandemonium_color_to_html(const pandemonium_color *p_self, const pandemonium_bool p_with_alpha);
pandemonium_color GDAPI pandemonium_color_from_hsv(const pandemonium_color *p_self, const pandemonium_real p_h, const pandemonium_real p_s, const pandemonium_real p_v, const pandemonium_real p_a);
pandemonium_color GDAPI pandemonium_color_from_rgbe9995(pandemonium_int p_rgbe);
pandemonium_bool GDAPI pandemonium_color_operator_less(const pandemonium_color *p_self, const pandemonium_color *p_b);
pandemonium_string GDAPI pandemonium_color_as_string(const pandemonium_color *p_self);
pandemonium_color GDAPI pandemonium_color_color8(pandemonium_int r, pandemonium_int g, pandemonium_int b);
pandemonium_color GDAPI pandemonium_color_color8_alpha(pandemonium_int r, pandemonium_int g, pandemonium_int b, pandemonium_int a);
void GDAPI pandemonium_color_set_r8(pandemonium_color *p_self, pandemonium_int r8);
pandemonium_int GDAPI pandemonium_color_get_r8(const pandemonium_color *p_self);
void GDAPI pandemonium_color_set_g8(pandemonium_color *p_self, pandemonium_int g8);
pandemonium_int GDAPI pandemonium_color_get_g8(const pandemonium_color *p_self);
void GDAPI pandemonium_color_set_b8(pandemonium_color *p_self, pandemonium_int b8);
pandemonium_int GDAPI pandemonium_color_get_b8(const pandemonium_color *p_self);
void GDAPI pandemonium_color_set_a8(pandemonium_color *p_self, pandemonium_int a8);
pandemonium_int GDAPI pandemonium_color_get_a8(const pandemonium_color *p_self);
void GDAPI pandemonium_color_set_h(pandemonium_color *p_self, pandemonium_real p_h);
void GDAPI pandemonium_color_set_s(pandemonium_color *p_self, pandemonium_real p_s);
void GDAPI pandemonium_color_set_v(pandemonium_color *p_self, pandemonium_real p_v);
void GDAPI pandemonium_color_new_rgba(pandemonium_color *r_dest, const pandemonium_real p_r, const pandemonium_real p_g, const pandemonium_real p_b, const pandemonium_real p_a);
void GDAPI pandemonium_color_new_rgb(pandemonium_color *r_dest, const pandemonium_real p_r, const pandemonium_real p_g, const pandemonium_real p_b);
#ifdef __cplusplus
}
#endif
#endif // GDNATIVE_COLOR_H

View File

@ -0,0 +1,104 @@
/**************************************************************************/
/* dictionary.h */
/**************************************************************************/
/* This file is part of: */
/* PANDEMONIUM ENGINE */
/* https://pandemoniumengine.org */
/**************************************************************************/
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
/* "Software"), to deal in the Software without restriction, including */
/* without limitation the rights to use, copy, modify, merge, publish, */
/* distribute, sublicense, and/or sell copies of the Software, and to */
/* permit persons to whom the Software is furnished to do so, subject to */
/* the following conditions: */
/* */
/* The above copyright notice and this permission notice shall be */
/* included in all copies or substantial portions of the Software. */
/* */
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/**************************************************************************/
#ifndef GDNATIVE_DICTIONARY_H
#define GDNATIVE_DICTIONARY_H
#ifdef __cplusplus
extern "C" {
#endif
#include <stdint.h>
#define PANDEMONIUM_DICTIONARY_SIZE sizeof(void *)
#ifndef PANDEMONIUM_CORE_API_PANDEMONIUM_DICTIONARY_TYPE_DEFINED
#define PANDEMONIUM_CORE_API_PANDEMONIUM_DICTIONARY_TYPE_DEFINED
typedef struct {
uint8_t _dont_touch_that[PANDEMONIUM_DICTIONARY_SIZE];
} pandemonium_dictionary;
#endif
// reduce extern "C" nesting for VS2013
#ifdef __cplusplus
}
#endif
#include <gdn/array.h>
#include <gdn/gdnative.h>
#include <gdn/variant.h>
#ifdef __cplusplus
extern "C" {
#endif
pandemonium_variant GDAPI *pandemonium_dictionary_operator_index(pandemonium_dictionary *p_self, const pandemonium_variant *p_key);
const pandemonium_variant GDAPI *pandemonium_dictionary_operator_index_const(const pandemonium_dictionary *p_self, const pandemonium_variant *p_key);
pandemonium_variant GDAPI pandemonium_dictionary_get(const pandemonium_dictionary *p_self, const pandemonium_variant *p_key);
void GDAPI pandemonium_dictionary_set(pandemonium_dictionary *p_self, const pandemonium_variant *p_key, const pandemonium_variant *p_value);
pandemonium_variant GDAPI pandemonium_dictionary_get_with_default(const pandemonium_dictionary *p_self, const pandemonium_variant *p_key, const pandemonium_variant *p_default);
pandemonium_int GDAPI pandemonium_dictionary_size(const pandemonium_dictionary *p_self);
pandemonium_bool GDAPI pandemonium_dictionary_empty(const pandemonium_dictionary *p_self);
void GDAPI pandemonium_dictionary_clear(pandemonium_dictionary *p_self);
void GDAPI pandemonium_dictionary_merge(pandemonium_dictionary *p_self, const pandemonium_dictionary *p_dictionary);
void GDAPI pandemonium_dictionary_merge_overwrite(pandemonium_dictionary *p_self, const pandemonium_dictionary *p_dictionary, const pandemonium_bool p_overwrite);
pandemonium_bool GDAPI pandemonium_dictionary_has(const pandemonium_dictionary *p_self, const pandemonium_variant *p_key);
pandemonium_bool GDAPI pandemonium_dictionary_has_all(const pandemonium_dictionary *p_self, const pandemonium_array *p_keys);
void GDAPI pandemonium_dictionary_erase(pandemonium_dictionary *p_self, const pandemonium_variant *p_key);
pandemonium_bool GDAPI pandemonium_dictionary_erase_with_return(pandemonium_dictionary *p_self, const pandemonium_variant *p_key);
pandemonium_bool GDAPI pandemonium_dictionary_deep_equal(const pandemonium_dictionary *p_self, const pandemonium_dictionary *p_dictionary);
pandemonium_bool GDAPI pandemonium_dictionary_deep_equal_recursion_count(const pandemonium_dictionary *p_self, const pandemonium_dictionary *p_dictionary, pandemonium_int p_recursion_count);
pandemonium_bool GDAPI pandemonium_dictionary_operator_equal(const pandemonium_dictionary *p_self, const pandemonium_dictionary *p_b);
pandemonium_int GDAPI pandemonium_dictionary_hash(const pandemonium_dictionary *p_self);
pandemonium_variant GDAPI *pandemonium_dictionary_next(const pandemonium_dictionary *p_self, const pandemonium_variant *p_key);
pandemonium_array GDAPI pandemonium_dictionary_keys(const pandemonium_dictionary *p_self);
pandemonium_array GDAPI pandemonium_dictionary_values(const pandemonium_dictionary *p_self);
pandemonium_dictionary GDAPI pandemonium_dictionary_duplicate(const pandemonium_dictionary *p_self, const pandemonium_bool p_deep);
pandemonium_string GDAPI pandemonium_dictionary_to_json(const pandemonium_dictionary *p_self);
void GDAPI pandemonium_dictionary_new(pandemonium_dictionary *r_dest);
void GDAPI pandemonium_dictionary_new_copy(pandemonium_dictionary *r_dest, const pandemonium_dictionary *p_src);
void GDAPI pandemonium_dictionary_destroy(pandemonium_dictionary *p_self);
#ifdef __cplusplus
}
#endif
#endif // GDNATIVE_DICTIONARY_H

View File

@ -0,0 +1,329 @@
/**************************************************************************/
/* gdnative.h */
/**************************************************************************/
/* This file is part of: */
/* PANDEMONIUM ENGINE */
/* https://pandemoniumengine.org */
/**************************************************************************/
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
/* "Software"), to deal in the Software without restriction, including */
/* without limitation the rights to use, copy, modify, merge, publish, */
/* distribute, sublicense, and/or sell copies of the Software, and to */
/* permit persons to whom the Software is furnished to do so, subject to */
/* the following conditions: */
/* */
/* The above copyright notice and this permission notice shall be */
/* included in all copies or substantial portions of the Software. */
/* */
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/**************************************************************************/
#ifndef GDNATIVE_GDNATIVE_H
#define GDNATIVE_GDNATIVE_H
#ifdef __cplusplus
extern "C" {
#endif
#if defined(_WIN32) || defined(__ANDROID__)
#define GDCALLINGCONV
#define GDAPI GDCALLINGCONV
#elif defined(__APPLE__)
#include "TargetConditionals.h"
#if TARGET_OS_IPHONE
#define GDCALLINGCONV __attribute__((visibility("default")))
#define GDAPI GDCALLINGCONV
#elif TARGET_OS_MAC
#define GDCALLINGCONV __attribute__((sysv_abi))
#define GDAPI GDCALLINGCONV
#endif
#else // !_WIN32 && !__APPLE__
#define GDCALLINGCONV __attribute__((sysv_abi))
#define GDAPI GDCALLINGCONV
#endif
// This is for libraries *using* the header, NOT PANDEMONIUM EXPOSING STUFF!!
#if !defined(GDN_EXPORT)
#if defined(_WIN32)
#define GDN_EXPORT __declspec(dllexport)
#elif defined(__GNUC__)
#define GDN_EXPORT __attribute__((visibility("default")))
#else
#define GDN_EXPORT
#endif
#endif
#include <stdbool.h>
#include <stdint.h>
#define PANDEMONIUM_API_VERSION 1
////// Error
typedef enum {
PANDEMONIUM_OK, // (0)
PANDEMONIUM_FAILED, ///< Generic fail error
PANDEMONIUM_ERR_UNAVAILABLE, ///< What is requested is unsupported/unavailable
PANDEMONIUM_ERR_UNCONFIGURED, ///< The object being used hasn't been properly set up yet
PANDEMONIUM_ERR_UNAUTHORIZED, ///< Missing credentials for requested resource
PANDEMONIUM_ERR_PARAMETER_RANGE_ERROR, ///< Parameter given out of range (5)
PANDEMONIUM_ERR_OUT_OF_MEMORY, ///< Out of memory
PANDEMONIUM_ERR_FILE_NOT_FOUND,
PANDEMONIUM_ERR_FILE_BAD_DRIVE,
PANDEMONIUM_ERR_FILE_BAD_PATH,
PANDEMONIUM_ERR_FILE_NO_PERMISSION, // (10)
PANDEMONIUM_ERR_FILE_ALREADY_IN_USE,
PANDEMONIUM_ERR_FILE_CANT_OPEN,
PANDEMONIUM_ERR_FILE_CANT_WRITE,
PANDEMONIUM_ERR_FILE_CANT_READ,
PANDEMONIUM_ERR_FILE_UNRECOGNIZED, // (15)
PANDEMONIUM_ERR_FILE_CORRUPT,
PANDEMONIUM_ERR_FILE_MISSING_DEPENDENCIES,
PANDEMONIUM_ERR_FILE_EOF,
PANDEMONIUM_ERR_CANT_OPEN, ///< Can't open a resource/socket/file
PANDEMONIUM_ERR_CANT_CREATE, // (20)
PANDEMONIUM_ERR_QUERY_FAILED,
PANDEMONIUM_ERR_ALREADY_IN_USE,
PANDEMONIUM_ERR_LOCKED, ///< resource is locked
PANDEMONIUM_ERR_TIMEOUT,
PANDEMONIUM_ERR_CANT_CONNECT, // (25)
PANDEMONIUM_ERR_CANT_RESOLVE,
PANDEMONIUM_ERR_CONNECTION_ERROR,
PANDEMONIUM_ERR_CANT_ACQUIRE_RESOURCE,
PANDEMONIUM_ERR_CANT_FORK,
PANDEMONIUM_ERR_INVALID_DATA, ///< Data passed is invalid (30)
PANDEMONIUM_ERR_INVALID_PARAMETER, ///< Parameter passed is invalid
PANDEMONIUM_ERR_ALREADY_EXISTS, ///< When adding, item already exists
PANDEMONIUM_ERR_DOES_NOT_EXIST, ///< When retrieving/erasing, it item does not exist
PANDEMONIUM_ERR_DATABASE_CANT_READ, ///< database is full
PANDEMONIUM_ERR_DATABASE_CANT_WRITE, ///< database is full (35)
PANDEMONIUM_ERR_COMPILATION_FAILED,
PANDEMONIUM_ERR_METHOD_NOT_FOUND,
PANDEMONIUM_ERR_LINK_FAILED,
PANDEMONIUM_ERR_SCRIPT_FAILED,
PANDEMONIUM_ERR_CYCLIC_LINK, // (40)
PANDEMONIUM_ERR_INVALID_DECLARATION,
PANDEMONIUM_ERR_DUPLICATE_SYMBOL,
PANDEMONIUM_ERR_PARSE_ERROR,
PANDEMONIUM_ERR_BUSY,
PANDEMONIUM_ERR_SKIP, // (45)
PANDEMONIUM_ERR_HELP, ///< user requested help!!
PANDEMONIUM_ERR_BUG, ///< a bug in the software certainly happened, due to a double check failing or unexpected behavior.
PANDEMONIUM_ERR_PRINTER_ON_FIRE, /// the parallel port printer is engulfed in flames
} pandemonium_error;
////// bool
typedef bool pandemonium_bool;
#define PANDEMONIUM_TRUE 1
#define PANDEMONIUM_FALSE 0
/////// int
typedef int pandemonium_int;
/////// real
// TODO add real_t -> float/double support!
// If the engine is built with doubles as real_t this won't work, as the structs won't line up!
typedef float pandemonium_real;
/////// Object (forward declared)
typedef void pandemonium_object;
/////// String
#include <gdn/string.h>
/////// String name
#include <gdn/string_name.h>
////// Vector2
#include <gdn/vector2.h>
////// Vector2i
#include <gdn/vector2i.h>
////// Rect2
#include <gdn/rect2.h>
////// Rect2i
#include <gdn/rect2i.h>
////// Vector3
#include <gdn/vector3.h>
////// Vector3i
#include <gdn/vector3i.h>
////// Vector4
#include <gdn/vector4.h>
////// Vector4i
#include <gdn/vector4i.h>
////// Transform2D
#include <gdn/transform2d.h>
/////// Plane
#include <gdn/plane.h>
/////// Quaternion
#include <gdn/quaternion.h>
/////// AABB
#include <gdn/aabb.h>
/////// Basis
#include <gdn/basis.h>
/////// Transform
#include <gdn/transform.h>
/////// Projection
#include <gdn/projection.h>
/////// Color
#include <gdn/color.h>
/////// NodePath
#include <gdn/node_path.h>
/////// RID
#include <gdn/rid.h>
/////// Dictionary
#include <gdn/dictionary.h>
/////// Array
#include <gdn/array.h>
// single API file for Pool*Array
#include <gdn/pool_arrays.h>
void GDAPI pandemonium_object_destroy(pandemonium_object *p_o);
////// Variant
#include <gdn/variant.h>
////// Singleton API
pandemonium_object GDAPI *pandemonium_global_get_singleton(char *p_name); // result shouldn't be freed
////// MethodBind API
typedef struct {
uint8_t _dont_touch_that[1]; // TODO
} pandemonium_method_bind;
pandemonium_method_bind GDAPI *pandemonium_method_bind_get_method(const char *p_classname, const char *p_methodname);
void GDAPI pandemonium_method_bind_ptrcall(pandemonium_method_bind *p_method_bind, pandemonium_object *p_instance, const void **p_args, void *p_ret);
pandemonium_variant GDAPI pandemonium_method_bind_call(pandemonium_method_bind *p_method_bind, pandemonium_object *p_instance, const pandemonium_variant **p_args, const int p_arg_count, pandemonium_variant_call_error *p_call_error);
////// Script API
typedef struct pandemonium_gdnative_api_version {
unsigned int major;
unsigned int minor;
} pandemonium_gdnative_api_version;
typedef struct pandemonium_gdnative_api_struct pandemonium_gdnative_api_struct;
struct pandemonium_gdnative_api_struct {
unsigned int type;
pandemonium_gdnative_api_version version;
const pandemonium_gdnative_api_struct *next;
};
#define GDNATIVE_VERSION_COMPATIBLE(want, have) (want.major == have.major && want.minor <= have.minor)
typedef struct {
pandemonium_bool in_editor;
uint64_t core_api_hash;
uint64_t editor_api_hash;
uint64_t no_api_hash;
void (*report_version_mismatch)(const pandemonium_object *p_library, const char *p_what, pandemonium_gdnative_api_version p_want, pandemonium_gdnative_api_version p_have);
void (*report_loading_error)(const pandemonium_object *p_library, const char *p_what);
pandemonium_object *gd_native_library; // pointer to GDNativeLibrary that is being initialized
const struct pandemonium_gdnative_core_api_struct *api_struct;
const pandemonium_string *active_library_path;
} pandemonium_gdnative_init_options;
typedef struct {
pandemonium_bool in_editor;
} pandemonium_gdnative_terminate_options;
// Calling convention?
typedef pandemonium_object *(*pandemonium_class_constructor)();
pandemonium_class_constructor GDAPI pandemonium_get_class_constructor(const char *p_classname);
pandemonium_dictionary GDAPI pandemonium_get_global_constants();
////// GDNative procedure types
typedef void (*pandemonium_gdnative_init_fn)(pandemonium_gdnative_init_options *);
typedef void (*pandemonium_gdnative_terminate_fn)(pandemonium_gdnative_terminate_options *);
typedef pandemonium_variant (*pandemonium_gdnative_procedure_fn)(pandemonium_array *);
////// System Functions
typedef pandemonium_variant (*native_call_cb)(void *, pandemonium_array *);
void GDAPI pandemonium_register_native_call_type(const char *p_call_type, native_call_cb p_callback);
//using these will help Pandemonium track how much memory is in use in debug mode
void GDAPI *pandemonium_alloc(int p_bytes);
void GDAPI *pandemonium_realloc(void *p_ptr, int p_bytes);
void GDAPI pandemonium_free(void *p_ptr);
//print using Pandemonium's error handler list
void GDAPI pandemonium_print_error(const char *p_description, const char *p_function, const char *p_file, int p_line);
void GDAPI pandemonium_print_warning(const char *p_description, const char *p_function, const char *p_file, int p_line);
void GDAPI pandemonium_print(const pandemonium_string *p_message);
bool GDAPI pandemonium_is_instance_valid(const pandemonium_object *p_object);
//tags used for safe dynamic casting
void GDAPI *pandemonium_get_class_tag(const pandemonium_string_name *p_class);
pandemonium_object GDAPI *pandemonium_object_cast_to(const pandemonium_object *p_object, void *p_class_tag);
// equivalent of GDScript's instance_from_id
pandemonium_object GDAPI *pandemonium_instance_from_id(pandemonium_int p_instance_id);
#ifdef __cplusplus
}
#endif
#endif // GDNATIVE_GDNATIVE_H

View File

@ -0,0 +1,98 @@
/**************************************************************************/
/* node_path.h */
/**************************************************************************/
/* This file is part of: */
/* PANDEMONIUM ENGINE */
/* https://pandemoniumengine.org */
/**************************************************************************/
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
/* "Software"), to deal in the Software without restriction, including */
/* without limitation the rights to use, copy, modify, merge, publish, */
/* distribute, sublicense, and/or sell copies of the Software, and to */
/* permit persons to whom the Software is furnished to do so, subject to */
/* the following conditions: */
/* */
/* The above copyright notice and this permission notice shall be */
/* included in all copies or substantial portions of the Software. */
/* */
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/**************************************************************************/
#ifndef GDNATIVE_NODE_PATH_H
#define GDNATIVE_NODE_PATH_H
#ifdef __cplusplus
extern "C" {
#endif
#include <stdint.h>
#define PANDEMONIUM_NODE_PATH_SIZE sizeof(void *)
#ifndef PANDEMONIUM_CORE_API_PANDEMONIUM_NODE_PATH_TYPE_DEFINED
#define PANDEMONIUM_CORE_API_PANDEMONIUM_NODE_PATH_TYPE_DEFINED
typedef struct {
uint8_t _dont_touch_that[PANDEMONIUM_NODE_PATH_SIZE];
} pandemonium_node_path;
#endif
// reduce extern "C" nesting for VS2013
#ifdef __cplusplus
}
#endif
#include <gdn/gdnative.h>
#include <gdn/string.h>
#include <gdn/string_name.h>
#ifdef __cplusplus
extern "C" {
#endif
pandemonium_string_name GDAPI pandemonium_node_path_get_sname(const pandemonium_node_path *p_self);
pandemonium_bool GDAPI pandemonium_node_path_is_absolute(const pandemonium_node_path *p_self);
pandemonium_int GDAPI pandemonium_node_path_get_name_count(const pandemonium_node_path *p_self);
pandemonium_string GDAPI pandemonium_node_path_get_name(const pandemonium_node_path *p_self, const pandemonium_int p_idx);
pandemonium_int GDAPI pandemonium_node_path_get_subname_count(const pandemonium_node_path *p_self);
pandemonium_string GDAPI pandemonium_node_path_get_subname(const pandemonium_node_path *p_self, const pandemonium_int p_idx);
//Vector<StringName> get_names() const;
//Vector<StringName> get_subnames() const;
pandemonium_string GDAPI pandemonium_node_path_get_concatenated_subnames(const pandemonium_node_path *p_self);
pandemonium_node_path GDAPI pandemonium_node_path_rel_path_to(const pandemonium_node_path *p_self, const pandemonium_node_path *p_np);
pandemonium_node_path pandemonium_node_path_get_as_property_path(const pandemonium_node_path *p_self);
void GDAPI pandemonium_node_path_prepend_period(pandemonium_node_path *p_self);
pandemonium_int GDAPI pandemonium_node_path_hash(const pandemonium_node_path *p_self);
pandemonium_string GDAPI pandemonium_node_path_as_string(const pandemonium_node_path *p_self);
pandemonium_bool GDAPI pandemonium_node_path_is_empty(const pandemonium_node_path *p_self);
pandemonium_bool GDAPI pandemonium_node_path_operator_equal(const pandemonium_node_path *p_self, const pandemonium_node_path *p_b);
void GDAPI pandemonium_node_path_simplify(pandemonium_node_path *p_self);
pandemonium_node_path GDAPI pandemonium_node_path_simplified(const pandemonium_node_path *p_self);
//NodePath(const Vector<StringName> &p_path, bool p_absolute);
//NodePath(const Vector<StringName> &p_path, const Vector<StringName> &p_subpath, bool p_absolute);
void GDAPI pandemonium_node_path_new(pandemonium_node_path *r_dest, const pandemonium_string *p_from);
void GDAPI pandemonium_node_path_new_copy(pandemonium_node_path *r_dest, const pandemonium_node_path *p_src);
void GDAPI pandemonium_node_path_destroy(pandemonium_node_path *p_self);
#ifdef __cplusplus
}
#endif
#endif // GDNATIVE_NODE_PATH_H

View File

@ -0,0 +1,100 @@
/**************************************************************************/
/* plane.h */
/**************************************************************************/
/* This file is part of: */
/* PANDEMONIUM ENGINE */
/* https://pandemoniumengine.org */
/**************************************************************************/
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
/* "Software"), to deal in the Software without restriction, including */
/* without limitation the rights to use, copy, modify, merge, publish, */
/* distribute, sublicense, and/or sell copies of the Software, and to */
/* permit persons to whom the Software is furnished to do so, subject to */
/* the following conditions: */
/* */
/* The above copyright notice and this permission notice shall be */
/* included in all copies or substantial portions of the Software. */
/* */
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/**************************************************************************/
#ifndef GDNATIVE_PLANE_H
#define GDNATIVE_PLANE_H
#ifdef __cplusplus
extern "C" {
#endif
#include <stdint.h>
#define PANDEMONIUM_PLANE_SIZE 16
#ifndef PANDEMONIUM_CORE_API_PANDEMONIUM_PLANE_TYPE_DEFINED
#define PANDEMONIUM_CORE_API_PANDEMONIUM_PLANE_TYPE_DEFINED
typedef struct {
uint8_t _dont_touch_that[PANDEMONIUM_PLANE_SIZE];
} pandemonium_plane;
#endif
// reduce extern "C" nesting for VS2013
#ifdef __cplusplus
}
#endif
#include <gdn/gdnative.h>
#include <gdn/vector3.h>
#ifdef __cplusplus
extern "C" {
#endif
pandemonium_real GDAPI pandemonium_plane_get_d(const pandemonium_plane *p_self);
void GDAPI pandemonium_plane_set_d(pandemonium_plane *p_self, const pandemonium_real p_d);
void GDAPI pandemonium_plane_set_normal(pandemonium_plane *p_self, const pandemonium_vector3 *p_normal);
pandemonium_vector3 GDAPI pandemonium_plane_get_normal(const pandemonium_plane *p_self);
void GDAPI pandemonium_plane_normalize(pandemonium_plane *p_self);
pandemonium_plane GDAPI pandemonium_plane_normalized(const pandemonium_plane *p_self);
pandemonium_vector3 GDAPI pandemonium_plane_center(const pandemonium_plane *p_self);
pandemonium_vector3 GDAPI pandemonium_plane_get_any_point(const pandemonium_plane *p_self);
pandemonium_vector3 GDAPI pandemonium_plane_get_any_perpendicular_normal(const pandemonium_plane *p_self);
pandemonium_bool GDAPI pandemonium_plane_is_point_over(const pandemonium_plane *p_self, const pandemonium_vector3 *p_point);
pandemonium_real GDAPI pandemonium_plane_distance_to(const pandemonium_plane *p_self, const pandemonium_vector3 *p_point);
pandemonium_bool GDAPI pandemonium_plane_has_point(const pandemonium_plane *p_self, const pandemonium_vector3 *p_point, const pandemonium_real p_epsilon);
pandemonium_bool GDAPI pandemonium_plane_intersect_3(const pandemonium_plane *p_self, pandemonium_vector3 *r_dest, const pandemonium_plane *p_b, const pandemonium_plane *p_c);
pandemonium_bool GDAPI pandemonium_plane_intersects_ray(const pandemonium_plane *p_self, pandemonium_vector3 *r_dest, const pandemonium_vector3 *p_from, const pandemonium_vector3 *p_dir);
pandemonium_bool GDAPI pandemonium_plane_intersects_segment(const pandemonium_plane *p_self, pandemonium_vector3 *r_dest, const pandemonium_vector3 *p_begin, const pandemonium_vector3 *p_end);
pandemonium_vector3 GDAPI pandemonium_plane_project(const pandemonium_plane *p_self, const pandemonium_vector3 *p_point);
pandemonium_plane GDAPI pandemonium_plane_operator_neg(const pandemonium_plane *p_self);
pandemonium_bool GDAPI pandemonium_plane_is_equal_approx(const pandemonium_plane *p_self, const pandemonium_plane *p_plane);
pandemonium_bool GDAPI pandemonium_plane_is_equal_approx_any_side(const pandemonium_plane *p_self, const pandemonium_plane *p_plane);
pandemonium_bool GDAPI pandemonium_plane_operator_equal(const pandemonium_plane *p_self, const pandemonium_plane *p_b);
pandemonium_string GDAPI pandemonium_plane_as_string(const pandemonium_plane *p_self);
void GDAPI pandemonium_plane_new_with_reals(pandemonium_plane *r_dest, const pandemonium_real p_a, const pandemonium_real p_b, const pandemonium_real p_c, const pandemonium_real p_d);
void GDAPI pandemonium_plane_new_with_vectors(pandemonium_plane *r_dest, const pandemonium_vector3 *p_v1, const pandemonium_vector3 *p_v2, const pandemonium_vector3 *p_v3);
void GDAPI pandemonium_plane_new_with_normal(pandemonium_plane *r_dest, const pandemonium_vector3 *p_normal, const pandemonium_real p_d);
#ifdef __cplusplus
}
#endif
#endif // GDNATIVE_PLANE_H

View File

@ -0,0 +1,822 @@
/**************************************************************************/
/* pool_arrays.h */
/**************************************************************************/
/* This file is part of: */
/* PANDEMONIUM ENGINE */
/* https://pandemoniumengine.org */
/**************************************************************************/
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
/* "Software"), to deal in the Software without restriction, including */
/* without limitation the rights to use, copy, modify, merge, publish, */
/* distribute, sublicense, and/or sell copies of the Software, and to */
/* permit persons to whom the Software is furnished to do so, subject to */
/* the following conditions: */
/* */
/* The above copyright notice and this permission notice shall be */
/* included in all copies or substantial portions of the Software. */
/* */
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/**************************************************************************/
#ifndef GDNATIVE_POOL_ARRAYS_H
#define GDNATIVE_POOL_ARRAYS_H
#ifdef __cplusplus
extern "C" {
#endif
#include <stdint.h>
/////// Read Access
#define PANDEMONIUM_POOL_ARRAY_READ_ACCESS_SIZE 1
typedef struct {
uint8_t _dont_touch_that[PANDEMONIUM_POOL_ARRAY_READ_ACCESS_SIZE];
} pandemonium_pool_array_read_access;
typedef pandemonium_pool_array_read_access pandemonium_pool_byte_array_read_access;
typedef pandemonium_pool_array_read_access pandemonium_pool_int_array_read_access;
typedef pandemonium_pool_array_read_access pandemonium_pool_real_array_read_access;
typedef pandemonium_pool_array_read_access pandemonium_pool_string_array_read_access;
typedef pandemonium_pool_array_read_access pandemonium_pool_vector2_array_read_access;
typedef pandemonium_pool_array_read_access pandemonium_pool_vector2i_array_read_access;
typedef pandemonium_pool_array_read_access pandemonium_pool_vector3_array_read_access;
typedef pandemonium_pool_array_read_access pandemonium_pool_vector3i_array_read_access;
typedef pandemonium_pool_array_read_access pandemonium_pool_vector4_array_read_access;
typedef pandemonium_pool_array_read_access pandemonium_pool_vector4i_array_read_access;
typedef pandemonium_pool_array_read_access pandemonium_pool_color_array_read_access;
/////// Write Access
#define PANDEMONIUM_POOL_ARRAY_WRITE_ACCESS_SIZE 1
typedef struct {
uint8_t _dont_touch_that[PANDEMONIUM_POOL_ARRAY_WRITE_ACCESS_SIZE];
} pandemonium_pool_array_write_access;
typedef pandemonium_pool_array_write_access pandemonium_pool_byte_array_write_access;
typedef pandemonium_pool_array_write_access pandemonium_pool_int_array_write_access;
typedef pandemonium_pool_array_write_access pandemonium_pool_real_array_write_access;
typedef pandemonium_pool_array_write_access pandemonium_pool_string_array_write_access;
typedef pandemonium_pool_array_write_access pandemonium_pool_vector2_array_write_access;
typedef pandemonium_pool_array_write_access pandemonium_pool_vector2i_array_write_access;
typedef pandemonium_pool_array_write_access pandemonium_pool_vector3_array_write_access;
typedef pandemonium_pool_array_write_access pandemonium_pool_vector3i_array_write_access;
typedef pandemonium_pool_array_write_access pandemonium_pool_vector4_array_write_access;
typedef pandemonium_pool_array_write_access pandemonium_pool_vector4i_array_write_access;
typedef pandemonium_pool_array_write_access pandemonium_pool_color_array_write_access;
/////// PoolByteArray
#define PANDEMONIUM_POOL_BYTE_ARRAY_SIZE sizeof(void *)
#ifndef PANDEMONIUM_CORE_API_PANDEMONIUM_POOL_BYTE_ARRAY_TYPE_DEFINED
#define PANDEMONIUM_CORE_API_PANDEMONIUM_POOL_BYTE_ARRAY_TYPE_DEFINED
typedef struct {
uint8_t _dont_touch_that[PANDEMONIUM_POOL_BYTE_ARRAY_SIZE];
} pandemonium_pool_byte_array;
#endif
/////// PoolIntArray
#define PANDEMONIUM_POOL_INT_ARRAY_SIZE sizeof(void *)
#ifndef PANDEMONIUM_CORE_API_PANDEMONIUM_POOL_INT_ARRAY_TYPE_DEFINED
#define PANDEMONIUM_CORE_API_PANDEMONIUM_POOL_INT_ARRAY_TYPE_DEFINED
typedef struct {
uint8_t _dont_touch_that[PANDEMONIUM_POOL_INT_ARRAY_SIZE];
} pandemonium_pool_int_array;
#endif
/////// PoolRealArray
#define PANDEMONIUM_POOL_REAL_ARRAY_SIZE sizeof(void *)
#ifndef PANDEMONIUM_CORE_API_PANDEMONIUM_POOL_REAL_ARRAY_TYPE_DEFINED
#define PANDEMONIUM_CORE_API_PANDEMONIUM_POOL_REAL_ARRAY_TYPE_DEFINED
typedef struct {
uint8_t _dont_touch_that[PANDEMONIUM_POOL_REAL_ARRAY_SIZE];
} pandemonium_pool_real_array;
#endif
/////// PoolStringArray
#define PANDEMONIUM_POOL_STRING_ARRAY_SIZE sizeof(void *)
#ifndef PANDEMONIUM_CORE_API_PANDEMONIUM_POOL_STRING_ARRAY_TYPE_DEFINED
#define PANDEMONIUM_CORE_API_PANDEMONIUM_POOL_STRING_ARRAY_TYPE_DEFINED
typedef struct {
uint8_t _dont_touch_that[PANDEMONIUM_POOL_STRING_ARRAY_SIZE];
} pandemonium_pool_string_array;
#endif
/////// PoolVector2Array
#define PANDEMONIUM_POOL_VECTOR2_ARRAY_SIZE sizeof(void *)
#ifndef PANDEMONIUM_CORE_API_PANDEMONIUM_POOL_VECTOR2_ARRAY_TYPE_DEFINED
#define PANDEMONIUM_CORE_API_PANDEMONIUM_POOL_VECTOR2_ARRAY_TYPE_DEFINED
typedef struct {
uint8_t _dont_touch_that[PANDEMONIUM_POOL_VECTOR2_ARRAY_SIZE];
} pandemonium_pool_vector2_array;
#endif
/////// PoolVector2iArray
#define PANDEMONIUM_POOL_VECTOR2I_ARRAY_SIZE sizeof(void *)
#ifndef PANDEMONIUM_CORE_API_PANDEMONIUM_POOL_VECTOR2I_ARRAY_TYPE_DEFINED
#define PANDEMONIUM_CORE_API_PANDEMONIUM_POOL_VECTOR2I_ARRAY_TYPE_DEFINED
typedef struct {
uint8_t _dont_touch_that[PANDEMONIUM_POOL_VECTOR2I_ARRAY_SIZE];
} pandemonium_pool_vector2i_array;
#endif
/////// PoolVector3Array
#define PANDEMONIUM_POOL_VECTOR3_ARRAY_SIZE sizeof(void *)
#ifndef PANDEMONIUM_CORE_API_PANDEMONIUM_POOL_VECTOR3_ARRAY_TYPE_DEFINED
#define PANDEMONIUM_CORE_API_PANDEMONIUM_POOL_VECTOR3_ARRAY_TYPE_DEFINED
typedef struct {
uint8_t _dont_touch_that[PANDEMONIUM_POOL_VECTOR3_ARRAY_SIZE];
} pandemonium_pool_vector3_array;
#endif
/////// PoolVector3iArray
#define PANDEMONIUM_POOL_VECTOR3I_ARRAY_SIZE sizeof(void *)
#ifndef PANDEMONIUM_CORE_API_PANDEMONIUM_POOL_VECTOR3I_ARRAY_TYPE_DEFINED
#define PANDEMONIUM_CORE_API_PANDEMONIUM_POOL_VECTOR3I_ARRAY_TYPE_DEFINED
typedef struct {
uint8_t _dont_touch_that[PANDEMONIUM_POOL_VECTOR3I_ARRAY_SIZE];
} pandemonium_pool_vector3i_array;
#endif
/////// PoolVector4Array
#define PANDEMONIUM_POOL_VECTOR4_ARRAY_SIZE sizeof(void *)
#ifndef PANDEMONIUM_CORE_API_PANDEMONIUM_POOL_VECTOR4_ARRAY_TYPE_DEFINED
#define PANDEMONIUM_CORE_API_PANDEMONIUM_POOL_VECTOR4_ARRAY_TYPE_DEFINED
typedef struct {
uint8_t _dont_touch_that[PANDEMONIUM_POOL_VECTOR4_ARRAY_SIZE];
} pandemonium_pool_vector4_array;
#endif
/////// PoolVector4iArray
#define PANDEMONIUM_POOL_VECTOR4I_ARRAY_SIZE sizeof(void *)
#ifndef PANDEMONIUM_CORE_API_PANDEMONIUM_POOL_VECTOR4I_ARRAY_TYPE_DEFINED
#define PANDEMONIUM_CORE_API_PANDEMONIUM_POOL_VECTOR4I_ARRAY_TYPE_DEFINED
typedef struct {
uint8_t _dont_touch_that[PANDEMONIUM_POOL_VECTOR4I_ARRAY_SIZE];
} pandemonium_pool_vector4i_array;
#endif
/////// PoolColorArray
#define PANDEMONIUM_POOL_COLOR_ARRAY_SIZE sizeof(void *)
#ifndef PANDEMONIUM_CORE_API_PANDEMONIUM_POOL_COLOR_ARRAY_TYPE_DEFINED
#define PANDEMONIUM_CORE_API_PANDEMONIUM_POOL_COLOR_ARRAY_TYPE_DEFINED
typedef struct {
uint8_t _dont_touch_that[PANDEMONIUM_POOL_COLOR_ARRAY_SIZE];
} pandemonium_pool_color_array;
#endif
// reduce extern "C" nesting for VS2013
#ifdef __cplusplus
}
#endif
#include <gdn/array.h>
#include <gdn/color.h>
#include <gdn/vector2.h>
#include <gdn/vector2i.h>
#include <gdn/vector3.h>
#include <gdn/vector3i.h>
#include <gdn/vector4.h>
#include <gdn/vector4i.h>
#include <gdn/gdnative.h>
#ifdef __cplusplus
extern "C" {
#endif
// byte
pandemonium_pool_byte_array_read_access GDAPI *pandemonium_pool_byte_array_read(const pandemonium_pool_byte_array *p_self);
pandemonium_pool_byte_array_write_access GDAPI *pandemonium_pool_byte_array_write(pandemonium_pool_byte_array *p_self);
void GDAPI pandemonium_pool_byte_array_remove(pandemonium_pool_byte_array *p_self, const pandemonium_int p_idx);
pandemonium_int GDAPI pandemonium_pool_byte_array_size(const pandemonium_pool_byte_array *p_self);
pandemonium_bool GDAPI pandemonium_pool_byte_array_empty(const pandemonium_pool_byte_array *p_self);
void GDAPI pandemonium_pool_byte_array_set(pandemonium_pool_byte_array *p_self, const pandemonium_int p_idx, const uint8_t p_data);
uint8_t GDAPI pandemonium_pool_byte_array_get(const pandemonium_pool_byte_array *p_self, const pandemonium_int p_idx);
void GDAPI pandemonium_pool_byte_array_fill(pandemonium_pool_byte_array *p_self, const pandemonium_int p_val);
void GDAPI pandemonium_pool_byte_array_push_back(pandemonium_pool_byte_array *p_self, const uint8_t p_data);
void GDAPI pandemonium_pool_byte_array_append(pandemonium_pool_byte_array *p_self, const uint8_t p_data);
void GDAPI pandemonium_pool_byte_array_append_array(pandemonium_pool_byte_array *p_self, const pandemonium_pool_byte_array *p_array);
pandemonium_pool_byte_array GDAPI pandemonium_pool_byte_array_subarray(const pandemonium_pool_byte_array *p_self, pandemonium_int p_from, pandemonium_int p_to);
pandemonium_error GDAPI pandemonium_pool_byte_array_insert(pandemonium_pool_byte_array *p_self, const pandemonium_int p_idx, const uint8_t p_data);
pandemonium_bool GDAPI pandemonium_pool_byte_array_contains(const pandemonium_pool_byte_array *p_self, const pandemonium_int p_val);
pandemonium_int GDAPI pandemonium_pool_byte_array_find(const pandemonium_pool_byte_array *p_self, const pandemonium_int p_val);
pandemonium_int GDAPI pandemonium_pool_byte_array_find_from(const pandemonium_pool_byte_array *p_self, const pandemonium_int p_val, pandemonium_int p_from);
pandemonium_int GDAPI pandemonium_pool_byte_array_rfind(const pandemonium_pool_byte_array *p_self, const pandemonium_int p_val);
pandemonium_int GDAPI pandemonium_pool_byte_array_rfind_from(const pandemonium_pool_byte_array *p_self, const pandemonium_int p_val, pandemonium_int p_from);
pandemonium_int GDAPI pandemonium_pool_byte_array_count(const pandemonium_pool_byte_array *p_self, const pandemonium_int p_val);
pandemonium_bool GDAPI pandemonium_pool_byte_array_has(const pandemonium_pool_byte_array *p_self, const uint8_t p_data);
pandemonium_bool GDAPI pandemonium_pool_byte_array_is_locked(const pandemonium_pool_byte_array *p_self);
void GDAPI pandemonium_pool_byte_array_resize(pandemonium_pool_byte_array *p_self, const pandemonium_int p_size);
pandemonium_int GDAPI pandemonium_pool_byte_array_clear(pandemonium_pool_byte_array *p_self);
void GDAPI pandemonium_pool_byte_array_invert(pandemonium_pool_byte_array *p_self);
void GDAPI pandemonium_pool_byte_array_sort(pandemonium_pool_byte_array *p_self);
void GDAPI pandemonium_pool_byte_array_new(pandemonium_pool_byte_array *r_dest);
void GDAPI pandemonium_pool_byte_array_new_copy(pandemonium_pool_byte_array *r_dest, const pandemonium_pool_byte_array *p_src);
void GDAPI pandemonium_pool_byte_array_new_with_array(pandemonium_pool_byte_array *r_dest, const pandemonium_array *p_a);
void GDAPI pandemonium_pool_byte_array_destroy(pandemonium_pool_byte_array *p_self);
// int
pandemonium_pool_int_array_read_access GDAPI *pandemonium_pool_int_array_read(const pandemonium_pool_int_array *p_self);
pandemonium_pool_int_array_write_access GDAPI *pandemonium_pool_int_array_write(pandemonium_pool_int_array *p_self);
void GDAPI pandemonium_pool_int_array_remove(pandemonium_pool_int_array *p_self, const pandemonium_int p_idx);
pandemonium_int GDAPI pandemonium_pool_int_array_size(const pandemonium_pool_int_array *p_self);
pandemonium_bool GDAPI pandemonium_pool_int_array_empty(const pandemonium_pool_int_array *p_self);
void GDAPI pandemonium_pool_int_array_set(pandemonium_pool_int_array *p_self, const pandemonium_int p_idx, const pandemonium_int p_data);
pandemonium_int GDAPI pandemonium_pool_int_array_get(const pandemonium_pool_int_array *p_self, const pandemonium_int p_idx);
void GDAPI pandemonium_pool_int_array_fill(pandemonium_pool_int_array *p_self, const pandemonium_int p_val);
void GDAPI pandemonium_pool_int_array_push_back(pandemonium_pool_int_array *p_self, const pandemonium_int p_data);
void GDAPI pandemonium_pool_int_array_append(pandemonium_pool_int_array *p_self, const pandemonium_int p_data);
void GDAPI pandemonium_pool_int_array_append_array(pandemonium_pool_int_array *p_self, const pandemonium_pool_int_array *p_array);
pandemonium_pool_int_array GDAPI pandemonium_pool_int_array_subarray(const pandemonium_pool_int_array *p_self, pandemonium_int p_from, pandemonium_int p_to);
pandemonium_error GDAPI pandemonium_pool_int_array_insert(pandemonium_pool_int_array *p_self, const pandemonium_int p_idx, const pandemonium_int p_data);
pandemonium_string GDAPI pandemonium_pool_string_array_join(const pandemonium_pool_string_array *p_self, const pandemonium_string *p_delimiter);
pandemonium_bool GDAPI pandemonium_pool_int_array_contains(const pandemonium_pool_int_array *p_self, const pandemonium_int p_val);
pandemonium_int GDAPI pandemonium_pool_int_array_find(const pandemonium_pool_int_array *p_self, const pandemonium_int p_val);
pandemonium_int GDAPI pandemonium_pool_int_array_find_from(const pandemonium_pool_int_array *p_self, const pandemonium_int p_val, pandemonium_int p_from);
pandemonium_int GDAPI pandemonium_pool_int_array_rfind(const pandemonium_pool_int_array *p_self, const pandemonium_int p_val);
pandemonium_int GDAPI pandemonium_pool_int_array_rfind_from(const pandemonium_pool_int_array *p_self, const pandemonium_int p_val, pandemonium_int p_from);
pandemonium_int GDAPI pandemonium_pool_int_array_count(const pandemonium_pool_int_array *p_self, const pandemonium_int p_val);
pandemonium_bool GDAPI pandemonium_pool_int_array_has(const pandemonium_pool_int_array *p_self, const pandemonium_int p_data);
pandemonium_bool GDAPI pandemonium_pool_int_array_is_locked(const pandemonium_pool_int_array *p_self);
void GDAPI pandemonium_pool_int_array_resize(pandemonium_pool_int_array *p_self, const pandemonium_int p_size);
pandemonium_int GDAPI pandemonium_pool_int_array_clear(pandemonium_pool_int_array *p_self);
void GDAPI pandemonium_pool_int_array_invert(pandemonium_pool_int_array *p_self);
void GDAPI pandemonium_pool_int_array_sort(pandemonium_pool_int_array *p_self);
void GDAPI pandemonium_pool_int_array_new(pandemonium_pool_int_array *r_dest);
void GDAPI pandemonium_pool_int_array_new_copy(pandemonium_pool_int_array *r_dest, const pandemonium_pool_int_array *p_src);
void GDAPI pandemonium_pool_int_array_new_with_array(pandemonium_pool_int_array *r_dest, const pandemonium_array *p_a);
void GDAPI pandemonium_pool_int_array_destroy(pandemonium_pool_int_array *p_self);
// real
pandemonium_pool_real_array_read_access GDAPI *pandemonium_pool_real_array_read(const pandemonium_pool_real_array *p_self);
pandemonium_pool_real_array_write_access GDAPI *pandemonium_pool_real_array_write(pandemonium_pool_real_array *p_self);
void GDAPI pandemonium_pool_real_array_remove(pandemonium_pool_real_array *p_self, const pandemonium_int p_idx);
pandemonium_int GDAPI pandemonium_pool_real_array_size(const pandemonium_pool_real_array *p_self);
pandemonium_bool GDAPI pandemonium_pool_real_array_empty(const pandemonium_pool_real_array *p_self);
void GDAPI pandemonium_pool_real_array_set(pandemonium_pool_real_array *p_self, const pandemonium_int p_idx, const pandemonium_real p_data);
pandemonium_real GDAPI pandemonium_pool_real_array_get(const pandemonium_pool_real_array *p_self, const pandemonium_int p_idx);
void GDAPI pandemonium_pool_real_array_fill(pandemonium_pool_real_array *p_self, const pandemonium_real p_val);
void GDAPI pandemonium_pool_real_array_push_back(pandemonium_pool_real_array *p_self, const pandemonium_real p_data);
void GDAPI pandemonium_pool_real_array_append(pandemonium_pool_real_array *p_self, const pandemonium_real p_data);
void GDAPI pandemonium_pool_real_array_append_array(pandemonium_pool_real_array *p_self, const pandemonium_pool_real_array *p_array);
pandemonium_pool_real_array GDAPI pandemonium_pool_real_array_subarray(const pandemonium_pool_real_array *p_self, pandemonium_int p_from, pandemonium_int p_to);
pandemonium_error GDAPI pandemonium_pool_real_array_insert(pandemonium_pool_real_array *p_self, const pandemonium_int p_idx, const pandemonium_real p_data);
pandemonium_bool GDAPI pandemonium_pool_real_array_contains(const pandemonium_pool_real_array *p_self, const pandemonium_real p_val);
pandemonium_int GDAPI pandemonium_pool_real_array_find(const pandemonium_pool_real_array *p_self, const pandemonium_real p_val);
pandemonium_int GDAPI pandemonium_pool_real_array_find_from(const pandemonium_pool_real_array *p_self, const pandemonium_real p_val, pandemonium_int p_from);
pandemonium_int GDAPI pandemonium_pool_real_array_rfind(const pandemonium_pool_real_array *p_self, const pandemonium_real p_val);
pandemonium_int GDAPI pandemonium_pool_real_array_rfind_from(const pandemonium_pool_real_array *p_self, const pandemonium_real p_val, pandemonium_int p_from);
pandemonium_int GDAPI pandemonium_pool_real_array_count(const pandemonium_pool_real_array *p_self, const pandemonium_real p_val);
pandemonium_bool GDAPI pandemonium_pool_real_array_has(const pandemonium_pool_real_array *p_self, const pandemonium_real p_data);
pandemonium_bool GDAPI pandemonium_pool_real_array_is_locked(const pandemonium_pool_real_array *p_self);
void GDAPI pandemonium_pool_real_array_resize(pandemonium_pool_real_array *p_self, const pandemonium_int p_size);
pandemonium_int GDAPI pandemonium_pool_real_array_clear(pandemonium_pool_real_array *p_self);
void GDAPI pandemonium_pool_real_array_invert(pandemonium_pool_real_array *p_self);
void GDAPI pandemonium_pool_real_array_sort(pandemonium_pool_real_array *p_self);
void GDAPI pandemonium_pool_real_array_new(pandemonium_pool_real_array *r_dest);
void GDAPI pandemonium_pool_real_array_new_copy(pandemonium_pool_real_array *r_dest, const pandemonium_pool_real_array *p_src);
void GDAPI pandemonium_pool_real_array_new_with_array(pandemonium_pool_real_array *r_dest, const pandemonium_array *p_a);
void GDAPI pandemonium_pool_real_array_destroy(pandemonium_pool_real_array *p_self);
// String
pandemonium_pool_string_array_read_access GDAPI *pandemonium_pool_string_array_read(const pandemonium_pool_string_array *p_self);
pandemonium_pool_string_array_write_access GDAPI *pandemonium_pool_string_array_write(pandemonium_pool_string_array *p_self);
void GDAPI pandemonium_pool_string_array_remove(pandemonium_pool_string_array *p_self, const pandemonium_int p_idx);
pandemonium_int GDAPI pandemonium_pool_string_array_size(const pandemonium_pool_string_array *p_self);
pandemonium_bool GDAPI pandemonium_pool_string_array_empty(const pandemonium_pool_string_array *p_self);
void GDAPI pandemonium_pool_string_array_set(pandemonium_pool_string_array *p_self, const pandemonium_int p_idx, const pandemonium_string *p_data);
pandemonium_string GDAPI pandemonium_pool_string_array_get(const pandemonium_pool_string_array *p_self, const pandemonium_int p_idx);
void GDAPI pandemonium_pool_string_array_fill(pandemonium_pool_string_array *p_self, const pandemonium_string *p_val);
void GDAPI pandemonium_pool_string_array_push_back(pandemonium_pool_string_array *p_self, const pandemonium_string *p_data);
void GDAPI pandemonium_pool_string_array_append(pandemonium_pool_string_array *p_self, const pandemonium_string *p_data);
void GDAPI pandemonium_pool_string_array_append_array(pandemonium_pool_string_array *p_self, const pandemonium_pool_string_array *p_array);
pandemonium_pool_string_array GDAPI pandemonium_pool_string_array_subarray(const pandemonium_pool_string_array *p_self, pandemonium_int p_from, pandemonium_int p_to);
pandemonium_error GDAPI pandemonium_pool_string_array_insert(pandemonium_pool_string_array *p_self, const pandemonium_int p_idx, const pandemonium_string *p_data);
pandemonium_bool GDAPI pandemonium_pool_string_array_contains(const pandemonium_pool_string_array *p_self, const pandemonium_string *p_val);
pandemonium_int GDAPI pandemonium_pool_string_array_find(const pandemonium_pool_string_array *p_self, const pandemonium_string *p_val);
pandemonium_int GDAPI pandemonium_pool_string_array_find_from(const pandemonium_pool_string_array *p_self, const pandemonium_string *p_val, pandemonium_int p_from);
pandemonium_int GDAPI pandemonium_pool_string_array_rfind(const pandemonium_pool_string_array *p_self, const pandemonium_string *p_val);
pandemonium_int GDAPI pandemonium_pool_string_array_rfind_from(const pandemonium_pool_string_array *p_self, const pandemonium_string *p_val, pandemonium_int p_from);
pandemonium_int GDAPI pandemonium_pool_string_array_count(const pandemonium_pool_string_array *p_self, const pandemonium_string *p_val);
pandemonium_bool GDAPI pandemonium_pool_string_array_has(const pandemonium_pool_string_array *p_self, const pandemonium_string *p_data);
pandemonium_bool GDAPI pandemonium_pool_string_array_is_locked(const pandemonium_pool_string_array *p_self);
void GDAPI pandemonium_pool_string_array_resize(pandemonium_pool_string_array *p_self, const pandemonium_int p_size);
pandemonium_int GDAPI pandemonium_pool_string_array_clear(pandemonium_pool_string_array *p_self);
void GDAPI pandemonium_pool_string_array_invert(pandemonium_pool_string_array *p_self);
void GDAPI pandemonium_pool_string_array_sort(pandemonium_pool_string_array *p_self);
void GDAPI pandemonium_pool_string_array_new(pandemonium_pool_string_array *r_dest);
void GDAPI pandemonium_pool_string_array_new_copy(pandemonium_pool_string_array *r_dest, const pandemonium_pool_string_array *p_src);
void GDAPI pandemonium_pool_string_array_new_with_array(pandemonium_pool_string_array *r_dest, const pandemonium_array *p_a);
void GDAPI pandemonium_pool_string_array_destroy(pandemonium_pool_string_array *p_self);
// vector2
pandemonium_pool_vector2_array_read_access GDAPI *pandemonium_pool_vector2_array_read(const pandemonium_pool_vector2_array *p_self);
pandemonium_pool_vector2_array_write_access GDAPI *pandemonium_pool_vector2_array_write(pandemonium_pool_vector2_array *p_self);
void GDAPI pandemonium_pool_vector2_array_remove(pandemonium_pool_vector2_array *p_self, const pandemonium_int p_idx);
pandemonium_int GDAPI pandemonium_pool_vector2_array_size(const pandemonium_pool_vector2_array *p_self);
pandemonium_bool GDAPI pandemonium_pool_vector2_array_empty(const pandemonium_pool_vector2_array *p_self);
void GDAPI pandemonium_pool_vector2_array_set(pandemonium_pool_vector2_array *p_self, const pandemonium_int p_idx, const pandemonium_vector2 *p_data);
pandemonium_vector2 GDAPI pandemonium_pool_vector2_array_get(const pandemonium_pool_vector2_array *p_self, const pandemonium_int p_idx);
void GDAPI pandemonium_pool_vector2_array_fill(pandemonium_pool_vector2_array *p_self, const pandemonium_vector2 *p_val);
void GDAPI pandemonium_pool_vector2_array_push_back(pandemonium_pool_vector2_array *p_self, const pandemonium_vector2 *p_data);
void GDAPI pandemonium_pool_vector2_array_append(pandemonium_pool_vector2_array *p_self, const pandemonium_vector2 *p_data);
void GDAPI pandemonium_pool_vector2_array_append_array(pandemonium_pool_vector2_array *p_self, const pandemonium_pool_vector2_array *p_array);
pandemonium_pool_vector2_array GDAPI pandemonium_pool_vector2_array_subarray(const pandemonium_pool_vector2_array *p_self, pandemonium_int p_from, pandemonium_int p_to);
pandemonium_error GDAPI pandemonium_pool_vector2_array_insert(pandemonium_pool_vector2_array *p_self, const pandemonium_int p_idx, const pandemonium_vector2 *p_data);
pandemonium_bool GDAPI pandemonium_pool_vector2_array_contains(const pandemonium_pool_vector2_array *p_self, const pandemonium_vector2 *p_val);
pandemonium_int GDAPI pandemonium_pool_vector2_array_find(const pandemonium_pool_vector2_array *p_self, const pandemonium_vector2 *p_val);
pandemonium_int GDAPI pandemonium_pool_vector2_array_find_from(const pandemonium_pool_vector2_array *p_self, const pandemonium_vector2 *p_val, pandemonium_int p_from);
pandemonium_int GDAPI pandemonium_pool_vector2_array_rfind(const pandemonium_pool_vector2_array *p_self, const pandemonium_vector2 *p_val);
pandemonium_int GDAPI pandemonium_pool_vector2_array_rfind_from(const pandemonium_pool_vector2_array *p_self, const pandemonium_vector2 *p_val, pandemonium_int p_from);
pandemonium_int GDAPI pandemonium_pool_vector2_array_count(const pandemonium_pool_vector2_array *p_self, const pandemonium_vector2 *p_val);
pandemonium_bool GDAPI pandemonium_pool_vector2_array_has(const pandemonium_pool_vector2_array *p_self, const pandemonium_vector2 *p_data);
pandemonium_bool GDAPI pandemonium_pool_vector2_array_is_locked(const pandemonium_pool_vector2_array *p_self);
void GDAPI pandemonium_pool_vector2_array_resize(pandemonium_pool_vector2_array *p_self, const pandemonium_int p_size);
pandemonium_int GDAPI pandemonium_pool_vector2_array_clear(pandemonium_pool_vector2_array *p_self);
void GDAPI pandemonium_pool_vector2_array_invert(pandemonium_pool_vector2_array *p_self);
void GDAPI pandemonium_pool_vector2_array_sort(pandemonium_pool_vector2_array *p_self);
void GDAPI pandemonium_pool_vector2_array_new(pandemonium_pool_vector2_array *r_dest);
void GDAPI pandemonium_pool_vector2_array_new_copy(pandemonium_pool_vector2_array *r_dest, const pandemonium_pool_vector2_array *p_src);
void GDAPI pandemonium_pool_vector2_array_new_with_array(pandemonium_pool_vector2_array *r_dest, const pandemonium_array *p_a);
void GDAPI pandemonium_pool_vector2_array_destroy(pandemonium_pool_vector2_array *p_self);
// vector2i
pandemonium_pool_vector2i_array_read_access GDAPI *pandemonium_pool_vector2i_array_read(const pandemonium_pool_vector2i_array *p_self);
pandemonium_pool_vector2i_array_write_access GDAPI *pandemonium_pool_vector2i_array_write(pandemonium_pool_vector2i_array *p_self);
void GDAPI pandemonium_pool_vector2i_array_remove(pandemonium_pool_vector2i_array *p_self, const pandemonium_int p_idx);
pandemonium_int GDAPI pandemonium_pool_vector2i_array_size(const pandemonium_pool_vector2i_array *p_self);
pandemonium_bool GDAPI pandemonium_pool_vector2i_array_empty(const pandemonium_pool_vector2i_array *p_self);
void GDAPI pandemonium_pool_vector2i_array_set(pandemonium_pool_vector2i_array *p_self, const pandemonium_int p_idx, const pandemonium_vector2i *p_data);
pandemonium_vector2i GDAPI pandemonium_pool_vector2i_array_get(const pandemonium_pool_vector2i_array *p_self, const pandemonium_int p_idx);
void GDAPI pandemonium_pool_vector2i_array_fill(pandemonium_pool_vector2i_array *p_self, const pandemonium_vector2i *p_val);
void GDAPI pandemonium_pool_vector2i_array_push_back(pandemonium_pool_vector2i_array *p_self, const pandemonium_vector2i *p_data);
void GDAPI pandemonium_pool_vector2i_array_append(pandemonium_pool_vector2i_array *p_self, const pandemonium_vector2i *p_data);
void GDAPI pandemonium_pool_vector2i_array_append_array(pandemonium_pool_vector2i_array *p_self, const pandemonium_pool_vector2i_array *p_array);
pandemonium_pool_vector2i_array GDAPI pandemonium_pool_vector2i_array_subarray(const pandemonium_pool_vector2i_array *p_self, pandemonium_int p_from, pandemonium_int p_to);
pandemonium_error GDAPI pandemonium_pool_vector2i_array_insert(pandemonium_pool_vector2i_array *p_self, const pandemonium_int p_idx, const pandemonium_vector2i *p_data);
pandemonium_bool GDAPI pandemonium_pool_vector2i_array_contains(const pandemonium_pool_vector2i_array *p_self, const pandemonium_vector2i *p_val);
pandemonium_int GDAPI pandemonium_pool_vector2i_array_find(const pandemonium_pool_vector2i_array *p_self, const pandemonium_vector2i *p_val);
pandemonium_int GDAPI pandemonium_pool_vector2i_array_find_from(const pandemonium_pool_vector2i_array *p_self, const pandemonium_vector2i *p_val, pandemonium_int p_from);
pandemonium_int GDAPI pandemonium_pool_vector2i_array_rfind(const pandemonium_pool_vector2i_array *p_self, const pandemonium_vector2i *p_val);
pandemonium_int GDAPI pandemonium_pool_vector2i_array_rfind_from(const pandemonium_pool_vector2i_array *p_self, const pandemonium_vector2i *p_val, pandemonium_int p_from);
pandemonium_int GDAPI pandemonium_pool_vector2i_array_count(const pandemonium_pool_vector2i_array *p_self, const pandemonium_vector2i *p_val);
pandemonium_bool GDAPI pandemonium_pool_vector2i_array_has(const pandemonium_pool_vector2i_array *p_self, const pandemonium_vector2i *p_data);
pandemonium_bool GDAPI pandemonium_pool_vector2i_array_is_locked(const pandemonium_pool_vector2i_array *p_self);
void GDAPI pandemonium_pool_vector2i_array_resize(pandemonium_pool_vector2i_array *p_self, const pandemonium_int p_size);
pandemonium_int GDAPI pandemonium_pool_vector2i_array_clear(pandemonium_pool_vector2i_array *p_self);
void GDAPI pandemonium_pool_vector2i_array_invert(pandemonium_pool_vector2i_array *p_self);
void GDAPI pandemonium_pool_vector2i_array_sort(pandemonium_pool_vector2i_array *p_self);
void GDAPI pandemonium_pool_vector2i_array_new(pandemonium_pool_vector2i_array *r_dest);
void GDAPI pandemonium_pool_vector2i_array_new_copy(pandemonium_pool_vector2i_array *r_dest, const pandemonium_pool_vector2i_array *p_src);
void GDAPI pandemonium_pool_vector2i_array_new_with_array(pandemonium_pool_vector2i_array *r_dest, const pandemonium_array *p_a);
void GDAPI pandemonium_pool_vector2i_array_destroy(pandemonium_pool_vector2i_array *p_self);
// vector3
pandemonium_pool_vector3_array_read_access GDAPI *pandemonium_pool_vector3_array_read(const pandemonium_pool_vector3_array *p_self);
pandemonium_pool_vector3_array_write_access GDAPI *pandemonium_pool_vector3_array_write(pandemonium_pool_vector3_array *p_self);
void GDAPI pandemonium_pool_vector3_array_remove(pandemonium_pool_vector3_array *p_self, const pandemonium_int p_idx);
pandemonium_int GDAPI pandemonium_pool_vector3_array_size(const pandemonium_pool_vector3_array *p_self);
pandemonium_bool GDAPI pandemonium_pool_vector3_array_empty(const pandemonium_pool_vector3_array *p_self);
void GDAPI pandemonium_pool_vector3_array_set(pandemonium_pool_vector3_array *p_self, const pandemonium_int p_idx, const pandemonium_vector3 *p_data);
pandemonium_vector3 GDAPI pandemonium_pool_vector3_array_get(const pandemonium_pool_vector3_array *p_self, const pandemonium_int p_idx);
void GDAPI pandemonium_pool_vector3_array_fill(pandemonium_pool_vector3_array *p_self, const pandemonium_vector3 *p_val);
void GDAPI pandemonium_pool_vector3_array_push_back(pandemonium_pool_vector3_array *p_self, const pandemonium_vector3 *p_data);
void GDAPI pandemonium_pool_vector3_array_append(pandemonium_pool_vector3_array *p_self, const pandemonium_vector3 *p_data);
void GDAPI pandemonium_pool_vector3_array_append_array(pandemonium_pool_vector3_array *p_self, const pandemonium_pool_vector3_array *p_array);
pandemonium_pool_vector3_array GDAPI pandemonium_pool_vector3_array_subarray(const pandemonium_pool_vector3_array *p_self, pandemonium_int p_from, pandemonium_int p_to);
pandemonium_error GDAPI pandemonium_pool_vector3_array_insert(pandemonium_pool_vector3_array *p_self, const pandemonium_int p_idx, const pandemonium_vector3 *p_data);
pandemonium_bool GDAPI pandemonium_pool_vector3_array_contains(const pandemonium_pool_vector3_array *p_self, const pandemonium_vector3 *p_val);
pandemonium_int GDAPI pandemonium_pool_vector3_array_find(const pandemonium_pool_vector3_array *p_self, const pandemonium_vector3 *p_val);
pandemonium_int GDAPI pandemonium_pool_vector3_array_find_from(const pandemonium_pool_vector3_array *p_self, const pandemonium_vector3 *p_val, pandemonium_int p_from);
pandemonium_int GDAPI pandemonium_pool_vector3_array_rfind(const pandemonium_pool_vector3_array *p_self, const pandemonium_vector3 *p_val);
pandemonium_int GDAPI pandemonium_pool_vector3_array_rfind_from(const pandemonium_pool_vector3_array *p_self, const pandemonium_vector3 *p_val, pandemonium_int p_from);
pandemonium_int GDAPI pandemonium_pool_vector3_array_count(const pandemonium_pool_vector3_array *p_self, const pandemonium_vector3 *p_val);
pandemonium_bool GDAPI pandemonium_pool_vector3_array_has(const pandemonium_pool_vector3_array *p_self, const pandemonium_vector3 *p_data);
pandemonium_bool GDAPI pandemonium_pool_vector3_array_is_locked(const pandemonium_pool_vector3_array *p_self);
void GDAPI pandemonium_pool_vector3_array_resize(pandemonium_pool_vector3_array *p_self, const pandemonium_int p_size);
pandemonium_int GDAPI pandemonium_pool_vector3_array_clear(pandemonium_pool_vector3_array *p_self);
void GDAPI pandemonium_pool_vector3_array_invert(pandemonium_pool_vector3_array *p_self);
void GDAPI pandemonium_pool_vector3_array_sort(pandemonium_pool_vector3_array *p_self);
void GDAPI pandemonium_pool_vector3_array_new(pandemonium_pool_vector3_array *r_dest);
void GDAPI pandemonium_pool_vector3_array_new_copy(pandemonium_pool_vector3_array *r_dest, const pandemonium_pool_vector3_array *p_src);
void GDAPI pandemonium_pool_vector3_array_new_with_array(pandemonium_pool_vector3_array *r_dest, const pandemonium_array *p_a);
void GDAPI pandemonium_pool_vector3_array_destroy(pandemonium_pool_vector3_array *p_self);
// vector3i
pandemonium_pool_vector3i_array_read_access GDAPI *pandemonium_pool_vector3i_array_read(const pandemonium_pool_vector3i_array *p_self);
pandemonium_pool_vector3i_array_write_access GDAPI *pandemonium_pool_vector3i_array_write(pandemonium_pool_vector3i_array *p_self);
void GDAPI pandemonium_pool_vector3i_array_remove(pandemonium_pool_vector3i_array *p_self, const pandemonium_int p_idx);
pandemonium_int GDAPI pandemonium_pool_vector3i_array_size(const pandemonium_pool_vector3i_array *p_self);
pandemonium_bool GDAPI pandemonium_pool_vector3i_array_empty(const pandemonium_pool_vector3i_array *p_self);
void GDAPI pandemonium_pool_vector3i_array_set(pandemonium_pool_vector3i_array *p_self, const pandemonium_int p_idx, const pandemonium_vector3i *p_data);
pandemonium_vector3i GDAPI pandemonium_pool_vector3i_array_get(const pandemonium_pool_vector3i_array *p_self, const pandemonium_int p_idx);
void GDAPI pandemonium_pool_vector3i_array_fill(pandemonium_pool_vector3i_array *p_self, const pandemonium_vector3i *p_val);
void GDAPI pandemonium_pool_vector3i_array_push_back(pandemonium_pool_vector3i_array *p_self, const pandemonium_vector3i *p_data);
void GDAPI pandemonium_pool_vector3i_array_append(pandemonium_pool_vector3i_array *p_self, const pandemonium_vector3i *p_data);
void GDAPI pandemonium_pool_vector3i_array_append_array(pandemonium_pool_vector3i_array *p_self, const pandemonium_pool_vector3i_array *p_array);
pandemonium_pool_vector3i_array GDAPI pandemonium_pool_vector3i_array_subarray(const pandemonium_pool_vector3i_array *p_self, pandemonium_int p_from, pandemonium_int p_to);
pandemonium_error GDAPI pandemonium_pool_vector3i_array_insert(pandemonium_pool_vector3i_array *p_self, const pandemonium_int p_idx, const pandemonium_vector3i *p_data);
pandemonium_bool GDAPI pandemonium_pool_vector3i_array_contains(const pandemonium_pool_vector3i_array *p_self, const pandemonium_vector3i *p_val);
pandemonium_int GDAPI pandemonium_pool_vector3i_array_find(const pandemonium_pool_vector3i_array *p_self, const pandemonium_vector3i *p_val);
pandemonium_int GDAPI pandemonium_pool_vector3i_array_find_from(const pandemonium_pool_vector3i_array *p_self, const pandemonium_vector3i *p_val, pandemonium_int p_from);
pandemonium_int GDAPI pandemonium_pool_vector3i_array_rfind(const pandemonium_pool_vector3i_array *p_self, const pandemonium_vector3i *p_val);
pandemonium_int GDAPI pandemonium_pool_vector3i_array_rfind_from(const pandemonium_pool_vector3i_array *p_self, const pandemonium_vector3i *p_val, pandemonium_int p_from);
pandemonium_int GDAPI pandemonium_pool_vector3i_array_count(const pandemonium_pool_vector3i_array *p_self, const pandemonium_vector3i *p_val);
pandemonium_bool GDAPI pandemonium_pool_vector3i_array_has(const pandemonium_pool_vector3i_array *p_self, const pandemonium_vector3i *p_data);
pandemonium_bool GDAPI pandemonium_pool_vector3i_array_is_locked(const pandemonium_pool_vector3i_array *p_self);
void GDAPI pandemonium_pool_vector3i_array_resize(pandemonium_pool_vector3i_array *p_self, const pandemonium_int p_size);
pandemonium_int GDAPI pandemonium_pool_vector3i_array_clear(pandemonium_pool_vector3i_array *p_self);
void GDAPI pandemonium_pool_vector3i_array_invert(pandemonium_pool_vector3i_array *p_self);
void GDAPI pandemonium_pool_vector3i_array_sort(pandemonium_pool_vector3i_array *p_self);
void GDAPI pandemonium_pool_vector3i_array_new(pandemonium_pool_vector3i_array *r_dest);
void GDAPI pandemonium_pool_vector3i_array_new_copy(pandemonium_pool_vector3i_array *r_dest, const pandemonium_pool_vector3i_array *p_src);
void GDAPI pandemonium_pool_vector3i_array_new_with_array(pandemonium_pool_vector3i_array *r_dest, const pandemonium_array *p_a);
void GDAPI pandemonium_pool_vector3i_array_destroy(pandemonium_pool_vector3i_array *p_self);
// vector4
pandemonium_pool_vector4_array_read_access GDAPI *pandemonium_pool_vector4_array_read(const pandemonium_pool_vector4_array *p_self);
pandemonium_pool_vector4_array_write_access GDAPI *pandemonium_pool_vector4_array_write(pandemonium_pool_vector4_array *p_self);
void GDAPI pandemonium_pool_vector4_array_remove(pandemonium_pool_vector4_array *p_self, const pandemonium_int p_idx);
pandemonium_int GDAPI pandemonium_pool_vector4_array_size(const pandemonium_pool_vector4_array *p_self);
pandemonium_bool GDAPI pandemonium_pool_vector4_array_empty(const pandemonium_pool_vector4_array *p_self);
void GDAPI pandemonium_pool_vector4_array_set(pandemonium_pool_vector4_array *p_self, const pandemonium_int p_idx, const pandemonium_vector4 *p_data);
pandemonium_vector4 GDAPI pandemonium_pool_vector4_array_get(const pandemonium_pool_vector4_array *p_self, const pandemonium_int p_idx);
void GDAPI pandemonium_pool_vector4_array_fill(pandemonium_pool_vector4_array *p_self, const pandemonium_vector4 *p_val);
void GDAPI pandemonium_pool_vector4_array_push_back(pandemonium_pool_vector4_array *p_self, const pandemonium_vector4 *p_data);
void GDAPI pandemonium_pool_vector4_array_append(pandemonium_pool_vector4_array *p_self, const pandemonium_vector4 *p_data);
void GDAPI pandemonium_pool_vector4_array_append_array(pandemonium_pool_vector4_array *p_self, const pandemonium_pool_vector4_array *p_array);
pandemonium_pool_vector4_array GDAPI pandemonium_pool_vector4_array_subarray(const pandemonium_pool_vector4_array *p_self, pandemonium_int p_from, pandemonium_int p_to);
pandemonium_error GDAPI pandemonium_pool_vector4_array_insert(pandemonium_pool_vector4_array *p_self, const pandemonium_int p_idx, const pandemonium_vector4 *p_data);
pandemonium_bool GDAPI pandemonium_pool_vector4_array_contains(const pandemonium_pool_vector4_array *p_self, const pandemonium_vector4 *p_val);
pandemonium_int GDAPI pandemonium_pool_vector4_array_find(const pandemonium_pool_vector4_array *p_self, const pandemonium_vector4 *p_val);
pandemonium_int GDAPI pandemonium_pool_vector4_array_find_from(const pandemonium_pool_vector4_array *p_self, const pandemonium_vector4 *p_val, pandemonium_int p_from);
pandemonium_int GDAPI pandemonium_pool_vector4_array_rfind(const pandemonium_pool_vector4_array *p_self, const pandemonium_vector4 *p_val);
pandemonium_int GDAPI pandemonium_pool_vector4_array_rfind_from(const pandemonium_pool_vector4_array *p_self, const pandemonium_vector4 *p_val, pandemonium_int p_from);
pandemonium_int GDAPI pandemonium_pool_vector4_array_count(const pandemonium_pool_vector4_array *p_self, const pandemonium_vector4 *p_val);
pandemonium_bool GDAPI pandemonium_pool_vector4_array_has(const pandemonium_pool_vector4_array *p_self, const pandemonium_vector4 *p_data);
pandemonium_bool GDAPI pandemonium_pool_vector4_array_is_locked(const pandemonium_pool_vector4_array *p_self);
void GDAPI pandemonium_pool_vector4_array_resize(pandemonium_pool_vector4_array *p_self, const pandemonium_int p_size);
pandemonium_int GDAPI pandemonium_pool_vector4_array_clear(pandemonium_pool_vector4_array *p_self);
void GDAPI pandemonium_pool_vector4_array_invert(pandemonium_pool_vector4_array *p_self);
void GDAPI pandemonium_pool_vector4_array_sort(pandemonium_pool_vector4_array *p_self);
void GDAPI pandemonium_pool_vector4_array_new(pandemonium_pool_vector4_array *r_dest);
void GDAPI pandemonium_pool_vector4_array_new_copy(pandemonium_pool_vector4_array *r_dest, const pandemonium_pool_vector4_array *p_src);
void GDAPI pandemonium_pool_vector4_array_new_with_array(pandemonium_pool_vector4_array *r_dest, const pandemonium_array *p_a);
void GDAPI pandemonium_pool_vector4_array_destroy(pandemonium_pool_vector4_array *p_self);
// vector4i
pandemonium_pool_vector4i_array_read_access GDAPI *pandemonium_pool_vector4i_array_read(const pandemonium_pool_vector4i_array *p_self);
pandemonium_pool_vector4i_array_write_access GDAPI *pandemonium_pool_vector4i_array_write(pandemonium_pool_vector4i_array *p_self);
void GDAPI pandemonium_pool_vector4i_array_remove(pandemonium_pool_vector4i_array *p_self, const pandemonium_int p_idx);
pandemonium_int GDAPI pandemonium_pool_vector4i_array_size(const pandemonium_pool_vector4i_array *p_self);
pandemonium_bool GDAPI pandemonium_pool_vector4i_array_empty(const pandemonium_pool_vector4i_array *p_self);
void GDAPI pandemonium_pool_vector4i_array_set(pandemonium_pool_vector4i_array *p_self, const pandemonium_int p_idx, const pandemonium_vector4i *p_data);
pandemonium_vector4i GDAPI pandemonium_pool_vector4i_array_get(const pandemonium_pool_vector4i_array *p_self, const pandemonium_int p_idx);
void GDAPI pandemonium_pool_vector4i_array_fill(pandemonium_pool_vector4i_array *p_self, const pandemonium_vector4i *p_val);
void GDAPI pandemonium_pool_vector4i_array_push_back(pandemonium_pool_vector4i_array *p_self, const pandemonium_vector4i *p_data);
void GDAPI pandemonium_pool_vector4i_array_append(pandemonium_pool_vector4i_array *p_self, const pandemonium_vector4i *p_data);
void GDAPI pandemonium_pool_vector4i_array_append_array(pandemonium_pool_vector4i_array *p_self, const pandemonium_pool_vector4i_array *p_array);
pandemonium_pool_vector4i_array GDAPI pandemonium_pool_vector4i_array_subarray(const pandemonium_pool_vector4i_array *p_self, pandemonium_int p_from, pandemonium_int p_to);
pandemonium_error GDAPI pandemonium_pool_vector4i_array_insert(pandemonium_pool_vector4i_array *p_self, const pandemonium_int p_idx, const pandemonium_vector4i *p_data);
pandemonium_bool GDAPI pandemonium_pool_vector4i_array_contains(const pandemonium_pool_vector4i_array *p_self, const pandemonium_vector4i *p_val);
pandemonium_int GDAPI pandemonium_pool_vector4i_array_find(const pandemonium_pool_vector4i_array *p_self, const pandemonium_vector4i *p_val);
pandemonium_int GDAPI pandemonium_pool_vector4i_array_find_from(const pandemonium_pool_vector4i_array *p_self, const pandemonium_vector4i *p_val, pandemonium_int p_from);
pandemonium_int GDAPI pandemonium_pool_vector4i_array_rfind(const pandemonium_pool_vector4i_array *p_self, const pandemonium_vector4i *p_val);
pandemonium_int GDAPI pandemonium_pool_vector4i_array_rfind_from(const pandemonium_pool_vector4i_array *p_self, const pandemonium_vector4i *p_val, pandemonium_int p_from);
pandemonium_int GDAPI pandemonium_pool_vector4i_array_count(const pandemonium_pool_vector4i_array *p_self, const pandemonium_vector4i *p_val);
pandemonium_bool GDAPI pandemonium_pool_vector4i_array_has(const pandemonium_pool_vector4i_array *p_self, const pandemonium_vector4i *p_data);
pandemonium_bool GDAPI pandemonium_pool_vector4i_array_is_locked(const pandemonium_pool_vector4i_array *p_self);
void GDAPI pandemonium_pool_vector4i_array_resize(pandemonium_pool_vector4i_array *p_self, const pandemonium_int p_size);
pandemonium_int GDAPI pandemonium_pool_vector4i_array_clear(pandemonium_pool_vector4i_array *p_self);
void GDAPI pandemonium_pool_vector4i_array_invert(pandemonium_pool_vector4i_array *p_self);
void GDAPI pandemonium_pool_vector4i_array_sort(pandemonium_pool_vector4i_array *p_self);
void GDAPI pandemonium_pool_vector4i_array_new(pandemonium_pool_vector4i_array *r_dest);
void GDAPI pandemonium_pool_vector4i_array_new_copy(pandemonium_pool_vector4i_array *r_dest, const pandemonium_pool_vector4i_array *p_src);
void GDAPI pandemonium_pool_vector4i_array_new_with_array(pandemonium_pool_vector4i_array *r_dest, const pandemonium_array *p_a);
void GDAPI pandemonium_pool_vector4i_array_destroy(pandemonium_pool_vector4i_array *p_self);
// color
void GDAPI pandemonium_pool_color_array_new(pandemonium_pool_color_array *r_dest);
void GDAPI pandemonium_pool_color_array_new_copy(pandemonium_pool_color_array *r_dest, const pandemonium_pool_color_array *p_src);
void GDAPI pandemonium_pool_color_array_new_with_array(pandemonium_pool_color_array *r_dest, const pandemonium_array *p_a);
void GDAPI pandemonium_pool_color_array_append(pandemonium_pool_color_array *p_self, const pandemonium_color *p_data);
void GDAPI pandemonium_pool_color_array_append_array(pandemonium_pool_color_array *p_self, const pandemonium_pool_color_array *p_array);
pandemonium_error GDAPI pandemonium_pool_color_array_insert(pandemonium_pool_color_array *p_self, const pandemonium_int p_idx, const pandemonium_color *p_data);
void GDAPI pandemonium_pool_color_array_invert(pandemonium_pool_color_array *p_self);
void GDAPI pandemonium_pool_color_array_push_back(pandemonium_pool_color_array *p_self, const pandemonium_color *p_data);
void GDAPI pandemonium_pool_color_array_remove(pandemonium_pool_color_array *p_self, const pandemonium_int p_idx);
void GDAPI pandemonium_pool_color_array_resize(pandemonium_pool_color_array *p_self, const pandemonium_int p_size);
void GDAPI pandemonium_pool_color_array_sort(pandemonium_pool_color_array *p_self);
pandemonium_pool_color_array_read_access GDAPI *pandemonium_pool_color_array_read(const pandemonium_pool_color_array *p_self);
pandemonium_pool_color_array_write_access GDAPI *pandemonium_pool_color_array_write(pandemonium_pool_color_array *p_self);
void GDAPI pandemonium_pool_color_array_set(pandemonium_pool_color_array *p_self, const pandemonium_int p_idx, const pandemonium_color *p_data);
pandemonium_color GDAPI pandemonium_pool_color_array_get(const pandemonium_pool_color_array *p_self, const pandemonium_int p_idx);
pandemonium_int GDAPI pandemonium_pool_color_array_size(const pandemonium_pool_color_array *p_self);
pandemonium_bool GDAPI pandemonium_pool_color_array_empty(const pandemonium_pool_color_array *p_self);
pandemonium_bool GDAPI pandemonium_pool_color_array_has(const pandemonium_pool_color_array *p_self, const pandemonium_color *p_data);
void GDAPI pandemonium_pool_color_array_destroy(pandemonium_pool_color_array *p_self);
//
// read accessor functions
//
pandemonium_pool_byte_array_read_access GDAPI *pandemonium_pool_byte_array_read_access_copy(const pandemonium_pool_byte_array_read_access *p_other);
const uint8_t GDAPI *pandemonium_pool_byte_array_read_access_ptr(const pandemonium_pool_byte_array_read_access *p_read);
void GDAPI pandemonium_pool_byte_array_read_access_operator_assign(pandemonium_pool_byte_array_read_access *p_read, pandemonium_pool_byte_array_read_access *p_other);
void GDAPI pandemonium_pool_byte_array_read_access_destroy(pandemonium_pool_byte_array_read_access *p_read);
pandemonium_pool_int_array_read_access GDAPI *pandemonium_pool_int_array_read_access_copy(const pandemonium_pool_int_array_read_access *p_other);
const pandemonium_int GDAPI *pandemonium_pool_int_array_read_access_ptr(const pandemonium_pool_int_array_read_access *p_read);
void GDAPI pandemonium_pool_int_array_read_access_operator_assign(pandemonium_pool_int_array_read_access *p_read, pandemonium_pool_int_array_read_access *p_other);
void GDAPI pandemonium_pool_int_array_read_access_destroy(pandemonium_pool_int_array_read_access *p_read);
pandemonium_pool_real_array_read_access GDAPI *pandemonium_pool_real_array_read_access_copy(const pandemonium_pool_real_array_read_access *p_other);
const pandemonium_real GDAPI *pandemonium_pool_real_array_read_access_ptr(const pandemonium_pool_real_array_read_access *p_read);
void GDAPI pandemonium_pool_real_array_read_access_operator_assign(pandemonium_pool_real_array_read_access *p_read, pandemonium_pool_real_array_read_access *p_other);
void GDAPI pandemonium_pool_real_array_read_access_destroy(pandemonium_pool_real_array_read_access *p_read);
pandemonium_pool_string_array_read_access GDAPI *pandemonium_pool_string_array_read_access_copy(const pandemonium_pool_string_array_read_access *p_other);
const pandemonium_string GDAPI *pandemonium_pool_string_array_read_access_ptr(const pandemonium_pool_string_array_read_access *p_read);
void GDAPI pandemonium_pool_string_array_read_access_operator_assign(pandemonium_pool_string_array_read_access *p_read, pandemonium_pool_string_array_read_access *p_other);
void GDAPI pandemonium_pool_string_array_read_access_destroy(pandemonium_pool_string_array_read_access *p_read);
pandemonium_pool_vector2_array_read_access GDAPI *pandemonium_pool_vector2_array_read_access_copy(const pandemonium_pool_vector2_array_read_access *p_other);
const pandemonium_vector2 GDAPI *pandemonium_pool_vector2_array_read_access_ptr(const pandemonium_pool_vector2_array_read_access *p_read);
void GDAPI pandemonium_pool_vector2_array_read_access_operator_assign(pandemonium_pool_vector2_array_read_access *p_read, pandemonium_pool_vector2_array_read_access *p_other);
void GDAPI pandemonium_pool_vector2_array_read_access_destroy(pandemonium_pool_vector2_array_read_access *p_read);
pandemonium_pool_vector2i_array_read_access GDAPI *pandemonium_pool_vector2i_array_read_access_copy(const pandemonium_pool_vector2i_array_read_access *p_other);
const pandemonium_vector2i GDAPI *pandemonium_pool_vector2i_array_read_access_ptr(const pandemonium_pool_vector2i_array_read_access *p_read);
void GDAPI pandemonium_pool_vector2i_array_read_access_operator_assign(pandemonium_pool_vector2i_array_read_access *p_read, pandemonium_pool_vector2i_array_read_access *p_other);
void GDAPI pandemonium_pool_vector2i_array_read_access_destroy(pandemonium_pool_vector2i_array_read_access *p_read);
pandemonium_pool_vector3_array_read_access GDAPI *pandemonium_pool_vector3_array_read_access_copy(const pandemonium_pool_vector3_array_read_access *p_other);
const pandemonium_vector3 GDAPI *pandemonium_pool_vector3_array_read_access_ptr(const pandemonium_pool_vector3_array_read_access *p_read);
void GDAPI pandemonium_pool_vector3_array_read_access_operator_assign(pandemonium_pool_vector3_array_read_access *p_read, pandemonium_pool_vector3_array_read_access *p_other);
void GDAPI pandemonium_pool_vector3_array_read_access_destroy(pandemonium_pool_vector3_array_read_access *p_read);
pandemonium_pool_vector3i_array_read_access GDAPI *pandemonium_pool_vector3i_array_read_access_copy(const pandemonium_pool_vector3i_array_read_access *p_other);
const pandemonium_vector3i GDAPI *pandemonium_pool_vector3i_array_read_access_ptr(const pandemonium_pool_vector3i_array_read_access *p_read);
void GDAPI pandemonium_pool_vector3i_array_read_access_operator_assign(pandemonium_pool_vector3i_array_read_access *p_read, pandemonium_pool_vector3i_array_read_access *p_other);
void GDAPI pandemonium_pool_vector3i_array_read_access_destroy(pandemonium_pool_vector3i_array_read_access *p_read);
pandemonium_pool_vector4_array_read_access GDAPI *pandemonium_pool_vector4_array_read_access_copy(const pandemonium_pool_vector4_array_read_access *p_other);
const pandemonium_vector4 GDAPI *pandemonium_pool_vector4_array_read_access_ptr(const pandemonium_pool_vector4_array_read_access *p_read);
void GDAPI pandemonium_pool_vector4_array_read_access_operator_assign(pandemonium_pool_vector4_array_read_access *p_read, pandemonium_pool_vector4_array_read_access *p_other);
void GDAPI pandemonium_pool_vector4_array_read_access_destroy(pandemonium_pool_vector4_array_read_access *p_read);
pandemonium_pool_vector4i_array_read_access GDAPI *pandemonium_pool_vector4i_array_read_access_copy(const pandemonium_pool_vector4i_array_read_access *p_other);
const pandemonium_vector4i GDAPI *pandemonium_pool_vector4i_array_read_access_ptr(const pandemonium_pool_vector4i_array_read_access *p_read);
void GDAPI pandemonium_pool_vector4i_array_read_access_operator_assign(pandemonium_pool_vector4i_array_read_access *p_read, pandemonium_pool_vector4i_array_read_access *p_other);
void GDAPI pandemonium_pool_vector4i_array_read_access_destroy(pandemonium_pool_vector4i_array_read_access *p_read);
pandemonium_pool_color_array_read_access GDAPI *pandemonium_pool_color_array_read_access_copy(const pandemonium_pool_color_array_read_access *p_other);
const pandemonium_color GDAPI *pandemonium_pool_color_array_read_access_ptr(const pandemonium_pool_color_array_read_access *p_read);
void GDAPI pandemonium_pool_color_array_read_access_operator_assign(pandemonium_pool_color_array_read_access *p_read, pandemonium_pool_color_array_read_access *p_other);
void GDAPI pandemonium_pool_color_array_read_access_destroy(pandemonium_pool_color_array_read_access *p_read);
//
// write accessor functions
//
pandemonium_pool_byte_array_write_access GDAPI *pandemonium_pool_byte_array_write_access_copy(const pandemonium_pool_byte_array_write_access *p_other);
uint8_t GDAPI *pandemonium_pool_byte_array_write_access_ptr(const pandemonium_pool_byte_array_write_access *p_write);
void GDAPI pandemonium_pool_byte_array_write_access_operator_assign(pandemonium_pool_byte_array_write_access *p_write, pandemonium_pool_byte_array_write_access *p_other);
void GDAPI pandemonium_pool_byte_array_write_access_destroy(pandemonium_pool_byte_array_write_access *p_write);
pandemonium_pool_int_array_write_access GDAPI *pandemonium_pool_int_array_write_access_copy(const pandemonium_pool_int_array_write_access *p_other);
pandemonium_int GDAPI *pandemonium_pool_int_array_write_access_ptr(const pandemonium_pool_int_array_write_access *p_write);
void GDAPI pandemonium_pool_int_array_write_access_operator_assign(pandemonium_pool_int_array_write_access *p_write, pandemonium_pool_int_array_write_access *p_other);
void GDAPI pandemonium_pool_int_array_write_access_destroy(pandemonium_pool_int_array_write_access *p_write);
pandemonium_pool_real_array_write_access GDAPI *pandemonium_pool_real_array_write_access_copy(const pandemonium_pool_real_array_write_access *p_other);
pandemonium_real GDAPI *pandemonium_pool_real_array_write_access_ptr(const pandemonium_pool_real_array_write_access *p_write);
void GDAPI pandemonium_pool_real_array_write_access_operator_assign(pandemonium_pool_real_array_write_access *p_write, pandemonium_pool_real_array_write_access *p_other);
void GDAPI pandemonium_pool_real_array_write_access_destroy(pandemonium_pool_real_array_write_access *p_write);
pandemonium_pool_string_array_write_access GDAPI *pandemonium_pool_string_array_write_access_copy(const pandemonium_pool_string_array_write_access *p_other);
pandemonium_string GDAPI *pandemonium_pool_string_array_write_access_ptr(const pandemonium_pool_string_array_write_access *p_write);
void GDAPI pandemonium_pool_string_array_write_access_operator_assign(pandemonium_pool_string_array_write_access *p_write, pandemonium_pool_string_array_write_access *p_other);
void GDAPI pandemonium_pool_string_array_write_access_destroy(pandemonium_pool_string_array_write_access *p_write);
pandemonium_pool_vector2_array_write_access GDAPI *pandemonium_pool_vector2_array_write_access_copy(const pandemonium_pool_vector2_array_write_access *p_other);
pandemonium_vector2 GDAPI *pandemonium_pool_vector2_array_write_access_ptr(const pandemonium_pool_vector2_array_write_access *p_write);
void GDAPI pandemonium_pool_vector2_array_write_access_operator_assign(pandemonium_pool_vector2_array_write_access *p_write, pandemonium_pool_vector2_array_write_access *p_other);
void GDAPI pandemonium_pool_vector2_array_write_access_destroy(pandemonium_pool_vector2_array_write_access *p_write);
pandemonium_pool_vector2i_array_write_access GDAPI *pandemonium_pool_vector2i_array_write_access_copy(const pandemonium_pool_vector2i_array_write_access *p_other);
pandemonium_vector2i GDAPI *pandemonium_pool_vector2i_array_write_access_ptr(const pandemonium_pool_vector2i_array_write_access *p_write);
void GDAPI pandemonium_pool_vector2i_array_write_access_operator_assign(pandemonium_pool_vector2i_array_write_access *p_write, pandemonium_pool_vector2i_array_write_access *p_other);
void GDAPI pandemonium_pool_vector2i_array_write_access_destroy(pandemonium_pool_vector2i_array_write_access *p_write);
pandemonium_pool_vector3_array_write_access GDAPI *pandemonium_pool_vector3_array_write_access_copy(const pandemonium_pool_vector3_array_write_access *p_other);
pandemonium_vector3 GDAPI *pandemonium_pool_vector3_array_write_access_ptr(const pandemonium_pool_vector3_array_write_access *p_write);
void GDAPI pandemonium_pool_vector3_array_write_access_operator_assign(pandemonium_pool_vector3_array_write_access *p_write, pandemonium_pool_vector3_array_write_access *p_other);
void GDAPI pandemonium_pool_vector3_array_write_access_destroy(pandemonium_pool_vector3_array_write_access *p_write);
pandemonium_pool_vector3i_array_write_access GDAPI *pandemonium_pool_vector3i_array_write_access_copy(const pandemonium_pool_vector3i_array_write_access *p_other);
pandemonium_vector3i GDAPI *pandemonium_pool_vector3i_array_write_access_ptr(const pandemonium_pool_vector3i_array_write_access *p_write);
void GDAPI pandemonium_pool_vector3i_array_write_access_operator_assign(pandemonium_pool_vector3i_array_write_access *p_write, pandemonium_pool_vector3i_array_write_access *p_other);
void GDAPI pandemonium_pool_vector3i_array_write_access_destroy(pandemonium_pool_vector3i_array_write_access *p_write);
pandemonium_pool_vector4_array_write_access GDAPI *pandemonium_pool_vector4_array_write_access_copy(const pandemonium_pool_vector4_array_write_access *p_other);
pandemonium_vector4 GDAPI *pandemonium_pool_vector4_array_write_access_ptr(const pandemonium_pool_vector4_array_write_access *p_write);
void GDAPI pandemonium_pool_vector4_array_write_access_operator_assign(pandemonium_pool_vector4_array_write_access *p_write, pandemonium_pool_vector4_array_write_access *p_other);
void GDAPI pandemonium_pool_vector4_array_write_access_destroy(pandemonium_pool_vector4_array_write_access *p_write);
pandemonium_pool_vector4i_array_write_access GDAPI *pandemonium_pool_vector4i_array_write_access_copy(const pandemonium_pool_vector4i_array_write_access *p_other);
pandemonium_vector4i GDAPI *pandemonium_pool_vector4i_array_write_access_ptr(const pandemonium_pool_vector4i_array_write_access *p_write);
void GDAPI pandemonium_pool_vector4i_array_write_access_operator_assign(pandemonium_pool_vector4i_array_write_access *p_write, pandemonium_pool_vector4i_array_write_access *p_other);
void GDAPI pandemonium_pool_vector4i_array_write_access_destroy(pandemonium_pool_vector4i_array_write_access *p_write);
pandemonium_pool_color_array_write_access GDAPI *pandemonium_pool_color_array_write_access_copy(const pandemonium_pool_color_array_write_access *p_other);
pandemonium_color GDAPI *pandemonium_pool_color_array_write_access_ptr(const pandemonium_pool_color_array_write_access *p_write);
void GDAPI pandemonium_pool_color_array_write_access_operator_assign(pandemonium_pool_color_array_write_access *p_write, pandemonium_pool_color_array_write_access *p_other);
void GDAPI pandemonium_pool_color_array_write_access_destroy(pandemonium_pool_color_array_write_access *p_write);
#ifdef __cplusplus
}
#endif
#endif // GDNATIVE_POOL_ARRAYS_H

View File

@ -0,0 +1,165 @@
/**************************************************************************/
/* projection.h */
/**************************************************************************/
/* This file is part of: */
/* PANDEMONIUM ENGINE */
/* https://pandemoniumengine.org */
/**************************************************************************/
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
/* "Software"), to deal in the Software without restriction, including */
/* without limitation the rights to use, copy, modify, merge, publish, */
/* distribute, sublicense, and/or sell copies of the Software, and to */
/* permit persons to whom the Software is furnished to do so, subject to */
/* the following conditions: */
/* */
/* The above copyright notice and this permission notice shall be */
/* included in all copies or substantial portions of the Software. */
/* */
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/**************************************************************************/
#ifndef GDNATIVE_PROJECTION_H
#define GDNATIVE_PROJECTION_H
#ifdef __cplusplus
extern "C" {
#endif
#include <stdint.h>
#define PANDEMONIUM_PROJECTION_SIZE 64
#ifndef PANDEMONIUM_CORE_API_PANDEMONIUM_PROJECTION_TYPE_DEFINED
#define PANDEMONIUM_CORE_API_PANDEMONIUM_PROJECTION_TYPE_DEFINED
typedef struct {
uint8_t _dont_touch_that[PANDEMONIUM_PROJECTION_SIZE];
} pandemonium_projection;
#endif
// reduce extern "C" nesting for VS2013
#ifdef __cplusplus
}
#endif
#include <gdn/gdnative.h>
#include <gdn/plane.h>
#include <gdn/vector2.h>
#include <gdn/vector3.h>
#include <gdn/vector4.h>
#include <gdn/rect2.h>
#include <gdn/transform.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef enum {
PANDEMONIUM_PROJECTION_PLANE_NEAR,
PANDEMONIUM_PROJECTION_PLANE_FAR,
PANDEMONIUM_PROJECTION_PLANE_LEFT,
PANDEMONIUM_PROJECTION_PLANE_TOP,
PANDEMONIUM_PROJECTION_PLANE_RIGHT,
PANDEMONIUM_PROJECTION_PLANE_BOTTOM
} pandemonium_projection_planes;
pandemonium_vector4 GDAPI *pandemonium_projection_operator_index(pandemonium_projection *p_self, const pandemonium_int p_axis);
const pandemonium_vector4 GDAPI *pandemonium_projection_operator_index_const(const pandemonium_projection *p_self, const pandemonium_int p_axis);
pandemonium_real GDAPI pandemonium_projection_determinant(const pandemonium_projection *p_self);
void GDAPI pandemonium_projection_set_identity(pandemonium_projection *p_self);
void GDAPI pandemonium_projection_set_zero(pandemonium_projection *p_self);
void GDAPI pandemonium_projection_set_light_bias(pandemonium_projection *p_self);
void GDAPI pandemonium_projection_set_depth_correction(pandemonium_projection *p_self);
void GDAPI pandemonium_projection_set_depth_correction_flip(pandemonium_projection *p_self, pandemonium_bool p_flip_y);
void GDAPI pandemonium_projection_set_light_atlas_rect(pandemonium_projection *p_self, const pandemonium_rect2 *p_rect);
void GDAPI pandemonium_projection_set_perspective1(pandemonium_projection *p_self, pandemonium_real p_fovy_degrees, pandemonium_real p_aspect, pandemonium_real p_z_near, pandemonium_real p_z_far);
void GDAPI pandemonium_projection_set_perspective1_flip_fov(pandemonium_projection *p_self, pandemonium_real p_fovy_degrees, pandemonium_real p_aspect, pandemonium_real p_z_near, pandemonium_real p_z_far, pandemonium_bool p_flip_fov);
void GDAPI pandemonium_projection_set_perspective2(pandemonium_projection *p_self, pandemonium_real p_fovy_degrees, pandemonium_real p_aspect, pandemonium_real p_z_near, pandemonium_real p_z_far, pandemonium_bool p_flip_fov, pandemonium_int p_eye, pandemonium_real p_intraocular_dist, pandemonium_real p_convergence_dist);
void GDAPI pandemonium_projection_set_for_hmd(pandemonium_projection *p_self, pandemonium_int p_eye, pandemonium_real p_aspect, pandemonium_real p_intraocular_dist, pandemonium_real p_display_width, pandemonium_real p_display_to_lens, pandemonium_real p_oversample, pandemonium_real p_z_near, pandemonium_real p_z_far);
void GDAPI pandemonium_projection_set_orthogonal1(pandemonium_projection *p_self, pandemonium_real p_left, pandemonium_real p_right, pandemonium_real p_bottom, pandemonium_real p_top, pandemonium_real p_znear, pandemonium_real p_zfar);
void GDAPI pandemonium_projection_set_orthogonal2(pandemonium_projection *p_self, pandemonium_real p_size, pandemonium_real p_aspect, pandemonium_real p_znear, pandemonium_real p_zfar);
void GDAPI pandemonium_projection_set_orthogonal2_flip_fov(pandemonium_projection *p_self, pandemonium_real p_size, pandemonium_real p_aspect, pandemonium_real p_znear, pandemonium_real p_zfar, pandemonium_bool p_flip_fov);
void GDAPI pandemonium_projection_set_frustum1(pandemonium_projection *p_self, pandemonium_real p_left, pandemonium_real p_right, pandemonium_real p_bottom, pandemonium_real p_top, pandemonium_real p_near, pandemonium_real p_far);
void GDAPI pandemonium_projection_set_frustum2(pandemonium_projection *p_self, pandemonium_real p_size, pandemonium_real p_aspect, pandemonium_vector2 *p_offset, pandemonium_real p_near, pandemonium_real p_far);
void GDAPI pandemonium_projection_set_frustum2_flip_fov(pandemonium_projection *p_self, pandemonium_real p_size, pandemonium_real p_aspect, pandemonium_vector2 *p_offset, pandemonium_real p_near, pandemonium_real p_far, pandemonium_bool p_flip_fov);
void GDAPI pandemonium_projection_adjust_perspective_znear(pandemonium_projection *p_self, pandemonium_real p_new_znear);
pandemonium_projection GDAPI pandemonium_projection_create_depth_correction(pandemonium_bool p_flip_y);
pandemonium_projection GDAPI pandemonium_projection_create_light_atlas_rect(const pandemonium_rect2 *p_rect);
pandemonium_projection GDAPI pandemonium_projection_create_perspective(pandemonium_real p_fovy_degrees, pandemonium_real p_aspect, pandemonium_real p_z_near, pandemonium_real p_z_far, pandemonium_bool p_flip_fov);
pandemonium_projection GDAPI pandemonium_projection_create_perspective_hmd(pandemonium_real p_fovy_degrees, pandemonium_real p_aspect, pandemonium_real p_z_near, pandemonium_real p_z_far, pandemonium_bool p_flip_fov, pandemonium_int p_eye, pandemonium_real p_intraocular_dist, pandemonium_real p_convergence_dist);
pandemonium_projection GDAPI pandemonium_projection_create_for_hmd(pandemonium_int p_eye, pandemonium_real p_aspect, pandemonium_real p_intraocular_dist, pandemonium_real p_display_width, pandemonium_real p_display_to_lens, pandemonium_real p_oversample, pandemonium_real p_z_near, pandemonium_real p_z_far);
pandemonium_projection GDAPI pandemonium_projection_create_orthogonal(pandemonium_real p_left, pandemonium_real p_right, pandemonium_real p_bottom, pandemonium_real p_top, pandemonium_real p_znear, pandemonium_real p_zfar);
pandemonium_projection GDAPI pandemonium_projection_create_orthogonal_aspect(pandemonium_real p_size, pandemonium_real p_aspect, pandemonium_real p_znear, pandemonium_real p_zfar, pandemonium_bool p_flip_fov);
pandemonium_projection GDAPI pandemonium_projection_create_frustum(pandemonium_real p_left, pandemonium_real p_right, pandemonium_real p_bottom, pandemonium_real p_top, pandemonium_real p_near, pandemonium_real p_far);
pandemonium_projection GDAPI pandemonium_projection_create_frustum_aspect(pandemonium_real p_size, pandemonium_real p_aspect, pandemonium_vector2 *p_offset, pandemonium_real p_near, pandemonium_real p_far, pandemonium_bool p_flip_fov);
pandemonium_projection GDAPI pandemonium_projection_create_fit_aabb(const pandemonium_aabb *p_aabb);
pandemonium_projection GDAPI pandemonium_projection_perspective_znear_adjusted(const pandemonium_projection *p_self, pandemonium_real p_new_znear);
pandemonium_plane GDAPI pandemonium_projection_get_projection_plane(const pandemonium_projection *p_self, pandemonium_projection_planes p_plane);
pandemonium_projection GDAPI pandemonium_projection_flipped_y(const pandemonium_projection *p_self);
pandemonium_projection GDAPI pandemonium_projection_jitter_offseted(const pandemonium_projection *p_self, const pandemonium_vector2 *p_offset);
pandemonium_real GDAPI pandemonium_projection_get_fovy(pandemonium_real p_fovx, pandemonium_real p_aspect);
pandemonium_real GDAPI pandemonium_projection_calculate_fovy(pandemonium_projection *p_self, pandemonium_real p_fovx, pandemonium_real p_aspect);
pandemonium_real GDAPI pandemonium_projection_get_z_far(const pandemonium_projection *p_self);
pandemonium_real GDAPI pandemonium_projection_get_z_near(const pandemonium_projection *p_self);
pandemonium_real GDAPI pandemonium_projection_get_aspect(const pandemonium_projection *p_self);
pandemonium_real GDAPI pandemonium_projection_get_fov(const pandemonium_projection *p_self);
pandemonium_bool GDAPI pandemonium_projection_is_orthogonal(const pandemonium_projection *p_self);
//Vector<Plane> get_projection_planes(const Projection &p_projection) const;
pandemonium_array GDAPI pandemonium_projection_get_projection_planes_array(const pandemonium_projection *p_self, const pandemonium_projection *p_projection);
pandemonium_bool GDAPI pandemonium_projection_get_endpoints(const pandemonium_projection *p_self, const pandemonium_projection *p_projection, pandemonium_vector3 *p_8points);
pandemonium_vector2 GDAPI pandemonium_projection_get_viewport_half_extents(const pandemonium_projection *p_self);
pandemonium_vector2 GDAPI pandemonium_projection_get_far_plane_half_extents(const pandemonium_projection *p_self);
void GDAPI pandemonium_projection_invert(pandemonium_projection *p_self);
pandemonium_projection GDAPI pandemonium_projection_inverse(const pandemonium_projection *p_self);
pandemonium_projection GDAPI pandemonium_projection_operator_mul(const pandemonium_projection *p_self, const pandemonium_projection *p_matrix);
pandemonium_vector4 GDAPI pandemonium_projection_xform_vector4(const pandemonium_projection *p_self, const pandemonium_vector4 *p_vec4);
pandemonium_vector4 GDAPI pandemonium_projection_xform_inv_vector4(const pandemonium_projection *p_self, const pandemonium_vector4 *p_vec4);
pandemonium_vector3 GDAPI pandemonium_projection_xform_vector3(const pandemonium_projection *p_self, const pandemonium_vector3 *p_vector);
pandemonium_plane GDAPI pandemonium_projection_xform_plane(const pandemonium_projection *p_self, const pandemonium_plane *p_plane);
pandemonium_string GDAPI pandemonium_projection_as_string(const pandemonium_projection *p_self);
void GDAPI pandemonium_projection_scale_translate_to_fit(pandemonium_projection *p_self, const pandemonium_aabb *p_aabb);
void GDAPI pandemonium_projection_add_jitter_offset(pandemonium_projection *p_self, const pandemonium_vector2 *p_offset);
void GDAPI pandemonium_projection_make_scale(pandemonium_projection *p_self, const pandemonium_vector3 *p_scale);
pandemonium_int GDAPI pandemonium_projection_get_pixels_per_meter(const pandemonium_projection *p_self, pandemonium_int p_for_pixel_width);
pandemonium_transform GDAPI pandemonium_projection_to_transform(const pandemonium_projection *p_self);
void GDAPI pandemonium_projection_flip_y(pandemonium_projection *p_self);
pandemonium_bool GDAPI pandemonium_projection_operator_equal(const pandemonium_projection *p_self, const pandemonium_projection *p_cam);
pandemonium_real GDAPI pandemonium_projection_get_lod_multiplier(const pandemonium_projection *p_self);
void GDAPI pandemonium_projection_new_identity(pandemonium_projection *r_dest);
void GDAPI pandemonium_projection_new_vector4s(pandemonium_projection *r_dest, const pandemonium_vector4 *p_x, const pandemonium_vector4 *p_y, const pandemonium_vector4 *p_z, const pandemonium_vector4 *p_w);
void GDAPI pandemonium_projection_new_from_projection(pandemonium_projection *r_dest, const pandemonium_projection *p_projection);
#ifdef __cplusplus
}
#endif
#endif // GDNATIVE_PROJECTION_H

View File

@ -0,0 +1,133 @@
/**************************************************************************/
/* quaternion.h */
/**************************************************************************/
/* This file is part of: */
/* PANDEMONIUM ENGINE */
/* https://pandemoniumengine.org */
/**************************************************************************/
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
/* "Software"), to deal in the Software without restriction, including */
/* without limitation the rights to use, copy, modify, merge, publish, */
/* distribute, sublicense, and/or sell copies of the Software, and to */
/* permit persons to whom the Software is furnished to do so, subject to */
/* the following conditions: */
/* */
/* The above copyright notice and this permission notice shall be */
/* included in all copies or substantial portions of the Software. */
/* */
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/**************************************************************************/
#ifndef GDNATIVE_QUATERNION_H
#define GDNATIVE_QUATERNION_H
#ifdef __cplusplus
extern "C" {
#endif
#include <stdint.h>
#define PANDEMONIUM_QUATERNION_SIZE 16
#ifndef PANDEMONIUM_CORE_API_PANDEMONIUM_QUATERNION_TYPE_DEFINED
#define PANDEMONIUM_CORE_API_PANDEMONIUM_QUATERNION_TYPE_DEFINED
typedef struct {
uint8_t _dont_touch_that[PANDEMONIUM_QUATERNION_SIZE];
} pandemonium_quaternion;
#endif
// reduce extern "C" nesting for VS2013
#ifdef __cplusplus
}
#endif
#include <gdn/gdnative.h>
#include <gdn/vector3.h>
#ifdef __cplusplus
extern "C" {
#endif
pandemonium_real GDAPI pandemonium_quaternion_get_x(const pandemonium_quaternion *p_self);
void GDAPI pandemonium_quaternion_set_x(pandemonium_quaternion *p_self, const pandemonium_real val);
pandemonium_real GDAPI pandemonium_quaternion_get_y(const pandemonium_quaternion *p_self);
void GDAPI pandemonium_quaternion_set_y(pandemonium_quaternion *p_self, const pandemonium_real val);
pandemonium_real GDAPI pandemonium_quaternion_get_z(const pandemonium_quaternion *p_self);
void GDAPI pandemonium_quaternion_set_z(pandemonium_quaternion *p_self, const pandemonium_real val);
pandemonium_real GDAPI pandemonium_quaternion_get_w(const pandemonium_quaternion *p_self);
void GDAPI pandemonium_quaternion_set_w(pandemonium_quaternion *p_self, const pandemonium_real val);
pandemonium_real GDAPI pandemonium_quaternion_length_squared(const pandemonium_quaternion *p_self);
pandemonium_bool GDAPI pandemonium_quaternion_is_equal_approx(const pandemonium_quaternion *p_self, const pandemonium_quaternion *p_quat);
pandemonium_real GDAPI pandemonium_quaternion_length(const pandemonium_quaternion *p_self);
void GDAPI pandemonium_quaternion_normalize(pandemonium_quaternion *p_self);
pandemonium_quaternion GDAPI pandemonium_quaternion_normalized(const pandemonium_quaternion *p_self);
pandemonium_bool GDAPI pandemonium_quaternion_is_normalized(const pandemonium_quaternion *p_self);
pandemonium_quaternion GDAPI pandemonium_quaternion_inverse(const pandemonium_quaternion *p_self);
pandemonium_quaternion GDAPI pandemonium_quaternion_log(const pandemonium_quaternion *p_self);
pandemonium_quaternion GDAPI pandemonium_quaternion_exp(const pandemonium_quaternion *p_self);
pandemonium_real GDAPI pandemonium_quaternion_dot(const pandemonium_quaternion *p_self, const pandemonium_quaternion *p_b);
pandemonium_real GDAPI pandemonium_quaternion_angle_to(const pandemonium_quaternion *p_self, const pandemonium_quaternion *p_to);
void GDAPI pandemonium_quaternion_set_euler_xyz(pandemonium_quaternion *p_self, const pandemonium_vector3 *p_euler);
pandemonium_vector3 GDAPI pandemonium_quaternion_get_euler_xyz(const pandemonium_quaternion *p_self);
void GDAPI pandemonium_quaternion_set_euler_yxz(pandemonium_quaternion *p_self, const pandemonium_vector3 *p_euler);
pandemonium_vector3 GDAPI pandemonium_quaternion_get_euler_yxz(const pandemonium_quaternion *p_self);
void GDAPI pandemonium_quaternion_set_euler(pandemonium_quaternion *p_self, const pandemonium_vector3 *p_euler);
pandemonium_vector3 GDAPI pandemonium_quaternion_get_euler(const pandemonium_quaternion *p_self);
pandemonium_quaternion GDAPI pandemonium_quaternion_slerp(const pandemonium_quaternion *p_self, const pandemonium_quaternion *p_b, const pandemonium_real p_t);
pandemonium_quaternion GDAPI pandemonium_quaternion_slerpni(const pandemonium_quaternion *p_self, const pandemonium_quaternion *p_b, const pandemonium_real p_t);
pandemonium_quaternion GDAPI pandemonium_quaternion_cubic_slerp(const pandemonium_quaternion *p_self, const pandemonium_quaternion *p_b, const pandemonium_quaternion *p_pre_a, const pandemonium_quaternion *p_post_b, const pandemonium_real p_t);
pandemonium_quaternion GDAPI pandemonium_quaternion_spherical_cubic_interpolate(const pandemonium_quaternion *p_self, const pandemonium_quaternion *p_b, const pandemonium_quaternion *p_pre_a, const pandemonium_quaternion *p_post_b, const pandemonium_real p_weight);
pandemonium_vector3 GDAPI pandemonium_quaternion_get_axis(const pandemonium_quaternion *p_self);
pandemonium_real GDAPI pandemonium_quaternion_get_angle(const pandemonium_quaternion *p_self);
void GDAPI pandemonium_quaternion_set_axis_angle(pandemonium_quaternion *p_self, const pandemonium_vector3 *p_axis, const pandemonium_real p_angle);
void GDAPI pandemonium_quaternion_get_axis_angle(const pandemonium_quaternion *p_self, pandemonium_vector3 *r_axis, pandemonium_real r_angle);
void GDAPI pandemonium_quaternion_operator_mul_eq(pandemonium_quaternion *p_self, const pandemonium_quaternion *p_q);
pandemonium_vector3 GDAPI pandemonium_quaternion_xform(const pandemonium_quaternion *p_self, const pandemonium_vector3 *p_v);
pandemonium_quaternion GDAPI pandemonium_quaternion_operator_add(const pandemonium_quaternion *p_self, const pandemonium_quaternion *p_b);
pandemonium_quaternion GDAPI pandemonium_quaternion_operator_subtract(const pandemonium_quaternion *p_self, const pandemonium_quaternion *p_b);
pandemonium_quaternion GDAPI pandemonium_quaternion_operator_multiply(const pandemonium_quaternion *p_self, const pandemonium_real p_b);
pandemonium_quaternion GDAPI pandemonium_quaternion_operator_divide(const pandemonium_quaternion *p_self, const pandemonium_real p_b);
pandemonium_quaternion GDAPI pandemonium_quaternion_operator_neg(const pandemonium_quaternion *p_self);
pandemonium_bool GDAPI pandemonium_quaternion_operator_equal(const pandemonium_quaternion *p_self, const pandemonium_quaternion *p_b);
pandemonium_string GDAPI pandemonium_quaternion_as_string(const pandemonium_quaternion *p_self);
void GDAPI pandemonium_quaternion_set(pandemonium_quaternion *p_self, pandemonium_real p_x, pandemonium_real p_y, pandemonium_real p_z, pandemonium_real p_w);
void GDAPI pandemonium_quaternion_new(pandemonium_quaternion *r_dest, const pandemonium_real p_x, const pandemonium_real p_y, const pandemonium_real p_z, const pandemonium_real p_w);
void GDAPI pandemonium_quaternion_new_with_axis_angle(pandemonium_quaternion *r_dest, const pandemonium_vector3 *p_axis, const pandemonium_real p_angle);
void GDAPI pandemonium_quaternion_new_with_basis(pandemonium_quaternion *r_dest, const pandemonium_basis *p_basis);
void GDAPI pandemonium_quaternion_new_with_euler(pandemonium_quaternion *r_dest, const pandemonium_vector3 *p_euler);
void GDAPI pandemonium_quaternion_new_shortest_arc(pandemonium_quaternion *r_dest, const pandemonium_vector3 *p_v0, const pandemonium_vector3 *p_v1);
#ifdef __cplusplus
}
#endif
#endif // GDNATIVE_QUATERNION_H

View File

@ -0,0 +1,118 @@
/**************************************************************************/
/* rect2.h */
/**************************************************************************/
/* This file is part of: */
/* PANDEMONIUM ENGINE */
/* https://pandemoniumengine.org */
/**************************************************************************/
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
/* "Software"), to deal in the Software without restriction, including */
/* without limitation the rights to use, copy, modify, merge, publish, */
/* distribute, sublicense, and/or sell copies of the Software, and to */
/* permit persons to whom the Software is furnished to do so, subject to */
/* the following conditions: */
/* */
/* The above copyright notice and this permission notice shall be */
/* included in all copies or substantial portions of the Software. */
/* */
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/**************************************************************************/
#ifndef GDNATIVE_RECT2_H
#define GDNATIVE_RECT2_H
#ifdef __cplusplus
extern "C" {
#endif
#include <stdint.h>
#ifndef PANDEMONIUM_CORE_API_PANDEMONIUM_RECT2_TYPE_DEFINED
#define PANDEMONIUM_CORE_API_PANDEMONIUM_RECT2_TYPE_DEFINED
typedef struct pandemonium_rect2 {
uint8_t _dont_touch_that[16];
} pandemonium_rect2;
#endif
// reduce extern "C" nesting for VS2013
#ifdef __cplusplus
}
#endif
#include <gdn/gdnative.h>
#include <gdn/vector2.h>
#include <gdn/transform2d.h>
#ifdef __cplusplus
extern "C" {
#endif
pandemonium_vector2 GDAPI pandemonium_rect2_get_position(const pandemonium_rect2 *p_self);
void GDAPI pandemonium_rect2_set_position(pandemonium_rect2 *p_self, const pandemonium_vector2 *p_pos);
pandemonium_vector2 GDAPI pandemonium_rect2_get_size(const pandemonium_rect2 *p_self);
void GDAPI pandemonium_rect2_set_size(pandemonium_rect2 *p_self, const pandemonium_vector2 *p_size);
pandemonium_real GDAPI pandemonium_rect2_get_area(const pandemonium_rect2 *p_self);
pandemonium_vector2 GDAPI pandemonium_rect2_get_center(const pandemonium_rect2 *p_self);
pandemonium_bool GDAPI pandemonium_rect2_intersects(const pandemonium_rect2 *p_self, const pandemonium_rect2 *p_b);
pandemonium_real GDAPI pandemonium_rect2_distance_to(const pandemonium_rect2 *p_self, const pandemonium_vector2 *p_point);
pandemonium_bool GDAPI pandemonium_rect2_intersects_transformed(const pandemonium_rect2 *p_self, const pandemonium_transform2d *p_xform, const pandemonium_rect2 *p_rect);
pandemonium_bool GDAPI pandemonium_rect2_intersects_segment(const pandemonium_rect2 *p_self, const pandemonium_vector2 *p_from, const pandemonium_vector2 *p_to);
pandemonium_bool GDAPI pandemonium_rect2_intersects_segment_pos(const pandemonium_rect2 *p_self, const pandemonium_vector2 *p_from, const pandemonium_vector2 *p_to, pandemonium_vector2 *r_pos);
pandemonium_bool GDAPI pandemonium_rect2_intersects_segment_pos_normal(const pandemonium_rect2 *p_self, const pandemonium_vector2 *p_from, const pandemonium_vector2 *p_to, pandemonium_vector2 *r_pos, pandemonium_vector2 *r_normal);
pandemonium_bool GDAPI pandemonium_rect2_encloses(const pandemonium_rect2 *p_self, const pandemonium_rect2 *p_b);
pandemonium_bool GDAPI pandemonium_rect2_has_no_area(const pandemonium_rect2 *p_self);
pandemonium_rect2 GDAPI pandemonium_rect2_clip(const pandemonium_rect2 *p_self, const pandemonium_rect2 *p_b);
pandemonium_rect2 GDAPI pandemonium_rect2_intersection(const pandemonium_rect2 *p_self, const pandemonium_rect2 *p_rect);
pandemonium_rect2 GDAPI pandemonium_rect2_merge(const pandemonium_rect2 *p_self, const pandemonium_rect2 *p_b);
pandemonium_bool GDAPI pandemonium_rect2_has_point(const pandemonium_rect2 *p_self, const pandemonium_vector2 *p_point);
pandemonium_bool GDAPI pandemonium_rect2_is_equal_approx(const pandemonium_rect2 *p_self, const pandemonium_rect2 *p_rect);
pandemonium_bool GDAPI pandemonium_rect2_operator_equal(const pandemonium_rect2 *p_self, const pandemonium_rect2 *p_b);
pandemonium_rect2 GDAPI pandemonium_rect2_grow(const pandemonium_rect2 *p_self, const pandemonium_real p_by);
void GDAPI pandemonium_rect2_grow_by(pandemonium_rect2 *p_self, const pandemonium_real p_by);
pandemonium_rect2 GDAPI pandemonium_rect2_grow_margin(const pandemonium_rect2 *p_self, const pandemonium_int p_margin, const pandemonium_real p_by);
pandemonium_rect2 GDAPI pandemonium_rect2_grow_side(const pandemonium_rect2 *p_self, const pandemonium_int p_side, const pandemonium_real p_amount);
pandemonium_rect2 GDAPI pandemonium_rect2_grow_individual(const pandemonium_rect2 *p_self, const pandemonium_real p_left, const pandemonium_real p_top, const pandemonium_real p_right, const pandemonium_real p_bottom);
pandemonium_rect2 GDAPI pandemonium_rect2_expand(const pandemonium_rect2 *p_self, const pandemonium_vector2 *p_to);
void GDAPI pandemonium_rect2_expand_to(pandemonium_rect2 *p_self, const pandemonium_vector2 *p_vector);
pandemonium_rect2 GDAPI pandemonium_rect2_abs(const pandemonium_rect2 *p_self);
pandemonium_vector2 GDAPI pandemonium_rect2_get_support(const pandemonium_rect2 *p_self, const pandemonium_vector2 *p_normal);
void GDAPI pandemonium_rect2_set_end(pandemonium_rect2 *p_self, const pandemonium_vector2 *p_end);
pandemonium_vector2 GDAPI pandemonium_rect2_get_end(const pandemonium_rect2 *p_self);
pandemonium_string GDAPI pandemonium_rect2_as_string(const pandemonium_rect2 *p_self);
void GDAPI pandemonium_rect2_new_with_position_and_size(pandemonium_rect2 *r_dest, const pandemonium_vector2 *p_pos, const pandemonium_vector2 *p_size);
void GDAPI pandemonium_rect2_new(pandemonium_rect2 *r_dest, const pandemonium_real p_x, const pandemonium_real p_y, const pandemonium_real p_width, const pandemonium_real p_height);
#ifdef __cplusplus
}
#endif
#endif // GDNATIVE_RECT2_H

View File

@ -0,0 +1,110 @@
/**************************************************************************/
/* rect2i.h */
/**************************************************************************/
/* This file is part of: */
/* PANDEMONIUM ENGINE */
/* https://pandemoniumengine.org */
/**************************************************************************/
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
/* "Software"), to deal in the Software without restriction, including */
/* without limitation the rights to use, copy, modify, merge, publish, */
/* distribute, sublicense, and/or sell copies of the Software, and to */
/* permit persons to whom the Software is furnished to do so, subject to */
/* the following conditions: */
/* */
/* The above copyright notice and this permission notice shall be */
/* included in all copies or substantial portions of the Software. */
/* */
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/**************************************************************************/
#ifndef GDNATIVE_RECT2I_H
#define GDNATIVE_RECT2I_H
#ifdef __cplusplus
extern "C" {
#endif
#include <stdint.h>
#ifndef PANDEMONIUM_CORE_API_PANDEMONIUM_RECT2I_TYPE_DEFINED
#define PANDEMONIUM_CORE_API_PANDEMONIUM_RECT2I_TYPE_DEFINED
typedef struct pandemonium_rect2i {
uint8_t _dont_touch_that[16];
} pandemonium_rect2i;
#endif
// reduce extern "C" nesting for VS2013
#ifdef __cplusplus
}
#endif
#include <gdn/gdnative.h>
#include <gdn/transform2d.h>
#include <gdn/vector2i.h>
#ifdef __cplusplus
extern "C" {
#endif
pandemonium_vector2i GDAPI pandemonium_rect2i_get_position(const pandemonium_rect2i *p_self);
void GDAPI pandemonium_rect2i_set_position(pandemonium_rect2i *p_self, const pandemonium_vector2i *p_pos);
pandemonium_vector2i GDAPI pandemonium_rect2i_get_size(const pandemonium_rect2i *p_self);
void GDAPI pandemonium_rect2i_set_size(pandemonium_rect2i *p_self, const pandemonium_vector2i *p_size);
pandemonium_real GDAPI pandemonium_rect2i_get_area(const pandemonium_rect2i *p_self);
pandemonium_vector2i GDAPI pandemonium_rect2i_get_center(const pandemonium_rect2i *p_self);
pandemonium_bool GDAPI pandemonium_rect2i_intersects(const pandemonium_rect2i *p_self, const pandemonium_rect2i *p_b);
pandemonium_bool GDAPI pandemonium_rect2i_encloses(const pandemonium_rect2i *p_self, const pandemonium_rect2i *p_b);
pandemonium_bool GDAPI pandemonium_rect2i_has_no_area(const pandemonium_rect2i *p_self);
pandemonium_rect2i GDAPI pandemonium_rect2i_clip(const pandemonium_rect2i *p_self, const pandemonium_rect2i *p_b);
pandemonium_rect2i GDAPI pandemonium_rect2i_intersection(const pandemonium_rect2i *p_self, const pandemonium_rect2i *p_rect);
pandemonium_rect2i GDAPI pandemonium_rect2i_merge(const pandemonium_rect2i *p_self, const pandemonium_rect2i *p_b);
pandemonium_bool GDAPI pandemonium_rect2i_has_point(const pandemonium_rect2i *p_self, const pandemonium_vector2i *p_point);
pandemonium_bool GDAPI pandemonium_rect2i_operator_equal(const pandemonium_rect2i *p_self, const pandemonium_rect2i *p_b);
pandemonium_rect2i GDAPI pandemonium_rect2i_grow(const pandemonium_rect2i *p_self, const pandemonium_real p_by);
void GDAPI pandemonium_rect2i_grow_by(pandemonium_rect2i *p_self, const pandemonium_real p_by);
pandemonium_rect2i GDAPI pandemonium_rect2i_grow_margin(const pandemonium_rect2i *p_self, const pandemonium_int p_margin, const pandemonium_real p_by);
pandemonium_rect2i GDAPI pandemonium_rect2i_grow_side(const pandemonium_rect2i *p_self, const pandemonium_int p_side, const pandemonium_real p_amount);
pandemonium_rect2i GDAPI pandemonium_rect2i_grow_individual(const pandemonium_rect2i *p_self, const pandemonium_real p_left, const pandemonium_real p_top, const pandemonium_real p_right, const pandemonium_real p_bottom);
pandemonium_rect2i GDAPI pandemonium_rect2i_expand(const pandemonium_rect2i *p_self, const pandemonium_vector2i *p_to);
void GDAPI pandemonium_rect2i_expand_to(pandemonium_rect2i *p_self, const pandemonium_vector2i *p_vector);
pandemonium_rect2i GDAPI pandemonium_rect2i_abs(const pandemonium_rect2i *p_self);
void GDAPI pandemonium_rect2i_set_end(pandemonium_rect2i *p_self, const pandemonium_vector2i *p_end);
pandemonium_vector2i GDAPI pandemonium_rect2i_get_end(const pandemonium_rect2i *p_self);
pandemonium_rect2 GDAPI pandemonium_rect2i_to_rect2(const pandemonium_rect2i *p_self);
pandemonium_string GDAPI pandemonium_rect2i_as_string(const pandemonium_rect2i *p_self);
void GDAPI pandemonium_rect2i_new_with_position_and_size(pandemonium_rect2i *r_dest, const pandemonium_vector2i *p_pos, const pandemonium_vector2i *p_size);
void GDAPI pandemonium_rect2i_new(pandemonium_rect2i *r_dest, const pandemonium_real p_x, const pandemonium_real p_y, const pandemonium_real p_width, const pandemonium_real p_height);
void GDAPI pandemonium_rect2i_new_from_rect2(pandemonium_rect2i *r_dest, const pandemonium_rect2 *p_r2);
#ifdef __cplusplus
}
#endif
#endif // GDNATIVE_RECT2I_H

View File

@ -0,0 +1,74 @@
/**************************************************************************/
/* rid.h */
/**************************************************************************/
/* This file is part of: */
/* PANDEMONIUM ENGINE */
/* https://pandemoniumengine.org */
/**************************************************************************/
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
/* "Software"), to deal in the Software without restriction, including */
/* without limitation the rights to use, copy, modify, merge, publish, */
/* distribute, sublicense, and/or sell copies of the Software, and to */
/* permit persons to whom the Software is furnished to do so, subject to */
/* the following conditions: */
/* */
/* The above copyright notice and this permission notice shall be */
/* included in all copies or substantial portions of the Software. */
/* */
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/**************************************************************************/
#ifndef GDNATIVE_RID_H
#define GDNATIVE_RID_H
#ifdef __cplusplus
extern "C" {
#endif
#include <stdint.h>
#define PANDEMONIUM_RID_SIZE sizeof(void *)
#ifndef PANDEMONIUM_CORE_API_PANDEMONIUM_RID_TYPE_DEFINED
#define PANDEMONIUM_CORE_API_PANDEMONIUM_RID_TYPE_DEFINED
typedef struct {
uint8_t _dont_touch_that[PANDEMONIUM_RID_SIZE];
} pandemonium_rid;
#endif
// reduce extern "C" nesting for VS2013
#ifdef __cplusplus
}
#endif
#include <gdn/gdnative.h>
#ifdef __cplusplus
extern "C" {
#endif
pandemonium_int GDAPI pandemonium_rid_get_id(const pandemonium_rid *p_self);
void GDAPI pandemonium_rid_new_with_resource(pandemonium_rid *r_dest, const pandemonium_object *p_from);
pandemonium_bool GDAPI pandemonium_rid_operator_equal(const pandemonium_rid *p_self, const pandemonium_rid *p_b);
pandemonium_bool GDAPI pandemonium_rid_operator_less(const pandemonium_rid *p_self, const pandemonium_rid *p_b);
void GDAPI pandemonium_rid_new(pandemonium_rid *r_dest);
#ifdef __cplusplus
}
#endif
#endif // GDNATIVE_RID_H

View File

@ -0,0 +1,446 @@
/**************************************************************************/
/* string.h */
/**************************************************************************/
/* This file is part of: */
/* PANDEMONIUM ENGINE */
/* https://pandemoniumengine.org */
/**************************************************************************/
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
/* "Software"), to deal in the Software without restriction, including */
/* without limitation the rights to use, copy, modify, merge, publish, */
/* distribute, sublicense, and/or sell copies of the Software, and to */
/* permit persons to whom the Software is furnished to do so, subject to */
/* the following conditions: */
/* */
/* The above copyright notice and this permission notice shall be */
/* included in all copies or substantial portions of the Software. */
/* */
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/**************************************************************************/
#ifndef GDNATIVE_STRING_H
#define GDNATIVE_STRING_H
#ifdef __cplusplus
extern "C" {
#endif
#include <stdint.h>
#ifndef __cplusplus
// maybe they should be these instead?
//typedef __uint_least16_t char16_t;
//typedef __uint_least32_t char32_t;
typedef uint32_t char32_t;
typedef uint16_t char16_t;
#endif
typedef char32_t pandemonium_char_type;
#define PANDEMONIUM_STRING_SIZE sizeof(void *)
#define PANDEMONIUM_CHAR_STRING_SIZE sizeof(void *)
#define PANDEMONIUM_CHAR_16_STRING_SIZE sizeof(void *)
#ifndef PANDEMONIUM_CORE_API_PANDEMONIUM_STRING_TYPE_DEFINED
#define PANDEMONIUM_CORE_API_PANDEMONIUM_STRING_TYPE_DEFINED
typedef struct {
uint8_t _dont_touch_that[PANDEMONIUM_STRING_SIZE];
} pandemonium_string;
#endif
#ifndef PANDEMONIUM_CORE_API_PANDEMONIUM_CHAR_STRING_TYPE_DEFINED
#define PANDEMONIUM_CORE_API_PANDEMONIUM_CHAR_STRING_TYPE_DEFINED
typedef struct {
uint8_t _dont_touch_that[PANDEMONIUM_CHAR_STRING_SIZE];
} pandemonium_char_string;
#endif
#ifndef PANDEMONIUM_CORE_API_PANDEMONIUM_CHAR_16_STRING_TYPE_DEFINED
#define PANDEMONIUM_CORE_API_PANDEMONIUM_CHAR_16_STRING_TYPE_DEFINED
typedef struct {
uint8_t _dont_touch_that[PANDEMONIUM_CHAR_16_STRING_SIZE];
} pandemonium_char_16_string;
#endif
// reduce extern "C" nesting for VS2013
#ifdef __cplusplus
}
#endif
#include <gdn/array.h>
#include <gdn/gdnative.h>
#include <gdn/variant.h>
#ifdef __cplusplus
extern "C" {
#endif
//=== Char16String ===
pandemonium_int GDAPI pandemonium_char_16_string_size(const pandemonium_char_16_string *p_self);
pandemonium_error GDAPI pandemonium_char_16_string_resize(pandemonium_char_16_string *p_self, pandemonium_int p_size);
char GDAPI pandemonium_char_16_string_get(const pandemonium_char_16_string *p_self, pandemonium_int p_index);
void GDAPI pandemonium_char_16_string_set(pandemonium_char_16_string *p_self, pandemonium_int p_index, const char16_t p_elem);
//_FORCE_INLINE_ void operator=(const Char16String &p_str);
//void operator=(const char *p_cstr);
//bool operator_less(const Char16String &p_right) const;
//CharString &operator+=(char p_char);
pandemonium_int GDAPI pandemonium_char_16_string_length(const pandemonium_char_16_string *p_cs);
const char16_t GDAPI *pandemonium_char_16_string_get_data(const pandemonium_char_16_string *p_cs);
//_FORCE_INLINE_ CharString(const CharString &p_str) ;
//_FORCE_INLINE_ CharString(const char *p_cstr);
void GDAPI pandemonium_char_16_string_destroy(pandemonium_char_16_string *p_cs);
//=== CharString ===
pandemonium_int GDAPI pandemonium_char_string_size(const pandemonium_char_string *p_self);
pandemonium_error GDAPI pandemonium_char_string_resize(pandemonium_char_string *p_self, pandemonium_int p_size);
char GDAPI pandemonium_char_string_get(const pandemonium_char_string *p_self, pandemonium_int p_index);
void GDAPI pandemonium_char_string_set(pandemonium_char_string *p_self, pandemonium_int p_index, const char *p_elem);
//_FORCE_INLINE_ void operator=(const CharString &p_str);
//void operator=(const char *p_cstr);
//bool operator<(const CharString &p_right) const;
//CharString &operator+=(char p_char);
pandemonium_int GDAPI pandemonium_char_string_length(const pandemonium_char_string *p_cs);
const char GDAPI *pandemonium_char_string_get_data(const pandemonium_char_string *p_cs);
//_FORCE_INLINE_ CharString(const CharString &p_str);
//_FORCE_INLINE_ CharString(const char *p_cstr);
void GDAPI pandemonium_char_string_destroy(pandemonium_char_string *p_cs);
//=== String ===
void GDAPI pandemonium_string_remove(pandemonium_string *p_self, pandemonium_int p_index);
void GDAPI pandemonium_string_clear(pandemonium_string *p_self);
pandemonium_char_type GDAPI pandemonium_string_get(const pandemonium_string *p_self, pandemonium_int p_index);
void GDAPI pandemonium_string_set(pandemonium_string *p_self, pandemonium_int p_index, const pandemonium_char_type p_elem);
pandemonium_int GDAPI pandemonium_string_size(const pandemonium_string *p_self);
pandemonium_int GDAPI pandemonium_string_resize(pandemonium_string *p_self, pandemonium_int p_size);
pandemonium_int GDAPI pandemonium_string_set_length(pandemonium_string *p_self, pandemonium_int p_length);
const char32_t GDAPI *pandemonium_string_operator_index(pandemonium_string *p_self, const pandemonium_int p_idx);
char32_t GDAPI pandemonium_string_operator_index_const(const pandemonium_string *p_self, const pandemonium_int p_idx);
pandemonium_bool GDAPI pandemonium_string_operator_equal(const pandemonium_string *p_self, const pandemonium_string *p_b);
pandemonium_bool GDAPI pandemonium_string_operator_less(const pandemonium_string *p_self, const pandemonium_string *p_b);
pandemonium_string GDAPI pandemonium_string_operator_plus(const pandemonium_string *p_self, const pandemonium_string *p_b);
signed char GDAPI pandemonium_string_casecmp_to(const pandemonium_string *p_self, const pandemonium_string *p_str);
signed char GDAPI pandemonium_string_nocasecmp_to(const pandemonium_string *p_self, const pandemonium_string *p_str);
signed char GDAPI pandemonium_string_naturalnocasecmp_to(const pandemonium_string *p_self, const pandemonium_string *p_str);
const char32_t GDAPI *pandemonium_string_get_data(const pandemonium_string *p_self);
pandemonium_int GDAPI pandemonium_string_length(const pandemonium_string *p_self);
pandemonium_bool GDAPI pandemonium_string_is_valid_string(const pandemonium_string *p_self);
void GDAPI pandemonium_string_print_unicode_error(const pandemonium_string *p_self, const pandemonium_string *p_message, pandemonium_bool p_critical);
pandemonium_string GDAPI pandemonium_string_substr(const pandemonium_string *p_self, pandemonium_int p_from, pandemonium_int p_chars);
pandemonium_string GDAPI pandemonium_string_substr_index(const pandemonium_string *p_self, const pandemonium_int p_start_index, const pandemonium_int p_end_index);
pandemonium_int GDAPI pandemonium_string_find(const pandemonium_string *p_self, pandemonium_string p_what);
pandemonium_int GDAPI pandemonium_string_find_from(const pandemonium_string *p_self, pandemonium_string p_what, pandemonium_int p_from);
pandemonium_int GDAPI pandemonium_string_findc(const pandemonium_string *p_self, const char *p_str);
pandemonium_int GDAPI pandemonium_string_findc_from(const pandemonium_string *p_self, const char *p_str, pandemonium_int p_from);
pandemonium_int GDAPI pandemonium_string_find_char(const pandemonium_string *p_self, const pandemonium_char_type p_char);
pandemonium_int GDAPI pandemonium_string_find_char_from(const pandemonium_string *p_self, const pandemonium_char_type p_char, pandemonium_int p_from);
pandemonium_int GDAPI pandemonium_string_find_last(const pandemonium_string *p_self, pandemonium_string p_what);
pandemonium_int GDAPI pandemonium_string_findn(const pandemonium_string *p_self, pandemonium_string p_what);
pandemonium_int GDAPI pandemonium_string_findn_from(const pandemonium_string *p_self, pandemonium_string p_what, pandemonium_int p_from);
pandemonium_int GDAPI pandemonium_string_rfind(const pandemonium_string *p_self, pandemonium_string p_what);
pandemonium_int GDAPI pandemonium_string_rfindn(const pandemonium_string *p_self, pandemonium_string p_what);
pandemonium_int GDAPI pandemonium_string_rfind_from(const pandemonium_string *p_self, pandemonium_string p_what, pandemonium_int p_from);
pandemonium_int GDAPI pandemonium_string_rfindn_from(const pandemonium_string *p_self, pandemonium_string p_what, pandemonium_int p_from);
pandemonium_int GDAPI pandemonium_string_findmk(const pandemonium_string *p_self, const pandemonium_array *p_keys);
pandemonium_int GDAPI pandemonium_string_findmk_from(const pandemonium_string *p_self, const pandemonium_array *p_keys, pandemonium_int p_from);
pandemonium_int GDAPI pandemonium_string_findmk_from_in_place(const pandemonium_string *p_self, const pandemonium_array *p_keys, pandemonium_int p_from, pandemonium_int *r_key);
pandemonium_int GDAPI pandemonium_string_find_first_difference_index(const pandemonium_string *p_self, const pandemonium_string *p_str);
pandemonium_bool GDAPI pandemonium_string_is_word_atc(const pandemonium_string *p_self, const pandemonium_int p_index, const char *p_str);
pandemonium_bool GDAPI pandemonium_string_is_word_at(const pandemonium_string *p_self, const pandemonium_int p_index, const pandemonium_string *p_str);
pandemonium_bool GDAPI pandemonium_string_match(const pandemonium_string *p_self, const pandemonium_string *p_wildcard);
pandemonium_bool GDAPI pandemonium_string_matchn(const pandemonium_string *p_self, const pandemonium_string *p_wildcard);
pandemonium_bool GDAPI pandemonium_string_begins_with(const pandemonium_string *p_self, const pandemonium_string *p_string);
pandemonium_bool GDAPI pandemonium_string_begins_with_char_array(const pandemonium_string *p_self, const char *p_char_array);
pandemonium_bool GDAPI pandemonium_string_ends_with(const pandemonium_string *p_self, const pandemonium_string *p_string);
pandemonium_bool GDAPI pandemonium_string_is_enclosed_in(const pandemonium_string *p_self, const pandemonium_string *p_string);
pandemonium_bool GDAPI pandemonium_string_is_subsequence_of(const pandemonium_string *p_self, const pandemonium_string *p_string);
pandemonium_bool GDAPI pandemonium_string_is_subsequence_ofi(const pandemonium_string *p_self, const pandemonium_string *p_string);
pandemonium_bool GDAPI pandemonium_string_is_quoted(const pandemonium_string *p_self);
pandemonium_array GDAPI pandemonium_string_bigrams(const pandemonium_string *p_self);
pandemonium_real GDAPI pandemonium_string_similarity(const pandemonium_string *p_self, const pandemonium_string *p_string);
pandemonium_string GDAPI pandemonium_string_format(const pandemonium_string *p_self, const pandemonium_variant *p_values);
pandemonium_string GDAPI pandemonium_string_format_with_custom_placeholder(const pandemonium_string *p_self, const pandemonium_variant *p_values, const char *p_placeholder);
pandemonium_string GDAPI pandemonium_string_replace_first(const pandemonium_string *p_self, pandemonium_string p_key, pandemonium_string p_with);
pandemonium_string GDAPI pandemonium_string_replace(const pandemonium_string *p_self, pandemonium_string p_key, pandemonium_string p_with);
pandemonium_string GDAPI pandemonium_string_replacec(const pandemonium_string *p_self, const pandemonium_char_type *p_key, const pandemonium_char_type *p_with);
pandemonium_string GDAPI pandemonium_string_replacen(const pandemonium_string *p_self, pandemonium_string p_key, pandemonium_string p_with);
pandemonium_string GDAPI pandemonium_string_newline_to_br(const pandemonium_string *p_self);
pandemonium_string GDAPI pandemonium_string_repeat(const pandemonium_string *p_self, pandemonium_int p_count);
pandemonium_string GDAPI pandemonium_string_insert(const pandemonium_string *p_self, pandemonium_int p_at_pos, pandemonium_string p_string);
pandemonium_string GDAPI pandemonium_string_pad_decimals(const pandemonium_string *p_self, pandemonium_int p_digits);
pandemonium_string GDAPI pandemonium_string_pad_zeros(const pandemonium_string *p_self, pandemonium_int p_digits);
pandemonium_string GDAPI pandemonium_string_trim_prefix(const pandemonium_string *p_self, const pandemonium_string *p_prefix);
pandemonium_string GDAPI pandemonium_string_trim_suffix(const pandemonium_string *p_self, const pandemonium_string *p_suffix);
pandemonium_string GDAPI pandemonium_string_lpad(const pandemonium_string *p_self, pandemonium_int p_min_length);
pandemonium_string GDAPI pandemonium_string_lpad_with_custom_character(const pandemonium_string *p_self, pandemonium_int p_min_length, const pandemonium_string *p_character);
pandemonium_string GDAPI pandemonium_string_rpad(const pandemonium_string *p_self, pandemonium_int p_min_length);
pandemonium_string GDAPI pandemonium_string_rpad_with_custom_character(const pandemonium_string *p_self, pandemonium_int p_min_length, const pandemonium_string *p_character);
pandemonium_string GDAPI pandemonium_string_sprintf(const pandemonium_string *p_self, const pandemonium_array *p_values, pandemonium_bool *p_error);
pandemonium_string GDAPI pandemonium_string_quote(const pandemonium_string *p_self);
pandemonium_string GDAPI pandemonium_string_quote_quotechar(const pandemonium_string *p_self, pandemonium_string *p_quotechar);
pandemonium_string GDAPI pandemonium_string_unquote(const pandemonium_string *p_self);
pandemonium_string GDAPI pandemonium_string_num(double p_num);
pandemonium_string GDAPI pandemonium_string_num_with_decimals(double p_num, pandemonium_int p_decimals);
pandemonium_string GDAPI pandemonium_string_num_scientific(double p_num);
pandemonium_string GDAPI pandemonium_string_num_real(double p_num);
pandemonium_string GDAPI pandemonium_string_num_int64(int64_t p_num, pandemonium_int p_base);
pandemonium_string GDAPI pandemonium_string_num_int64_capitalized(int64_t p_num, pandemonium_int p_base, pandemonium_bool p_capitalize_hex);
pandemonium_string GDAPI pandemonium_string_num_uint64(uint64_t p_num, pandemonium_int p_base);
pandemonium_string GDAPI pandemonium_string_num_uint64_capitalized(uint64_t p_num, pandemonium_int p_base, pandemonium_bool p_capitalize_hex);
pandemonium_string GDAPI pandemonium_string_chr(wchar_t p_character);
pandemonium_string GDAPI pandemonium_string_md5(const uint8_t *p_md5);
pandemonium_string GDAPI pandemonium_string_hex_encode_buffer(const uint8_t *p_buffer, pandemonium_int p_len);
pandemonium_string GDAPI pandemonium_string_bool_num(pandemonium_bool p_val);
pandemonium_string GDAPI pandemonium_string_bool_str(pandemonium_bool p_val);
pandemonium_bool GDAPI pandemonium_string_is_numeric(const pandemonium_string *p_self);
pandemonium_bool GDAPI pandemonium_string_is_zero(const pandemonium_string *p_self);
double GDAPI pandemonium_string_to_double(const pandemonium_string *p_self);
pandemonium_real GDAPI pandemonium_string_to_float(const pandemonium_string *p_self);
pandemonium_int GDAPI pandemonium_string_to_int(const pandemonium_string *p_self);
pandemonium_bool GDAPI pandemonium_string_to_bool(const pandemonium_string *p_self);
uint32_t GDAPI pandemonium_string_to_uint(const pandemonium_string *p_self);
pandemonium_int GDAPI pandemonium_string_hex_to_int(const pandemonium_string *p_self);
pandemonium_int GDAPI pandemonium_string_hex_to_int_without_prefix(const pandemonium_string *p_self);
int64_t GDAPI pandemonium_string_hex_to_int64(const pandemonium_string *p_self);
int64_t GDAPI pandemonium_string_hex_to_int64_with_prefix(const pandemonium_string *p_self);
int64_t GDAPI pandemonium_string_to_int64(const pandemonium_string *p_self);
pandemonium_int GDAPI pandemonium_string_char_to_int(const char *p_what);
pandemonium_int GDAPI pandemonium_string_char_to_int_with_len(const char *p_what, pandemonium_int p_len);
int64_t GDAPI pandemonium_string_wchar_to_int(const wchar_t *p_str);
int64_t GDAPI pandemonium_string_char_to_int64_with_len(const wchar_t *p_str, int p_len);
int64_t GDAPI pandemonium_string_to_intc(const pandemonium_char_type *p_str);
int64_t GDAPI pandemonium_string_to_intc_len(const pandemonium_char_type *p_str, pandemonium_int p_len);
int64_t GDAPI pandemonium_string_to_intc_len_clamp(const pandemonium_char_type *p_str, pandemonium_int p_len, pandemonium_bool p_clamp);
float GDAPI pandemonium_string_char_to_float(const char *p_what);
float GDAPI pandemonium_string_wchar_to_float(const wchar_t *p_str, const wchar_t **r_end);
float GDAPI pandemonium_string_pandemonium_char_to_float(const pandemonium_char_type *p_str, const pandemonium_char_type **r_end);
double GDAPI pandemonium_string_char_to_double(const char *p_what);
double GDAPI pandemonium_string_wchar_to_double(const wchar_t *p_str, const wchar_t **r_end);
double GDAPI pandemonium_string_pandemonium_char_to_double(const pandemonium_char_type *p_str, const pandemonium_char_type **r_end);
uint32_t GDAPI pandemonium_string_num_characters(int64_t p_int);
pandemonium_string GDAPI pandemonium_string_capitalize(const pandemonium_string *p_self);
pandemonium_string GDAPI pandemonium_string_camelcase_to_underscore(const pandemonium_string *p_self);
pandemonium_string GDAPI pandemonium_string_camelcase_to_underscore_lowercased(const pandemonium_string *p_self);
pandemonium_string GDAPI pandemonium_string_get_with_code_lines(const pandemonium_string *p_self);
pandemonium_int GDAPI pandemonium_string_get_slice_count(const pandemonium_string *p_self, pandemonium_string p_splitter);
pandemonium_string GDAPI pandemonium_string_get_slice(const pandemonium_string *p_self, pandemonium_string p_splitter, pandemonium_int p_slice);
pandemonium_string GDAPI pandemonium_string_get_slicec(const pandemonium_string *p_self, wchar_t p_splitter, pandemonium_int p_slice);
pandemonium_pool_string_array GDAPI pandemonium_string_split(const pandemonium_string *p_self, const pandemonium_string *p_splitter);
pandemonium_pool_string_array GDAPI pandemonium_string_split_allow_empty(const pandemonium_string *p_self, const pandemonium_string *p_splitter, const pandemonium_bool p_allow_empty);
pandemonium_pool_string_array GDAPI pandemonium_string_split_maxsplit(const pandemonium_string *p_self, const pandemonium_string *p_splitter, const pandemonium_bool p_allow_empty, const pandemonium_int p_maxsplit);
pandemonium_pool_string_array GDAPI pandemonium_string_rsplit(const pandemonium_string *p_self, const pandemonium_string *p_splitter);
pandemonium_pool_string_array GDAPI pandemonium_string_rsplit_allow_empty(const pandemonium_string *p_self, const pandemonium_string *p_splitter, const pandemonium_bool p_allow_empty);
pandemonium_pool_string_array GDAPI pandemonium_string_rsplit_maxsplit(const pandemonium_string *p_self, const pandemonium_string *p_splitter, const pandemonium_bool p_allow_empty, const pandemonium_int p_maxsplit);
pandemonium_array GDAPI pandemonium_string_split_spaces(const pandemonium_string *p_self);
pandemonium_array GDAPI pandemonium_string_split_floats(const pandemonium_string *p_self, const pandemonium_string *p_splitter);
pandemonium_array GDAPI pandemonium_string_split_floats_allow_empty(const pandemonium_string *p_self, const pandemonium_string *p_splitter, const pandemonium_bool p_allow_empty);
pandemonium_array GDAPI pandemonium_string_split_floats_mk(const pandemonium_string *p_self, const pandemonium_array *p_splitters);
pandemonium_array GDAPI pandemonium_string_split_floats_mk_allow_empty(const pandemonium_string *p_self, const pandemonium_array *p_splitters, const pandemonium_bool p_allow_empty);
pandemonium_array GDAPI pandemonium_string_split_ints(const pandemonium_string *p_self, const pandemonium_string *p_splitter);
pandemonium_array GDAPI pandemonium_string_split_ints_allow_empty(const pandemonium_string *p_self, const pandemonium_string *p_splitter, const pandemonium_bool p_allow_empty);
pandemonium_array GDAPI pandemonium_string_split_ints_mk(const pandemonium_string *p_self, const pandemonium_array *p_splitters);
pandemonium_array GDAPI pandemonium_string_split_ints_mk_allow_empty(const pandemonium_string *p_self, const pandemonium_array *p_splitters, const pandemonium_bool p_allow_empty);
pandemonium_string GDAPI pandemonium_string_join(const pandemonium_string *p_self, const pandemonium_array *p_parts);
pandemonium_char_type GDAPI pandemonium_string_char_uppercase(pandemonium_char_type p_char);
pandemonium_char_type GDAPI pandemonium_string_char_lowercase(pandemonium_char_type p_char);
pandemonium_string GDAPI pandemonium_string_to_upper(const pandemonium_string *p_self);
pandemonium_string GDAPI pandemonium_string_to_lower(const pandemonium_string *p_self);
pandemonium_int GDAPI pandemonium_string_count(const pandemonium_string *p_self, pandemonium_string p_what, pandemonium_int p_from, pandemonium_int p_to);
pandemonium_int GDAPI pandemonium_string_countn(const pandemonium_string *p_self, pandemonium_string p_what, pandemonium_int p_from, pandemonium_int p_to);
pandemonium_string GDAPI pandemonium_string_left(const pandemonium_string *p_self, pandemonium_int p_pos);
pandemonium_string GDAPI pandemonium_string_right(const pandemonium_string *p_self, pandemonium_int p_pos);
pandemonium_string GDAPI pandemonium_string_indent(const pandemonium_string *p_self, const pandemonium_string *p_prefix);
pandemonium_string GDAPI pandemonium_string_dedent(const pandemonium_string *p_self);
// left, right variant //String strip_edges(bool left = true, bool right = true) const;
pandemonium_string GDAPI pandemonium_string_strip_edges(const pandemonium_string *p_self, pandemonium_bool p_left, pandemonium_bool p_right);
pandemonium_string GDAPI pandemonium_string_strip_escapes(const pandemonium_string *p_self);
pandemonium_string GDAPI pandemonium_string_lstrip(const pandemonium_string *p_self, const pandemonium_string *p_chars);
pandemonium_string GDAPI pandemonium_string_rstrip(const pandemonium_string *p_self, const pandemonium_string *p_chars);
pandemonium_string GDAPI pandemonium_string_get_extension(const pandemonium_string *p_self);
pandemonium_string GDAPI pandemonium_string_get_basename(const pandemonium_string *p_self);
pandemonium_string GDAPI pandemonium_string_plus_file(const pandemonium_string *p_self, const pandemonium_string *p_file);
pandemonium_char_type GDAPI pandemonium_string_unicode_at(const pandemonium_string *p_self, pandemonium_int p_idx);
pandemonium_char_type GDAPI pandemonium_string_ord_at(const pandemonium_string *p_self, pandemonium_int p_idx);
void GDAPI pandemonium_string_erase(pandemonium_string *p_self, pandemonium_int p_pos, pandemonium_int p_chars);
pandemonium_char_string GDAPI pandemonium_string_ascii(const pandemonium_string *p_self);
pandemonium_char_string GDAPI pandemonium_string_ascii_extended(const pandemonium_string *p_self);
pandemonium_char_string GDAPI pandemonium_string_utf8(const pandemonium_string *p_self);
pandemonium_error GDAPI pandemonium_string_parse_utf8(pandemonium_string *p_self, const char *p_utf8);
pandemonium_error GDAPI pandemonium_string_parse_utf8_with_len(pandemonium_string *p_self, const char *p_utf8, pandemonium_int p_len);
pandemonium_error GDAPI pandemonium_string_parse_utf8_with_len_skip_cr(pandemonium_string *p_self, const char *p_utf8, pandemonium_int p_len, pandemonium_bool p_skip_cr);
pandemonium_string GDAPI pandemonium_string_chars_to_utf8(const char *p_utf8);
pandemonium_string GDAPI pandemonium_string_chars_to_utf8_with_len(const char *p_utf8, pandemonium_int p_len);
pandemonium_int GDAPI pandemonium_string_utf8_byte_length(const pandemonium_string *p_self);
pandemonium_char_16_string GDAPI pandemonium_string_utf16(const pandemonium_string *p_self);
pandemonium_error GDAPI pandemonium_string_parse_utf16(pandemonium_string *p_self, const char16_t *p_utf8);
pandemonium_error GDAPI pandemonium_string_parse_utf16_with_len(pandemonium_string *p_self, const char16_t *p_utf8, pandemonium_int p_len);
pandemonium_string GDAPI pandemonium_string_chars_to_utf16(const char16_t *p_utf8);
pandemonium_string GDAPI pandemonium_string_chars_to_utf16_with_len(const char16_t *p_utf8, pandemonium_int p_len);
pandemonium_int GDAPI pandemonium_string_utf16_byte_length(const pandemonium_string *p_self);
uint32_t GDAPI pandemonium_string_hash_chars(const char *p_cstr);
uint32_t GDAPI pandemonium_string_hash_chars_with_len(const char *p_cstr, pandemonium_int p_len);
uint32_t GDAPI pandemonium_string_hash_wchar(const wchar_t *p_str);
uint32_t GDAPI pandemonium_string_hash_wchar_with_len(const wchar_t *p_str, pandemonium_int p_len);
uint32_t GDAPI pandemonium_string_hashc(const pandemonium_char_type *p_cstr);
uint32_t GDAPI pandemonium_string_hashc_with_len(const pandemonium_char_type *p_cstr, pandemonium_int p_len);
uint32_t GDAPI pandemonium_string_hash(const pandemonium_string *p_self);
uint64_t GDAPI pandemonium_string_hash64(const pandemonium_string *p_self);
pandemonium_string GDAPI pandemonium_string_md5_text(const pandemonium_string *p_self);
pandemonium_string GDAPI pandemonium_string_sha1_text(const pandemonium_string *p_self);
pandemonium_pool_byte_array GDAPI pandemonium_string_sha256_buffer(const pandemonium_string *p_self);
pandemonium_pool_byte_array GDAPI pandemonium_string_md5_buffer(const pandemonium_string *p_self);
pandemonium_pool_byte_array GDAPI pandemonium_string_sha1_buffer(const pandemonium_string *p_self);
pandemonium_string GDAPI pandemonium_string_sha256_text(const pandemonium_string *p_self);
pandemonium_bool pandemonium_string_empty(const pandemonium_string *p_self);
pandemonium_bool GDAPI pandemonium_string_containsc(const pandemonium_string *p_self, const char *p_str);
pandemonium_bool GDAPI pandemonium_string_contains(const pandemonium_string *p_self, const pandemonium_string *p_str);
// path functions
pandemonium_bool GDAPI pandemonium_string_is_abs_path(const pandemonium_string *p_self);
pandemonium_bool GDAPI pandemonium_string_is_rel_path(const pandemonium_string *p_self);
pandemonium_bool GDAPI pandemonium_string_is_resource_file(const pandemonium_string *p_self);
pandemonium_string GDAPI pandemonium_string_path_to(const pandemonium_string *p_self, const pandemonium_string *p_path);
pandemonium_string GDAPI pandemonium_string_path_to_file(const pandemonium_string *p_self, const pandemonium_string *p_path);
pandemonium_string GDAPI pandemonium_string_get_base_dir(const pandemonium_string *p_self);
pandemonium_string GDAPI pandemonium_string_get_file(const pandemonium_string *p_self);
pandemonium_string GDAPI pandemonium_string_humanize_size(uint64_t p_size);
pandemonium_string GDAPI pandemonium_string_simplify_path(const pandemonium_string *p_self);
pandemonium_bool GDAPI pandemonium_string_is_network_share_path(const pandemonium_string *p_self);
pandemonium_string GDAPI pandemonium_string_append_pathc(const pandemonium_string *p_self, const char *p_path);
pandemonium_string GDAPI pandemonium_string_append_path(const pandemonium_string *p_self, const pandemonium_string *p_path);
pandemonium_string GDAPI pandemonium_string_path_clean_end_slash(const pandemonium_string *p_self);
pandemonium_string GDAPI pandemonium_string_path_ensure_end_slash(const pandemonium_string *p_self);
pandemonium_string GDAPI pandemonium_string_path_get_prev_dir(const pandemonium_string *p_self);
pandemonium_string GDAPI pandemonium_string_xml_escape(const pandemonium_string *p_self);
pandemonium_string GDAPI pandemonium_string_xml_escape_with_quotes(const pandemonium_string *p_self);
pandemonium_string GDAPI pandemonium_string_xml_unescape(const pandemonium_string *p_self);
pandemonium_string GDAPI pandemonium_string_http_escape(const pandemonium_string *p_self);
pandemonium_string GDAPI pandemonium_string_http_unescape(const pandemonium_string *p_self);
pandemonium_string GDAPI pandemonium_string_uri_encode(const pandemonium_string *p_self);
pandemonium_string GDAPI pandemonium_string_uri_decode(const pandemonium_string *p_self);
pandemonium_string GDAPI pandemonium_string_c_escape(const pandemonium_string *p_self);
pandemonium_string GDAPI pandemonium_string_c_escape_multiline(const pandemonium_string *p_self);
pandemonium_string GDAPI pandemonium_string_c_unescape(const pandemonium_string *p_self);
pandemonium_string GDAPI pandemonium_string_json_escape(const pandemonium_string *p_self);
pandemonium_string GDAPI pandemonium_string_word_wrap(const pandemonium_string *p_self, pandemonium_int p_chars_per_line);
pandemonium_error GDAPI pandemonium_string_parse_url(const pandemonium_string *p_self, pandemonium_string *r_scheme, pandemonium_string *r_host, pandemonium_int *r_port, pandemonium_string *r_path);
pandemonium_string GDAPI pandemonium_string_percent_decode(const pandemonium_string *p_self);
pandemonium_string GDAPI pandemonium_string_percent_encode(const pandemonium_string *p_self);
pandemonium_string GDAPI pandemonium_string_property_name_encode(const pandemonium_string *p_self);
// node functions
pandemonium_string GDAPI pandemonium_string_get_invalid_node_name_characters();
pandemonium_string GDAPI pandemonium_string_validate_node_name(const pandemonium_string *p_self);
pandemonium_string GDAPI pandemonium_string_validate_identifier(const pandemonium_string *p_self);
pandemonium_bool GDAPI pandemonium_string_is_valid_identifier(const pandemonium_string *p_self);
pandemonium_bool GDAPI pandemonium_string_is_valid_integer(const pandemonium_string *p_self);
pandemonium_bool GDAPI pandemonium_string_is_valid_float(const pandemonium_string *p_self);
pandemonium_bool GDAPI pandemonium_string_is_valid_hex_number(const pandemonium_string *p_self, pandemonium_bool p_with_prefix);
pandemonium_bool GDAPI pandemonium_string_is_valid_html_color(const pandemonium_string *p_self);
pandemonium_bool GDAPI pandemonium_string_is_valid_ip_address(const pandemonium_string *p_self);
pandemonium_bool GDAPI pandemonium_string_is_valid_filename(const pandemonium_string *p_self);
pandemonium_bool GDAPI pandemonium_string_is_valid_bool(const pandemonium_string *p_self);
pandemonium_bool GDAPI pandemonium_string_is_valid_unsigned_integer(const pandemonium_string *p_self);
pandemonium_pool_byte_array GDAPI pandemonium_string_to_ascii_buffer(const pandemonium_string *p_self);
pandemonium_pool_byte_array GDAPI pandemonium_string_to_utf8_buffer(const pandemonium_string *p_self);
pandemonium_pool_byte_array GDAPI pandemonium_string_to_utf16_buffer(const pandemonium_string *p_self);
pandemonium_pool_byte_array GDAPI pandemonium_string_to_utf32_buffer(const pandemonium_string *p_self);
void GDAPI pandemonium_string_new(pandemonium_string *r_dest);
void GDAPI pandemonium_string_new_copy(pandemonium_string *r_dest, const pandemonium_string *p_src);
void GDAPI pandemonium_string_new_char(pandemonium_string *r_dest, const char *p_contents);
void GDAPI pandemonium_string_new_char_clip_to_len(pandemonium_string *r_dest, const char *p_contents, const int p_size);
void GDAPI pandemonium_string_new_wchar(pandemonium_string *r_dest, const wchar_t *p_contents);
void GDAPI pandemonium_string_new_wchar_clip_to_len(pandemonium_string *r_dest, const wchar_t *p_contents, const int p_size);
void GDAPI pandemonium_string_newc(pandemonium_string *r_dest, const pandemonium_char_type *p_contents);
void GDAPI pandemonium_string_newc_clip_to_len(pandemonium_string *r_dest, const pandemonium_char_type *p_contents, const int p_size);
void GDAPI pandemonium_string_destroy(pandemonium_string *p_self);
#ifdef __cplusplus
}
#endif
#endif // GDNATIVE_STRING_H

View File

@ -0,0 +1,80 @@
/**************************************************************************/
/* string_name.h */
/**************************************************************************/
/* This file is part of: */
/* PANDEMONIUM ENGINE */
/* https://pandemoniumengine.org */
/**************************************************************************/
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
/* "Software"), to deal in the Software without restriction, including */
/* without limitation the rights to use, copy, modify, merge, publish, */
/* distribute, sublicense, and/or sell copies of the Software, and to */
/* permit persons to whom the Software is furnished to do so, subject to */
/* the following conditions: */
/* */
/* The above copyright notice and this permission notice shall be */
/* included in all copies or substantial portions of the Software. */
/* */
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/**************************************************************************/
#ifndef GDNATIVE_STRING_NAME_H
#define GDNATIVE_STRING_NAME_H
#ifdef __cplusplus
extern "C" {
#endif
#include <stdint.h>
#include <wchar.h>
#define PANDEMONIUM_STRING_NAME_SIZE sizeof(void *)
#ifndef PANDEMONIUM_CORE_API_PANDEMONIUM_STRING_NAME_TYPE_DEFINED
#define PANDEMONIUM_CORE_API_PANDEMONIUM_STRING_NAME_TYPE_DEFINED
typedef struct {
uint8_t _dont_touch_that[PANDEMONIUM_STRING_NAME_SIZE];
} pandemonium_string_name;
#endif
// reduce extern "C" nesting for VS2013
#ifdef __cplusplus
}
#endif
#include <gdn/gdnative.h>
#ifdef __cplusplus
extern "C" {
#endif
pandemonium_string GDAPI pandemonium_string_name_get_name(const pandemonium_string_name *p_self);
uint32_t GDAPI pandemonium_string_name_get_hash(const pandemonium_string_name *p_self);
const void GDAPI *pandemonium_string_name_get_data_unique_pointer(const pandemonium_string_name *p_self);
pandemonium_bool GDAPI pandemonium_string_name_operator_equal(const pandemonium_string_name *p_self, const pandemonium_string_name *p_other);
pandemonium_bool GDAPI pandemonium_string_name_operator_less(const pandemonium_string_name *p_self, const pandemonium_string_name *p_other);
void GDAPI pandemonium_string_name_new(pandemonium_string_name *r_dest);
void GDAPI pandemonium_string_name_new_data_string(pandemonium_string_name *r_dest, const pandemonium_string *p_name);
void GDAPI pandemonium_string_name_new_data_char(pandemonium_string_name *r_dest, const char *p_name);
void GDAPI pandemonium_string_name_new_datac(pandemonium_string_name *r_dest, const pandemonium_char_type *p_name);
void GDAPI pandemonium_string_name_destroy(pandemonium_string_name *p_self);
#ifdef __cplusplus
}
#endif
#endif // GDNATIVE_STRING_NAME_H

View File

@ -0,0 +1,144 @@
/**************************************************************************/
/* transform.h */
/**************************************************************************/
/* This file is part of: */
/* PANDEMONIUM ENGINE */
/* https://pandemoniumengine.org */
/**************************************************************************/
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
/* "Software"), to deal in the Software without restriction, including */
/* without limitation the rights to use, copy, modify, merge, publish, */
/* distribute, sublicense, and/or sell copies of the Software, and to */
/* permit persons to whom the Software is furnished to do so, subject to */
/* the following conditions: */
/* */
/* The above copyright notice and this permission notice shall be */
/* included in all copies or substantial portions of the Software. */
/* */
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/**************************************************************************/
#ifndef GDNATIVE_TRANSFORM_H
#define GDNATIVE_TRANSFORM_H
#ifdef __cplusplus
extern "C" {
#endif
#include <stdint.h>
#define PANDEMONIUM_TRANSFORM_SIZE 48
#ifndef PANDEMONIUM_CORE_API_PANDEMONIUM_TRANSFORM_TYPE_DEFINED
#define PANDEMONIUM_CORE_API_PANDEMONIUM_TRANSFORM_TYPE_DEFINED
typedef struct {
uint8_t _dont_touch_that[PANDEMONIUM_TRANSFORM_SIZE];
} pandemonium_transform;
#endif
// reduce extern "C" nesting for VS2013
#ifdef __cplusplus
}
#endif
#include <gdn/basis.h>
#include <gdn/gdnative.h>
#include <gdn/quaternion.h>
#include <gdn/variant.h>
#include <gdn/vector3.h>
#include <gdn/vector3i.h>
#ifdef __cplusplus
extern "C" {
#endif
void GDAPI pandemonium_transform_invert(pandemonium_transform *p_self);
pandemonium_transform GDAPI pandemonium_transform_inverse(const pandemonium_transform *p_self);
void GDAPI pandemonium_transform_affine_invert(pandemonium_transform *p_self);
pandemonium_transform GDAPI pandemonium_transform_affine_inverse(const pandemonium_transform *p_self);
pandemonium_transform GDAPI pandemonium_transform_rotated(const pandemonium_transform *p_self, const pandemonium_vector3 *p_axis, const pandemonium_real p_phi);
pandemonium_transform GDAPI pandemonium_transform_rotated_local(const pandemonium_transform *p_self, const pandemonium_vector3 *p_axis, pandemonium_real p_phi);
void GDAPI pandemonium_transform_rotate(pandemonium_transform *p_self, const pandemonium_vector3 *p_axis, pandemonium_real p_phi);
void GDAPI pandemonium_transform_rotate_local(pandemonium_transform *p_self, const pandemonium_vector3 *p_axis, pandemonium_real p_phi);
void GDAPI pandemonium_transform_rotate_basis(pandemonium_transform *p_self, const pandemonium_vector3 *p_axis, pandemonium_real p_phi);
void GDAPI pandemonium_transform_set_look_at(pandemonium_transform *p_self, const pandemonium_vector3 *p_eye, const pandemonium_vector3 *p_target, const pandemonium_vector3 *p_up);
pandemonium_transform GDAPI pandemonium_transform_looking_at(const pandemonium_transform *p_self, const pandemonium_vector3 *p_target, const pandemonium_vector3 *p_up);
void GDAPI pandemonium_transform_scale(pandemonium_transform *p_self, const pandemonium_vector3 *p_scale);
pandemonium_transform GDAPI pandemonium_transform_scaled(const pandemonium_transform *p_self, const pandemonium_vector3 *p_scale);
pandemonium_transform GDAPI pandemonium_transform_scaled_local(const pandemonium_transform *p_self, const pandemonium_vector3 *p_scale);
void GDAPI pandemonium_transform_scale_basis(pandemonium_transform *p_self, const pandemonium_vector3 *p_scale);
void GDAPI pandemonium_transform_translate_localr(pandemonium_transform *p_self, pandemonium_real p_tx, pandemonium_real p_ty, pandemonium_real p_tz);
void GDAPI pandemonium_transform_translate_localv(pandemonium_transform *p_self, const pandemonium_vector3 *p_translation);
pandemonium_transform GDAPI pandemonium_transform_translated(const pandemonium_transform *p_self, const pandemonium_vector3 *p_ofs);
pandemonium_transform GDAPI pandemonium_transform_translated_local(const pandemonium_transform *p_self, const pandemonium_vector3 *p_translation);
pandemonium_basis GDAPI pandemonium_transform_get_basis(const pandemonium_transform *p_self);
void GDAPI pandemonium_transform_set_basis(pandemonium_transform *p_self, const pandemonium_basis *p_v);
pandemonium_vector3 GDAPI pandemonium_transform_get_origin(const pandemonium_transform *p_self);
void GDAPI pandemonium_transform_set_origin(pandemonium_transform *p_self, const pandemonium_vector3 *p_v);
void GDAPI pandemonium_transform_orthonormalize(pandemonium_transform *p_self);
pandemonium_transform GDAPI pandemonium_transform_orthonormalized(const pandemonium_transform *p_self);
void GDAPI pandemonium_transform_orthogonalize(pandemonium_transform *p_self);
pandemonium_transform GDAPI pandemonium_transform_orthogonalized(const pandemonium_transform *p_self);
pandemonium_bool GDAPI pandemonium_transform_is_equal_approx(const pandemonium_transform *p_self, const pandemonium_transform *p_transform);
pandemonium_bool GDAPI pandemonium_transform_operator_equal(const pandemonium_transform *p_self, const pandemonium_transform *p_b);
pandemonium_vector3 GDAPI pandemonium_transform_xform_vector3(const pandemonium_transform *p_self, const pandemonium_vector3 *p_v);
pandemonium_vector3i GDAPI pandemonium_transform_xform_vector3i(const pandemonium_transform *p_self, const pandemonium_vector3i *p_vector);
pandemonium_aabb GDAPI pandemonium_transform_xform_aabb(const pandemonium_transform *p_self, const pandemonium_aabb *p_v);
pandemonium_pool_vector3_array GDAPI pandemonium_transform_xform_pool_vector3(const pandemonium_transform *p_self, const pandemonium_pool_vector3_array *p_array);
pandemonium_pool_vector3i_array GDAPI pandemonium_transform_xform_pool_vector3i(const pandemonium_transform *p_self, const pandemonium_pool_vector3i_array *p_array);
pandemonium_vector3 GDAPI pandemonium_transform_xform_inv_vector3(const pandemonium_transform *p_self, const pandemonium_vector3 *p_v);
pandemonium_vector3i GDAPI pandemonium_transform_xform_inv_vector3i(const pandemonium_transform *p_self, const pandemonium_vector3i *p_vector);
pandemonium_aabb GDAPI pandemonium_transform_xform_inv_aabb(const pandemonium_transform *p_self, const pandemonium_aabb *p_v);
pandemonium_pool_vector3_array GDAPI pandemonium_transform_xform_inv_pool_vector3(const pandemonium_transform *p_self, const pandemonium_pool_vector3_array *p_array);
pandemonium_pool_vector3i_array GDAPI pandemonium_transform_xform_inv_pool_vector3i(const pandemonium_transform *p_self, const pandemonium_pool_vector3i_array *p_array);
pandemonium_plane GDAPI pandemonium_transform_xform_plane(const pandemonium_transform *p_self, const pandemonium_plane *p_v);
pandemonium_plane GDAPI pandemonium_transform_xform_inv_plane(const pandemonium_transform *p_self, const pandemonium_plane *p_v);
pandemonium_plane GDAPI pandemonium_transform_xform_fast(const pandemonium_transform *p_self, const pandemonium_plane *p_plane, const pandemonium_basis *p_basis_inverse_transpose);
pandemonium_plane GDAPI pandemonium_transform_xform_inv_fast(const pandemonium_plane *p_plane, const pandemonium_transform *p_inverse, const pandemonium_basis *p_basis_transpose);
pandemonium_transform GDAPI pandemonium_transform_operator_multiply(const pandemonium_transform *p_self, const pandemonium_transform *p_b);
pandemonium_transform GDAPI pandemonium_transform_spherical_interpolate_with(const pandemonium_transform *p_self, const pandemonium_transform *p_transform, pandemonium_real p_c);
pandemonium_transform GDAPI pandemonium_transform_interpolate_with(const pandemonium_transform *p_self, const pandemonium_transform *p_transform, pandemonium_real p_c);
pandemonium_transform GDAPI pandemonium_transform_inverse_xform(const pandemonium_transform *p_self, const pandemonium_transform *p_t);
void GDAPI pandemonium_transform_set(pandemonium_transform *p_self, pandemonium_real xx, pandemonium_real xy, pandemonium_real xz, pandemonium_real yx, pandemonium_real yy, pandemonium_real yz, pandemonium_real zx, pandemonium_real zy, pandemonium_real zz, pandemonium_real tx, pandemonium_real ty, pandemonium_real tz);
pandemonium_string GDAPI pandemonium_transform_as_string(const pandemonium_transform *p_self);
void GDAPI pandemonium_transform_new_with_axis_origin(pandemonium_transform *r_dest, const pandemonium_vector3 *p_x_axis, const pandemonium_vector3 *p_y_axis, const pandemonium_vector3 *p_z_axis, const pandemonium_vector3 *p_origin);
void GDAPI pandemonium_transform_new(pandemonium_transform *r_dest, const pandemonium_basis *p_basis, const pandemonium_vector3 *p_origin);
void GDAPI pandemonium_transform_new_with_quaternion(pandemonium_transform *r_dest, const pandemonium_quaternion *p_quaternion);
void GDAPI pandemonium_transform_new_identity(pandemonium_transform *r_dest);
#ifdef __cplusplus
}
#endif
#endif // GDNATIVE_TRANSFORM_H

View File

@ -0,0 +1,153 @@
/**************************************************************************/
/* transform2d.h */
/**************************************************************************/
/* This file is part of: */
/* PANDEMONIUM ENGINE */
/* https://pandemoniumengine.org */
/**************************************************************************/
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
/* "Software"), to deal in the Software without restriction, including */
/* without limitation the rights to use, copy, modify, merge, publish, */
/* distribute, sublicense, and/or sell copies of the Software, and to */
/* permit persons to whom the Software is furnished to do so, subject to */
/* the following conditions: */
/* */
/* The above copyright notice and this permission notice shall be */
/* included in all copies or substantial portions of the Software. */
/* */
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/**************************************************************************/
#ifndef GDNATIVE_TRANSFORM2D_H
#define GDNATIVE_TRANSFORM2D_H
#ifdef __cplusplus
extern "C" {
#endif
#include <stdint.h>
#define PANDEMONIUM_TRANSFORM2D_SIZE 24
#ifndef PANDEMONIUM_CORE_API_PANDEMONIUM_TRANSFORM2D_TYPE_DEFINED
#define PANDEMONIUM_CORE_API_PANDEMONIUM_TRANSFORM2D_TYPE_DEFINED
typedef struct {
uint8_t _dont_touch_that[PANDEMONIUM_TRANSFORM2D_SIZE];
} pandemonium_transform2d;
#endif
// reduce extern "C" nesting for VS2013
#ifdef __cplusplus
}
#endif
#include <gdn/gdnative.h>
#include <gdn/variant.h>
#include <gdn/vector2.h>
#include <gdn/vector2i.h>
#ifdef __cplusplus
extern "C" {
#endif
pandemonium_real GDAPI pandemonium_transform2d_tdotx(const pandemonium_transform2d *p_self, const pandemonium_vector2 *p_v);
pandemonium_real GDAPI pandemonium_transform2d_tdoty(const pandemonium_transform2d *p_self, const pandemonium_vector2 *p_v);
pandemonium_vector2 GDAPI pandemonium_transform2d_get_axis(const pandemonium_transform2d *p_self, pandemonium_int p_axis);
void GDAPI pandemonium_transform2d_set_axis(pandemonium_transform2d *p_self, pandemonium_int p_axis, const pandemonium_vector2 *p_vec);
pandemonium_vector2 GDAPI pandemonium_transform2d_get_column(const pandemonium_transform2d *p_self, pandemonium_int p_colum);
void GDAPI pandemonium_transform2d_set_column(pandemonium_transform2d *p_self, pandemonium_int p_colum, const pandemonium_vector2 *p_vec);
void GDAPI pandemonium_transform2d_invert(pandemonium_transform2d *p_self);
pandemonium_transform2d GDAPI pandemonium_transform2d_inverse(const pandemonium_transform2d *p_self);
void GDAPI pandemonium_transform2d_affine_invert(pandemonium_transform2d *p_self);
pandemonium_transform2d GDAPI pandemonium_transform2d_affine_inverse(const pandemonium_transform2d *p_self);
void GDAPI pandemonium_transform2d_set_rotation(pandemonium_transform2d *p_self, pandemonium_real p_rot);
pandemonium_real GDAPI pandemonium_transform2d_get_rotation(const pandemonium_transform2d *p_self);
pandemonium_real GDAPI pandemonium_transform2d_get_skew(const pandemonium_transform2d *p_self);
void GDAPI pandemonium_transform2d_set_skew(pandemonium_transform2d *p_self, const pandemonium_real p_angle);
void GDAPI pandemonium_transform2d_set_rotation_and_scale(pandemonium_transform2d *p_self, pandemonium_real p_rot, const pandemonium_vector2 *p_scale);
void GDAPI pandemonium_transform2d_set_rotation_scale_and_skew(pandemonium_transform2d *p_self, const pandemonium_real p_rot, const pandemonium_vector2 *p_scale, const pandemonium_real p_skew);
void GDAPI pandemonium_transform2d_rotate(pandemonium_transform2d *p_self, pandemonium_real p_phi);
void GDAPI pandemonium_transform2d_scale(pandemonium_transform2d *p_self, const pandemonium_vector2 *p_scale);
void GDAPI pandemonium_transform2d_scale_basis(pandemonium_transform2d *p_self, const pandemonium_vector2 *p_scale);
void GDAPI pandemonium_transform2d_translater(pandemonium_transform2d *p_self, pandemonium_real p_tx, pandemonium_real p_ty);
void GDAPI pandemonium_transform2d_translatev(pandemonium_transform2d *p_self, const pandemonium_vector2 *p_offset);
void GDAPI pandemonium_transform2d_translate_localr(pandemonium_transform2d *p_self, pandemonium_real p_tx, pandemonium_real p_ty);
void GDAPI pandemonium_transform2d_translate_localv(pandemonium_transform2d *p_self, const pandemonium_vector2 *p_translation);
pandemonium_real GDAPI pandemonium_transform2d_basis_determinant(const pandemonium_transform2d *p_self);
pandemonium_vector2 GDAPI pandemonium_transform2d_get_scale(const pandemonium_transform2d *p_self);
void GDAPI pandemonium_transform2d_set_scale(pandemonium_transform2d *p_self, const pandemonium_vector2 *p_scale);
pandemonium_vector2 GDAPI pandemonium_transform2d_get_origin(const pandemonium_transform2d *p_self);
void GDAPI pandemonium_transform2d_set_origin(pandemonium_transform2d *p_self, const pandemonium_vector2 *p_origin);
pandemonium_transform2d GDAPI pandemonium_transform2d_basis_scaled(const pandemonium_transform2d *p_self, const pandemonium_vector2 *p_scale);
pandemonium_transform2d GDAPI pandemonium_transform2d_scaled(const pandemonium_transform2d *p_self, const pandemonium_vector2 *p_scale);
pandemonium_transform2d GDAPI pandemonium_transform2d_scaled_local(const pandemonium_transform2d *p_self, const pandemonium_vector2 *p_scale);
pandemonium_transform2d GDAPI pandemonium_transform2d_translated(const pandemonium_transform2d *p_self, const pandemonium_vector2 *p_offset);
pandemonium_transform2d GDAPI pandemonium_transform2d_translated_local(const pandemonium_transform2d *p_self, const pandemonium_vector2 *p_offset);
pandemonium_transform2d GDAPI pandemonium_transform2d_rotated(const pandemonium_transform2d *p_self, const pandemonium_real p_phi);
pandemonium_transform2d GDAPI pandemonium_transform2d_rotated_local(const pandemonium_transform2d *p_self, const pandemonium_real p_angle);
pandemonium_transform2d GDAPI pandemonium_transform2d_untranslated(const pandemonium_transform2d *p_self);
void GDAPI pandemonium_transform2d_orthonormalize(pandemonium_transform2d *p_self);
pandemonium_transform2d GDAPI pandemonium_transform2d_orthonormalized(const pandemonium_transform2d *p_self);
pandemonium_bool GDAPI pandemonium_transform2d_is_equal_approx(const pandemonium_transform2d *p_self, const pandemonium_transform2d *p_transform);
pandemonium_transform2d GDAPI pandemonium_transform2d_looking_at(const pandemonium_transform2d *p_self, const pandemonium_vector2 *p_target);
pandemonium_bool GDAPI pandemonium_transform2d_operator_equal(const pandemonium_transform2d *p_self, const pandemonium_transform2d *p_b);
pandemonium_transform2d GDAPI pandemonium_transform2d_operator_multiply(const pandemonium_transform2d *p_self, const pandemonium_transform2d *p_b);
pandemonium_transform2d GDAPI pandemonium_transform2d_interpolate_with(const pandemonium_transform2d *p_self, const pandemonium_transform2d *p_m, const pandemonium_real p_c);
pandemonium_vector2 GDAPI pandemonium_transform2d_basis_xform_vector2(const pandemonium_transform2d *p_self, const pandemonium_vector2 *p_v);
pandemonium_vector2 GDAPI pandemonium_transform2d_basis_xform_inv_vector2(const pandemonium_transform2d *p_self, const pandemonium_vector2 *p_v);
pandemonium_vector2 GDAPI pandemonium_transform2d_xform_vector2(const pandemonium_transform2d *p_self, const pandemonium_vector2 *p_v);
pandemonium_vector2 GDAPI pandemonium_transform2d_xform_inv_vector2(const pandemonium_transform2d *p_self, const pandemonium_vector2 *p_v);
pandemonium_rect2 GDAPI pandemonium_transform2d_xform_rect2(const pandemonium_transform2d *p_self, const pandemonium_rect2 *p_v);
pandemonium_rect2 GDAPI pandemonium_transform2d_xform_inv_rect2(const pandemonium_transform2d *p_self, const pandemonium_rect2 *p_v);
pandemonium_vector2i GDAPI pandemonium_transform2d_basis_xform(const pandemonium_transform2d *p_self, const pandemonium_vector2i *p_vec);
pandemonium_vector2i GDAPI pandemonium_transform2d_basis_xform_inv(const pandemonium_transform2d *p_self, const pandemonium_vector2i *p_vec);
pandemonium_vector2i GDAPI pandemonium_transform2d_xform_vector2i(const pandemonium_transform2d *p_self, const pandemonium_vector2i *p_vec);
pandemonium_vector2i GDAPI pandemonium_transform2d_xform_inv_vector2i(const pandemonium_transform2d *p_self, const pandemonium_vector2i *p_vec);
pandemonium_pool_vector2_array GDAPI pandemonium_transform_xform_pool_vector2(const pandemonium_transform2d *p_self, const pandemonium_pool_vector2_array *p_array);
pandemonium_pool_vector2_array GDAPI pandemonium_transform_xform_inv_pool_vector2(const pandemonium_transform2d *p_self, const pandemonium_pool_vector2_array *p_array);
pandemonium_pool_vector2i_array GDAPI pandemonium_transform_xform_inv_pool_vector2i(const pandemonium_transform2d *p_self, const pandemonium_pool_vector2i_array *p_array);
pandemonium_pool_vector2i_array GDAPI pandemonium_transform_xform_pool_vector2i(const pandemonium_transform2d *p_self, const pandemonium_pool_vector2i_array *p_array);
pandemonium_string GDAPI pandemonium_transform2d_as_string(const pandemonium_transform2d *p_self);
void GDAPI pandemonium_transform2d_new(pandemonium_transform2d *r_dest, const pandemonium_real p_rot, const pandemonium_vector2 *p_pos);
void GDAPI pandemonium_transform2d_new_axis_origin(pandemonium_transform2d *r_dest, const pandemonium_vector2 *p_x_axis, const pandemonium_vector2 *p_y_axis, const pandemonium_vector2 *p_origin);
void GDAPI pandemonium_transform2d_new_identity(pandemonium_transform2d *r_dest);
#ifdef __cplusplus
}
#endif
#endif // GDNATIVE_TRANSFORM2D_H

View File

@ -0,0 +1,359 @@
/**************************************************************************/
/* variant.h */
/**************************************************************************/
/* This file is part of: */
/* PANDEMONIUM ENGINE */
/* https://pandemoniumengine.org */
/**************************************************************************/
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
/* "Software"), to deal in the Software without restriction, including */
/* without limitation the rights to use, copy, modify, merge, publish, */
/* distribute, sublicense, and/or sell copies of the Software, and to */
/* permit persons to whom the Software is furnished to do so, subject to */
/* the following conditions: */
/* */
/* The above copyright notice and this permission notice shall be */
/* included in all copies or substantial portions of the Software. */
/* */
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/**************************************************************************/
#ifndef GDNATIVE_VARIANT_H
#define GDNATIVE_VARIANT_H
#ifdef __cplusplus
extern "C" {
#endif
#include <stdint.h>
#define PANDEMONIUM_VARIANT_SIZE (16 + sizeof(int64_t))
#ifndef PANDEMONIUM_CORE_API_PANDEMONIUM_VARIANT_TYPE_DEFINED
#define PANDEMONIUM_CORE_API_PANDEMONIUM_VARIANT_TYPE_DEFINED
typedef struct {
uint8_t _dont_touch_that[PANDEMONIUM_VARIANT_SIZE];
} pandemonium_variant;
#endif
typedef enum pandemonium_variant_type {
PANDEMONIUM_VARIANT_TYPE_NIL,
// atomic types
PANDEMONIUM_VARIANT_TYPE_BOOL,
PANDEMONIUM_VARIANT_TYPE_INT,
PANDEMONIUM_VARIANT_TYPE_REAL,
PANDEMONIUM_VARIANT_TYPE_STRING,
// math types
PANDEMONIUM_VARIANT_TYPE_RECT2, // 5
PANDEMONIUM_VARIANT_TYPE_RECT2I,
PANDEMONIUM_VARIANT_TYPE_VECTOR2,
PANDEMONIUM_VARIANT_TYPE_VECTOR2I,
PANDEMONIUM_VARIANT_TYPE_VECTOR3,
PANDEMONIUM_VARIANT_TYPE_VECTOR3I, // 10
PANDEMONIUM_VARIANT_TYPE_VECTOR4,
PANDEMONIUM_VARIANT_TYPE_VECTOR4I,
PANDEMONIUM_VARIANT_TYPE_PLANE,
PANDEMONIUM_VARIANT_TYPE_QUATERNION,
PANDEMONIUM_VARIANT_TYPE_AABB,
PANDEMONIUM_VARIANT_TYPE_BASIS,
PANDEMONIUM_VARIANT_TYPE_TRANSFORM,
PANDEMONIUM_VARIANT_TYPE_TRANSFORM2D,
PANDEMONIUM_VARIANT_TYPE_PROJECTION,
// misc types
PANDEMONIUM_VARIANT_TYPE_COLOR, // 20
PANDEMONIUM_VARIANT_TYPE_NODE_PATH,
PANDEMONIUM_VARIANT_TYPE_RID,
PANDEMONIUM_VARIANT_TYPE_OBJECT,
PANDEMONIUM_VARIANT_TYPE_STRING_NAME,
PANDEMONIUM_VARIANT_TYPE_DICTIONARY, // 25
PANDEMONIUM_VARIANT_TYPE_ARRAY,
// arrays
PANDEMONIUM_VARIANT_TYPE_POOL_BYTE_ARRAY,
PANDEMONIUM_VARIANT_TYPE_POOL_INT_ARRAY,
PANDEMONIUM_VARIANT_TYPE_POOL_REAL_ARRAY,
PANDEMONIUM_VARIANT_TYPE_POOL_STRING_ARRAY, //30
PANDEMONIUM_VARIANT_TYPE_POOL_VECTOR2_ARRAY,
PANDEMONIUM_VARIANT_TYPE_POOL_VECTOR2I_ARRAY,
PANDEMONIUM_VARIANT_TYPE_POOL_VECTOR3_ARRAY,
PANDEMONIUM_VARIANT_TYPE_POOL_VECTOR3I_ARRAY,
PANDEMONIUM_VARIANT_TYPE_POOL_VECTOR4_ARRAY, //35
PANDEMONIUM_VARIANT_TYPE_POOL_VECTOR4I_ARRAY,
PANDEMONIUM_VARIANT_TYPE_POOL_COLOR_ARRAY,
//VARIANT_MAX // 38
} pandemonium_variant_type;
typedef enum pandemonium_variant_call_error_error {
PANDEMONIUM_CALL_ERROR_CALL_OK,
PANDEMONIUM_CALL_ERROR_CALL_ERROR_INVALID_METHOD,
PANDEMONIUM_CALL_ERROR_CALL_ERROR_INVALID_ARGUMENT,
PANDEMONIUM_CALL_ERROR_CALL_ERROR_TOO_MANY_ARGUMENTS,
PANDEMONIUM_CALL_ERROR_CALL_ERROR_TOO_FEW_ARGUMENTS,
PANDEMONIUM_CALL_ERROR_CALL_ERROR_INSTANCE_IS_NULL,
} pandemonium_variant_call_error_error;
typedef struct pandemonium_variant_call_error {
pandemonium_variant_call_error_error error;
int argument;
pandemonium_variant_type expected;
} pandemonium_variant_call_error;
typedef enum pandemonium_variant_operator {
// comparison
PANDEMONIUM_VARIANT_OP_EQUAL,
PANDEMONIUM_VARIANT_OP_NOT_EQUAL,
PANDEMONIUM_VARIANT_OP_LESS,
PANDEMONIUM_VARIANT_OP_LESS_EQUAL,
PANDEMONIUM_VARIANT_OP_GREATER,
PANDEMONIUM_VARIANT_OP_GREATER_EQUAL,
// mathematic
PANDEMONIUM_VARIANT_OP_ADD,
PANDEMONIUM_VARIANT_OP_SUBTRACT,
PANDEMONIUM_VARIANT_OP_MULTIPLY,
PANDEMONIUM_VARIANT_OP_DIVIDE,
PANDEMONIUM_VARIANT_OP_NEGATE,
PANDEMONIUM_VARIANT_OP_POSITIVE,
PANDEMONIUM_VARIANT_OP_MODULE,
PANDEMONIUM_VARIANT_OP_STRING_CONCAT,
// bitwise
PANDEMONIUM_VARIANT_OP_SHIFT_LEFT,
PANDEMONIUM_VARIANT_OP_SHIFT_RIGHT,
PANDEMONIUM_VARIANT_OP_BIT_AND,
PANDEMONIUM_VARIANT_OP_BIT_OR,
PANDEMONIUM_VARIANT_OP_BIT_XOR,
PANDEMONIUM_VARIANT_OP_BIT_NEGATE,
// logic
PANDEMONIUM_VARIANT_OP_AND,
PANDEMONIUM_VARIANT_OP_OR,
PANDEMONIUM_VARIANT_OP_XOR,
PANDEMONIUM_VARIANT_OP_NOT,
// containment
PANDEMONIUM_VARIANT_OP_IN,
PANDEMONIUM_VARIANT_OP_MAX,
} pandemonium_variant_operator;
// reduce extern "C" nesting for VS2013
#ifdef __cplusplus
}
#endif
#include <gdn/aabb.h>
#include <gdn/array.h>
#include <gdn/basis.h>
#include <gdn/color.h>
#include <gdn/dictionary.h>
#include <gdn/node_path.h>
#include <gdn/plane.h>
#include <gdn/pool_arrays.h>
#include <gdn/projection.h>
#include <gdn/quaternion.h>
#include <gdn/rect2.h>
#include <gdn/rect2i.h>
#include <gdn/rid.h>
#include <gdn/string.h>
#include <gdn/string_name.h>
#include <gdn/transform.h>
#include <gdn/transform2d.h>
#include <gdn/variant.h>
#include <gdn/vector2.h>
#include <gdn/vector2i.h>
#include <gdn/vector3.h>
#include <gdn/vector3i.h>
#include <gdn/vector4.h>
#include <gdn/vector4i.h>
#include <gdn/gdnative.h>
#ifdef __cplusplus
extern "C" {
#endif
pandemonium_variant_type GDAPI pandemonium_variant_get_type(const pandemonium_variant *p_v);
//static String get_type_name(Variant::Type p_type);
//static bool can_convert(Type p_type_from, Type p_type_to);
//static bool can_convert_strict(Type p_type_from, Type p_type_to);
pandemonium_bool GDAPI pandemonium_variant_is_ref(const pandemonium_variant *p_self);
pandemonium_bool GDAPI pandemonium_variant_is_num(const pandemonium_variant *p_self);
pandemonium_bool GDAPI pandemonium_variant_is_array(const pandemonium_variant *p_self);
pandemonium_bool GDAPI pandemonium_variant_is_null(const pandemonium_variant *p_self);
pandemonium_bool GDAPI pandemonium_variant_is_shared(const pandemonium_variant *p_self);
pandemonium_bool GDAPI pandemonium_variant_is_zero(const pandemonium_variant *p_self);
pandemonium_bool GDAPI pandemonium_variant_is_one(const pandemonium_variant *p_self);
pandemonium_int GDAPI pandemonium_variant_get_object_instance_id(const pandemonium_variant *p_self);
pandemonium_bool GDAPI pandemonium_variant_is_invalid_object(const pandemonium_variant *p_self);
pandemonium_string GDAPI pandemonium_variant_get_operator_name(pandemonium_variant_operator p_op);
void GDAPI pandemonium_variant_evaluate(pandemonium_variant_operator p_op, const pandemonium_variant *p_a, const pandemonium_variant *p_b, pandemonium_variant *r_ret, pandemonium_bool *r_valid);
//static _FORCE_INLINE_ Variant evaluate(const Operator &p_op, const Variant &p_a, const Variant &p_b);
void GDAPI pandemonium_variant_zero(pandemonium_variant *p_self);
pandemonium_variant GDAPI pandemonium_variant_duplicate(const pandemonium_variant *p_self);
pandemonium_variant GDAPI pandemonium_variant_duplicate_deep(const pandemonium_variant *p_self, pandemonium_bool deep);
//static void blend(const Variant &a, const Variant &b, float c, Variant &r_dst);
//static void interpolate(const Variant &a, const Variant &b, float c, Variant &r_dst);
//static void sub(const Variant &a, const Variant &b, Variant &r_dst);
//void call_ptr(const StringName &p_method, const Variant **p_args, int p_argcount, Variant *r_ret, CallError &r_error);
pandemonium_variant GDAPI pandemonium_variant_call(pandemonium_variant *p_self, const pandemonium_string *p_method, const pandemonium_variant **p_args, const pandemonium_int p_argcount, pandemonium_variant_call_error *r_error);
//Variant call(const StringName &p_method, const Variant &p_arg1 = Variant(), const Variant &p_arg2 = Variant(), const Variant &p_arg3 = Variant(), const Variant &p_arg4 = Variant(), const Variant &p_arg5 = Variant(), const Variant &p_arg6 = Variant(), const Variant &p_arg7 = Variant(), const Variant &p_arg8 = Variant());
//static String get_call_error_text(Object *p_base, const StringName &p_method, const Variant **p_argptrs, int p_argcount, const Variant::CallError &ce);
//static Variant construct(const Variant::Type, const Variant **p_args, int p_argcount, CallError &r_error, bool p_strict = true);
//void get_method_list(List<MethodInfo> *p_list) const;
pandemonium_bool GDAPI pandemonium_variant_has_method(const pandemonium_variant *p_self, const pandemonium_string *p_method);
//static Vector<Variant::Type> get_method_argument_types(Variant::Type p_type, const StringName &p_method);
//static Vector<Variant> get_method_default_arguments(Variant::Type p_type, const StringName &p_method);
//static Variant::Type get_method_return_type(Variant::Type p_type, const StringName &p_method, bool *r_has_return = nullptr);
//static Vector<StringName> get_method_argument_names(Variant::Type p_type, const StringName &p_method);
//static bool is_method_const(Variant::Type p_type, const StringName &p_method);
//void set_named(const StringName &p_index, const Variant &p_value, bool *r_valid = nullptr);
//Variant get_named(const StringName &p_index, bool *r_valid = nullptr) const;
//void set(const Variant &p_index, const Variant &p_value, bool *r_valid = nullptr);
//Variant get(const Variant &p_index, bool *r_valid = nullptr) const;
//bool in(const Variant &p_index, bool *r_valid = nullptr) const;
//bool iter_init(Variant &r_iter, bool &r_valid) const;
//bool iter_next(Variant &r_iter, bool &r_valid) const;
//Variant iter_get(const Variant &r_iter, bool &r_valid) const;
//void get_property_list(List<PropertyInfo> *p_list) const;
pandemonium_bool GDAPI pandemonium_variant_deep_equal(const pandemonium_variant *p_self, const pandemonium_variant *p_variant);
pandemonium_bool GDAPI pandemonium_variant_deep_equal_recursion_count(const pandemonium_variant *p_self, const pandemonium_variant *p_variant, pandemonium_int p_recursion_count);
pandemonium_bool GDAPI pandemonium_variant_operator_equal(const pandemonium_variant *p_self, const pandemonium_variant *p_other);
pandemonium_bool GDAPI pandemonium_variant_operator_less(const pandemonium_variant *p_self, const pandemonium_variant *p_other);
pandemonium_int GDAPI pandemonium_variant_hash(const pandemonium_variant *p_self);
pandemonium_bool GDAPI pandemonium_variant_hash_compare(const pandemonium_variant *p_self, const pandemonium_variant *p_other);
pandemonium_bool GDAPI pandemonium_variant_booleanize(const pandemonium_variant *p_self);
//void static_assign(const Variant &p_variant);
//static bool has_constant(Variant::Type p_type, const StringName &p_value);
//static Variant get_constant_value(Variant::Type p_type, const StringName &p_value, bool *r_valid = nullptr);
//typedef String (*ObjectDeConstruct)(const Variant &p_object, void *ud);
//typedef void (*ObjectConstruct)(const String &p_text, void *ud, Variant &r_value);
//String get_construct_string() const;
//static void construct_from_string(const String &p_string, Variant &r_value, ObjectConstruct p_obj_construct = nullptr, void *p_construct_ud = nullptr);
pandemonium_bool GDAPI pandemonium_variant_as_bool(const pandemonium_variant *p_self);
uint64_t GDAPI pandemonium_variant_as_uint(const pandemonium_variant *p_self);
int64_t GDAPI pandemonium_variant_as_int(const pandemonium_variant *p_self);
double GDAPI pandemonium_variant_as_real(const pandemonium_variant *p_self);
pandemonium_string GDAPI pandemonium_variant_as_string(const pandemonium_variant *p_self);
pandemonium_string_name GDAPI pandemonium_variant_as_string_name(const pandemonium_variant *p_self);
pandemonium_vector2 GDAPI pandemonium_variant_as_vector2(const pandemonium_variant *p_self);
pandemonium_vector2i GDAPI pandemonium_variant_as_vector2i(const pandemonium_variant *p_self);
pandemonium_rect2 GDAPI pandemonium_variant_as_rect2(const pandemonium_variant *p_self);
pandemonium_rect2i GDAPI pandemonium_variant_as_rect2i(const pandemonium_variant *p_self);
pandemonium_vector3 GDAPI pandemonium_variant_as_vector3(const pandemonium_variant *p_self);
pandemonium_vector3i GDAPI pandemonium_variant_as_vector3i(const pandemonium_variant *p_self);
pandemonium_vector4 GDAPI pandemonium_variant_as_vector4(const pandemonium_variant *p_self);
pandemonium_vector4i GDAPI pandemonium_variant_as_vector4i(const pandemonium_variant *p_self);
pandemonium_transform2d GDAPI pandemonium_variant_as_transform2d(const pandemonium_variant *p_self);
pandemonium_plane GDAPI pandemonium_variant_as_plane(const pandemonium_variant *p_self);
pandemonium_quaternion GDAPI pandemonium_variant_as_quaternion(const pandemonium_variant *p_self);
pandemonium_aabb GDAPI pandemonium_variant_as_aabb(const pandemonium_variant *p_self);
pandemonium_basis GDAPI pandemonium_variant_as_basis(const pandemonium_variant *p_self);
pandemonium_transform GDAPI pandemonium_variant_as_transform(const pandemonium_variant *p_self);
pandemonium_projection GDAPI pandemonium_variant_as_projection(const pandemonium_variant *p_self);
pandemonium_color GDAPI pandemonium_variant_as_color(const pandemonium_variant *p_self);
pandemonium_node_path GDAPI pandemonium_variant_as_node_path(const pandemonium_variant *p_self);
pandemonium_rid GDAPI pandemonium_variant_as_rid(const pandemonium_variant *p_self);
pandemonium_object GDAPI *pandemonium_variant_as_object(const pandemonium_variant *p_self);
pandemonium_dictionary GDAPI pandemonium_variant_as_dictionary(const pandemonium_variant *p_self);
pandemonium_array GDAPI pandemonium_variant_as_array(const pandemonium_variant *p_self);
pandemonium_pool_byte_array GDAPI pandemonium_variant_as_pool_byte_array(const pandemonium_variant *p_self);
pandemonium_pool_int_array GDAPI pandemonium_variant_as_pool_int_array(const pandemonium_variant *p_self);
pandemonium_pool_real_array GDAPI pandemonium_variant_as_pool_real_array(const pandemonium_variant *p_self);
pandemonium_pool_string_array GDAPI pandemonium_variant_as_pool_string_array(const pandemonium_variant *p_self);
pandemonium_pool_vector2_array GDAPI pandemonium_variant_as_pool_vector2_array(const pandemonium_variant *p_self);
pandemonium_pool_vector2i_array GDAPI pandemonium_variant_as_pool_vector2i_array(const pandemonium_variant *p_self);
pandemonium_pool_vector3_array GDAPI pandemonium_variant_as_pool_vector3_array(const pandemonium_variant *p_self);
pandemonium_pool_vector3i_array GDAPI pandemonium_variant_as_pool_vector3i_array(const pandemonium_variant *p_self);
pandemonium_pool_vector4_array GDAPI pandemonium_variant_as_pool_vector4_array(const pandemonium_variant *p_self);
pandemonium_pool_vector4i_array GDAPI pandemonium_variant_as_pool_vector4i_array(const pandemonium_variant *p_self);
pandemonium_pool_color_array GDAPI pandemonium_variant_as_pool_color_array(const pandemonium_variant *p_self);
void GDAPI pandemonium_variant_new_copy(pandemonium_variant *r_dest, const pandemonium_variant *p_src);
void GDAPI pandemonium_variant_new_nil(pandemonium_variant *r_dest);
void GDAPI pandemonium_variant_new_bool(pandemonium_variant *r_dest, const pandemonium_bool p_b);
void GDAPI pandemonium_variant_new_uint(pandemonium_variant *r_dest, const uint64_t p_i);
void GDAPI pandemonium_variant_new_int(pandemonium_variant *r_dest, const int64_t p_i);
void GDAPI pandemonium_variant_new_real(pandemonium_variant *r_dest, const double p_r);
void GDAPI pandemonium_variant_new_string(pandemonium_variant *r_dest, const pandemonium_string *p_s);
void GDAPI pandemonium_variant_new_string_name(pandemonium_variant *r_dest, const pandemonium_string_name *p_s);
void GDAPI pandemonium_variant_new_vector2(pandemonium_variant *r_dest, const pandemonium_vector2 *p_v2);
void GDAPI pandemonium_variant_new_vector2i(pandemonium_variant *r_dest, const pandemonium_vector2i *p_v2i);
void GDAPI pandemonium_variant_new_rect2(pandemonium_variant *r_dest, const pandemonium_rect2 *p_rect2);
void GDAPI pandemonium_variant_new_rect2i(pandemonium_variant *r_dest, const pandemonium_rect2i *p_rect2i);
void GDAPI pandemonium_variant_new_vector3(pandemonium_variant *r_dest, const pandemonium_vector3 *p_v3);
void GDAPI pandemonium_variant_new_vector3i(pandemonium_variant *r_dest, const pandemonium_vector3i *p_v3i);
void GDAPI pandemonium_variant_new_vector4(pandemonium_variant *r_dest, const pandemonium_vector4 *p_v4);
void GDAPI pandemonium_variant_new_vector4i(pandemonium_variant *r_dest, const pandemonium_vector4i *p_v4i);
void GDAPI pandemonium_variant_new_transform2d(pandemonium_variant *r_dest, const pandemonium_transform2d *p_t2d);
void GDAPI pandemonium_variant_new_plane(pandemonium_variant *r_dest, const pandemonium_plane *p_plane);
void GDAPI pandemonium_variant_new_quaternion(pandemonium_variant *r_dest, const pandemonium_quaternion *p_quaternion);
void GDAPI pandemonium_variant_new_aabb(pandemonium_variant *r_dest, const pandemonium_aabb *p_aabb);
void GDAPI pandemonium_variant_new_basis(pandemonium_variant *r_dest, const pandemonium_basis *p_basis);
void GDAPI pandemonium_variant_new_transform(pandemonium_variant *r_dest, const pandemonium_transform *p_trans);
void GDAPI pandemonium_variant_new_projection(pandemonium_variant *r_dest, const pandemonium_projection *p_proj);
void GDAPI pandemonium_variant_new_color(pandemonium_variant *r_dest, const pandemonium_color *p_color);
void GDAPI pandemonium_variant_new_node_path(pandemonium_variant *r_dest, const pandemonium_node_path *p_np);
void GDAPI pandemonium_variant_new_rid(pandemonium_variant *r_dest, const pandemonium_rid *p_rid);
void GDAPI pandemonium_variant_new_object(pandemonium_variant *r_dest, const pandemonium_object *p_obj);
void GDAPI pandemonium_variant_new_dictionary(pandemonium_variant *r_dest, const pandemonium_dictionary *p_dict);
void GDAPI pandemonium_variant_new_array(pandemonium_variant *r_dest, const pandemonium_array *p_arr);
void GDAPI pandemonium_variant_new_pool_byte_array(pandemonium_variant *r_dest, const pandemonium_pool_byte_array *p_pba);
void GDAPI pandemonium_variant_new_pool_int_array(pandemonium_variant *r_dest, const pandemonium_pool_int_array *p_pia);
void GDAPI pandemonium_variant_new_pool_real_array(pandemonium_variant *r_dest, const pandemonium_pool_real_array *p_pra);
void GDAPI pandemonium_variant_new_pool_string_array(pandemonium_variant *r_dest, const pandemonium_pool_string_array *p_psa);
void GDAPI pandemonium_variant_new_pool_vector2_array(pandemonium_variant *r_dest, const pandemonium_pool_vector2_array *p_pv2a);
void GDAPI pandemonium_variant_new_pool_vector2i_array(pandemonium_variant *r_dest, const pandemonium_pool_vector2i_array *p_pv2ia);
void GDAPI pandemonium_variant_new_pool_vector3_array(pandemonium_variant *r_dest, const pandemonium_pool_vector3_array *p_pv3a);
void GDAPI pandemonium_variant_new_pool_vector3i_array(pandemonium_variant *r_dest, const pandemonium_pool_vector3i_array *p_pv3ia);
void GDAPI pandemonium_variant_new_pool_vector4_array(pandemonium_variant *r_dest, const pandemonium_pool_vector4_array *p_pv4a);
void GDAPI pandemonium_variant_new_pool_vector4i_array(pandemonium_variant *r_dest, const pandemonium_pool_vector4i_array *p_pv4ia);
void GDAPI pandemonium_variant_new_pool_color_array(pandemonium_variant *r_dest, const pandemonium_pool_color_array *p_pca);
void GDAPI pandemonium_variant_destroy(pandemonium_variant *p_self);
#ifdef __cplusplus
}
#endif
#endif // GDNATIVE_VARIANT_H

View File

@ -0,0 +1,159 @@
/**************************************************************************/
/* vector2.h */
/**************************************************************************/
/* This file is part of: */
/* PANDEMONIUM ENGINE */
/* https://pandemoniumengine.org */
/**************************************************************************/
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
/* "Software"), to deal in the Software without restriction, including */
/* without limitation the rights to use, copy, modify, merge, publish, */
/* distribute, sublicense, and/or sell copies of the Software, and to */
/* permit persons to whom the Software is furnished to do so, subject to */
/* the following conditions: */
/* */
/* The above copyright notice and this permission notice shall be */
/* included in all copies or substantial portions of the Software. */
/* */
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/**************************************************************************/
#ifndef GDNATIVE_VECTOR2_H
#define GDNATIVE_VECTOR2_H
#ifdef __cplusplus
extern "C" {
#endif
#include <stdint.h>
#define PANDEMONIUM_VECTOR2_SIZE 8
#ifndef PANDEMONIUM_CORE_API_PANDEMONIUM_VECTOR2_TYPE_DEFINED
#define PANDEMONIUM_CORE_API_PANDEMONIUM_VECTOR2_TYPE_DEFINED
typedef struct {
uint8_t _dont_touch_that[PANDEMONIUM_VECTOR2_SIZE];
} pandemonium_vector2;
#endif
// reduce extern "C" nesting for VS2013
#ifdef __cplusplus
}
#endif
#include <gdn/gdnative.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef enum {
PANDEMONIUM_VECTOR2_AXIS_X,
PANDEMONIUM_VECTOR2_AXIS_Y,
} pandemonium_vector2_axis;
void GDAPI pandemonium_vector2_set_x(pandemonium_vector2 *p_self, const pandemonium_real p_x);
void GDAPI pandemonium_vector2_set_y(pandemonium_vector2 *p_self, const pandemonium_real p_y);
pandemonium_real GDAPI pandemonium_vector2_get_x(const pandemonium_vector2 *p_self);
pandemonium_real GDAPI pandemonium_vector2_get_y(const pandemonium_vector2 *p_self);
pandemonium_real GDAPI *pandemonium_vector2_operator_index(pandemonium_vector2 *p_self, const pandemonium_int p_idx);
const pandemonium_real GDAPI *pandemonium_vector2_operator_index_const(const pandemonium_vector2 *p_self, const pandemonium_int p_idx);
void GDAPI pandemonium_vector2_set_axis(pandemonium_vector2 *p_self, const pandemonium_vector2_axis p_axis, const pandemonium_real p_value);
pandemonium_real GDAPI pandemonium_vector2_get_axis(const pandemonium_vector2 *p_self, const pandemonium_vector2_axis p_axis);
void GDAPI pandemonium_vector2_set_all(pandemonium_vector2 *p_self, const pandemonium_real p_value);
pandemonium_int GDAPI pandemonium_vector2_min_axis(const pandemonium_vector2 *p_self);
pandemonium_int GDAPI pandemonium_vector2_max_axis(const pandemonium_vector2 *p_self);
void GDAPI pandemonium_vector2_normalize(pandemonium_vector2 *p_self);
pandemonium_vector2 GDAPI pandemonium_vector2_normalized(const pandemonium_vector2 *p_self);
pandemonium_bool GDAPI pandemonium_vector2_is_normalized(const pandemonium_vector2 *p_self);
pandemonium_real GDAPI pandemonium_vector2_length(const pandemonium_vector2 *p_self);
pandemonium_real GDAPI pandemonium_vector2_length_squared(const pandemonium_vector2 *p_self);
pandemonium_vector2 GDAPI pandemonium_vector2_limit_length(const pandemonium_vector2 *p_self, const pandemonium_real p_length);
pandemonium_vector2 GDAPI pandemonium_vector2_min(const pandemonium_vector2 *p_self, const pandemonium_vector2 *p_b);
pandemonium_vector2 GDAPI pandemonium_vector2_max(const pandemonium_vector2 *p_self, const pandemonium_vector2 *p_b);
pandemonium_real GDAPI pandemonium_vector2_distance_to(const pandemonium_vector2 *p_self, const pandemonium_vector2 *p_to);
pandemonium_real GDAPI pandemonium_vector2_distance_squared_to(const pandemonium_vector2 *p_self, const pandemonium_vector2 *p_to);
pandemonium_real GDAPI pandemonium_vector2_angle_to(const pandemonium_vector2 *p_self, const pandemonium_vector2 *p_to);
pandemonium_real GDAPI pandemonium_vector2_angle_to_point(const pandemonium_vector2 *p_self, const pandemonium_vector2 *p_to);
pandemonium_vector2 GDAPI pandemonium_vector2_direction_to(const pandemonium_vector2 *p_self, const pandemonium_vector2 *p_b);
pandemonium_real GDAPI pandemonium_vector2_dot(const pandemonium_vector2 *p_self, const pandemonium_vector2 *p_other);
pandemonium_real GDAPI pandemonium_vector2_cross(const pandemonium_vector2 *p_self, const pandemonium_vector2 *p_other);
pandemonium_vector2 GDAPI pandemonium_vector2_posmod(const pandemonium_vector2 *p_self, const pandemonium_real p_mod);
pandemonium_vector2 GDAPI pandemonium_vector2_posmodv(const pandemonium_vector2 *p_self, const pandemonium_vector2 *p_modv);
pandemonium_vector2 GDAPI pandemonium_vector2_project(const pandemonium_vector2 *p_self, const pandemonium_vector2 *p_to);
pandemonium_vector2 GDAPI pandemonium_vector2_plane_project(const pandemonium_vector2 *p_self, const pandemonium_real p_length, const pandemonium_vector2 *p_vec);
pandemonium_vector2 GDAPI pandemonium_vector2_linear_interpolate(const pandemonium_vector2 *p_self, const pandemonium_vector2 *p_b, const pandemonium_real p_t);
pandemonium_vector2 GDAPI pandemonium_vector2_slerp(const pandemonium_vector2 *p_self, const pandemonium_vector2 *p_to, const pandemonium_real p_weight);
pandemonium_vector2 GDAPI pandemonium_vector2_cubic_interpolate(const pandemonium_vector2 *p_self, const pandemonium_vector2 *p_b, const pandemonium_vector2 *p_pre_a, const pandemonium_vector2 *p_post_b, const pandemonium_real p_t);
pandemonium_vector2 GDAPI pandemonium_vector2_bezier_interpolate(const pandemonium_vector2 *p_self, const pandemonium_vector2 *p_control_1, const pandemonium_vector2 *p_control_2, const pandemonium_vector2 *p_end, const pandemonium_real p_t);
pandemonium_vector2 GDAPI pandemonium_vector2_move_toward(const pandemonium_vector2 *p_self, const pandemonium_vector2 *p_to, const pandemonium_real p_delta);
pandemonium_vector2 GDAPI pandemonium_vector2_slide(const pandemonium_vector2 *p_self, const pandemonium_vector2 *p_n);
pandemonium_vector2 GDAPI pandemonium_vector2_bounce(const pandemonium_vector2 *p_self, const pandemonium_vector2 *p_n);
pandemonium_vector2 GDAPI pandemonium_vector2_reflect(const pandemonium_vector2 *p_self, const pandemonium_vector2 *p_n);
pandemonium_bool GDAPI pandemonium_vector2_is_equal_approx(const pandemonium_vector2 *p_self, const pandemonium_vector2 *p_b);
pandemonium_vector2 GDAPI pandemonium_vector2_operator_add(const pandemonium_vector2 *p_self, const pandemonium_vector2 *p_b);
pandemonium_vector2 GDAPI pandemonium_vector2_operator_subtract(const pandemonium_vector2 *p_self, const pandemonium_vector2 *p_b);
pandemonium_vector2 GDAPI pandemonium_vector2_operator_multiply_vector(const pandemonium_vector2 *p_self, const pandemonium_vector2 *p_b);
pandemonium_vector2 GDAPI pandemonium_vector2_operator_multiply_scalar(const pandemonium_vector2 *p_self, const pandemonium_real p_b);
pandemonium_vector2 GDAPI pandemonium_vector2_operator_divide_vector(const pandemonium_vector2 *p_self, const pandemonium_vector2 *p_b);
pandemonium_vector2 GDAPI pandemonium_vector2_operator_divide_scalar(const pandemonium_vector2 *p_self, const pandemonium_real p_b);
pandemonium_vector2 GDAPI pandemonium_vector2_operator_neg(const pandemonium_vector2 *p_self);
pandemonium_bool GDAPI pandemonium_vector2_operator_equal(const pandemonium_vector2 *p_self, const pandemonium_vector2 *p_b);
pandemonium_bool GDAPI pandemonium_vector2_operator_less(const pandemonium_vector2 *p_self, const pandemonium_vector2 *p_b);
pandemonium_real GDAPI pandemonium_vector2_angle(const pandemonium_vector2 *p_self);
void GDAPI pandemonium_vector2_set_rotation(pandemonium_vector2 *p_self, const pandemonium_real p_phi);
pandemonium_vector2 GDAPI pandemonium_vector2_abs(const pandemonium_vector2 *p_self);
pandemonium_vector2 GDAPI pandemonium_vector2_rotated(const pandemonium_vector2 *p_self, const pandemonium_real p_phi);
pandemonium_vector2 GDAPI pandemonium_vector2_tangent(const pandemonium_vector2 *p_self);
pandemonium_vector2 GDAPI pandemonium_vector2_orthogonal(const pandemonium_vector2 *p_self);
pandemonium_vector2 GDAPI pandemonium_vector2_sign(const pandemonium_vector2 *p_self);
pandemonium_vector2 GDAPI pandemonium_vector2_floor(const pandemonium_vector2 *p_self);
pandemonium_vector2 GDAPI pandemonium_vector2_ceil(const pandemonium_vector2 *p_self);
pandemonium_vector2 GDAPI pandemonium_vector2_round(const pandemonium_vector2 *p_self);
pandemonium_vector2 GDAPI pandemonium_vector2_snapped(const pandemonium_vector2 *p_self, const pandemonium_vector2 *p_by);
pandemonium_real GDAPI pandemonium_vector2_aspect(const pandemonium_vector2 *p_self);
pandemonium_string GDAPI pandemonium_vector2_as_string(const pandemonium_vector2 *p_self);
void GDAPI pandemonium_vector2_new(pandemonium_vector2 *r_dest, const pandemonium_real p_x, const pandemonium_real p_y);
#ifdef __cplusplus
}
#endif
#endif // GDNATIVE_VECTOR2_H

View File

@ -0,0 +1,119 @@
/**************************************************************************/
/* vector2.h */
/**************************************************************************/
/* This file is part of: */
/* PANDEMONIUM ENGINE */
/* https://pandemoniumengine.org */
/**************************************************************************/
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
/* "Software"), to deal in the Software without restriction, including */
/* without limitation the rights to use, copy, modify, merge, publish, */
/* distribute, sublicense, and/or sell copies of the Software, and to */
/* permit persons to whom the Software is furnished to do so, subject to */
/* the following conditions: */
/* */
/* The above copyright notice and this permission notice shall be */
/* included in all copies or substantial portions of the Software. */
/* */
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/**************************************************************************/
#ifndef GDNATIVE_VECTOR2I_H
#define GDNATIVE_VECTOR2I_H
#ifdef __cplusplus
extern "C" {
#endif
#include <stdint.h>
#define PANDEMONIUM_VECTOR2I_SIZE 8
#ifndef PANDEMONIUM_CORE_API_PANDEMONIUM_VECTOR2I_TYPE_DEFINED
#define PANDEMONIUM_CORE_API_PANDEMONIUM_VECTOR2I_TYPE_DEFINED
typedef struct {
uint8_t _dont_touch_that[PANDEMONIUM_VECTOR2I_SIZE];
} pandemonium_vector2i;
#endif
// reduce extern "C" nesting for VS2013
#ifdef __cplusplus
}
#endif
#include <gdn/gdnative.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef enum {
PANDEMONIUM_VECTOR2I_AXIS_X,
PANDEMONIUM_VECTOR2I_AXIS_Y,
} pandemonium_vector2i_axis;
void GDAPI pandemonium_vector2i_set_x(pandemonium_vector2i *p_self, const pandemonium_int p_x);
void GDAPI pandemonium_vector2i_set_y(pandemonium_vector2i *p_self, const pandemonium_int p_y);
pandemonium_int GDAPI pandemonium_vector2i_get_x(const pandemonium_vector2i *p_self);
pandemonium_int GDAPI pandemonium_vector2i_get_y(const pandemonium_vector2i *p_self);
pandemonium_int GDAPI *pandemonium_vector2i_operator_index(pandemonium_vector2i *p_self, const pandemonium_int p_idx);
const pandemonium_int GDAPI *pandemonium_vector2i_operator_index_const(const pandemonium_vector2i *p_self, const pandemonium_int p_idx);
void GDAPI pandemonium_vector2i_set_axis(pandemonium_vector2i *p_self, const pandemonium_vector2i_axis p_axis, const pandemonium_int p_value);
pandemonium_int GDAPI pandemonium_vector2i_get_axis(const pandemonium_vector2i *p_self, const pandemonium_vector2i_axis p_axis);
void GDAPI pandemonium_vector2i_set_all(pandemonium_vector2i *p_self, const pandemonium_int p_value);
pandemonium_int GDAPI pandemonium_vector2i_min_axis(const pandemonium_vector2i *p_self);
pandemonium_int GDAPI pandemonium_vector2i_max_axis(const pandemonium_vector2i *p_self);
pandemonium_vector2i GDAPI pandemonium_vector2i_min(const pandemonium_vector2i *p_self, const pandemonium_vector2i *p_b);
pandemonium_vector2i GDAPI pandemonium_vector2i_max(const pandemonium_vector2i *p_self, const pandemonium_vector2i *p_b);
pandemonium_vector2i GDAPI pandemonium_vector2i_linear_interpolate(const pandemonium_vector2i *p_self, const pandemonium_vector2i *p_b, const pandemonium_real p_t);
pandemonium_vector2i GDAPI pandemonium_vector2i_operator_add(const pandemonium_vector2i *p_self, const pandemonium_vector2i *p_b);
pandemonium_vector2i GDAPI pandemonium_vector2i_operator_subtract(const pandemonium_vector2i *p_self, const pandemonium_vector2i *p_b);
pandemonium_vector2i GDAPI pandemonium_vector2i_operator_multiply_vector(const pandemonium_vector2i *p_self, const pandemonium_vector2i *p_b);
pandemonium_vector2i GDAPI pandemonium_vector2i_operator_multiply_scalar(const pandemonium_vector2i *p_self, const pandemonium_int p_b);
pandemonium_vector2i GDAPI pandemonium_vector2i_operator_divide_vector(const pandemonium_vector2i *p_self, const pandemonium_vector2i *p_b);
pandemonium_vector2i GDAPI pandemonium_vector2i_operator_divide_scalar(const pandemonium_vector2i *p_self, const pandemonium_int p_b);
pandemonium_vector2i GDAPI pandemonium_vector2i_operator_neg(const pandemonium_vector2i *p_self);
pandemonium_bool GDAPI pandemonium_vector2i_operator_equal(const pandemonium_vector2i *p_self, const pandemonium_vector2i *p_b);
pandemonium_bool GDAPI pandemonium_vector2i_operator_less(const pandemonium_vector2i *p_self, const pandemonium_vector2i *p_b);
pandemonium_real GDAPI pandemonium_vector2i_length(const pandemonium_vector2i *p_self);
pandemonium_int GDAPI pandemonium_vector2i_length_squared(const pandemonium_vector2i *p_self);
pandemonium_real GDAPI pandemonium_vector2i_aspect(const pandemonium_vector2i *p_self);
pandemonium_vector2i GDAPI pandemonium_vector2i_sign(const pandemonium_vector2i *p_self);
pandemonium_vector2i GDAPI pandemonium_vector2i_abs(const pandemonium_vector2i *p_self);
pandemonium_vector2i GDAPI pandemonium_vector2i_clamp(const pandemonium_vector2i *p_self, const pandemonium_vector2i *p_min, const pandemonium_vector2i *p_max);
pandemonium_vector2 GDAPI pandemonium_vector2i_to_vector2(const pandemonium_vector2i *p_self);
pandemonium_string GDAPI pandemonium_vector2i_as_string(const pandemonium_vector2i *p_self);
void GDAPI pandemonium_vector2i_new(pandemonium_vector2i *r_dest, const pandemonium_int p_x, const pandemonium_int p_y);
#ifdef __cplusplus
}
#endif
#endif // GDNATIVE_VECTOR2_H

View File

@ -0,0 +1,166 @@
/**************************************************************************/
/* vector3.h */
/**************************************************************************/
/* This file is part of: */
/* PANDEMONIUM ENGINE */
/* https://pandemoniumengine.org */
/**************************************************************************/
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
/* "Software"), to deal in the Software without restriction, including */
/* without limitation the rights to use, copy, modify, merge, publish, */
/* distribute, sublicense, and/or sell copies of the Software, and to */
/* permit persons to whom the Software is furnished to do so, subject to */
/* the following conditions: */
/* */
/* The above copyright notice and this permission notice shall be */
/* included in all copies or substantial portions of the Software. */
/* */
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/**************************************************************************/
#ifndef GDNATIVE_VECTOR3_H
#define GDNATIVE_VECTOR3_H
#ifdef __cplusplus
extern "C" {
#endif
#include <stdint.h>
#define PANDEMONIUM_VECTOR3_SIZE 12
#ifndef PANDEMONIUM_CORE_API_PANDEMONIUM_VECTOR3_TYPE_DEFINED
#define PANDEMONIUM_CORE_API_PANDEMONIUM_VECTOR3_TYPE_DEFINED
typedef struct {
uint8_t _dont_touch_that[PANDEMONIUM_VECTOR3_SIZE];
} pandemonium_vector3;
#endif
// reduce extern "C" nesting for VS2013
#ifdef __cplusplus
}
#endif
#include <gdn/basis.h>
#include <gdn/gdnative.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef enum {
PANDEMONIUM_VECTOR3_AXIS_X,
PANDEMONIUM_VECTOR3_AXIS_Y,
PANDEMONIUM_VECTOR3_AXIS_Z,
} pandemonium_vector3_axis;
pandemonium_real GDAPI pandemonium_vector3_get_x(const pandemonium_vector3 *p_self);
void GDAPI pandemonium_vector3_set_x(pandemonium_vector3 *p_self, const pandemonium_real val);
pandemonium_real GDAPI pandemonium_vector3_get_y(const pandemonium_vector3 *p_self);
void GDAPI pandemonium_vector3_set_y(pandemonium_vector3 *p_self, const pandemonium_real val);
pandemonium_real GDAPI pandemonium_vector3_get_z(const pandemonium_vector3 *p_self);
void GDAPI pandemonium_vector3_set_z(pandemonium_vector3 *p_self, const pandemonium_real val);
pandemonium_real GDAPI *pandemonium_vector3_operator_index(pandemonium_vector3 *p_self, const pandemonium_int p_idx);
const pandemonium_real GDAPI *pandemonium_vector3_operator_index_const(const pandemonium_vector3 *p_self, const pandemonium_int p_idx);
void GDAPI pandemonium_vector3_set_axis(pandemonium_vector3 *p_self, const pandemonium_vector3_axis p_axis, const pandemonium_real p_val);
pandemonium_real GDAPI pandemonium_vector3_get_axis(const pandemonium_vector3 *p_self, const pandemonium_vector3_axis p_axis);
void GDAPI pandemonium_vector3_set_all(pandemonium_vector3 *p_self, const pandemonium_real p_val);
pandemonium_int GDAPI pandemonium_vector3_min_axis(const pandemonium_vector3 *p_self);
pandemonium_int GDAPI pandemonium_vector3_max_axis(const pandemonium_vector3 *p_self);
pandemonium_real GDAPI pandemonium_vector3_length(const pandemonium_vector3 *p_self);
pandemonium_real GDAPI pandemonium_vector3_length_squared(const pandemonium_vector3 *p_self);
void GDAPI pandemonium_vector3_normalize(pandemonium_vector3 *p_self);
pandemonium_vector3 GDAPI pandemonium_vector3_normalized(const pandemonium_vector3 *p_self);
pandemonium_bool GDAPI pandemonium_vector3_is_normalized(const pandemonium_vector3 *p_self);
pandemonium_vector3 GDAPI pandemonium_vector3_inverse(const pandemonium_vector3 *p_self);
pandemonium_vector3 GDAPI pandemonium_vector3_limit_length(const pandemonium_vector3 *p_self);
pandemonium_vector3 GDAPI pandemonium_vector3_limit_length_len(const pandemonium_vector3 *p_self, const pandemonium_real p_val);
void GDAPI pandemonium_vector3_zero(pandemonium_vector3 *p_self);
void GDAPI pandemonium_vector3_snap(pandemonium_vector3 *p_self, const pandemonium_vector3 *p_val);
pandemonium_vector3 GDAPI pandemonium_vector3_snapped(const pandemonium_vector3 *p_self, const pandemonium_vector3 *p_by);
void GDAPI pandemonium_vector3_rotate(pandemonium_vector3 *p_self, const pandemonium_vector3 *p_axis, const pandemonium_real p_phi);
pandemonium_vector3 GDAPI pandemonium_vector3_rotated(const pandemonium_vector3 *p_self, const pandemonium_vector3 *p_axis, const pandemonium_real p_phi);
pandemonium_vector3 GDAPI pandemonium_vector3_linear_interpolate(const pandemonium_vector3 *p_self, const pandemonium_vector3 *p_b, const pandemonium_real p_t);
pandemonium_vector3 GDAPI pandemonium_vector3_slerp(const pandemonium_vector3 *p_self, const pandemonium_vector3 *p_to, const pandemonium_real p_weight);
pandemonium_vector3 GDAPI pandemonium_vector3_cubic_interpolate(const pandemonium_vector3 *p_self, const pandemonium_vector3 *p_b, const pandemonium_vector3 *p_pre_a, const pandemonium_vector3 *p_post_b, const pandemonium_real p_t);
pandemonium_vector3 GDAPI pandemonium_vector3_bezier_interpolate(const pandemonium_vector3 *p_self, const pandemonium_vector3 *p_control_1, const pandemonium_vector3 *p_control_2, const pandemonium_vector3 *p_end, const pandemonium_real p_t);
pandemonium_vector3 GDAPI pandemonium_vector3_move_toward(const pandemonium_vector3 *p_self, const pandemonium_vector3 *p_to, const pandemonium_real p_delta);
pandemonium_vector3 GDAPI pandemonium_vector3_cross(const pandemonium_vector3 *p_self, const pandemonium_vector3 *p_b);
pandemonium_real GDAPI pandemonium_vector3_dot(const pandemonium_vector3 *p_self, const pandemonium_vector3 *p_b);
pandemonium_basis GDAPI pandemonium_vector3_outer(const pandemonium_vector3 *p_self, const pandemonium_vector3 *p_b);
pandemonium_basis GDAPI pandemonium_vector3_to_diagonal_matrix(const pandemonium_vector3 *p_self);
pandemonium_vector3 GDAPI pandemonium_vector3_abs(const pandemonium_vector3 *p_self);
pandemonium_vector3 GDAPI pandemonium_vector3_floor(const pandemonium_vector3 *p_self);
pandemonium_vector3 GDAPI pandemonium_vector3_sign(const pandemonium_vector3 *p_self);
pandemonium_vector3 GDAPI pandemonium_vector3_ceil(const pandemonium_vector3 *p_self);
pandemonium_vector3 GDAPI pandemonium_vector3_round(const pandemonium_vector3 *p_self);
pandemonium_vector3 GDAPI pandemonium_vector3_clamp(const pandemonium_vector3 *p_self, const pandemonium_vector3 *p_min, const pandemonium_vector3 *p_max);
pandemonium_real GDAPI pandemonium_vector3_distance_to(const pandemonium_vector3 *p_self, const pandemonium_vector3 *p_b);
pandemonium_real GDAPI pandemonium_vector3_distance_squared_to(const pandemonium_vector3 *p_self, const pandemonium_vector3 *p_b);
pandemonium_vector3 GDAPI pandemonium_vector3_posmod(const pandemonium_vector3 *p_self, const pandemonium_real p_mod);
pandemonium_vector3 GDAPI pandemonium_vector3_posmodv(const pandemonium_vector3 *p_self, const pandemonium_vector3 *p_modv);
pandemonium_vector3 GDAPI pandemonium_vector3_project(const pandemonium_vector3 *p_self, const pandemonium_vector3 *p_to);
pandemonium_real GDAPI pandemonium_vector3_angle_to(const pandemonium_vector3 *p_self, const pandemonium_vector3 *p_to);
pandemonium_real GDAPI pandemonium_vector3_signed_angle_to(const pandemonium_vector3 *p_self, const pandemonium_vector3 *p_to, const pandemonium_vector3 *p_axis);
pandemonium_vector3 GDAPI pandemonium_vector3_direction_to(const pandemonium_vector3 *p_self, const pandemonium_vector3 *p_b);
pandemonium_vector3 GDAPI pandemonium_vector3_slide(const pandemonium_vector3 *p_self, const pandemonium_vector3 *p_n);
pandemonium_vector3 GDAPI pandemonium_vector3_bounce(const pandemonium_vector3 *p_self, const pandemonium_vector3 *p_n);
pandemonium_vector3 GDAPI pandemonium_vector3_reflect(const pandemonium_vector3 *p_self, const pandemonium_vector3 *p_n);
pandemonium_bool GDAPI pandemonium_vector3_is_equal_approx(const pandemonium_vector3 *p_self, const pandemonium_vector3 *p_v);
pandemonium_bool GDAPI pandemonium_vector3_is_equal_approx_tolerance(const pandemonium_vector3 *p_self, const pandemonium_vector3 *p_v, const pandemonium_real p_tolerance);
pandemonium_bool GDAPI pandemonium_vector3_is_equal_approxt(const pandemonium_vector3 *p_self, const pandemonium_vector3 *p_v, const pandemonium_real p_tolerance);
pandemonium_vector3 GDAPI pandemonium_vector3_operator_add(const pandemonium_vector3 *p_self, const pandemonium_vector3 *p_b);
pandemonium_vector3 GDAPI pandemonium_vector3_operator_subtract(const pandemonium_vector3 *p_self, const pandemonium_vector3 *p_b);
pandemonium_vector3 GDAPI pandemonium_vector3_operator_multiply_vector(const pandemonium_vector3 *p_self, const pandemonium_vector3 *p_b);
pandemonium_vector3 GDAPI pandemonium_vector3_operator_multiply_scalar(const pandemonium_vector3 *p_self, const pandemonium_real p_b);
pandemonium_vector3 GDAPI pandemonium_vector3_operator_divide_vector(const pandemonium_vector3 *p_self, const pandemonium_vector3 *p_b);
pandemonium_vector3 GDAPI pandemonium_vector3_operator_divide_scalar(const pandemonium_vector3 *p_self, const pandemonium_real p_b);
pandemonium_vector3 GDAPI pandemonium_vector3_operator_neg(const pandemonium_vector3 *p_self);
pandemonium_bool GDAPI pandemonium_vector3_operator_equal(const pandemonium_vector3 *p_self, const pandemonium_vector3 *p_b);
pandemonium_bool GDAPI pandemonium_vector3_operator_less(const pandemonium_vector3 *p_self, const pandemonium_vector3 *p_b);
pandemonium_string GDAPI pandemonium_vector3_as_string(const pandemonium_vector3 *p_self);
void GDAPI pandemonium_vector3_new(pandemonium_vector3 *r_dest, const pandemonium_real p_x, const pandemonium_real p_y, const pandemonium_real p_z);
#ifdef __cplusplus
}
#endif
#endif // GDNATIVE_VECTOR3_H

View File

@ -0,0 +1,123 @@
/**************************************************************************/
/* vector3i.h */
/**************************************************************************/
/* This file is part of: */
/* PANDEMONIUM ENGINE */
/* https://pandemoniumengine.org */
/**************************************************************************/
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
/* "Software"), to deal in the Software without restriction, including */
/* without limitation the rights to use, copy, modify, merge, publish, */
/* distribute, sublicense, and/or sell copies of the Software, and to */
/* permit persons to whom the Software is furnished to do so, subject to */
/* the following conditions: */
/* */
/* The above copyright notice and this permission notice shall be */
/* included in all copies or substantial portions of the Software. */
/* */
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/**************************************************************************/
#ifndef GDNATIVE_VECTOR3I_H
#define GDNATIVE_VECTOR3I_H
#ifdef __cplusplus
extern "C" {
#endif
#include <stdint.h>
#define PANDEMONIUM_VECTOR3I_SIZE 12
#ifndef PANDEMONIUM_CORE_API_PANDEMONIUM_VECTOR3I_TYPE_DEFINED
#define PANDEMONIUM_CORE_API_PANDEMONIUM_VECTOR3I_TYPE_DEFINED
typedef struct {
uint8_t _dont_touch_that[PANDEMONIUM_VECTOR3I_SIZE];
} pandemonium_vector3i;
#endif
// reduce extern "C" nesting for VS2013
#ifdef __cplusplus
}
#endif
#include <gdn/basis.h>
#include <gdn/gdnative.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef enum {
PANDEMONIUM_VECTOR3I_AXIS_X,
PANDEMONIUM_VECTOR3I_AXIS_Y,
PANDEMONIUM_VECTOR3I_AXIS_Z,
} pandemonium_vector3i_axis;
pandemonium_int GDAPI pandemonium_vector3i_get_x(const pandemonium_vector3i *p_self);
void GDAPI pandemonium_vector3i_set_x(pandemonium_vector3i *p_self, const pandemonium_int val);
pandemonium_int GDAPI pandemonium_vector3i_get_y(const pandemonium_vector3i *p_self);
void GDAPI pandemonium_vector3i_set_y(pandemonium_vector3i *p_self, const pandemonium_int val);
pandemonium_int GDAPI pandemonium_vector3i_get_z(const pandemonium_vector3i *p_self);
void GDAPI pandemonium_vector3i_set_z(pandemonium_vector3i *p_self, const pandemonium_int val);
pandemonium_int GDAPI *pandemonium_vector3i_operator_index(pandemonium_vector3i *p_self, const pandemonium_int p_idx);
const pandemonium_int GDAPI *pandemonium_vector3i_operator_index_const(const pandemonium_vector3i *p_self, const pandemonium_int p_idx);
void GDAPI pandemonium_vector3i_set_axis(pandemonium_vector3i *p_self, const pandemonium_vector3i_axis p_axis, const pandemonium_int p_val);
pandemonium_int GDAPI pandemonium_vector3i_get_axis(const pandemonium_vector3i *p_self, const pandemonium_vector3i_axis p_axis);
void GDAPI pandemonium_vector3i_set_all(pandemonium_vector3i *p_self, const pandemonium_int p_val);
pandemonium_int GDAPI pandemonium_vector3i_min_axis(const pandemonium_vector3i *p_self);
pandemonium_int GDAPI pandemonium_vector3i_max_axis(const pandemonium_vector3i *p_self);
pandemonium_real GDAPI pandemonium_vector3i_length(const pandemonium_vector3i *p_self);
pandemonium_int GDAPI pandemonium_vector3i_length_squared(const pandemonium_vector3i *p_self);
void GDAPI pandemonium_vector3i_zero(pandemonium_vector3i *p_self);
pandemonium_vector3i GDAPI pandemonium_vector3i_linear_interpolate(const pandemonium_vector3i *p_self, const pandemonium_vector3i *p_b, const pandemonium_real p_t);
pandemonium_vector3i GDAPI pandemonium_vector3i_abs(const pandemonium_vector3i *p_self);
pandemonium_vector3i GDAPI pandemonium_vector3i_sign(const pandemonium_vector3i *p_self);
pandemonium_vector3i GDAPI pandemonium_vector3i_clamp(const pandemonium_vector3i *p_self, const pandemonium_vector3i *p_min, const pandemonium_vector3i *p_max);
pandemonium_vector3i GDAPI pandemonium_vector3i_operator_add(const pandemonium_vector3i *p_self, const pandemonium_vector3i *p_b);
pandemonium_vector3i GDAPI pandemonium_vector3i_operator_subtract(const pandemonium_vector3i *p_self, const pandemonium_vector3i *p_b);
pandemonium_vector3i GDAPI pandemonium_vector3i_operator_multiply_vector(const pandemonium_vector3i *p_self, const pandemonium_vector3i *p_b);
pandemonium_vector3i GDAPI pandemonium_vector3i_operator_multiply_scalar(const pandemonium_vector3i *p_self, const pandemonium_int p_b);
pandemonium_vector3i GDAPI pandemonium_vector3i_operator_divide_vector(const pandemonium_vector3i *p_self, const pandemonium_vector3i *p_b);
pandemonium_vector3i GDAPI pandemonium_vector3i_operator_divide_scalar(const pandemonium_vector3i *p_self, const pandemonium_int p_b);
pandemonium_vector3i GDAPI pandemonium_vector3i_operator_neg(const pandemonium_vector3i *p_self);
pandemonium_bool GDAPI pandemonium_vector3i_operator_equal(const pandemonium_vector3i *p_self, const pandemonium_vector3i *p_b);
pandemonium_bool GDAPI pandemonium_vector3i_operator_less(const pandemonium_vector3i *p_self, const pandemonium_vector3i *p_b);
pandemonium_vector3 GDAPI pandemonium_vector3i_to_vector3(const pandemonium_vector3i *p_self);
pandemonium_string GDAPI pandemonium_vector3i_as_string(const pandemonium_vector3i *p_self);
void GDAPI pandemonium_vector3i_new(pandemonium_vector3i *r_dest, const pandemonium_int p_x, const pandemonium_int p_y, const pandemonium_int p_z);
#ifdef __cplusplus
}
#endif
#endif // GDNATIVE_VECTOR3I_H

View File

@ -0,0 +1,151 @@
/**************************************************************************/
/* vector4.h */
/**************************************************************************/
/* This file is part of: */
/* PANDEMONIUM ENGINE */
/* https://pandemoniumengine.org */
/**************************************************************************/
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
/* "Software"), to deal in the Software without restriction, including */
/* without limitation the rights to use, copy, modify, merge, publish, */
/* distribute, sublicense, and/or sell copies of the Software, and to */
/* permit persons to whom the Software is furnished to do so, subject to */
/* the following conditions: */
/* */
/* The above copyright notice and this permission notice shall be */
/* included in all copies or substantial portions of the Software. */
/* */
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/**************************************************************************/
#ifndef GDNATIVE_VECTOR4_H
#define GDNATIVE_VECTOR4_H
#ifdef __cplusplus
extern "C" {
#endif
#include <stdint.h>
#define PANDEMONIUM_VECTOR4_SIZE 16
#ifndef PANDEMONIUM_CORE_API_PANDEMONIUM_VECTOR4_TYPE_DEFINED
#define PANDEMONIUM_CORE_API_PANDEMONIUM_VECTOR4_TYPE_DEFINED
typedef struct {
uint8_t _dont_touch_that[PANDEMONIUM_VECTOR4_SIZE];
} pandemonium_vector4;
#endif
// reduce extern "C" nesting for VS2013
#ifdef __cplusplus
}
#endif
#include <gdn/basis.h>
#include <gdn/gdnative.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef enum {
PANDEMONIUM_VECTOR4_AXIS_X,
PANDEMONIUM_VECTOR4_AXIS_Y,
PANDEMONIUM_VECTOR4_AXIS_Z,
PANDEMONIUM_VECTOR4_AXIS_W,
} pandemonium_vector4_axis;
pandemonium_real GDAPI pandemonium_vector4_get_x(const pandemonium_vector4 *p_self);
void GDAPI pandemonium_vector4_set_x(pandemonium_vector4 *p_self, const pandemonium_real val);
pandemonium_real GDAPI pandemonium_vector4_get_y(const pandemonium_vector4 *p_self);
void GDAPI pandemonium_vector4_set_y(pandemonium_vector4 *p_self, const pandemonium_real val);
pandemonium_real GDAPI pandemonium_vector4_get_z(const pandemonium_vector4 *p_self);
void GDAPI pandemonium_vector4_set_z(pandemonium_vector4 *p_self, const pandemonium_real val);
pandemonium_real GDAPI pandemonium_vector4_get_w(const pandemonium_vector4 *p_self);
void GDAPI pandemonium_vector4_set_w(pandemonium_vector4 *p_self, const pandemonium_real val);
pandemonium_real GDAPI *pandemonium_vector4_operator_index(pandemonium_vector4 *p_self, const pandemonium_int p_idx);
const pandemonium_real GDAPI *pandemonium_vector4_operator_index_const(const pandemonium_vector4 *p_self, const pandemonium_int p_idx);
void GDAPI pandemonium_vector4_set_axis(pandemonium_vector4 *p_self, const pandemonium_vector4_axis p_axis, const pandemonium_real p_val);
pandemonium_real GDAPI pandemonium_vector4_get_axis(const pandemonium_vector4 *p_self, const pandemonium_vector4_axis p_axis);
void GDAPI pandemonium_vector4_set_all(pandemonium_vector4 *p_self, const pandemonium_real p_val);
pandemonium_int GDAPI pandemonium_vector4_min_axis(const pandemonium_vector4 *p_self);
pandemonium_int GDAPI pandemonium_vector4_max_axis(const pandemonium_vector4 *p_self);
pandemonium_real GDAPI pandemonium_vector4_length(const pandemonium_vector4 *p_self);
pandemonium_real GDAPI pandemonium_vector4_length_squared(const pandemonium_vector4 *p_self);
void GDAPI pandemonium_vector4_normalize(pandemonium_vector4 *p_self);
pandemonium_vector4 GDAPI pandemonium_vector4_normalized(const pandemonium_vector4 *p_self);
pandemonium_bool GDAPI pandemonium_vector4_is_normalized(const pandemonium_vector4 *p_self);
pandemonium_vector4 GDAPI pandemonium_vector4_inverse(const pandemonium_vector4 *p_self);
pandemonium_vector4 GDAPI pandemonium_vector4_limit_length(const pandemonium_vector4 *p_self);
pandemonium_vector4 GDAPI pandemonium_vector4_limit_length_len(const pandemonium_vector4 *p_self, const pandemonium_real p_val);
void GDAPI pandemonium_vector4_zero(pandemonium_vector4 *p_self);
void GDAPI pandemonium_vector4_snap(pandemonium_vector4 *p_self, const pandemonium_vector4 *p_val);
pandemonium_vector4 GDAPI pandemonium_vector4_snapped(const pandemonium_vector4 *p_self, const pandemonium_vector4 *p_by);
pandemonium_vector4 GDAPI pandemonium_vector4_linear_interpolate(const pandemonium_vector4 *p_self, const pandemonium_vector4 *p_b, const pandemonium_real p_t);
pandemonium_vector4 GDAPI pandemonium_vector4_cubic_interpolate(const pandemonium_vector4 *p_self, const pandemonium_vector4 *p_b, const pandemonium_vector4 *p_pre_a, const pandemonium_vector4 *p_post_b, const pandemonium_real p_t);
pandemonium_real GDAPI pandemonium_vector4_dot(const pandemonium_vector4 *p_self, const pandemonium_vector4 *p_b);
pandemonium_vector4 GDAPI pandemonium_vector4_abs(const pandemonium_vector4 *p_self);
pandemonium_vector4 GDAPI pandemonium_vector4_floor(const pandemonium_vector4 *p_self);
pandemonium_vector4 GDAPI pandemonium_vector4_sign(const pandemonium_vector4 *p_self);
pandemonium_vector4 GDAPI pandemonium_vector4_ceil(const pandemonium_vector4 *p_self);
pandemonium_vector4 GDAPI pandemonium_vector4_round(const pandemonium_vector4 *p_self);
pandemonium_vector4 GDAPI pandemonium_vector4_clamp(const pandemonium_vector4 *p_self, const pandemonium_vector4 *p_min, const pandemonium_vector4 *p_max);
pandemonium_real GDAPI pandemonium_vector4_distance_to(const pandemonium_vector4 *p_self, const pandemonium_vector4 *p_b);
pandemonium_real GDAPI pandemonium_vector4_distance_squared_to(const pandemonium_vector4 *p_self, const pandemonium_vector4 *p_b);
pandemonium_vector4 GDAPI pandemonium_vector4_posmod(const pandemonium_vector4 *p_self, const pandemonium_real p_mod);
pandemonium_vector4 GDAPI pandemonium_vector4_posmodv(const pandemonium_vector4 *p_self, const pandemonium_vector4 *p_modv);
pandemonium_vector4 GDAPI pandemonium_vector4_direction_to(const pandemonium_vector4 *p_self, const pandemonium_vector4 *p_b);
pandemonium_bool GDAPI pandemonium_vector4_is_equal_approx(const pandemonium_vector4 *p_self, const pandemonium_vector4 *p_v);
pandemonium_vector4 GDAPI pandemonium_vector4_operator_add(const pandemonium_vector4 *p_self, const pandemonium_vector4 *p_b);
pandemonium_vector4 GDAPI pandemonium_vector4_operator_subtract(const pandemonium_vector4 *p_self, const pandemonium_vector4 *p_b);
pandemonium_vector4 GDAPI pandemonium_vector4_operator_multiply_vector(const pandemonium_vector4 *p_self, const pandemonium_vector4 *p_b);
pandemonium_vector4 GDAPI pandemonium_vector4_operator_multiply_scalar(const pandemonium_vector4 *p_self, const pandemonium_real p_b);
pandemonium_vector4 GDAPI pandemonium_vector4_operator_divide_vector(const pandemonium_vector4 *p_self, const pandemonium_vector4 *p_b);
pandemonium_vector4 GDAPI pandemonium_vector4_operator_divide_scalar(const pandemonium_vector4 *p_self, const pandemonium_real p_b);
pandemonium_vector4 GDAPI pandemonium_vector4_operator_neg(const pandemonium_vector4 *p_self);
pandemonium_bool GDAPI pandemonium_vector4_operator_equal(const pandemonium_vector4 *p_self, const pandemonium_vector4 *p_b);
pandemonium_bool GDAPI pandemonium_vector4_operator_less(const pandemonium_vector4 *p_self, const pandemonium_vector4 *p_b);
pandemonium_string GDAPI pandemonium_vector4_as_string(const pandemonium_vector4 *p_self);
void GDAPI pandemonium_vector4_new(pandemonium_vector4 *r_dest, const pandemonium_real p_x, const pandemonium_real p_y, const pandemonium_real p_z, const pandemonium_real p_w);
#ifdef __cplusplus
}
#endif
#endif // GDNATIVE_VECTOR4_H

View File

@ -0,0 +1,127 @@
/**************************************************************************/
/* vector4i.h */
/**************************************************************************/
/* This file is part of: */
/* PANDEMONIUM ENGINE */
/* https://pandemoniumengine.org */
/**************************************************************************/
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
/* "Software"), to deal in the Software without restriction, including */
/* without limitation the rights to use, copy, modify, merge, publish, */
/* distribute, sublicense, and/or sell copies of the Software, and to */
/* permit persons to whom the Software is furnished to do so, subject to */
/* the following conditions: */
/* */
/* The above copyright notice and this permission notice shall be */
/* included in all copies or substantial portions of the Software. */
/* */
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/**************************************************************************/
#ifndef GDNATIVE_VECTOR4I_H
#define GDNATIVE_VECTOR4I_H
#ifdef __cplusplus
extern "C" {
#endif
#include <stdint.h>
#define PANDEMONIUM_VECTOR4I_SIZE 16
#ifndef PANDEMONIUM_CORE_API_PANDEMONIUM_VECTOR4I_TYPE_DEFINED
#define PANDEMONIUM_CORE_API_PANDEMONIUM_VECTOR4I_TYPE_DEFINED
typedef struct {
uint8_t _dont_touch_that[PANDEMONIUM_VECTOR4I_SIZE];
} pandemonium_vector4i;
#endif
// reduce extern "C" nesting for VS2013
#ifdef __cplusplus
}
#endif
#include <gdn/basis.h>
#include <gdn/gdnative.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef enum {
PANDEMONIUM_VECTOR4I_AXIS_X,
PANDEMONIUM_VECTOR4I_AXIS_Y,
PANDEMONIUM_VECTOR4I_AXIS_Z,
PANDEMONIUM_VECTOR4I_AXIS_W,
} pandemonium_vector4i_axis;
pandemonium_int GDAPI pandemonium_vector4i_get_x(const pandemonium_vector4i *p_self);
void GDAPI pandemonium_vector4i_set_x(pandemonium_vector4i *p_self, const pandemonium_int val);
pandemonium_int GDAPI pandemonium_vector4i_get_y(const pandemonium_vector4i *p_self);
void GDAPI pandemonium_vector4i_set_y(pandemonium_vector4i *p_self, const pandemonium_int val);
pandemonium_int GDAPI pandemonium_vector4i_get_z(const pandemonium_vector4i *p_self);
void GDAPI pandemonium_vector4i_set_z(pandemonium_vector4i *p_self, const pandemonium_int val);
pandemonium_int GDAPI pandemonium_vector4i_get_w(const pandemonium_vector4i *p_self);
void GDAPI pandemonium_vector4i_set_w(pandemonium_vector4i *p_self, const pandemonium_int val);
pandemonium_int GDAPI *pandemonium_vector4i_operator_index(pandemonium_vector4i *p_self, const pandemonium_int p_idx);
const pandemonium_int GDAPI *pandemonium_vector4i_operator_index_const(const pandemonium_vector4i *p_self, const pandemonium_int p_idx);
void GDAPI pandemonium_vector4i_set_axis(pandemonium_vector4i *p_self, const pandemonium_vector4i_axis p_axis, const pandemonium_int p_val);
pandemonium_int GDAPI pandemonium_vector4i_get_axis(const pandemonium_vector4i *p_self, const pandemonium_vector4i_axis p_axis);
void GDAPI pandemonium_vector4i_set_all(pandemonium_vector4i *p_self, const pandemonium_int p_val);
pandemonium_int GDAPI pandemonium_vector4i_min_axis(const pandemonium_vector4i *p_self);
pandemonium_int GDAPI pandemonium_vector4i_max_axis(const pandemonium_vector4i *p_self);
pandemonium_real GDAPI pandemonium_vector4i_length(const pandemonium_vector4i *p_self);
pandemonium_int GDAPI pandemonium_vector4i_length_squared(const pandemonium_vector4i *p_self);
void GDAPI pandemonium_vector4i_zero(pandemonium_vector4i *p_self);
pandemonium_vector4i GDAPI pandemonium_vector4i_linear_interpolate(const pandemonium_vector4i *p_self, const pandemonium_vector4i *p_b, const pandemonium_real p_t);
pandemonium_vector4i GDAPI pandemonium_vector4i_abs(const pandemonium_vector4i *p_self);
pandemonium_vector4i GDAPI pandemonium_vector4i_sign(const pandemonium_vector4i *p_self);
pandemonium_vector4i GDAPI pandemonium_vector4i_clamp(const pandemonium_vector4i *p_self, const pandemonium_vector4i *p_min, const pandemonium_vector4i *p_max);
pandemonium_vector4i GDAPI pandemonium_vector4i_operator_add(const pandemonium_vector4i *p_self, const pandemonium_vector4i *p_b);
pandemonium_vector4i GDAPI pandemonium_vector4i_operator_subtract(const pandemonium_vector4i *p_self, const pandemonium_vector4i *p_b);
pandemonium_vector4i GDAPI pandemonium_vector4i_operator_multiply_vector(const pandemonium_vector4i *p_self, const pandemonium_vector4i *p_b);
pandemonium_vector4i GDAPI pandemonium_vector4i_operator_multiply_scalar(const pandemonium_vector4i *p_self, const pandemonium_int p_b);
pandemonium_vector4i GDAPI pandemonium_vector4i_operator_divide_vector(const pandemonium_vector4i *p_self, const pandemonium_vector4i *p_b);
pandemonium_vector4i GDAPI pandemonium_vector4i_operator_divide_scalar(const pandemonium_vector4i *p_self, const pandemonium_int p_b);
pandemonium_vector4i GDAPI pandemonium_vector4i_operator_neg(const pandemonium_vector4i *p_self);
pandemonium_bool GDAPI pandemonium_vector4i_operator_equal(const pandemonium_vector4i *p_self, const pandemonium_vector4i *p_b);
pandemonium_bool GDAPI pandemonium_vector4i_operator_less(const pandemonium_vector4i *p_self, const pandemonium_vector4i *p_b);
pandemonium_vector4 GDAPI pandemonium_vector4i_to_vector4(const pandemonium_vector4i *p_self);
pandemonium_string GDAPI pandemonium_vector4i_as_string(const pandemonium_vector4i *p_self);
void GDAPI pandemonium_vector4i_new(pandemonium_vector4i *r_dest, const pandemonium_int p_x, const pandemonium_int p_y, const pandemonium_int p_z, const pandemonium_int p_w);
#ifdef __cplusplus
}
#endif
#endif // GDNATIVE_VECTOR4I_H

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,255 @@
/**************************************************************************/
/* pandemonium_nativescript.h */
/**************************************************************************/
/* This file is part of: */
/* PANDEMONIUM ENGINE */
/* https://pandemoniumengine.org */
/**************************************************************************/
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
/* "Software"), to deal in the Software without restriction, including */
/* without limitation the rights to use, copy, modify, merge, publish, */
/* distribute, sublicense, and/or sell copies of the Software, and to */
/* permit persons to whom the Software is furnished to do so, subject to */
/* the following conditions: */
/* */
/* The above copyright notice and this permission notice shall be */
/* included in all copies or substantial portions of the Software. */
/* */
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/**************************************************************************/
#ifndef PANDEMONIUM_NATIVESCRIPT_H
#define PANDEMONIUM_NATIVESCRIPT_H
#include <gdn/gdnative.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef enum {
PANDEMONIUM_METHOD_RPC_MODE_DISABLED,
PANDEMONIUM_METHOD_RPC_MODE_REMOTE,
PANDEMONIUM_METHOD_RPC_MODE_MASTER,
PANDEMONIUM_METHOD_RPC_MODE_PUPPET,
PANDEMONIUM_METHOD_RPC_MODE_REMOTESYNC,
PANDEMONIUM_METHOD_RPC_MODE_MASTERSYNC,
PANDEMONIUM_METHOD_RPC_MODE_PUPPETSYNC,
} pandemonium_method_rpc_mode;
typedef enum {
PANDEMONIUM_PROPERTY_HINT_NONE, ///< no hint provided.
PANDEMONIUM_PROPERTY_HINT_RANGE, ///< hint_text = "min,max,step,slider; //slider is optional"
PANDEMONIUM_PROPERTY_HINT_EXP_RANGE, ///< hint_text = "min,max,step", exponential edit
PANDEMONIUM_PROPERTY_HINT_ENUM, ///< hint_text= "val1,val2,val3,etc"
PANDEMONIUM_PROPERTY_HINT_EXP_EASING, /// exponential easing function (Math::ease) use "attenuation" hint string to revert (flip h), "full" to also include in/out. (ie: "attenuation,inout")
PANDEMONIUM_PROPERTY_HINT_LENGTH, ///< hint_text= "length" (as integer)
PANDEMONIUM_PROPERTY_HINT_BUTTON, // Use a button in the inspector for this property. The property's type has to be Variant::NIL. hint_text="call_func:name/theme_type" -> calls call_func on press, optional: ":name/theme_type" -> get_theme_icon("name", "theme_type")
PANDEMONIUM_PROPERTY_HINT_KEY_ACCEL, ///< hint_text= "length" (as integer)
PANDEMONIUM_PROPERTY_HINT_FLAGS, ///< hint_text= "flag1,flag2,etc" (as bit flags)
PANDEMONIUM_PROPERTY_HINT_LAYERS_2D_RENDER,
PANDEMONIUM_PROPERTY_HINT_LAYERS_2D_PHYSICS,
PANDEMONIUM_PROPERTY_HINT_LAYERS_2D_NAVIGATION,
PANDEMONIUM_PROPERTY_HINT_LAYERS_3D_RENDER,
PANDEMONIUM_PROPERTY_HINT_LAYERS_3D_PHYSICS,
PANDEMONIUM_PROPERTY_HINT_LAYERS_3D_NAVIGATION,
PANDEMONIUM_PROPERTY_HINT_LAYERS_AVOIDANCE,
PANDEMONIUM_PROPERTY_HINT_FILE, ///< a file path must be passed, hint_text (optionally) is a filter "*.png,*.wav,*.doc,"
PANDEMONIUM_PROPERTY_HINT_DIR, ///< a directory path must be passed
PANDEMONIUM_PROPERTY_HINT_GLOBAL_FILE, ///< a file path must be passed, hint_text (optionally) is a filter "*.png,*.wav,*.doc,"
PANDEMONIUM_PROPERTY_HINT_GLOBAL_DIR, ///< a directory path must be passed
PANDEMONIUM_PROPERTY_HINT_RESOURCE_TYPE, ///< a resource object type
PANDEMONIUM_PROPERTY_HINT_MULTILINE_TEXT, ///< used for string properties that can contain multiple lines
PANDEMONIUM_PROPERTY_HINT_PLACEHOLDER_TEXT, ///< used to set a placeholder text for string properties
PANDEMONIUM_PROPERTY_HINT_COLOR_NO_ALPHA, ///< used for ignoring alpha component when editing a color
PANDEMONIUM_PROPERTY_HINT_IMAGE_COMPRESS_LOSSY,
PANDEMONIUM_PROPERTY_HINT_IMAGE_COMPRESS_LOSSLESS,
PANDEMONIUM_PROPERTY_HINT_OBJECT_ID,
PANDEMONIUM_PROPERTY_HINT_TYPE_STRING, ///< a type string, the hint is the base type to choose
PANDEMONIUM_PROPERTY_HINT_NODE_PATH_TO_EDITED_NODE, ///< so something else can provide this (used in scripts)
PANDEMONIUM_PROPERTY_HINT_METHOD_OF_VARIANT_TYPE, ///< a method of a type
PANDEMONIUM_PROPERTY_HINT_METHOD_OF_BASE_TYPE, ///< a method of a base type
PANDEMONIUM_PROPERTY_HINT_METHOD_OF_INSTANCE, ///< a method of an instance
PANDEMONIUM_PROPERTY_HINT_METHOD_OF_SCRIPT, ///< a method of a script & base
PANDEMONIUM_PROPERTY_HINT_PROPERTY_OF_VARIANT_TYPE, ///< a property of a type
PANDEMONIUM_PROPERTY_HINT_PROPERTY_OF_BASE_TYPE, ///< a property of a base type
PANDEMONIUM_PROPERTY_HINT_PROPERTY_OF_INSTANCE, ///< a property of an instance
PANDEMONIUM_PROPERTY_HINT_PROPERTY_OF_SCRIPT, ///< a property of a script & base
PANDEMONIUM_PROPERTY_HINT_OBJECT_TOO_BIG, ///< object is too big to send
PANDEMONIUM_PROPERTY_HINT_NODE_PATH_VALID_TYPES,
PANDEMONIUM_PROPERTY_HINT_SAVE_FILE, ///< a file path must be passed, hint_text (optionally) is a filter "*.png,*.wav,*.doc,". This opens a save dialog
PANDEMONIUM_PROPERTY_HINT_ENUM_SUGGESTION, ///< hint_text= "val1,val2,val3,etc"
PANDEMONIUM_PROPERTY_HINT_LINK,
PANDEMONIUM_PROPERTY_HINT_MAX,
} pandemonium_property_hint;
typedef enum {
PANDEMONIUM_PROPERTY_USAGE_STORAGE = 1,
PANDEMONIUM_PROPERTY_USAGE_EDITOR = 2,
PANDEMONIUM_PROPERTY_USAGE_NETWORK = 4,
PANDEMONIUM_PROPERTY_USAGE_EDITOR_HELPER = 8,
PANDEMONIUM_PROPERTY_USAGE_CHECKABLE = 16, //used for editing global variables
PANDEMONIUM_PROPERTY_USAGE_CHECKED = 32, //used for editing global variables
PANDEMONIUM_PROPERTY_USAGE_INTERNATIONALIZED = 64, //hint for internationalized strings
PANDEMONIUM_PROPERTY_USAGE_GROUP = 128, //used for grouping props in the editor
PANDEMONIUM_PROPERTY_USAGE_CATEGORY = 256,
PANDEMONIUM_PROPERTY_USAGE_NO_INSTANCE_STATE = 2048,
PANDEMONIUM_PROPERTY_USAGE_RESTART_IF_CHANGED = 4096,
PANDEMONIUM_PROPERTY_USAGE_SCRIPT_VARIABLE = 8192,
PANDEMONIUM_PROPERTY_USAGE_STORE_IF_NULL = 16384,
PANDEMONIUM_PROPERTY_USAGE_ANIMATE_AS_TRIGGER = 32768,
PANDEMONIUM_PROPERTY_USAGE_UPDATE_ALL_IF_MODIFIED = 65536,
PANDEMONIUM_PROPERTY_USAGE_SCRIPT_DEFAULT_VALUE = 1 << 17,
PANDEMONIUM_PROPERTY_USAGE_CLASS_IS_ENUM = 1 << 18,
PANDEMONIUM_PROPERTY_USAGE_NIL_IS_VARIANT = 1 << 19,
PANDEMONIUM_PROPERTY_USAGE_INTERNAL = 1 << 20,
PANDEMONIUM_PROPERTY_USAGE_DO_NOT_SHARE_ON_DUPLICATE = 1 << 21, // If the object is duplicated also this property will be duplicated
PANDEMONIUM_PROPERTY_USAGE_HIGH_END_GFX = 1 << 22,
PANDEMONIUM_PROPERTY_USAGE_NODE_PATH_FROM_SCENE_ROOT = 1 << 23,
PANDEMONIUM_PROPERTY_USAGE_RESOURCE_NOT_PERSISTENT = 1 << 24,
PANDEMONIUM_PROPERTY_USAGE_KEYING_INCREMENTS = 1 << 25, // Used in inspector to increment property when keyed in animation player
PANDEMONIUM_PROPERTY_USAGE_DEFAULT = PANDEMONIUM_PROPERTY_USAGE_STORAGE | PANDEMONIUM_PROPERTY_USAGE_EDITOR | PANDEMONIUM_PROPERTY_USAGE_NETWORK,
PANDEMONIUM_PROPERTY_USAGE_DEFAULT_INTL = PANDEMONIUM_PROPERTY_USAGE_STORAGE | PANDEMONIUM_PROPERTY_USAGE_EDITOR | PANDEMONIUM_PROPERTY_USAGE_NETWORK | PANDEMONIUM_PROPERTY_USAGE_INTERNATIONALIZED,
PANDEMONIUM_PROPERTY_USAGE_NOEDITOR = PANDEMONIUM_PROPERTY_USAGE_STORAGE | PANDEMONIUM_PROPERTY_USAGE_NETWORK,
} pandemonium_property_usage_flags;
typedef struct {
pandemonium_method_rpc_mode rset_type;
pandemonium_int type;
pandemonium_property_hint hint;
pandemonium_string hint_string;
pandemonium_property_usage_flags usage;
pandemonium_variant default_value;
} pandemonium_property_attributes;
typedef struct {
// instance pointer, method_data - return user data
GDCALLINGCONV void *(*create_func)(pandemonium_object *, void *);
void *method_data;
GDCALLINGCONV void (*free_func)(void *);
} pandemonium_instance_create_func;
typedef struct {
// instance pointer, method data, user data
GDCALLINGCONV void (*destroy_func)(pandemonium_object *, void *, void *);
void *method_data;
GDCALLINGCONV void (*free_func)(void *);
} pandemonium_instance_destroy_func;
void GDAPI pandemonium_nativescript_register_class(void *p_gdnative_handle, const char *p_name, const char *p_base, pandemonium_instance_create_func p_create_func, pandemonium_instance_destroy_func p_destroy_func);
void GDAPI pandemonium_nativescript_register_tool_class(void *p_gdnative_handle, const char *p_name, const char *p_base, pandemonium_instance_create_func p_create_func, pandemonium_instance_destroy_func p_destroy_func);
typedef struct {
pandemonium_method_rpc_mode rpc_type;
} pandemonium_method_attributes;
typedef struct {
// instance pointer, method data, user data, num args, args - return result as variant
GDCALLINGCONV pandemonium_variant (*method)(pandemonium_object *, void *, void *, int, pandemonium_variant **);
void *method_data;
GDCALLINGCONV void (*free_func)(void *);
} pandemonium_instance_method;
void GDAPI pandemonium_nativescript_register_method(void *p_gdnative_handle, const char *p_name, const char *p_function_name, pandemonium_method_attributes p_attr, pandemonium_instance_method p_method);
typedef struct {
// instance pointer, method data, user data, value
GDCALLINGCONV void (*set_func)(pandemonium_object *, void *, void *, pandemonium_variant *);
void *method_data;
GDCALLINGCONV void (*free_func)(void *);
} pandemonium_property_set_func;
typedef struct {
// instance pointer, method data, user data, value
GDCALLINGCONV pandemonium_variant (*get_func)(pandemonium_object *, void *, void *);
void *method_data;
GDCALLINGCONV void (*free_func)(void *);
} pandemonium_property_get_func;
void GDAPI pandemonium_nativescript_register_property(void *p_gdnative_handle, const char *p_name, const char *p_path, pandemonium_property_attributes *p_attr, pandemonium_property_set_func p_set_func, pandemonium_property_get_func p_get_func);
typedef struct {
pandemonium_string name;
pandemonium_int type;
pandemonium_property_hint hint;
pandemonium_string hint_string;
pandemonium_property_usage_flags usage;
pandemonium_variant default_value;
} pandemonium_signal_argument;
typedef struct {
pandemonium_string name;
int num_args;
pandemonium_signal_argument *args;
int num_default_args;
pandemonium_variant *default_args;
} pandemonium_signal;
void GDAPI pandemonium_nativescript_register_signal(void *p_gdnative_handle, const char *p_name, const pandemonium_signal *p_signal);
void GDAPI *pandemonium_nativescript_get_userdata(pandemonium_object *p_instance);
// method registering with argument names
typedef struct {
pandemonium_string name;
pandemonium_variant_type type;
pandemonium_property_hint hint;
pandemonium_string hint_string;
} pandemonium_method_arg;
void GDAPI pandemonium_nativescript_set_method_argument_information(void *p_gdnative_handle, const char *p_name, const char *p_function_name, int p_num_args, const pandemonium_method_arg *p_args);
// documentation
void GDAPI pandemonium_nativescript_set_class_documentation(void *p_gdnative_handle, const char *p_name, pandemonium_string p_documentation);
void GDAPI pandemonium_nativescript_set_method_documentation(void *p_gdnative_handle, const char *p_name, const char *p_function_name, pandemonium_string p_documentation);
void GDAPI pandemonium_nativescript_set_property_documentation(void *p_gdnative_handle, const char *p_name, const char *p_path, pandemonium_string p_documentation);
void GDAPI pandemonium_nativescript_set_signal_documentation(void *p_gdnative_handle, const char *p_name, const char *p_signal_name, pandemonium_string p_documentation);
// type tag API
void GDAPI pandemonium_nativescript_set_global_type_tag(int p_idx, const char *p_name, const void *p_type_tag);
const void GDAPI *pandemonium_nativescript_get_global_type_tag(int p_idx, const char *p_name);
void GDAPI pandemonium_nativescript_set_type_tag(void *p_gdnative_handle, const char *p_name, const void *p_type_tag);
const void GDAPI *pandemonium_nativescript_get_type_tag(const pandemonium_object *p_object);
// instance binding API
typedef struct {
GDCALLINGCONV void *(*alloc_instance_binding_data)(void *, const void *, pandemonium_object *);
GDCALLINGCONV void (*free_instance_binding_data)(void *, void *);
GDCALLINGCONV void (*refcount_incremented_instance_binding)(void *, pandemonium_object *);
GDCALLINGCONV bool (*refcount_decremented_instance_binding)(void *, pandemonium_object *);
void *data;
GDCALLINGCONV void (*free_func)(void *);
} pandemonium_instance_binding_functions;
int GDAPI pandemonium_nativescript_register_instance_binding_data_functions(pandemonium_instance_binding_functions p_binding_functions);
void GDAPI pandemonium_nativescript_unregister_instance_binding_data_functions(int p_idx);
void GDAPI *pandemonium_nativescript_get_instance_binding_data(int p_idx, pandemonium_object *p_object);
void GDAPI pandemonium_nativescript_profiling_add_data(const char *p_signature, uint64_t p_time);
#ifdef __cplusplus
}
#endif
#endif // PANDEMONIUM_NATIVESCRIPT_H

View File

@ -0,0 +1,117 @@
/**************************************************************************/
/* pandemonium_net.h */
/**************************************************************************/
/* This file is part of: */
/* PANDEMONIUM ENGINE */
/* https://pandemoniumengine.org */
/**************************************************************************/
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
/* "Software"), to deal in the Software without restriction, including */
/* without limitation the rights to use, copy, modify, merge, publish, */
/* distribute, sublicense, and/or sell copies of the Software, and to */
/* permit persons to whom the Software is furnished to do so, subject to */
/* the following conditions: */
/* */
/* The above copyright notice and this permission notice shall be */
/* included in all copies or substantial portions of the Software. */
/* */
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/**************************************************************************/
#ifndef PANDEMONIUM_NET_H
#define PANDEMONIUM_NET_H
#include <gdn/gdnative.h>
#ifdef __cplusplus
extern "C" {
#endif
// For future versions of the API we should only add new functions at the end of the structure and use the
// version info to detect whether a call is available
// Use these to populate version in your plugin
#define PANDEMONIUM_NET_API_MAJOR 1
#define PANDEMONIUM_NET_API_MINOR 0
typedef struct {
pandemonium_gdnative_api_version version; /* version of our API */
pandemonium_object *data; /* User reference */
/* This is StreamPeer */
pandemonium_error (*get_data)(void *user, uint8_t *p_buffer, int p_bytes);
pandemonium_error (*get_partial_data)(void *user, uint8_t *p_buffer, int p_bytes, int *r_received);
pandemonium_error (*put_data)(void *user, const uint8_t *p_data, int p_bytes);
pandemonium_error (*put_partial_data)(void *user, const uint8_t *p_data, int p_bytes, int *r_sent);
int (*get_available_bytes)(const void *user);
void *next; /* For extension? */
} pandemonium_net_stream_peer;
/* Binds a StreamPeerGDNative to the provided interface */
void pandemonium_net_bind_stream_peer(pandemonium_object *p_obj, const pandemonium_net_stream_peer *p_interface);
typedef struct {
pandemonium_gdnative_api_version version; /* version of our API */
pandemonium_object *data; /* User reference */
/* This is PacketPeer */
pandemonium_error (*get_packet)(void *, const uint8_t **, int *);
pandemonium_error (*put_packet)(void *, const uint8_t *, int);
pandemonium_int (*get_available_packet_count)(const void *);
pandemonium_int (*get_max_packet_size)(const void *);
void *next; /* For extension? */
} pandemonium_net_packet_peer;
/* Binds a PacketPeerGDNative to the provided interface */
void GDAPI pandemonium_net_bind_packet_peer(pandemonium_object *p_obj, const pandemonium_net_packet_peer *);
typedef struct {
pandemonium_gdnative_api_version version; /* version of our API */
pandemonium_object *data; /* User reference */
/* This is PacketPeer */
pandemonium_error (*get_packet)(void *, const uint8_t **, int *);
pandemonium_error (*put_packet)(void *, const uint8_t *, int);
pandemonium_int (*get_available_packet_count)(const void *);
pandemonium_int (*get_max_packet_size)(const void *);
/* This is NetworkedMultiplayerPeer */
void (*set_transfer_mode)(void *, pandemonium_int);
pandemonium_int (*get_transfer_mode)(const void *);
// 0 = broadcast, 1 = server, <0 = all but abs(value)
void (*set_target_peer)(void *, pandemonium_int);
pandemonium_int (*get_packet_peer)(const void *);
pandemonium_bool (*is_server)(const void *);
void (*poll)(void *);
// Must be > 0, 1 is for server
int32_t (*get_unique_id)(const void *);
void (*set_refuse_new_connections)(void *, pandemonium_bool);
pandemonium_bool (*is_refusing_new_connections)(const void *);
pandemonium_int (*get_connection_status)(const void *);
void *next; /* For extension? Or maybe not... */
} pandemonium_net_multiplayer_peer;
/* Binds a MultiplayerPeerGDNative to the provided interface */
void GDAPI pandemonium_net_bind_multiplayer_peer(pandemonium_object *p_obj, const pandemonium_net_multiplayer_peer *);
#ifdef __cplusplus
}
#endif
#endif // PANDEMONIUM_NET_H

View File

@ -0,0 +1,169 @@
/**************************************************************************/
/* pandemonium_pluginscript.h */
/**************************************************************************/
/* This file is part of: */
/* PANDEMONIUM ENGINE */
/* https://pandemoniumengine.org */
/**************************************************************************/
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
/* "Software"), to deal in the Software without restriction, including */
/* without limitation the rights to use, copy, modify, merge, publish, */
/* distribute, sublicense, and/or sell copies of the Software, and to */
/* permit persons to whom the Software is furnished to do so, subject to */
/* the following conditions: */
/* */
/* The above copyright notice and this permission notice shall be */
/* included in all copies or substantial portions of the Software. */
/* */
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/**************************************************************************/
#ifndef PANDEMONIUM_PLUGINSCRIPT_H
#define PANDEMONIUM_PLUGINSCRIPT_H
#include <gdn/gdnative.h>
#include <nativescript/pandemonium_nativescript.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef void pandemonium_pluginscript_instance_data;
typedef void pandemonium_pluginscript_script_data;
typedef void pandemonium_pluginscript_language_data;
// --- Instance ---
// TODO: use pandemonium_string_name for faster lookup ?
typedef struct {
pandemonium_pluginscript_instance_data *(*init)(pandemonium_pluginscript_script_data *p_data, pandemonium_object *p_owner);
void (*finish)(pandemonium_pluginscript_instance_data *p_data);
pandemonium_bool (*set_prop)(pandemonium_pluginscript_instance_data *p_data, const pandemonium_string *p_name, const pandemonium_variant *p_value);
pandemonium_bool (*get_prop)(pandemonium_pluginscript_instance_data *p_data, const pandemonium_string *p_name, pandemonium_variant *r_ret);
pandemonium_variant (*call_method)(pandemonium_pluginscript_instance_data *p_data,
const pandemonium_string_name *p_method, const pandemonium_variant **p_args,
int p_argcount, pandemonium_variant_call_error *r_error);
void (*notification)(pandemonium_pluginscript_instance_data *p_data, int p_notification);
//this is used by script languages that keep a reference counter of their own
//you can make make Ref<> not die when it reaches zero, so deleting the reference
//depends entirely from the script.
// Note: You can set those function pointer to NULL if not needed.
void (*refcount_incremented)(pandemonium_pluginscript_instance_data *p_data);
bool (*refcount_decremented)(pandemonium_pluginscript_instance_data *p_data); // return true if it can die
} pandemonium_pluginscript_instance_desc;
// --- Script ---
typedef struct {
pandemonium_pluginscript_script_data *data;
pandemonium_string_name name;
pandemonium_bool is_tool;
pandemonium_string_name base;
// Member lines format: {<string>: <int>}
pandemonium_dictionary member_lines;
// Method info dictionary format
// {
// name: <string>
// args: [<dict:property>]
// default_args: [<variant>]
// return: <dict:property>
// flags: <int>
// rpc_mode: <int:pandemonium_method_rpc_mode>
// }
pandemonium_array methods;
// Same format than for methods
pandemonium_array signals;
// Property info dictionary format
// {
// name: <string>
// type: <int:pandemonium_variant_type>
// hint: <int:pandemonium_property_hint>
// hint_string: <string>
// usage: <int:pandemonium_property_usage_flags>
// default_value: <variant>
// rset_mode: <int:pandemonium_method_rpc_mode>
// }
pandemonium_array properties;
} pandemonium_pluginscript_script_manifest;
typedef struct {
pandemonium_pluginscript_script_manifest (*init)(pandemonium_pluginscript_language_data *p_data, const pandemonium_string *p_path, const pandemonium_string *p_source, pandemonium_error *r_error);
void (*finish)(pandemonium_pluginscript_script_data *p_data);
pandemonium_pluginscript_instance_desc instance_desc;
} pandemonium_pluginscript_script_desc;
// --- Language ---
typedef struct {
pandemonium_string_name signature;
pandemonium_int call_count;
pandemonium_int total_time; // In microseconds
pandemonium_int self_time; // In microseconds
} pandemonium_pluginscript_profiling_data;
typedef struct {
const char *name;
const char *type;
const char *extension;
const char **recognized_extensions; // NULL terminated array
pandemonium_pluginscript_language_data *(*init)();
void (*finish)(pandemonium_pluginscript_language_data *p_data);
const char **reserved_words; // NULL terminated array
const char **comment_delimiters; // NULL terminated array
const char **string_delimiters; // NULL terminated array
pandemonium_bool has_named_classes;
pandemonium_bool supports_builtin_mode;
pandemonium_string (*get_template_source_code)(pandemonium_pluginscript_language_data *p_data, const pandemonium_string *p_class_name, const pandemonium_string *p_base_class_name);
pandemonium_bool (*validate)(pandemonium_pluginscript_language_data *p_data, const pandemonium_string *p_script, int *r_line_error, int *r_col_error, pandemonium_string *r_test_error, const pandemonium_string *p_path, pandemonium_pool_string_array *r_functions);
int (*find_function)(pandemonium_pluginscript_language_data *p_data, const pandemonium_string *p_function, const pandemonium_string *p_code); // Can be NULL
pandemonium_string (*make_function)(pandemonium_pluginscript_language_data *p_data, const pandemonium_string *p_class, const pandemonium_string *p_name, const pandemonium_pool_string_array *p_args);
pandemonium_error (*complete_code)(pandemonium_pluginscript_language_data *p_data, const pandemonium_string *p_code, const pandemonium_string *p_path, pandemonium_object *p_owner, pandemonium_array *r_options, pandemonium_bool *r_force, pandemonium_string *r_call_hint);
void (*auto_indent_code)(pandemonium_pluginscript_language_data *p_data, pandemonium_string *p_code, int p_from_line, int p_to_line);
void (*add_global_constant)(pandemonium_pluginscript_language_data *p_data, const pandemonium_string *p_variable, const pandemonium_variant *p_value);
pandemonium_string (*debug_get_error)(pandemonium_pluginscript_language_data *p_data);
int (*debug_get_stack_level_count)(pandemonium_pluginscript_language_data *p_data);
int (*debug_get_stack_level_line)(pandemonium_pluginscript_language_data *p_data, int p_level);
pandemonium_string (*debug_get_stack_level_function)(pandemonium_pluginscript_language_data *p_data, int p_level);
pandemonium_string (*debug_get_stack_level_source)(pandemonium_pluginscript_language_data *p_data, int p_level);
void (*debug_get_stack_level_locals)(pandemonium_pluginscript_language_data *p_data, int p_level, pandemonium_pool_string_array *p_locals, pandemonium_array *p_values, int p_max_subitems, int p_max_depth);
void (*debug_get_stack_level_members)(pandemonium_pluginscript_language_data *p_data, int p_level, pandemonium_pool_string_array *p_members, pandemonium_array *p_values, int p_max_subitems, int p_max_depth);
void (*debug_get_globals)(pandemonium_pluginscript_language_data *p_data, pandemonium_pool_string_array *p_locals, pandemonium_array *p_values, int p_max_subitems, int p_max_depth);
pandemonium_string (*debug_parse_stack_level_expression)(pandemonium_pluginscript_language_data *p_data, int p_level, const pandemonium_string *p_expression, int p_max_subitems, int p_max_depth);
// TODO: could this stuff be moved to the pandemonium_pluginscript_language_desc ?
void (*get_public_functions)(pandemonium_pluginscript_language_data *p_data, pandemonium_array *r_functions);
void (*get_public_constants)(pandemonium_pluginscript_language_data *p_data, pandemonium_dictionary *r_constants);
void (*profiling_start)(pandemonium_pluginscript_language_data *p_data);
void (*profiling_stop)(pandemonium_pluginscript_language_data *p_data);
int (*profiling_get_accumulated_data)(pandemonium_pluginscript_language_data *p_data, pandemonium_pluginscript_profiling_data *r_info, int p_info_max);
int (*profiling_get_frame_data)(pandemonium_pluginscript_language_data *p_data, pandemonium_pluginscript_profiling_data *r_info, int p_info_max);
void (*profiling_frame)(pandemonium_pluginscript_language_data *p_data);
pandemonium_pluginscript_script_desc script_desc;
} pandemonium_pluginscript_language_desc;
void GDAPI pandemonium_pluginscript_register_language(const pandemonium_pluginscript_language_desc *language_desc);
#ifdef __cplusplus
}
#endif
#endif // PANDEMONIUM_PLUGINSCRIPT_H

View File

@ -0,0 +1,75 @@
/**************************************************************************/
/* pandemonium_videodecoder.h */
/**************************************************************************/
/* This file is part of: */
/* PANDEMONIUM ENGINE */
/* https://pandemoniumengine.org */
/**************************************************************************/
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
/* "Software"), to deal in the Software without restriction, including */
/* without limitation the rights to use, copy, modify, merge, publish, */
/* distribute, sublicense, and/or sell copies of the Software, and to */
/* permit persons to whom the Software is furnished to do so, subject to */
/* the following conditions: */
/* */
/* The above copyright notice and this permission notice shall be */
/* included in all copies or substantial portions of the Software. */
/* */
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/**************************************************************************/
#ifndef PANDEMONIUM_VIDEODECODER_H
#define PANDEMONIUM_VIDEODECODER_H
#include <gdn/gdnative.h>
#ifdef __cplusplus
extern "C" {
#endif
#define PANDEMONIUMAV_API_MAJOR 0
#define PANDEMONIUMAV_API_MINOR 1
typedef struct
{
pandemonium_gdnative_api_version version;
void *next;
void *(*constructor)(pandemonium_object *);
void (*destructor)(void *);
const char *(*get_plugin_name)();
const char **(*get_supported_extensions)(int *count);
pandemonium_bool (*open_file)(void *, void *); // data struct, and a FileAccess pointer
pandemonium_real (*get_length)(const void *);
pandemonium_real (*get_playback_position)(const void *);
void (*seek)(void *, pandemonium_real);
void (*set_audio_track)(void *, pandemonium_int);
void (*update)(void *, pandemonium_real);
pandemonium_pool_byte_array *(*get_videoframe)(void *);
pandemonium_int (*get_audioframe)(void *, float *, int);
pandemonium_int (*get_channels)(const void *);
pandemonium_int (*get_mix_rate)(const void *);
pandemonium_vector2 (*get_texture_size)(const void *);
} pandemonium_videodecoder_interface_gdnative;
typedef int (*GDNativeAudioMixCallback)(void *, const float *, int);
// FileAccess wrappers for custom FFmpeg IO
pandemonium_int GDAPI pandemonium_videodecoder_file_read(void *file_ptr, uint8_t *buf, int buf_size);
int64_t GDAPI pandemonium_videodecoder_file_seek(void *file_ptr, int64_t pos, int whence);
void GDAPI pandemonium_videodecoder_register_decoder(const pandemonium_videodecoder_interface_gdnative *p_interface);
#ifdef __cplusplus
}
#endif
#endif // PANDEMONIUM_VIDEODECODER_H