[Bf-blender-cvs] [6e48f98e436] temp-sybren-alembic: Cleanup: separated Alembic code into reader and writer files

Sybren A. Stüvel noreply at git.blender.org
Fri Jan 31 15:05:19 CET 2020


Commit: 6e48f98e4360dccdf440823af5b55e9e175553fd
Author: Sybren A. Stüvel
Date:   Fri Jan 31 12:47:23 2020 +0100
Branches: temp-sybren-alembic
https://developer.blender.org/rB6e48f98e4360dccdf440823af5b55e9e175553fd

Cleanup: separated Alembic code into reader and writer files

This is in preparation of using the AbstractHierarchyIterator from the USD
exporter.

No functional changes.

===================================================================

M	source/blender/alembic/CMakeLists.txt
M	source/blender/alembic/intern/abc_exporter.cc
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
R063	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
R083	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
R065	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_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
R099	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
R096	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
R072	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..2909b2f1792 100644
--- a/source/blender/alembic/CMakeLists.txt
+++ b/source/blender/alembic/CMakeLists.txt
@@ -42,34 +42,48 @@ 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_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_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_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_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_exporter.cc b/source/blender/alembic/intern/abc_exporter.cc
index c2201c706bc..404124f702b 100644
--- a/source/blender/alembic/intern/abc_exporter.cc
+++ b/source/blender/alembic/intern/abc_exporter.cc
@@ -23,14 +23,14 @@
 #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_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_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..c5f752cdf9a 100644
--- a/source/blender/alembic/intern/abc_camera.cc
+++ b/source/blender/alembic/intern/abc_reader_camera.cc
@@ -18,9 +18,9 @@
  * \ingroup balembic
  */
 
-#include "abc_camera.h"
+#include "abc_reader_camera.h"
 
-#include "abc_transform.h"
+#include "abc_reader_transform.h"
 #include "abc_util.h"
 
 extern "C" {
@@ -34,72 +34,13 @@ extern "C" {
 #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.setVerticalFilmOffset(apperture_y * cam->shifty * film_aspect);
-  m_camera_sample.setNearClippingPlane(cam->clip_start);
-  m_camera_sample.setFarClippingPlane(cam->clip_end);
-
-  if (cam->dof.focus_object) {
-    Imath::V3f v(m_object->loc[0] - cam->dof.focus_object->loc[0],
-                 m_object->loc[1] - cam->dof.focus_object->loc[1],
-                 m_object->loc[2] - cam->dof.focus_object->loc[2]);
-    m_camera_sample.setFocusDistance(v.length());
-  }
-  else {
-    m_camera_sample.setFocusDistance(cam->dof.focus_distance);
-  }
-
-  /* Blender camera does not have an fstop param, so try to find a custom prop
-   * instead. */
-  m_camera_sample.setFStop(cam->dof.aperture_fstop);
-
-  m_camera_sample.setLensSqueezeRatio(1.0);
-  m_camera_schema.set(m_camera_sample);
-}
-
-/* ************************************************************************** */
-
 AbcCameraReader::AbcCameraReader(const Alembic::Abc::IObject &object, ImportSettings &settings)
     : AbcObjectReader(object, settings)
 {
diff --git a/source/blender/alembic/intern/abc_camera.h b/source/blender/alembic/intern/abc_reader_camera.h
similarity index 61%
copy from source/blender/alembic/intern/abc_camera.h
copy to source/blender/alembic/intern/abc_reader_camera.h
index 28169cb7d85..1d9763b0454 100644
--- a/source/blender/alembic/intern/abc_camera.h
+++ b/source/blender/alembic/intern/abc_reader_camera.h
@@ -18,31 +18,10 @@
  * \ingroup balembic
  */
 
-#ifndef __ABC_CAMERA_H__
-#define __ABC_CAMERA_H__
+#ifndef __ABC_READER_CAMERA_H__
+#define __ABC_READER_CAMERA_H__
 
-#include "abc_object.h"
-
-/* ************************************************************************** */
-
-class AbcCameraWriter : public AbcObjectWriter {
-  Alembic::AbcGeom::OCameraSchema m_camera_schema;
-  Alembic::AbcGeom::CameraSample m_camera_sample;
-  Alembic::AbcGeom::OCompoundProperty m_custom_data_container;
-  Alembic::AbcGeom::OFloatProperty m_stereo_distance;
-  Alembic::AbcGeom::OFloatProperty m_eye_separation;
-
- public:
-  AbcCameraWriter(Object *ob,
-                  AbcTransformWriter *parent,
-                  uint32_t time_sampling,
-                  ExportSettings &settings);
-
- private:
-  virtual void do_write();
-};
-
-/* ************************************************************************** */
+#include "abc_reader_object.h"
 
 class AbcCameraReader : public AbcObjectReader {
   Alembic::AbcGeom::ICameraSchema m_schema;
@@ -58,4 +37,4 @@ class AbcCameraReader : public AbcObjectReader {
   void readObjectData(Main *bmain, const Alembic::Abc::ISampleSelector &sample_sel);
 };
 
-#endif /* __ABC_CAMERA_H__ */
+#endif /* __ABC_READER_CAMERA_H__ */
diff --git a/source/blender/alembic/intern/abc_curves.cc b/source/blender/alembic/intern/abc_reader_curves.cc
similarity index 66%
rename from source/blender/alembic/intern/abc_curves.cc
rename to source/blender/alembic/intern/abc_reader_curves.cc
index 3b143356c04..3a52a5a1d72 100644
--- a/source/blender/alembic/intern/abc_curves.cc
+++ b/source/blender/alembic/intern/abc_reader_curves.cc
@@ -21,11 +21,11 @@
  * \ingroup balembic
  */
 
-#include "abc_curves.h"
+#include "abc_reader_curves.h"
 
 #include <cstdio>
 
-#include "abc_transform.h"
+#include "abc_reader_transform.h"
 #include "abc_util.h"
 
 #include "MEM_guardedalloc.h"
@@ -44,7 +44,6 @@ extern "C" {
 }
 
 using Alembic::Abc::FloatArraySamplePtr;
-using Alembic::Abc::IInt32ArrayProperty;
 using Alembic::Abc::Int32ArraySamplePtr;
 using Alembic::Abc::P3fArraySamplePtr;
 using Alembic::Abc::PropertyHeader;
@@ -59,165 +58,6 @@ using Alembic::AbcGeom::IInt16Property;
 using Alembic::AbcGeom::ISampleSelector;
 using Alembic::AbcGeom::kWrapExisting;
 
-using Alembic::AbcGeom::OCompoundProperty;
-using Alembic::AbcGeom::OCurves;
-using Alembic::AbcGeom::OCurvesSchema;
-using Alembic::AbcGeom::OInt16Property;
-using Alembic::AbcGeom::ON3fGeomParam;
-using Alembic::AbcGeom::OV2fGeomParam;
-
-#define ABC_CURVE_RESOLUTION_U_PROPNAME "blender:resolution"
-
-/* ************************************************************************** */
-
-AbcCurveWriter::AbcCurveWriter(Object *ob,
-                               AbcTransformWriter *parent,
-                               uint32_t time_sampling,
-                               ExportSettings &settings)
-    : AbcObjectWriter(ob, time_sampling, settings, parent)
-{
-  OCurves curves(parent->alembicXform(), m_name, m_time_sampling);
-  m_schema = curves.getSchema();
-
-  Curve *cu = static_cast<Curve *>(m_object->data);
-  OCompoundProperty user_props = m_schema.getUserProperties();
-  OInt16Property user_prop_resolu(user_props, ABC_CURVE_RESOLUTION_U_PROPNAME);
-  user_prop_resolu.set(cu->resolu);
-}
-
-void AbcCurveWriter::do_write()
-{
-  Curve *curve = static_cast<Curve *>(m_object->data);
-
-  std::vector<Imath::V3f> verts;
-  std::vector<int32_t> vert_counts;
-  std::vector<float> widths;
-  std::vector<float> weights;
-  std::vector<float> knots;
-  std::vector<uint8_t> orders;
-  Imath::V3f temp_vert;
-
-  Alembic::AbcGeom::BasisType curve_basis;
-  Alembic::AbcGeom::CurveType curve_type;
-  Alembic::AbcGeo

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list