[Bf-blender-cvs] [2d1b05a15fa] master: Cleanup: Alembic, split source files into reader and writer
Sybren A. Stüvel
noreply at git.blender.org
Mon Feb 17 11:50:50 CET 2020
Commit: 2d1b05a15fa2d53894efd5198784ddde6bfa63a3
Author: Sybren A. Stüvel
Date: Mon Feb 17 11:47:13 2020 +0100
Branches: master
https://developer.blender.org/rB2d1b05a15fa2d53894efd5198784ddde6bfa63a3
Cleanup: Alembic, split source files into reader and writer
This separation between reader and writer code is part of Milesone 2 of
T73363.
In this commit the reader and writer classes are separated into their
own files, any `#include` and `using` statements are cleaned up, and
some separator comments have been removed.
No functional changes.
===================================================================
M source/blender/alembic/CMakeLists.txt
M source/blender/alembic/intern/abc_customdata.cc
M source/blender/alembic/intern/abc_exporter.cc
R061 source/blender/alembic/intern/abc_archive.cc source/blender/alembic/intern/abc_reader_archive.cc
R083 source/blender/alembic/intern/abc_archive.h source/blender/alembic/intern/abc_reader_archive.h
R062 source/blender/alembic/intern/abc_camera.cc source/blender/alembic/intern/abc_reader_camera.cc
A source/blender/alembic/intern/abc_reader_camera.h
R066 source/blender/alembic/intern/abc_curves.cc source/blender/alembic/intern/abc_reader_curves.cc
R062 source/blender/alembic/intern/abc_curves.h source/blender/alembic/intern/abc_reader_curves.h
R062 source/blender/alembic/intern/abc_mesh.cc source/blender/alembic/intern/abc_reader_mesh.cc
R057 source/blender/alembic/intern/abc_mesh.h source/blender/alembic/intern/abc_reader_mesh.h
R058 source/blender/alembic/intern/abc_nurbs.cc source/blender/alembic/intern/abc_reader_nurbs.cc
R064 source/blender/alembic/intern/abc_nurbs.h source/blender/alembic/intern/abc_reader_nurbs.h
R082 source/blender/alembic/intern/abc_object.cc source/blender/alembic/intern/abc_reader_object.cc
R080 source/blender/alembic/intern/abc_object.h source/blender/alembic/intern/abc_reader_object.h
R063 source/blender/alembic/intern/abc_points.cc source/blender/alembic/intern/abc_reader_points.cc
R072 source/blender/alembic/intern/abc_points.h source/blender/alembic/intern/abc_reader_points.h
A source/blender/alembic/intern/abc_reader_transform.cc
A source/blender/alembic/intern/abc_reader_transform.h
M source/blender/alembic/intern/abc_util.cc
A source/blender/alembic/intern/abc_writer_archive.cc
A source/blender/alembic/intern/abc_writer_archive.h
A source/blender/alembic/intern/abc_writer_camera.cc
R067 source/blender/alembic/intern/abc_camera.h source/blender/alembic/intern/abc_writer_camera.h
A source/blender/alembic/intern/abc_writer_curves.cc
A source/blender/alembic/intern/abc_writer_curves.h
R098 source/blender/alembic/intern/abc_hair.cc source/blender/alembic/intern/abc_writer_hair.cc
R091 source/blender/alembic/intern/abc_hair.h source/blender/alembic/intern/abc_writer_hair.h
R093 source/blender/alembic/intern/abc_mball.cc source/blender/alembic/intern/abc_writer_mball.cc
R091 source/blender/alembic/intern/abc_mball.h source/blender/alembic/intern/abc_writer_mball.h
A source/blender/alembic/intern/abc_writer_mesh.cc
A source/blender/alembic/intern/abc_writer_mesh.h
A source/blender/alembic/intern/abc_writer_nurbs.cc
A source/blender/alembic/intern/abc_writer_nurbs.h
A source/blender/alembic/intern/abc_writer_object.cc
A source/blender/alembic/intern/abc_writer_object.h
A source/blender/alembic/intern/abc_writer_points.cc
A source/blender/alembic/intern/abc_writer_points.h
R069 source/blender/alembic/intern/abc_transform.cc source/blender/alembic/intern/abc_writer_transform.cc
R067 source/blender/alembic/intern/abc_transform.h source/blender/alembic/intern/abc_writer_transform.h
M source/blender/alembic/intern/alembic_capi.cc
===================================================================
diff --git a/source/blender/alembic/CMakeLists.txt b/source/blender/alembic/CMakeLists.txt
index 4618246013a..8bb7051982a 100644
--- a/source/blender/alembic/CMakeLists.txt
+++ b/source/blender/alembic/CMakeLists.txt
@@ -41,35 +41,51 @@ set(INC_SYS
)
set(SRC
- intern/abc_archive.cc
- intern/abc_camera.cc
- intern/abc_curves.cc
intern/abc_customdata.cc
intern/abc_exporter.cc
- intern/abc_hair.cc
- intern/abc_mball.cc
- intern/abc_mesh.cc
- intern/abc_nurbs.cc
- intern/abc_object.cc
- intern/abc_points.cc
- intern/abc_transform.cc
+ intern/abc_reader_archive.cc
+ intern/abc_reader_camera.cc
+ intern/abc_reader_curves.cc
+ intern/abc_reader_mesh.cc
+ intern/abc_reader_nurbs.cc
+ intern/abc_reader_object.cc
+ intern/abc_reader_points.cc
+ intern/abc_reader_transform.cc
intern/abc_util.cc
+ intern/abc_writer_archive.cc
+ intern/abc_writer_camera.cc
+ intern/abc_writer_curves.cc
+ intern/abc_writer_hair.cc
+ intern/abc_writer_mball.cc
+ intern/abc_writer_mesh.cc
+ intern/abc_writer_nurbs.cc
+ intern/abc_writer_object.cc
+ intern/abc_writer_points.cc
+ intern/abc_writer_transform.cc
intern/alembic_capi.cc
ABC_alembic.h
- intern/abc_archive.h
- intern/abc_camera.h
- intern/abc_curves.h
intern/abc_customdata.h
intern/abc_exporter.h
- intern/abc_hair.h
- intern/abc_mball.h
- intern/abc_mesh.h
- intern/abc_nurbs.h
- intern/abc_object.h
- intern/abc_points.h
- intern/abc_transform.h
+ intern/abc_reader_archive.h
+ intern/abc_reader_camera.h
+ intern/abc_reader_curves.h
+ intern/abc_reader_mesh.h
+ intern/abc_reader_nurbs.h
+ intern/abc_reader_object.h
+ intern/abc_reader_points.h
+ intern/abc_reader_transform.h
intern/abc_util.h
+ intern/abc_writer_archive.h
+ intern/abc_writer_camera.h
+ intern/abc_writer_curves.h
+ intern/abc_writer_hair.h
+ intern/abc_writer_mball.h
+ intern/abc_writer_mesh.h
+ intern/abc_writer_nurbs.h
+ intern/abc_writer_object.h
+ intern/abc_writer_points.h
+ intern/abc_writer_transform.h
)
set(LIB
diff --git a/source/blender/alembic/intern/abc_customdata.cc b/source/blender/alembic/intern/abc_customdata.cc
index 7f04bb77052..c5f60ac3e29 100644
--- a/source/blender/alembic/intern/abc_customdata.cc
+++ b/source/blender/alembic/intern/abc_customdata.cc
@@ -32,6 +32,8 @@ extern "C" {
#include "DNA_meshdata_types.h"
#include "BLI_math_base.h"
+#include "BLI_utildefines.h"
+
#include "BKE_customdata.h"
}
diff --git a/source/blender/alembic/intern/abc_exporter.cc b/source/blender/alembic/intern/abc_exporter.cc
index ea76ade73e9..a58b0a29e5e 100644
--- a/source/blender/alembic/intern/abc_exporter.cc
+++ b/source/blender/alembic/intern/abc_exporter.cc
@@ -22,15 +22,15 @@
#include <cmath>
-#include "abc_archive.h"
-#include "abc_camera.h"
-#include "abc_curves.h"
-#include "abc_hair.h"
-#include "abc_mball.h"
-#include "abc_mesh.h"
-#include "abc_nurbs.h"
-#include "abc_points.h"
-#include "abc_transform.h"
+#include "abc_writer_archive.h"
+#include "abc_writer_camera.h"
+#include "abc_writer_curves.h"
+#include "abc_writer_hair.h"
+#include "abc_writer_mball.h"
+#include "abc_writer_mesh.h"
+#include "abc_writer_nurbs.h"
+#include "abc_writer_points.h"
+#include "abc_writer_transform.h"
#include "abc_util.h"
extern "C" {
diff --git a/source/blender/alembic/intern/abc_archive.cc b/source/blender/alembic/intern/abc_reader_archive.cc
similarity index 61%
copy from source/blender/alembic/intern/abc_archive.cc
copy to source/blender/alembic/intern/abc_reader_archive.cc
index 15e7efad1c3..6ad44553701 100644
--- a/source/blender/alembic/intern/abc_archive.cc
+++ b/source/blender/alembic/intern/abc_reader_archive.cc
@@ -21,15 +21,13 @@
* \ingroup balembic
*/
-#include "abc_archive.h"
+#include "abc_reader_archive.h"
+
extern "C" {
-#include "BKE_blender_version.h"
#include "BKE_main.h"
#include "BLI_path_util.h"
#include "BLI_string.h"
-
-#include "DNA_scene_types.h"
}
#ifdef WIN32
@@ -42,7 +40,6 @@ using Alembic::Abc::ErrorHandler;
using Alembic::Abc::Exception;
using Alembic::Abc::IArchive;
using Alembic::Abc::kWrapExisting;
-using Alembic::Abc::OArchive;
static IArchive open_archive(const std::string &filename,
const std::vector<std::istream *> &input_streams,
@@ -141,77 +138,3 @@ Alembic::Abc::IObject ArchiveReader::getTop()
{
return m_archive.getTop();
}
-
-/* ************************************************************************** */
-
-/* This kinda duplicates CreateArchiveWithInfo, but Alembic does not seem to
- * have a version supporting streams. */
-static OArchive create_archive(std::ostream *ostream,
- const std::string &filename,
- const std::string &scene_name,
- double scene_fps,
- bool ogawa)
-{
- Alembic::Abc::MetaData abc_metadata;
-
- abc_metadata.set(Alembic::Abc::kApplicationNameKey, "Blender");
- abc_metadata.set(Alembic::Abc::kUserDescriptionKey, scene_name);
- abc_metadata.set("blender_version", versionstr);
- abc_metadata.set("FramesPerTimeUnit", std::to_string(scene_fps));
-
- time_t raw_time;
- time(&raw_time);
- char buffer[128];
-
-#if defined _WIN32 || defined _WIN64
- ctime_s(buffer, 128, &raw_time);
-#else
- ctime_r(&raw_time, buffer);
-#endif
-
- const std::size_t buffer_len = strlen(buffer);
- if (buffer_len > 0 && buffer[buffer_len - 1] == '\n') {
- buffer[buffer_len - 1] = '\0';
- }
-
- abc_metadata.set(Alembic::Abc::kDateWrittenKey, buffer);
-
- ErrorHandler::Policy policy = ErrorHandler::kThrowPolicy;
-
-#ifdef WITH_ALEMBIC_HDF5
- if (!ogawa) {
- return OArchive(Alembic::AbcCoreHDF5::WriteArchive(), filename, abc_metadata, policy);
- }
-#else
- static_cast<void>(filename);
- static_cast<void>(ogawa);
-#endif
-
- Alembic::AbcCoreOgawa::WriteArchive archive_writer;
- return OArchive(archive_writer(ostream, abc_metadata), kWrapExisting, policy);
-}
-
-ArchiveWriter::ArchiveWriter(const char *filename,
- const std::string &abc_scene_name,
- const Scene *scene,
- bool do_ogawa)
-{
- /* Use stream to support unicode character paths on Windows. */
- if (do_ogawa) {
-#ifdef WIN32
- UTF16_ENCODE(filename);
- std::wstring wstr(filename_16);
- m_outfile.open(wstr.c_str(), std::ios::out | std::ios::binary);
- UTF16_UN_ENCODE(filename);
-#else
- m_outfile.open(filename, std::ios::out | std::ios::binary);
-#endif
- }
-
- m_archive = create_archive(&m_outfile, filename, abc_scene_name, FPS, do_ogawa);
-}
-
-OArchive &ArchiveWriter::archive()
-{
- return m_archive;
-}
diff --git a/source/blender/alembic/intern/abc_archive.h b/source/blender/alembic/intern/abc_reader_archive.h
similarity index 83%
copy from source/blender/alembic/intern/abc_archive.h
copy to source/blender/alembic/intern/abc_reader_archive.h
index 32b1b72747f..bdb53bd0b8c 100644
--- a/source/blender/alembic/intern/abc_archive.h
+++ b/source/blender/alembic/intern/abc_reader_archive.h
@@ -21,8 +21,8 @@
* \ingroup balembic
*/
-#ifndef __ABC_ARCHIVE_H__
-#define __ABC_ARCHIVE_H__
+#ifndef __ABC_READER_ARCHIVE_H__
+#define __ABC_READER_ARCHIVE_H__
#include <Alembic/Abc/All.h>
@@ -64,17 +64,4 @@ class ArchiveReader {
Alembic::Abc::IObject getTop();
};
-class ArchiveWriter {
- std::ofstream m_outfile;
- Alembic::Abc::OArchive m_archive;
-
- public:
- ArchiveWriter(const char *filename,
- const std::string &abc_scene_name,
- const Scene *scene,
- bool do_ogawa);
-
- Alembic::Abc::OArchive &archive();
-};
-
-#endif /* __ABC_ARCHIVE_H__ */
+#endif /* __ABC_READER_ARCHIVE_H__ */
diff --git a/source/blender/alembic/intern/abc_camera.cc b/source/blender/alembic/intern/abc_reader_camera.cc
similarity index 62%
rename from source/blender/alembic/intern/abc_camera.cc
rename to source/blender/alembic/intern/abc_reader_camera.cc
index dc7f00b63d9..ab506f32cbe 100644
--- a/source/blender/alembic/intern/abc_camera.cc
+++ b/source/blender/alembic/intern/abc_reader_camera.cc
@@ -18,9 +18,8 @@
* \ingroup balembic
*/
-#include "abc_camera.h"
-
-#include "abc_transform.h"
+#include "abc_reader_camera.h"
+#include "abc_reader_transform.h"
#include "abc_util.h"
extern "C" {
@@ -31,75 +30,15 @@ extern "C" {
#include "BKE_object.h"
#include "BLI_math.h"
-#include "BLI_string.h"
}
+using Alembic::AbcGeom::CameraSample;
using Alembic::AbcGeom::ICamera;
using Alembic::AbcGeom::ICompoundProperty;
using Alembic::AbcGeom::IFloatProperty;
using Alembic::AbcGeom::ISampleSelector;
-
-using Alembic::AbcGeom::OCamera;
-using Alembic::AbcGeom::OFloatProperty;
-
-using Alembic::AbcGeom::CameraSample;
using Alembic::AbcGeom::kWrapExisting;
-/* ************************************************************************** */
-
-AbcCameraWriter::AbcCameraWriter(Object *ob,
- AbcTransformWriter *parent,
- uint32_t time_sampling,
- ExportSettings &settings)
- : AbcObjectWriter(ob, time_sampling, settings, parent)
-{
- OCamera camera(parent->alembicXform(), m_name, m_time_sampling);
- m_camera_schema = camera.getSchema();
-
- m_custom_data_container = m_camera_schema.getUserProperties();
- m_stereo_distance = OFloatProperty(m_custom_data_container, "stereoDistance", m_time_sampling);
- m_eye_separation = OFloatProperty(m_custom_data_container, "eyeSeparation", m_time_sampling);
-}
-
-void AbcCameraWriter::do_write()
-{
- Camera *cam = static_cast<Camera *>(m_object->data);
-
- m_stereo_distance.set(cam->stereo.convergence_distance);
- m_eye_separation.set(cam->stereo.interocular_distance);
-
- const double apperture_x = cam->sensor_x / 10.0;
- const double apperture_y = cam->sensor_y / 10.0;
- const double film_aspect = apperture_x / apperture_y;
-
- m_camera_sample.setFocalLength(cam->lens);
- m_camera_sample.setHorizontalAperture(apperture_x);
- m_camera_sample.setVerticalAperture(apperture_y);
- m_camera_sample.setHorizontalFilmOffset(apperture_x * cam->shiftx);
- m_camera_sample.setVerticalFilmOff
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list