9# include <Alembic/AbcCoreFactory/All.h>
10# include <Alembic/AbcGeom/All.h>
16class AlembicProcedural;
23struct FaceSetShaderIndexPair {
24 Alembic::AbcGeom::IFaceSet face_set;
29struct PolyMeshSchemaData {
30 Alembic::AbcGeom::TimeSamplingPtr time_sampling;
32 Alembic::AbcGeom::MeshTopologyVariance topology_variance;
34 Alembic::AbcGeom::IP3fArrayProperty positions;
35 Alembic::AbcGeom::IInt32ArrayProperty face_indices;
36 Alembic::AbcGeom::IInt32ArrayProperty face_counts;
38 Alembic::AbcGeom::IN3fGeomParam
normals;
43 Alembic::AbcGeom::IV3fArrayProperty velocities;
46void read_geometry_data(AlembicProcedural *proc,
47 CachedData &cached_data,
48 const PolyMeshSchemaData &data,
52struct SubDSchemaData {
53 Alembic::AbcGeom::TimeSamplingPtr time_sampling;
55 Alembic::AbcGeom::MeshTopologyVariance topology_variance;
57 Alembic::AbcGeom::IInt32ArrayProperty face_counts;
58 Alembic::AbcGeom::IInt32ArrayProperty face_indices;
59 Alembic::AbcGeom::IP3fArrayProperty positions;
61 Alembic::AbcGeom::IInt32ArrayProperty crease_indices;
62 Alembic::AbcGeom::IInt32ArrayProperty crease_lengths;
63 Alembic::AbcGeom::IFloatArrayProperty crease_sharpnesses;
67 Alembic::AbcGeom::IInt32ArrayProperty corner_indices;
68 Alembic::AbcGeom::IFloatArrayProperty corner_sharpnesses;
71 Alembic::AbcGeom::IInt32Property face_varying_interpolate_boundary;
72 Alembic::AbcGeom::IInt32Property face_varying_propagate_corners;
73 Alembic::AbcGeom::IInt32Property interpolate_boundary;
74 Alembic::AbcGeom::IInt32ArrayProperty holes;
75 Alembic::AbcGeom::IStringProperty subdivision_scheme;
76 Alembic::AbcGeom::IV3fArrayProperty velocities;
79void read_geometry_data(AlembicProcedural *proc,
80 CachedData &cached_data,
81 const SubDSchemaData &data,
85struct CurvesSchemaData {
86 Alembic::AbcGeom::TimeSamplingPtr time_sampling;
88 Alembic::AbcGeom::MeshTopologyVariance topology_variance;
90 Alembic::AbcGeom::IP3fArrayProperty positions;
92 Alembic::AbcGeom::IInt32ArrayProperty num_vertices;
98 Alembic::AbcGeom::IV3fArrayProperty velocities;
100 Alembic::AbcGeom::IFloatArrayProperty position_weights;
101 Alembic::AbcGeom::IN3fGeomParam
normals;
102 Alembic::AbcGeom::IFloatGeomParam widths;
103 Alembic::AbcGeom::IUcharArrayProperty orders;
104 Alembic::AbcGeom::IFloatArrayProperty knots;
109void read_geometry_data(AlembicProcedural *proc,
110 CachedData &cached_data,
111 const CurvesSchemaData &data,
115struct PointsSchemaData {
116 Alembic::AbcGeom::TimeSamplingPtr time_sampling;
119 float default_radius;
122 Alembic::AbcGeom::IP3fArrayProperty positions;
123 Alembic::AbcGeom::IInt32ArrayProperty num_points;
124 Alembic::AbcGeom::IFloatGeomParam radiuses;
126 Alembic::AbcGeom::IV3fArrayProperty velocities;
129void read_geometry_data(AlembicProcedural *proc,
130 CachedData &cached_data,
131 const PointsSchemaData &data,
134void read_attributes(AlembicProcedural *proc,
136 const Alembic::AbcGeom::ICompoundProperty &arb_geom_params,
137 const Alembic::AbcGeom::IV2fGeomParam &default_uvs_param,
#define CCL_NAMESPACE_END
static float normals[][3]