[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