Changeset View
Changeset View
Standalone View
Standalone View
source/blender/alembic/intern/abc_exporter.cc
| Show First 20 Lines • Show All 162 Lines • ▼ Show 20 Lines | static bool export_object(const ExportSettings * const settings, const Base * const ob_base, | ||||
| // return false; | // return false; | ||||
| // } | // } | ||||
| return true; | return true; | ||||
| } | } | ||||
| /* ************************************************************************** */ | /* ************************************************************************** */ | ||||
| AbcExporter::AbcExporter(Main *bmain, EvaluationContext *eval_ctx, Scene *scene, SceneLayer *scene_layer, | AbcExporter::AbcExporter(Main *bmain, EvaluationContext *eval_ctx, Scene *scene, ViewLayer *view_layer, | ||||
| Depsgraph *depsgraph, | Depsgraph *depsgraph, | ||||
| const char *filename, ExportSettings &settings) | const char *filename, ExportSettings &settings) | ||||
| : m_bmain(bmain) | : m_bmain(bmain) | ||||
| , m_settings(settings) | , m_settings(settings) | ||||
| , m_filename(filename) | , m_filename(filename) | ||||
| , m_trans_sampling_index(0) | , m_trans_sampling_index(0) | ||||
| , m_shape_sampling_index(0) | , m_shape_sampling_index(0) | ||||
| , m_eval_ctx(eval_ctx) | , m_eval_ctx(eval_ctx) | ||||
| , m_scene(scene) | , m_scene(scene) | ||||
| , m_scene_layer(scene_layer) | , m_view_layer(view_layer) | ||||
| , m_depsgraph(depsgraph) | , m_depsgraph(depsgraph) | ||||
| , m_writer(NULL) | , m_writer(NULL) | ||||
| {} | {} | ||||
| AbcExporter::~AbcExporter() | AbcExporter::~AbcExporter() | ||||
| { | { | ||||
| /* Free xforms map */ | /* Free xforms map */ | ||||
| m_xforms_type::iterator it_x, e_x; | m_xforms_type::iterator it_x, e_x; | ||||
| ▲ Show 20 Lines • Show All 169 Lines • ▼ Show 20 Lines | for (; begin != end; ++begin) { | ||||
| } | } | ||||
| archive_bounds_prop.set(bounds); | archive_bounds_prop.set(bounds); | ||||
| } | } | ||||
| } | } | ||||
| void AbcExporter::createTransformWritersHierarchy(EvaluationContext *eval_ctx) | void AbcExporter::createTransformWritersHierarchy(EvaluationContext *eval_ctx) | ||||
| { | { | ||||
| for (Base *base = static_cast<Base *>(m_settings.scene_layer->object_bases.first); base; base = base->next) { | for (Base *base = static_cast<Base *>(m_settings.view_layer->object_bases.first); base; base = base->next) { | ||||
| Object *ob = base->object; | Object *ob = base->object; | ||||
| if (export_object(&m_settings, base, false)) { | if (export_object(&m_settings, base, false)) { | ||||
| switch (ob->type) { | switch (ob->type) { | ||||
| case OB_LAMP: | case OB_LAMP: | ||||
| case OB_LATTICE: | case OB_LATTICE: | ||||
| case OB_SPEAKER: | case OB_SPEAKER: | ||||
| /* We do not export transforms for objects of these classes. */ | /* We do not export transforms for objects of these classes. */ | ||||
| ▲ Show 20 Lines • Show All 114 Lines • ▼ Show 20 Lines | AbcTransformWriter * AbcExporter::createTransformWriter(EvaluationContext *eval_ctx, Object *ob, Object *parent, Object *dupliObParent) | ||||
| } | } | ||||
| m_xforms[name] = my_writer; | m_xforms[name] = my_writer; | ||||
| return my_writer; | return my_writer; | ||||
| } | } | ||||
| void AbcExporter::createShapeWriters(EvaluationContext *eval_ctx) | void AbcExporter::createShapeWriters(EvaluationContext *eval_ctx) | ||||
| { | { | ||||
| for (Base *base = static_cast<Base *>(m_settings.scene_layer->object_bases.first); base; base = base->next) { | for (Base *base = static_cast<Base *>(m_settings.view_layer->object_bases.first); base; base = base->next) { | ||||
| exploreObject(eval_ctx, base, NULL); | exploreObject(eval_ctx, base, NULL); | ||||
| } | } | ||||
| } | } | ||||
| void AbcExporter::exploreObject(EvaluationContext *eval_ctx, Base *ob_base, Object *dupliObParent) | void AbcExporter::exploreObject(EvaluationContext *eval_ctx, Base *ob_base, Object *dupliObParent) | ||||
| { | { | ||||
| /* If an object isn't exported itself, its duplilist shouldn't be | /* If an object isn't exported itself, its duplilist shouldn't be | ||||
| * exported either. */ | * exported either. */ | ||||
| ▲ Show 20 Lines • Show All 145 Lines • ▼ Show 20 Lines | AbcTransformWriter *AbcExporter::getXForm(const std::string &name) | ||||
| return it->second; | return it->second; | ||||
| } | } | ||||
| void AbcExporter::setCurrentFrame(Main *bmain, double t) | void AbcExporter::setCurrentFrame(Main *bmain, double t) | ||||
| { | { | ||||
| m_scene->r.cfra = static_cast<int>(t); | m_scene->r.cfra = static_cast<int>(t); | ||||
| m_scene->r.subframe = static_cast<float>(t) - m_scene->r.cfra; | m_scene->r.subframe = static_cast<float>(t) - m_scene->r.cfra; | ||||
| BKE_scene_graph_update_for_newframe(bmain->eval_ctx, m_depsgraph, bmain, m_scene, m_scene_layer); | BKE_scene_graph_update_for_newframe(bmain->eval_ctx, m_depsgraph, bmain, m_scene, m_view_layer); | ||||
| } | } | ||||