This is a breaking change needed to fully implement instancing and stencil highlighting.
Previously, users would work directly with entities (on the Dart side, ThermionEntity), e.g.
final entity = await viewer.loadGlb("some.glb");
However, Filament "entities" are a lower-level abstraction.
Loading a glTF file, for example, inserts multiple entities into the scene.
For example, each mesh, light, and camera within a glTF asset will be assigned an entity. A top-level (non-renderable) entity will also be created for the glTF asset, which can be used to transform the entire hierarchy.
"Asset" is a better representation for loading/inserting objects into the scene; think of this as a bundle of entities.
Unless you need to work directly with transforms, instancing, materials and renderables, you can work directly with ThermionAsset.
27 lines
1.1 KiB
C++
27 lines
1.1 KiB
C++
#pragma once
|
|
#include <math/mat4.h>
|
|
#include "c_api/APIBoundaryTypes.h"
|
|
|
|
namespace thermion {
|
|
|
|
// Helper function to convert filament::math::mat4 to double4x4
|
|
static double4x4 convert_mat4_to_double4x4(const filament::math::mat4 &mat)
|
|
{
|
|
return double4x4{
|
|
{mat[0][0], mat[0][1], mat[0][2], mat[0][3]},
|
|
{mat[1][0], mat[1][1], mat[1][2], mat[1][3]},
|
|
{mat[2][0], mat[2][1], mat[2][2], mat[2][3]},
|
|
{mat[3][0], mat[3][1], mat[3][2], mat[3][3]},
|
|
};
|
|
}
|
|
|
|
// Helper function to convert double4x4 to filament::math::mat4
|
|
static filament::math::mat4 convert_double4x4_to_mat4(const double4x4 &d_mat)
|
|
{
|
|
return filament::math::mat4{
|
|
filament::math::float4{float(d_mat.col1[0]), float(d_mat.col1[1]), float(d_mat.col1[2]), float(d_mat.col1[3])},
|
|
filament::math::float4{float(d_mat.col2[0]), float(d_mat.col2[1]), float(d_mat.col2[2]), float(d_mat.col2[3])},
|
|
filament::math::float4{float(d_mat.col3[0]), float(d_mat.col3[1]), float(d_mat.col3[2]), float(d_mat.col3[3])},
|
|
filament::math::float4{float(d_mat.col4[0]), float(d_mat.col4[1]), float(d_mat.col4[2]), float(d_mat.col4[3])}};
|
|
}
|
|
} |