mirror of
https://github.com/Relintai/pandemonium_engine.git
synced 2025-01-03 01:19:38 +01:00
Fix build when the new skeleton 3d module is disabled.
This commit is contained in:
parent
dc28777321
commit
e558e0f700
@ -667,9 +667,9 @@ bool AnimationNodeBlendTreeEditor::_update_filters(const Ref<AnimationNode> &ano
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (path.get_subname_count()) {
|
if (path.get_subname_count()) {
|
||||||
#ifdef MODULE_SKELETON_3D_ENABLED
|
|
||||||
String concat = path.get_concatenated_subnames();
|
String concat = path.get_concatenated_subnames();
|
||||||
|
|
||||||
|
#ifdef MODULE_SKELETON_3D_ENABLED
|
||||||
Skeleton *skeleton = Object::cast_to<Skeleton>(node);
|
Skeleton *skeleton = Object::cast_to<Skeleton>(node);
|
||||||
if (skeleton && skeleton->find_bone(concat) != -1) {
|
if (skeleton && skeleton->find_bone(concat) != -1) {
|
||||||
//path in skeleton
|
//path in skeleton
|
||||||
@ -707,8 +707,9 @@ bool AnimationNodeBlendTreeEditor::_update_filters(const Ref<AnimationNode> &ano
|
|||||||
ti->set_checked(0, anode->is_path_filtered(path));
|
ti->set_checked(0, anode->is_path_filtered(path));
|
||||||
ti->set_icon(0, get_theme_icon("BoneAttachment", "EditorIcons"));
|
ti->set_icon(0, get_theme_icon("BoneAttachment", "EditorIcons"));
|
||||||
ti->set_metadata(0, path);
|
ti->set_metadata(0, path);
|
||||||
|
} else
|
||||||
#endif
|
#endif
|
||||||
} else {
|
{
|
||||||
//just a property
|
//just a property
|
||||||
ti = filters->create_item(ti);
|
ti = filters->create_item(ti);
|
||||||
ti->set_cell_mode(0, TreeItem::CELL_MODE_CHECK);
|
ti->set_cell_mode(0, TreeItem::CELL_MODE_CHECK);
|
||||||
|
@ -927,7 +927,13 @@ void EditorSpatialGizmo::set_plugin(EditorSpatialGizmoPlugin *p_plugin) {
|
|||||||
|
|
||||||
void EditorSpatialGizmo::_bind_methods() {
|
void EditorSpatialGizmo::_bind_methods() {
|
||||||
ClassDB::bind_method(D_METHOD("add_lines", "lines", "material", "billboard", "modulate"), &EditorSpatialGizmo::add_lines, DEFVAL(false), DEFVAL(Color(1, 1, 1)));
|
ClassDB::bind_method(D_METHOD("add_lines", "lines", "material", "billboard", "modulate"), &EditorSpatialGizmo::add_lines, DEFVAL(false), DEFVAL(Color(1, 1, 1)));
|
||||||
|
|
||||||
|
#ifdef MODULE_SKELETON_3D_ENABLED
|
||||||
ClassDB::bind_method(D_METHOD("add_mesh", "mesh", "material", "transform", "skeleton"), &EditorSpatialGizmo::add_mesh, DEFVAL(Variant()), DEFVAL(Transform()), DEFVAL(Ref<SkinReference>()));
|
ClassDB::bind_method(D_METHOD("add_mesh", "mesh", "material", "transform", "skeleton"), &EditorSpatialGizmo::add_mesh, DEFVAL(Variant()), DEFVAL(Transform()), DEFVAL(Ref<SkinReference>()));
|
||||||
|
#else
|
||||||
|
ClassDB::bind_method(D_METHOD("add_mesh", "mesh", "material", "transform"), &EditorSpatialGizmo::add_mesh, DEFVAL(Variant()), DEFVAL(Transform()));
|
||||||
|
#endif
|
||||||
|
|
||||||
ClassDB::bind_method(D_METHOD("add_collision_segments", "segments"), &EditorSpatialGizmo::add_collision_segments);
|
ClassDB::bind_method(D_METHOD("add_collision_segments", "segments"), &EditorSpatialGizmo::add_collision_segments);
|
||||||
ClassDB::bind_method(D_METHOD("add_collision_triangles", "triangles"), &EditorSpatialGizmo::add_collision_triangles);
|
ClassDB::bind_method(D_METHOD("add_collision_triangles", "triangles"), &EditorSpatialGizmo::add_collision_triangles);
|
||||||
ClassDB::bind_method(D_METHOD("add_unscaled_billboard", "material", "default_scale", "modulate"), &EditorSpatialGizmo::add_unscaled_billboard, DEFVAL(1), DEFVAL(Color(1, 1, 1)));
|
ClassDB::bind_method(D_METHOD("add_unscaled_billboard", "material", "default_scale", "modulate"), &EditorSpatialGizmo::add_unscaled_billboard, DEFVAL(1), DEFVAL(Color(1, 1, 1)));
|
||||||
|
@ -4391,6 +4391,7 @@ Error GLTFDocument::_create_skeletons(Ref<GLTFState> state) {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
Error GLTFDocument::_map_skin_joints_indices_to_skeleton_bone_indices(Ref<GLTFState> state) {
|
Error GLTFDocument::_map_skin_joints_indices_to_skeleton_bone_indices(Ref<GLTFState> state) {
|
||||||
|
#ifdef MODULE_SKELETON_3D_ENABLED
|
||||||
for (GLTFSkinIndex skin_i = 0; skin_i < state->skins.size(); ++skin_i) {
|
for (GLTFSkinIndex skin_i = 0; skin_i < state->skins.size(); ++skin_i) {
|
||||||
Ref<GLTFSkin> skin = state->skins.write[skin_i];
|
Ref<GLTFSkin> skin = state->skins.write[skin_i];
|
||||||
|
|
||||||
@ -4406,6 +4407,7 @@ Error GLTFDocument::_map_skin_joints_indices_to_skeleton_bone_indices(Ref<GLTFSt
|
|||||||
skin->joint_i_to_bone_i.insert(joint_index, bone_index);
|
skin->joint_i_to_bone_i.insert(joint_index, bone_index);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
return OK;
|
return OK;
|
||||||
}
|
}
|
||||||
@ -4430,6 +4432,7 @@ Error GLTFDocument::_serialize_skins(Ref<GLTFState> state) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Error GLTFDocument::_create_skins(Ref<GLTFState> state) {
|
Error GLTFDocument::_create_skins(Ref<GLTFState> state) {
|
||||||
|
#ifdef MODULE_SKELETON_3D_ENABLED
|
||||||
for (GLTFSkinIndex skin_i = 0; skin_i < state->skins.size(); ++skin_i) {
|
for (GLTFSkinIndex skin_i = 0; skin_i < state->skins.size(); ++skin_i) {
|
||||||
Ref<GLTFSkin> gltf_skin = state->skins.write[skin_i];
|
Ref<GLTFSkin> gltf_skin = state->skins.write[skin_i];
|
||||||
|
|
||||||
@ -4470,10 +4473,12 @@ Error GLTFDocument::_create_skins(Ref<GLTFState> state) {
|
|||||||
skin->set_name(_gen_unique_name(state, "Skin"));
|
skin->set_name(_gen_unique_name(state, "Skin"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
return OK;
|
return OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef MODULE_SKELETON_3D_ENABLED
|
||||||
bool GLTFDocument::_skins_are_same(const Ref<Skin> skin_a, const Ref<Skin> skin_b) {
|
bool GLTFDocument::_skins_are_same(const Ref<Skin> skin_a, const Ref<Skin> skin_b) {
|
||||||
if (skin_a->get_bind_count() != skin_b->get_bind_count()) {
|
if (skin_a->get_bind_count() != skin_b->get_bind_count()) {
|
||||||
return false;
|
return false;
|
||||||
@ -4497,8 +4502,10 @@ bool GLTFDocument::_skins_are_same(const Ref<Skin> skin_a, const Ref<Skin> skin_
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
void GLTFDocument::_remove_duplicate_skins(Ref<GLTFState> state) {
|
void GLTFDocument::_remove_duplicate_skins(Ref<GLTFState> state) {
|
||||||
|
#ifdef MODULE_SKELETON_3D_ENABLED
|
||||||
for (int i = 0; i < state->skins.size(); ++i) {
|
for (int i = 0; i < state->skins.size(); ++i) {
|
||||||
for (int j = i + 1; j < state->skins.size(); ++j) {
|
for (int j = i + 1; j < state->skins.size(); ++j) {
|
||||||
const Ref<Skin> skin_i = state->skins[i]->pandemonium_skin;
|
const Ref<Skin> skin_i = state->skins[i]->pandemonium_skin;
|
||||||
@ -4510,6 +4517,7 @@ void GLTFDocument::_remove_duplicate_skins(Ref<GLTFState> state) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
Error GLTFDocument::_serialize_lights(Ref<GLTFState> state) {
|
Error GLTFDocument::_serialize_lights(Ref<GLTFState> state) {
|
||||||
@ -5316,11 +5324,11 @@ void GLTFDocument::_convert_scene_node(Ref<GLTFState> state, Node *p_current, co
|
|||||||
if (cast_to<MeshInstance>(p_current)) {
|
if (cast_to<MeshInstance>(p_current)) {
|
||||||
MeshInstance *mi = cast_to<MeshInstance>(p_current);
|
MeshInstance *mi = cast_to<MeshInstance>(p_current);
|
||||||
_convert_mesh_instance_to_gltf(mi, state, gltf_node);
|
_convert_mesh_instance_to_gltf(mi, state, gltf_node);
|
||||||
|
#ifdef MODULE_SKELETON_3D_ENABLED
|
||||||
} else if (cast_to<BoneAttachment>(p_current)) {
|
} else if (cast_to<BoneAttachment>(p_current)) {
|
||||||
BoneAttachment *bone = cast_to<BoneAttachment>(p_current);
|
BoneAttachment *bone = cast_to<BoneAttachment>(p_current);
|
||||||
_convert_bone_attachment_to_gltf(bone, state, p_gltf_parent, p_gltf_root, gltf_node);
|
_convert_bone_attachment_to_gltf(bone, state, p_gltf_parent, p_gltf_root, gltf_node);
|
||||||
return;
|
return;
|
||||||
#ifdef MODULE_SKELETON_3D_ENABLED
|
|
||||||
} else if (cast_to<Skeleton>(p_current)) {
|
} else if (cast_to<Skeleton>(p_current)) {
|
||||||
Skeleton *skel = cast_to<Skeleton>(p_current);
|
Skeleton *skel = cast_to<Skeleton>(p_current);
|
||||||
_convert_skeleton_to_gltf(skel, state, p_gltf_parent, p_gltf_root, gltf_node);
|
_convert_skeleton_to_gltf(skel, state, p_gltf_parent, p_gltf_root, gltf_node);
|
||||||
@ -5546,7 +5554,9 @@ void GLTFDocument::_generate_scene_node(Ref<GLTFState> state, Node *scene_parent
|
|||||||
Ref<GLTFNode> gltf_node = state->nodes[node_index];
|
Ref<GLTFNode> gltf_node = state->nodes[node_index];
|
||||||
|
|
||||||
if (gltf_node->skeleton >= 0) {
|
if (gltf_node->skeleton >= 0) {
|
||||||
|
#ifdef MODULE_SKELETON_3D_ENABLED
|
||||||
_generate_skeleton_bone_node(state, scene_parent, scene_root, node_index);
|
_generate_skeleton_bone_node(state, scene_parent, scene_root, node_index);
|
||||||
|
#endif
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -6140,8 +6150,8 @@ void GLTFDocument::_convert_mesh_instances(Ref<GLTFState> state) {
|
|||||||
node->skin = skin_gltf_i;
|
node->skin = skin_gltf_i;
|
||||||
node->skeleton = skeleton_gltf_i;
|
node->skeleton = skeleton_gltf_i;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
float GLTFDocument::solve_metallic(float p_dielectric_specular, float diffuse, float specular, float p_one_minus_specular_strength) {
|
float GLTFDocument::solve_metallic(float p_dielectric_specular, float diffuse, float specular, float p_one_minus_specular_strength) {
|
||||||
@ -6682,6 +6692,7 @@ Error GLTFDocument::parse(Ref<GLTFState> state, String p_path, bool p_read_binar
|
|||||||
return Error::FAILED;
|
return Error::FAILED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef MODULE_SKELETON_3D_ENABLED
|
||||||
/* CREATE SKELETONS */
|
/* CREATE SKELETONS */
|
||||||
err = _create_skeletons(state);
|
err = _create_skeletons(state);
|
||||||
if (err != OK) {
|
if (err != OK) {
|
||||||
@ -6693,6 +6704,7 @@ Error GLTFDocument::parse(Ref<GLTFState> state, String p_path, bool p_read_binar
|
|||||||
if (err != OK) {
|
if (err != OK) {
|
||||||
return Error::FAILED;
|
return Error::FAILED;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* PARSE MESHES (we have enough info now) */
|
/* PARSE MESHES (we have enough info now) */
|
||||||
err = _parse_meshes(state);
|
err = _parse_meshes(state);
|
||||||
|
@ -42,8 +42,10 @@
|
|||||||
|
|
||||||
#include "modules/modules_enabled.gen.h" // For csg, gridmap.
|
#include "modules/modules_enabled.gen.h" // For csg, gridmap.
|
||||||
|
|
||||||
|
#ifdef MODULE_SKELETON_3D_ENABLED
|
||||||
class Skeleton;
|
class Skeleton;
|
||||||
class BoneAttachment;
|
class BoneAttachment;
|
||||||
|
#endif
|
||||||
|
|
||||||
class GLTFState;
|
class GLTFState;
|
||||||
class GLTFSkin;
|
class GLTFSkin;
|
||||||
@ -254,7 +256,9 @@ private:
|
|||||||
Error _map_skin_joints_indices_to_skeleton_bone_indices(Ref<GLTFState> state);
|
Error _map_skin_joints_indices_to_skeleton_bone_indices(Ref<GLTFState> state);
|
||||||
Error _serialize_skins(Ref<GLTFState> state);
|
Error _serialize_skins(Ref<GLTFState> state);
|
||||||
Error _create_skins(Ref<GLTFState> state);
|
Error _create_skins(Ref<GLTFState> state);
|
||||||
|
#ifdef MODULE_SKELETON_3D_ENABLED
|
||||||
bool _skins_are_same(const Ref<Skin> skin_a, const Ref<Skin> skin_b);
|
bool _skins_are_same(const Ref<Skin> skin_a, const Ref<Skin> skin_b);
|
||||||
|
#endif
|
||||||
void _remove_duplicate_skins(Ref<GLTFState> state);
|
void _remove_duplicate_skins(Ref<GLTFState> state);
|
||||||
Error _serialize_cameras(Ref<GLTFState> state);
|
Error _serialize_cameras(Ref<GLTFState> state);
|
||||||
Error _parse_cameras(Ref<GLTFState> state);
|
Error _parse_cameras(Ref<GLTFState> state);
|
||||||
|
@ -53,8 +53,10 @@ private:
|
|||||||
// same parent (ie roots are siblings)
|
// same parent (ie roots are siblings)
|
||||||
PoolVector<GLTFNodeIndex> roots;
|
PoolVector<GLTFNodeIndex> roots;
|
||||||
|
|
||||||
|
#ifdef MODULE_SKELETON_3D_ENABLED
|
||||||
// The created Skeleton for the scene
|
// The created Skeleton for the scene
|
||||||
Skeleton *pandemonium_skeleton = nullptr;
|
Skeleton *pandemonium_skeleton = nullptr;
|
||||||
|
#endif
|
||||||
|
|
||||||
// Set of unique bone names for the skeleton
|
// Set of unique bone names for the skeleton
|
||||||
Set<String> unique_names;
|
Set<String> unique_names;
|
||||||
|
@ -64,12 +64,14 @@ Ref<Material> ImporterMeshInstance3D::get_surface_material(int p_idx) const {
|
|||||||
return surface_materials[p_idx];
|
return surface_materials[p_idx];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef MODULE_SKELETON_3D_ENABLED
|
||||||
void ImporterMeshInstance3D::set_skeleton_path(const NodePath &p_path) {
|
void ImporterMeshInstance3D::set_skeleton_path(const NodePath &p_path) {
|
||||||
skeleton_path = p_path;
|
skeleton_path = p_path;
|
||||||
}
|
}
|
||||||
NodePath ImporterMeshInstance3D::get_skeleton_path() const {
|
NodePath ImporterMeshInstance3D::get_skeleton_path() const {
|
||||||
return skeleton_path;
|
return skeleton_path;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
void ImporterMeshInstance3D::_bind_methods() {
|
void ImporterMeshInstance3D::_bind_methods() {
|
||||||
ClassDB::bind_method(D_METHOD("set_mesh", "mesh"), &ImporterMeshInstance3D::set_mesh);
|
ClassDB::bind_method(D_METHOD("set_mesh", "mesh"), &ImporterMeshInstance3D::set_mesh);
|
||||||
@ -82,7 +84,9 @@ void ImporterMeshInstance3D::_bind_methods() {
|
|||||||
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "skin", PROPERTY_HINT_RESOURCE_TYPE, "Skin"), "set_skin", "get_skin");
|
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "skin", PROPERTY_HINT_RESOURCE_TYPE, "Skin"), "set_skin", "get_skin");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef MODULE_SKELETON_3D_ENABLED
|
||||||
ClassDB::bind_method(D_METHOD("set_skeleton_path", "skeleton_path"), &ImporterMeshInstance3D::set_skeleton_path);
|
ClassDB::bind_method(D_METHOD("set_skeleton_path", "skeleton_path"), &ImporterMeshInstance3D::set_skeleton_path);
|
||||||
ClassDB::bind_method(D_METHOD("get_skeleton_path"), &ImporterMeshInstance3D::get_skeleton_path);
|
ClassDB::bind_method(D_METHOD("get_skeleton_path"), &ImporterMeshInstance3D::get_skeleton_path);
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::NODE_PATH, "skeleton_path", PROPERTY_HINT_NODE_PATH_VALID_TYPES, "Skeleton"), "set_skeleton_path", "get_skeleton_path");
|
ADD_PROPERTY(PropertyInfo(Variant::NODE_PATH, "skeleton_path", PROPERTY_HINT_NODE_PATH_VALID_TYPES, "Skeleton"), "set_skeleton_path", "get_skeleton_path");
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -45,8 +45,10 @@ class ImporterMeshInstance3D : public Spatial {
|
|||||||
GDCLASS(ImporterMeshInstance3D, Spatial)
|
GDCLASS(ImporterMeshInstance3D, Spatial)
|
||||||
|
|
||||||
Ref<ImporterMesh> mesh;
|
Ref<ImporterMesh> mesh;
|
||||||
|
#ifdef MODULE_SKELETON_3D_ENABLED
|
||||||
Ref<Skin> skin;
|
Ref<Skin> skin;
|
||||||
NodePath skeleton_path;
|
NodePath skeleton_path;
|
||||||
|
#endif
|
||||||
Vector<Ref<Material>> surface_materials;
|
Vector<Ref<Material>> surface_materials;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
@ -64,8 +66,10 @@ public:
|
|||||||
void set_surface_material(int p_idx, const Ref<Material> &p_material);
|
void set_surface_material(int p_idx, const Ref<Material> &p_material);
|
||||||
Ref<Material> get_surface_material(int p_idx) const;
|
Ref<Material> get_surface_material(int p_idx) const;
|
||||||
|
|
||||||
|
#ifdef MODULE_SKELETON_3D_ENABLED
|
||||||
void set_skeleton_path(const NodePath &p_path);
|
void set_skeleton_path(const NodePath &p_path);
|
||||||
NodePath get_skeleton_path() const;
|
NodePath get_skeleton_path() const;
|
||||||
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // IMPORTER_MESH_INSTANCE_3D_H
|
#endif // IMPORTER_MESH_INSTANCE_3D_H
|
||||||
|
@ -124,10 +124,12 @@ void MeshInstance::set_mesh(const Ref<Mesh> &p_mesh) {
|
|||||||
mesh->disconnect(CoreStringNames::get_singleton()->changed, this, SceneStringNames::get_singleton()->_mesh_changed);
|
mesh->disconnect(CoreStringNames::get_singleton()->changed, this, SceneStringNames::get_singleton()->_mesh_changed);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef MODULE_SKELETON_3D_ENABLED
|
||||||
if (skin_ref.is_valid() && mesh.is_valid() && _is_software_skinning_enabled() && is_visible_in_tree()) {
|
if (skin_ref.is_valid() && mesh.is_valid() && _is_software_skinning_enabled() && is_visible_in_tree()) {
|
||||||
ERR_FAIL_COND(!skin_ref->get_skeleton_node());
|
ERR_FAIL_COND(!skin_ref->get_skeleton_node());
|
||||||
skin_ref->get_skeleton_node()->disconnect("pose_updated", this, "_update_skinning");
|
skin_ref->get_skeleton_node()->disconnect("pose_updated", this, "_update_skinning");
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef MODULE_SKELETON_3D_ENABLED
|
#ifdef MODULE_SKELETON_3D_ENABLED
|
||||||
if (software_skinning) {
|
if (software_skinning) {
|
||||||
@ -749,9 +751,11 @@ void MeshInstance::set_material_override(const Ref<Material> &p_material) {
|
|||||||
|
|
||||||
GeometryInstance::set_material_override(p_material);
|
GeometryInstance::set_material_override(p_material);
|
||||||
|
|
||||||
|
#ifdef MODULE_SKELETON_3D_ENABLED
|
||||||
if (software_skinning) {
|
if (software_skinning) {
|
||||||
_initialize_skinning(true);
|
_initialize_skinning(true);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void MeshInstance::set_material_overlay(const Ref<Material> &p_material) {
|
void MeshInstance::set_material_overlay(const Ref<Material> &p_material) {
|
||||||
|
@ -172,7 +172,9 @@ private:
|
|||||||
node(nullptr),
|
node(nullptr),
|
||||||
spatial(nullptr),
|
spatial(nullptr),
|
||||||
node_2d(nullptr),
|
node_2d(nullptr),
|
||||||
|
#ifdef MODULE_SKELETON_3D_ENABLED
|
||||||
skeleton(nullptr),
|
skeleton(nullptr),
|
||||||
|
#endif
|
||||||
bone_idx(-1),
|
bone_idx(-1),
|
||||||
accum_pass(0),
|
accum_pass(0),
|
||||||
audio_playing(false),
|
audio_playing(false),
|
||||||
|
@ -208,8 +208,10 @@ private:
|
|||||||
TrackCacheTransform() {
|
TrackCacheTransform() {
|
||||||
type = Animation::TYPE_POSITION_3D;
|
type = Animation::TYPE_POSITION_3D;
|
||||||
spatial = nullptr;
|
spatial = nullptr;
|
||||||
|
#ifdef MODULE_SKELETON_3D_ENABLED
|
||||||
bone_idx = -1;
|
bone_idx = -1;
|
||||||
skeleton = nullptr;
|
skeleton = nullptr;
|
||||||
|
#endif
|
||||||
loc_used = false;
|
loc_used = false;
|
||||||
rot_used = false;
|
rot_used = false;
|
||||||
scale_used = false;
|
scale_used = false;
|
||||||
|
Loading…
Reference in New Issue
Block a user