Import Data Structures
This section describes basic metadata structures used to represent various scene objects, such as cameras, lights, meshes, etc.
ImportAnimation Structure
This data structure contains metadata on an imported animation and has the following set of properties:
name | Name of the animation. |
min_time | Start time of the animation in seconds. |
max_time | End time of the animation in seconds. |
struct ImportAnimation
{
String name;
float min_time;
float max_time;
};
ImportCamera Structure
This data structure contains metadata on an imported camera and has the following set of properties:
node | Scene node to which the camera is attached as an attribute. |
data | Camera metadata. |
struct ImportCamera
{
ImportNode *node = nullptr;
UserData *data = nullptr;
};
ImportLight Structure
This data structure contains metadata on an imported light and has the following set of properties:
node | Scene node to which the light is attached as an attribute. |
data | Light metadata. |
struct ImportLight
{
ImportNode *node = nullptr;
UserData *data = nullptr;
};
ImportMesh Structure
This data structure contains metadata on an imported mesh and has the following set of properties:
name | Mesh name. |
filepath | Path to the mesh file. |
animation_filepath | Path to the animation file. |
has_animations | Flag indicating whether the mesh has aminations or not. |
nodes | List of nodes to which the mesh is attached as an attribute. |
geometries | Mesh geometry. A vector of ImportGeometry |
struct ImportMesh
{
String name;
String filepath;
String animation_filepath;
bool has_animations = false;
Vector<ImportNode *> nodes;
Vector<ImportGeometry> geometries;
};
ImportMaterial Structure
This data structure contains metadata on an imported material and has the following set of properties:
name | Material name. |
filepath | Path to the material's *.mat file. |
data | Material metadata. |
struct ImportMaterial
{
String name;
String filepath;
UserData *data = nullptr;
};
ImportNode Structure
This data structure contains metadata on an imported node and has the following set of properties:
name | Scene node name. |
filepath | Path to the node file. |
parent | Parent node. |
children | List of all node children. |
mesh | Mesh node attribute. ImportMesh structure pointer if a mesh attribute is assigned to the node; otherwise, nullptr. |
light | Light node attribute. ImportLight structure pointer if a light attribute is assigned to the node; otherwise, nullptr. |
camera | Camera node attribute. ImportCamera structure pointer if a camera attribute is assigned to the node; otherwise, nullptr. |
transform | Node's transformation matrix. |
data | Node metadata. |
struct ImportNode
{
String name;
String filepath;
ImportNode *parent;
Vector<ImportNode *> children;
ImportMesh *mesh = nullptr;
ImportLight *light = nullptr;
ImportCamera *camera = nullptr;
Unigine::Math::dmat4 transform;
UserData *data = nullptr;
};
ImportTexture Structure
This data structure contains metadata on an imported texture and has the following set of properties:
filepath | Path to the texture file. |
original_filepath | Path to the original texture file. |
struct ImportTexture
{
String filepath;
String original_filepath;
};
ImportSurface Structure
This data structure contains metadata on an imported surface and has the following set of properties:
filepath | Surface name. |
filepath | Path to the mesh file. |
min_visible_distance | Minimum visibility distance for the surface. |
max_visible_distance | Minimum visibility distance for the surface. |
material | Material assigned to the surface. ImportMaterial structure pointer if a material is assigned to the surface; otherwise, nullptr. |
target_surface | Morph target surface number if any; otherwise, -1. |
data | Surface metadata. |
struct ImportSurface
{
String name;
String filepath;
float min_visible_distance = -UNIGINE_INFINITY;
float max_visible_distance = UNIGINE_INFINITY;
ImportMaterial *material = nullptr;
int target_surface = -1;
UserData *data = nullptr;
};
ImportGeometry Structure
This data structure contains metadata on an imported geometry and has the following set of properties:
transform | Transformation matrix. |
surfaces | List of surfaces as a vector of ImportSurface structures. |
data | Geometry metadata. |
struct ImportGeometry
{
Math::dmat4 transform;
Vector<ImportSurfacegt; surfaces;
UserData *data;
};