[Bf-blender-cvs] [ace9871] alembic_basic_io: Add some shell code to support more object types.
Kévin Dietrich
noreply at git.blender.org
Wed May 25 13:31:56 CEST 2016
Commit: ace98712b7e21e7f0cde39f48c696457614ecc4a
Author: Kévin Dietrich
Date: Wed May 25 13:15:46 2016 +0200
Branches: alembic_basic_io
https://developer.blender.org/rBace98712b7e21e7f0cde39f48c696457614ecc4a
Add some shell code to support more object types.
===================================================================
M source/blender/alembic/intern/alembic_capi.cc
===================================================================
diff --git a/source/blender/alembic/intern/alembic_capi.cc b/source/blender/alembic/intern/alembic_capi.cc
index f176c7a..ff02caf 100644
--- a/source/blender/alembic/intern/alembic_capi.cc
+++ b/source/blender/alembic/intern/alembic_capi.cc
@@ -24,6 +24,7 @@
#include <Alembic/AbcCoreHDF5/All.h>
#include <Alembic/AbcCoreOgawa/All.h>
+#include <Alembic/AbcMaterial/IMaterial.h>
#include "abc_exporter.h"
#include "abc_camera.h"
@@ -55,15 +56,21 @@ using Alembic::AbcGeom::P3fArraySamplePtr;
using Alembic::AbcGeom::kWrapExisting;
using Alembic::AbcGeom::IArchive;
-using Alembic::AbcGeom::ICameraSchema;
+using Alembic::AbcGeom::ICamera;
+using Alembic::AbcGeom::ICurves;
+using Alembic::AbcGeom::IFaceSet;
+using Alembic::AbcGeom::ILight;
using Alembic::AbcGeom::INuPatch;
using Alembic::AbcGeom::IObject;
+using Alembic::AbcGeom::IPoints;
using Alembic::AbcGeom::IPolyMesh;
using Alembic::AbcGeom::IPolyMeshSchema;
using Alembic::AbcGeom::ISampleSelector;
using Alembic::AbcGeom::ISubD;
using Alembic::AbcGeom::IXform;
+using Alembic::AbcMaterial::IMaterial;
+
static IArchive open_archive(const std::string &filename)
{
Alembic::AbcCoreAbstract::ReadArraySampleCachePtr cache_ptr;
@@ -350,8 +357,10 @@ static void visit_object(const IObject &object,
const MetaData &md = child.getMetaData();
- if (IXform::matches(md) && is_locator(child)) {
- reader = new AbcEmptyReader(child, settings);
+ if (IXform::matches(md)) {
+ if (is_locator(child)) {
+ reader = new AbcEmptyReader(child, settings);
+ }
}
else if (IPolyMesh::matches(md)) {
reader = new AbcMeshReader(child, settings, false);
@@ -362,9 +371,27 @@ static void visit_object(const IObject &object,
else if (INuPatch::matches(md)) {
reader = new AbcNurbsReader(child, settings);
}
- else if (ICameraSchema::matches(md)) {
+ else if (ICamera::matches(md)) {
reader = new AbcCameraReader(child, settings);
}
+ else if (IPoints::matches(md)) {
+ /* Pass for now. */
+ }
+ else if (IMaterial::matches(md)) {
+ /* Pass for now. */
+ }
+ else if (ILight::matches(md)) {
+ /* Pass for now. */
+ }
+ else if (IFaceSet::matches(md)) {
+ /* Pass, those are handled in the mesh reader. */
+ }
+ else if (ICurves::matches(md)) {
+ /* Pass for now. */
+ }
+ else {
+ assert(false);
+ }
if (reader) {
readers.push_back(reader);
More information about the Bf-blender-cvs
mailing list