Blender V4.5
DocumentImporter Class Reference

#include <DocumentImporter.h>

Inherits COLLADAFW::IWriter.

Public Types

enum  ImportStage { Fetching_Scene_data , Fetching_Controller_data }

Public Member Functions

 DocumentImporter (bContext *C, const ImportSettings *import_settings)
 ~DocumentImporter () override
bool import ()
Objectcreate_camera_object (COLLADAFW::InstanceCamera *, Scene *)
Objectcreate_light_object (COLLADAFW::InstanceLight *, Scene *)
Objectcreate_instance_node (Object *, COLLADAFW::Node *, COLLADAFW::Node *, Scene *, bool)
void create_constraints (ExtraTags *et, Object *ob)
std::vector< Object * > * write_node (COLLADAFW::Node *, COLLADAFW::Node *, Scene *, Object *, bool)
void write_profile_COMMON (COLLADAFW::EffectCommon *, Material *)
void translate_anim_recursive (COLLADAFW::Node *, COLLADAFW::Node *, Object *)
void cancel (const COLLADAFW::String &errorMessage) override
void start () override
void finish () override
bool writeGlobalAsset (const COLLADAFW::FileInfo *) override
std::string get_import_version (const COLLADAFW::FileInfo *asset)
bool writeScene (const COLLADAFW::Scene *) override
bool writeVisualScene (const COLLADAFW::VisualScene *) override
bool writeLibraryNodes (const COLLADAFW::LibraryNodes *) override
bool writeAnimation (const COLLADAFW::Animation *) override
bool writeAnimationList (const COLLADAFW::AnimationList *) override
bool writeGeometry (const COLLADAFW::Geometry *) override
bool writeMaterial (const COLLADAFW::Material *) override
bool writeEffect (const COLLADAFW::Effect *) override
bool writeCamera (const COLLADAFW::Camera *) override
bool writeImage (const COLLADAFW::Image *) override
bool writeLight (const COLLADAFW::Light *) override
bool writeSkinControllerData (const COLLADAFW::SkinControllerData *) override
bool writeController (const COLLADAFW::Controller *) override
bool writeFormulas (const COLLADAFW::Formulas *) override
bool writeKinematicsScene (const COLLADAFW::KinematicsScene *) override
bool addExtraTags (const COLLADAFW::UniqueId &uid, ExtraTags *extra_tags)
ExtraTagsgetExtraTags (const COLLADAFW::UniqueId &uid)
bool is_armature (COLLADAFW::Node *node)

Detailed Description

Importer class.

Definition at line 26 of file DocumentImporter.h.

Member Enumeration Documentation

◆ ImportStage

Enumeration to denote the stage of import

Enumerator
Fetching_Scene_data 
Fetching_Controller_data 

Definition at line 29 of file DocumentImporter.h.

Constructor & Destructor Documentation

◆ DocumentImporter()

DocumentImporter::DocumentImporter ( bContext * C,
const ImportSettings * import_settings )

Constructor

Definition at line 66 of file DocumentImporter.cpp.

References C, CTX_data_main(), CTX_data_scene(), CTX_data_view_layer(), and Fetching_Scene_data.

◆ ~DocumentImporter()

DocumentImporter::~DocumentImporter ( )
override

Destructor

Definition at line 87 of file DocumentImporter.cpp.

Member Function Documentation

◆ addExtraTags()

bool DocumentImporter::addExtraTags ( const COLLADAFW::UniqueId & uid,
ExtraTags * extra_tags )

Add element and data for UniqueId

Definition at line 1122 of file DocumentImporter.cpp.

◆ cancel()

void DocumentImporter::cancel ( const COLLADAFW::String & errorMessage)
override

This method will be called if an error in the loading process occurred and the loader cannot continue to load. The writer should undo all operations that have been performed.

Parameters
errorMessageA message containing information about the error that occurred.

Definition at line 138 of file DocumentImporter.cpp.

◆ create_camera_object()

Object * DocumentImporter::create_camera_object ( COLLADAFW::InstanceCamera * camera,
Scene * sce )

these should not be here

Definition at line 331 of file DocumentImporter.cpp.

References bc_add_object(), BKE_id_free_us(), CTX_data_main(), Object::data, and OB_CAMERA.

Referenced by write_node().

◆ create_constraints()

void DocumentImporter::create_constraints ( ExtraTags * et,
Object * ob )

To create constraints off node <extra> tags. Assumes only constraint data in current <extra> with blender profile.

Definition at line 438 of file DocumentImporter.cpp.

References BKE_constraint_add_for_object(), ExtraTags::isProfile(), and ExtraTags::setData().

◆ create_instance_node()

Object * DocumentImporter::create_instance_node ( Object * source_ob,
COLLADAFW::Node * source_node,
COLLADAFW::Node * instance_node,
Scene * sce,
bool is_library_node )

◆ create_light_object()

Object * DocumentImporter::create_light_object ( COLLADAFW::InstanceLight * lamp,
Scene * sce )

Definition at line 348 of file DocumentImporter.cpp.

References bc_add_object(), BKE_id_free_us(), CTX_data_main(), Object::data, and OB_LAMP.

Referenced by write_node().

◆ finish()

◆ get_import_version()

std::string DocumentImporter::get_import_version ( const COLLADAFW::FileInfo * asset)

If the imported file was made with Blender, return the Blender version used, otherwise return an empty std::string

Definition at line 295 of file DocumentImporter.cpp.

References count, i, and v.

Referenced by writeGlobalAsset().

◆ getExtraTags()

ExtraTags * DocumentImporter::getExtraTags ( const COLLADAFW::UniqueId & uid)

Get an existing ExtraTags for uid

Definition at line 1114 of file DocumentImporter.cpp.

Referenced by write_node(), writeCamera(), and writeLight().

◆ import()

bool DocumentImporter::import ( )

Function called by blender UI

TODO: set up scene graph and such here.

Definition at line 97 of file DocumentImporter.cpp.

References bc_url_encode(), BKE_view_layer_base_deselect_all(), CTX_data_scene(), Fetching_Controller_data, and ErrorHandler::hasError().

Referenced by collada_import().

◆ is_armature()

bool DocumentImporter::is_armature ( COLLADAFW::Node * node)

Definition at line 1128 of file DocumentImporter.cpp.

References i.

Referenced by write_node().

◆ start()

void DocumentImporter::start ( )
override

This is the method called. The writer hast to prepare to receive data.

Definition at line 148 of file DocumentImporter.cpp.

◆ translate_anim_recursive()

void DocumentImporter::translate_anim_recursive ( COLLADAFW::Node * node,
COLLADAFW::Node * par = nullptr,
Object * parob = nullptr )

Definition at line 246 of file DocumentImporter.cpp.

References i, translate_anim_recursive(), and types.

Referenced by finish(), and translate_anim_recursive().

◆ write_node()

std::vector< Object * > * DocumentImporter::write_node ( COLLADAFW::Node * node,
COLLADAFW::Node * parent_node,
Scene * sce,
Object * par,
bool is_library_node )

◆ write_profile_COMMON()

◆ writeAnimation()

bool DocumentImporter::writeAnimation ( const COLLADAFW::Animation * anim)
override

This function is called only for animations that pass COLLADAFW::validate.

Definition at line 1056 of file DocumentImporter.cpp.

References Fetching_Controller_data.

◆ writeAnimationList()

bool DocumentImporter::writeAnimationList ( const COLLADAFW::AnimationList * animationList)
override

Called on post-process stage after writeVisualScenes.

Definition at line 1065 of file DocumentImporter.cpp.

References Fetching_Controller_data.

◆ writeCamera()

bool DocumentImporter::writeCamera ( const COLLADAFW::Camera * camera)
override

◆ writeController()

bool DocumentImporter::writeController ( const COLLADAFW::Controller * controller)
override

This is called on post-process, before writeVisualScenes.

Definition at line 1095 of file DocumentImporter.cpp.

References controller, and Fetching_Controller_data.

◆ writeEffect()

bool DocumentImporter::writeEffect ( const COLLADAFW::Effect * effect)
override

When this method is called, the writer must write the effect.

Returns
The writer should return true, if writing succeeded, false otherwise.

Definition at line 766 of file DocumentImporter.cpp.

References Fetching_Controller_data, and write_profile_COMMON().

◆ writeFormulas()

bool DocumentImporter::writeFormulas ( const COLLADAFW::Formulas * formulas)
override

Definition at line 1104 of file DocumentImporter.cpp.

◆ writeGeometry()

bool DocumentImporter::writeGeometry ( const COLLADAFW::Geometry * geom)
override

When this method is called, the writer must write the geometry.

Returns
The writer should return true, if writing succeeded, false otherwise.

Definition at line 714 of file DocumentImporter.cpp.

References Fetching_Controller_data.

◆ writeGlobalAsset()

bool DocumentImporter::writeGlobalAsset ( const COLLADAFW::FileInfo * asset)
override

When this method is called, the writer must write the global document asset.

Returns
The writer should return true, if writing succeeded, false otherwise.

Definition at line 318 of file DocumentImporter.cpp.

References get_import_version().

◆ writeImage()

bool DocumentImporter::writeImage ( const COLLADAFW::Image * image)
override

When this method is called, the writer must write the image.

Returns
The writer should return true, if writing succeeded, false otherwise.

Definition at line 920 of file DocumentImporter.cpp.

References BKE_image_load_exists(), BLI_exists(), BLI_path_join, BLI_path_split_dir_part(), CTX_data_main(), Fetching_Controller_data, and FILE_MAX.

◆ writeKinematicsScene()

bool DocumentImporter::writeKinematicsScene ( const COLLADAFW::KinematicsScene * kinematicsScene)
override

Definition at line 1109 of file DocumentImporter.cpp.

◆ writeLibraryNodes()

bool DocumentImporter::writeLibraryNodes ( const COLLADAFW::LibraryNodes * libraryNodes)
override

When this method is called, the writer must handle all nodes contained in the library nodes.

Returns
The writer should return true, if writing succeeded, false otherwise.

Definition at line 695 of file DocumentImporter.cpp.

References CTX_data_scene(), Fetching_Controller_data, i, and write_node().

◆ writeLight()

bool DocumentImporter::writeLight ( const COLLADAFW::Light * light)
override

◆ writeMaterial()

bool DocumentImporter::writeMaterial ( const COLLADAFW::Material * cmat)
override

When this method is called, the writer must write the material.

Returns
The writer should return true, if writing succeeded, false otherwise.

Definition at line 723 of file DocumentImporter.cpp.

References BKE_material_add(), CTX_data_main(), Fetching_Controller_data, Material::id, and id_us_min().

◆ writeScene()

bool DocumentImporter::writeScene ( const COLLADAFW::Scene * scene)
override

When this method is called, the writer must write the scene.

Returns
The writer should return true, if writing succeeded, false otherwise.

Definition at line 326 of file DocumentImporter.cpp.

◆ writeSkinControllerData()

bool DocumentImporter::writeSkinControllerData ( const COLLADAFW::SkinControllerData * skin)
override

When this method is called, the writer must write the skin controller data.

Returns
The writer should return true, if writing succeeded, false otherwise.

Definition at line 1090 of file DocumentImporter.cpp.

◆ writeVisualScene()

bool DocumentImporter::writeVisualScene ( const COLLADAFW::VisualScene * visualScene)
override

When this method is called, the writer must write the entire visual scene. Return The writer should return true, if writing succeeded, false otherwise.

Definition at line 673 of file DocumentImporter.cpp.

References Fetching_Controller_data.


The documentation for this class was generated from the following files: