mirror of
https://github.com/godotengine/godot
synced 2024-09-04 22:48:26 +00:00
Update FBX because of changes in the core api.
This commit is contained in:
parent
719e4b1156
commit
58a00b4f3c
|
@ -115,7 +115,7 @@ struct SurfaceData {
|
|||
Array morphs;
|
||||
};
|
||||
|
||||
EditorSceneImporterMeshNode *FBXMeshData::create_fbx_mesh(const ImportState &state, const FBXDocParser::MeshGeometry *p_mesh_geometry, const FBXDocParser::Model *model, bool use_compression) {
|
||||
EditorSceneImporterMeshNode3D *FBXMeshData::create_fbx_mesh(const ImportState &state, const FBXDocParser::MeshGeometry *p_mesh_geometry, const FBXDocParser::Model *model, bool use_compression) {
|
||||
mesh_geometry = p_mesh_geometry;
|
||||
// todo: make this just use a uint64_t FBX ID this is a copy of our original materials unfortunately.
|
||||
const std::vector<const FBXDocParser::Material *> &material_lookup = model->GetMaterials();
|
||||
|
@ -410,7 +410,7 @@ EditorSceneImporterMeshNode *FBXMeshData::create_fbx_mesh(const ImportState &sta
|
|||
in_mesh_surface_id += 1;
|
||||
}
|
||||
|
||||
EditorSceneImporterMeshNode *godot_mesh = memnew(EditorSceneImporterMeshNode);
|
||||
EditorSceneImporterMeshNode3D *godot_mesh = memnew(EditorSceneImporterMeshNode3D);
|
||||
godot_mesh->set_mesh(mesh);
|
||||
return godot_mesh;
|
||||
}
|
||||
|
|
|
@ -33,6 +33,7 @@
|
|||
|
||||
#include "core/templates/hash_map.h"
|
||||
#include "editor/import/resource_importer_scene.h"
|
||||
#include "editor/import/scene_importer_mesh_node_3d.h"
|
||||
#include "scene/3d/mesh_instance_3d.h"
|
||||
#include "scene/resources/surface_tool.h"
|
||||
|
||||
|
@ -81,7 +82,7 @@ struct FBXMeshData : Reference {
|
|||
// translate fbx mesh data from document context to FBX Mesh Geometry Context
|
||||
bool valid_weight_indexes = false;
|
||||
|
||||
EditorSceneImporterMeshNode *create_fbx_mesh(const ImportState &state, const FBXDocParser::MeshGeometry *p_mesh_geometry, const FBXDocParser::Model *model, bool use_compression);
|
||||
EditorSceneImporterMeshNode3D *create_fbx_mesh(const ImportState &state, const FBXDocParser::MeshGeometry *p_mesh_geometry, const FBXDocParser::Model *model, bool use_compression);
|
||||
|
||||
void gen_weight_info(Ref<SurfaceTool> st, int vertex_id) const;
|
||||
|
||||
|
@ -90,7 +91,7 @@ struct FBXMeshData : Reference {
|
|||
int max_weight_count = 0;
|
||||
uint64_t armature_id = 0;
|
||||
bool valid_armature_id = false;
|
||||
EditorSceneImporterMeshNode *godot_mesh_instance = nullptr;
|
||||
EditorSceneImporterMeshNode3D *godot_mesh_instance = nullptr;
|
||||
|
||||
private:
|
||||
void sanitize_vertex_weights(const ImportState &state);
|
||||
|
|
|
@ -40,6 +40,7 @@
|
|||
#include "editor/editor_log.h"
|
||||
#include "editor/editor_node.h"
|
||||
#include "editor/import/resource_importer_scene.h"
|
||||
#include "editor/import/scene_importer_mesh_node_3d.h"
|
||||
#include "scene/3d/bone_attachment_3d.h"
|
||||
#include "scene/3d/camera_3d.h"
|
||||
#include "scene/3d/light_3d.h"
|
||||
|
@ -595,7 +596,7 @@ Node3D *EditorSceneImporterFBX::_generate_scene(
|
|||
node_element;
|
||||
node_element = node_element->next()) {
|
||||
Ref<FBXNode> fbx_node = node_element->get();
|
||||
EditorSceneImporterMeshNode *mesh_node = nullptr;
|
||||
EditorSceneImporterMeshNode3D *mesh_node = nullptr;
|
||||
Ref<FBXMeshData> mesh_data_precached;
|
||||
|
||||
// check for valid geometry
|
||||
|
@ -735,7 +736,7 @@ Node3D *EditorSceneImporterFBX::_generate_scene(
|
|||
for (Map<uint64_t, Ref<FBXMeshData>>::Element *mesh_data = state.renderer_mesh_data.front(); mesh_data; mesh_data = mesh_data->next()) {
|
||||
Ref<FBXMeshData> mesh = mesh_data->value();
|
||||
const uint64_t mesh_id = mesh_data->key();
|
||||
EditorSceneImporterMeshNode *mesh_instance = mesh->godot_mesh_instance;
|
||||
EditorSceneImporterMeshNode3D *mesh_instance = mesh->godot_mesh_instance;
|
||||
const int mesh_weights = mesh->max_weight_count;
|
||||
Ref<FBXSkeleton> skeleton;
|
||||
const bool valid_armature = mesh->valid_armature_id;
|
||||
|
|
Loading…
Reference in a new issue