class cogs::Importer

Overview

Universal file importer for COGS structures. More…

#include <Importer.h>

class Importer {
public:
    // construction

    Importer();
    Importer(const std::string& filename);
    Importer(const Importer& other);
    Importer(const Importer&& other);
    ~Importer();

    // methods

    Importer& operator=(const Importer& other);
    Importer& operator=(const Importer&& other);
    bool LoadFile(const std::string& filename);
    void CloseFile();
    size_t GetPointCloudCount() const;
    bool GetPointCloud(cogs::PointCloud& out_cloud, size_t id = 0) const;
    size_t GetScanCount() const;
    bool GetScan(cogs::Scan& out_scan, size_t id = 0) const;
    size_t GetMeshCount() const;
    bool GetMesh(cogs::Mesh& out_meshmodel, size_t id = 0) const;
    std::vector<cogs::Mesh> GetAllMeshes() const;
    uint32_t GetSkeletonCount() const;
    bool GetSkeleton(cogs::Skeleton& out_skeleton, size_t id = 0) const;
    std::vector<std::string> GetSkeletonNames() const;
    bool GetSkeletonByName(const std::string& name, cogs::Skeleton& out_skeleton) const;
    bool GetAllSkeletonActions(std::vector<cogs::SkeletonAction>& out_actions) const;
    bool GetAllSkeletonActions(const std::string& skeleton_name, std::vector<cogs::SkeletonAction>& out_actions) const;
    bool GetSkeletonActionByName(const std::string& skeleton_name, const std::string& action_name, cogs::SkeletonAction& out_action) const;
};

Detailed Documentation

Universal file importer for COGS structures.

Supports all COGS file extensions which can be found in cogs-file-format-extensions.

Internally uses Assimp library which supports common data formats found in http://assimp.sourceforge.net/main_features_formats.html. However, compatibility is not guaranteed for all file formats.

Assimp import was tested on the following file formats:

  • Wavefront (.obj)

  • Autodesk Filmbox (.fbx)

  • COLLADA (.dae)

  • Biovision Hierarchy (.bvh)

Methods

bool LoadFile(const std::string& filename)

Loads the file. When the file is COGS file, it remains open. Returns success.

void CloseFile()

When loaded file was in COGS file format, closes it. Otherwise, does nothing.

size_t GetPointCloudCount() const

Returns number of point clouds contained in a loaded file.

bool GetPointCloud(cogs::PointCloud& out_cloud, size_t id = 0) const

Requests point cloud structure from the loaded file.

Parameters:

out_cloud

Object, to which should data be loaded.

id

Index of object in the file when there are more of the same type.

Returns:

Whether load finished successfully, and output is valid.

size_t GetScanCount() const

Returns number of scans contained in a loaded file.

bool GetScan(cogs::Scan& out_scan, size_t id = 0) const

Requests scan structure from the loaded file.

Parameters:

out_scan

Object, to which should data be loaded.

id

Index of object in the file when there are more of the same type.

Returns:

Whether load finished successfully, and output is valid.

size_t GetMeshCount() const

Returns number of meshes contained in a loaded file.

bool GetMesh(cogs::Mesh& out_meshmodel, size_t id = 0) const

Requests mesh structure from the loaded file.

Parameters:

out_meshmodel

Object, to which should data be loaded.

id

Index of object in the file when there are more of the same type.

Returns:

Whether load finished successfully, and output is valid.

std::vector<cogs::Mesh> GetAllMeshes() const

Returns all meshes from the loaded file.

uint32_t GetSkeletonCount() const

Returns number of skeletons contained in a loaded file.

bool GetSkeleton(cogs::Skeleton& out_skeleton, size_t id = 0) const

Requests skeleton structure from the loaded file.

Parameters:

out_skeleton

Object, to which should data be loaded.

id

Index of object in the file when there are more of the same type.

Returns:

Whether load finished successfully, and output is valid.

std::vector<std::string> GetSkeletonNames() const

Returns names of all loaded skeletons. Not supported by cogs files.

bool GetSkeletonByName(const std::string& name, cogs::Skeleton& out_skeleton) const

Finds and requests mesh structure from the loaded file.

Parameters:

out_skeleton

Object, to which should data be loaded.

name

Name identifier of an object to find.

Returns:

Whether load finished successfully, and output is valid.

bool GetAllSkeletonActions(std::vector<cogs::SkeletonAction>& out_actions) const

Requests all skeleton actions from the loaded file.

Parameters:

out_actions

Array in which output should be stored.

Returns:

Whether load finished successfully, and output is valid.

bool GetAllSkeletonActions(const std::string& skeleton_name, std::vector<cogs::SkeletonAction>& out_actions) const

Requests all skeleton actions from the loaded file, compatible with specific skeleton.

Parameters:

skeleton_name

Name of skeleton object, actions should be compatible with.

out_actions

Array in which output should be stored.

Returns:

Whether load finished successfully, and output is valid.

bool GetSkeletonActionByName(const std::string& skeleton_name, const std::string& action_name, cogs::SkeletonAction& out_action) const

Requests a skeleton action from the loaded file, compatible with specific skeleton.

Parameters:

skeleton_name

Name of skeleton object, actions should be compatible with.

action_name

Name of the requested action.

out_actions

Object, to which should data be loaded.

Returns:

Whether load finished successfully, and output is valid.