Blender V5.0
blender::io::alembic Namespace Reference

Namespaces

namespace  utils

Classes

class  ABCArchive
class  CustomPropertiesExporter
struct  ABCWriterConstructorArgs
class  ABCHierarchyIterator
class  ABCAbstractWriter
class  ABCCameraWriter
class  ABCCurveWriter
class  ABCCurveMeshWriter
class  ABCHairWriter
class  ABCInstanceWriter
class  ABCMetaballWriter
class  ABCGenericMeshWriter
class  ABCMeshWriter
class  ABCNurbsWriter
class  ABCNurbsMeshWriter
class  ABCPointsWriter
class  ABCTransformWriter
struct  UVSample
struct  CDStreamConfig
class  ArchiveReader
class  AbcCameraReader
struct  PreprocessedSampleData
class  AbcCurveReader
struct  AbcMeshData
class  AbcMeshReader
class  AbcSubDReader
class  AbcNurbsReader
struct  ImportSettings
class  AbcObjectReader
class  AbcPointsReader
class  AbcEmptyReader
struct  SampleInterpolationSettings
class  AlembicExportTest

Typedefs

using index_time_pair_t = std::pair<Alembic::AbcCoreAbstract::index_t, Alembic::AbcGeom::chrono_t>

Enumerations

enum  AbcAxisSwapMode { ABC_ZUP_FROM_YUP = 1 , ABC_YUP_FROM_ZUP = 2 }
enum  AbcMatrixMode { ABC_MATRIX_WORLD = 1 , ABC_MATRIX_LOCAL = 2 }
enum  AbcUvScope { ABC_UV_SCOPE_NONE , ABC_UV_SCOPE_LOOP , ABC_UV_SCOPE_VERTEX }

Functions

static MetaData create_abc_metadata (const Main *bmain, double scene_fps)
static OArchive * create_archive (std::ofstream *abc_ostream, const std::string &filepath, MetaData &abc_metadata)
static void get_shutter_samples (double scene_fps, const AlembicExportParams &params, int nr_of_samples, bool time_relative, std::vector< double > &r_samples)
static TimeSamplingPtr create_time_sampling (double scene_fps, const AlembicExportParams &params, int nr_of_samples)
static void get_frames (double scene_fps, const AlembicExportParams &params, uint nr_of_samples, std::set< double > &r_frames)
static bool build_depsgraph (ExportJobData *job)
static void report_job_duration (const ExportJobData *data)
static void export_startjob (void *customdata, wmJobWorkerStatus *worker_status)
static void export_endjob (void *customdata)
const std::string ABC_CURVE_RESOLUTION_U_PROPNAME ("blender:resolution")
static Imath::V3f to_yup_V3f (float3 v)
static void get_vertices (Mesh *mesh, std::vector< Imath::V3f > &points)
static void get_topology (Mesh *mesh, std::vector< int32_t > &face_verts, std::vector< int32_t > &loop_counts)
static void get_edge_creases (Mesh *mesh, std::vector< int32_t > &indices, std::vector< int32_t > &lengths, std::vector< float > &sharpnesses)
static void get_vert_creases (Mesh *mesh, std::vector< int32_t > &indices, std::vector< float > &sharpnesses)
static void get_loop_normals (const Mesh *mesh, std::vector< Imath::V3f > &normals)
static void get_knots (std::vector< float > &knots, const int num_knots, float *nu_knots)
void create_swapped_rotation_matrix (float rot_x_mat[3][3], float rot_y_mat[3][3], float rot_z_mat[3][3], const float euler[3], AbcAxisSwapMode mode)
void copy_m44_axis_swap (float dst_mat[4][4], float src_mat[4][4], AbcAxisSwapMode mode)
void create_transform_matrix (Object *obj, float r_yup_mat[4][4], AbcMatrixMode mode, Object *proxy_from)
BLI_INLINE void copy_zup_from_yup (float zup[3], const float yup[3])
BLI_INLINE void copy_zup_from_yup (short zup[3], const short yup[3])
BLI_INLINE void copy_yup_from_zup (float yup[3], const float zup[3])
BLI_INLINE void copy_yup_from_zup (short yup[3], const short zup[3])
static const std::string propNameOriginalCoordinates ("Pref")
static void get_uvs (const CDStreamConfig &config, std::vector< Imath::V2f > &uvs, std::vector< uint32_t > &uvidx, const void *cd_data)
const char * get_uv_sample (UVSample &sample, const CDStreamConfig &config, CustomData *data)
static void write_uv (const OCompoundProperty &prop, CDStreamConfig &config, const void *data, const std::string &uv_map_name)
static void get_cols (const CDStreamConfig &config, std::vector< Imath::C4f > &buffer, std::vector< uint32_t > &uvidx, const void *cd_data)
static void write_mcol (const OCompoundProperty &prop, CDStreamConfig &config, const void *data, const std::string &vcol_name)
void write_generated_coordinates (const OCompoundProperty &prop, CDStreamConfig &config)
void write_custom_data (const OCompoundProperty &prop, CDStreamConfig &config, CustomData *data, int data_type)
static void read_uvs (const CDStreamConfig &config, void *data, const AbcUvScope uv_scope, const Alembic::AbcGeom::V2fArraySamplePtr &uvs, const UInt32ArraySamplePtr &indices)
static size_t mcols_out_of_bounds_check (const size_t color_index, const size_t array_size, const std::string &iobject_full_name, const PropertyHeader &prop_header, bool &r_is_out_of_bounds, bool &r_bounds_warning_given)
static void read_custom_data_mcols (const std::string &iobject_full_name, const ICompoundProperty &arbGeomParams, const PropertyHeader &prop_header, const CDStreamConfig &config, const Alembic::Abc::ISampleSelector &iss)
static void read_custom_data_uvs (const ICompoundProperty &prop, const PropertyHeader &prop_header, const CDStreamConfig &config, const Alembic::Abc::ISampleSelector &iss)
void read_velocity (const V3fArraySamplePtr &velocities, const CDStreamConfig &config, const float velocity_scale)
void read_generated_coordinates (const ICompoundProperty &prop, const CDStreamConfig &config, const Alembic::Abc::ISampleSelector &iss)
void read_custom_data (const std::string &iobject_full_name, const ICompoundProperty &prop, const CDStreamConfig &config, const Alembic::Abc::ISampleSelector &iss)
AbcUvScope get_uv_scope (const Alembic::AbcGeom::GeometryScope scope, const CDStreamConfig &config, const Alembic::AbcGeom::UInt32ArraySamplePtr &indices)
static IArchive open_archive (const std::string &filename, const std::vector< std::istream * > &input_streams)
static int16_t get_curve_resolution (const ICurvesSchema &schema, const Alembic::Abc::ISampleSelector &sample_sel)
static int16_t get_curve_order (const Alembic::AbcGeom::CurveType abc_curve_type, const UcharArraySamplePtr orders, const size_t curve_index)
static int8_t get_knot_mode (const Alembic::AbcGeom::CurveType abc_curve_type)
static int get_curve_overlap (const P3fArraySamplePtr positions, const int idx, const int num_verts, const int16_t order)
static CurveType get_curve_type (const Alembic::AbcGeom::BasisType basis)
static int bezier_point_count (int alembic_count, bool is_cyclic)
static float3 to_zup_float3 (Imath::V3f v)
static bool curves_topology_changed (const bke::CurvesGeometry &curves, Span< int > preprocessed_offsets)
template<typename SampleType>
static bool samples_have_same_topology (const SampleType &sample, const SampleType &ceil_sample)
static std::optional< PreprocessedSampleDatapreprocess_sample (StringRefNull iobject_name, bool use_interpolation, const ICurvesSchema &schema, const ISampleSelector sample_sel)
BLI_INLINE float3 interpolate_to_zup (const Span< Imath::V3f > &floor_positions, const Span< Imath::V3f > &ceil_positions, int i, float weight)
static void add_bezier_control_point (int cp, int offset, const Span< Imath::V3f > floor_positions, const Span< Imath::V3f > ceil_positions, MutableSpan< float3 > positions, MutableSpan< float3 > handles_left, MutableSpan< float3 > handles_right, float weight)
static void read_mverts_interp (float3 *vert_positions, const P3fArraySamplePtr &positions, const P3fArraySamplePtr &ceil_positions, const double weight)
static void read_mverts (CDStreamConfig &config, const AbcMeshData &mesh_data)
void read_mverts (Mesh &mesh, const P3fArraySamplePtr positions, const N3fArraySamplePtr normals)
static void read_mpolys (CDStreamConfig &config, const AbcMeshData &mesh_data)
static void process_no_normals (CDStreamConfig &)
static void process_loop_normals (CDStreamConfig &config, const N3fArraySamplePtr loop_normals_ptr)
static void process_vertex_normals (CDStreamConfig &config, const N3fArraySamplePtr vertex_normals_ptr)
static void process_normals (CDStreamConfig &config, const IN3fGeomParam &normals, const ISampleSelector &selector)
BLI_INLINE void read_uvs_params (CDStreamConfig &config, AbcMeshData &abc_data, const IV2fGeomParam &uv, const ISampleSelector &selector)
static void * add_customdata_cb (Mesh *mesh, const char *name, int data_type)
template<typename SampleType>
static bool samples_have_same_topology (const SampleType &sample, const SampleType &ceil_sample)
static void read_mesh_sample (const std::string &iobject_full_name, ImportSettings *settings, const IPolyMeshSchema &schema, const ISampleSelector &selector, CDStreamConfig &config)
static CDStreamConfig get_config (Mesh *mesh)
template<class typedGeomParam>
bool is_valid_animated (const ICompoundProperty arbGeomParams, const PropertyHeader &prop_header)
static bool has_animated_geom_params (const ICompoundProperty arbGeomParams)
template<>
bool has_animations (Alembic::AbcGeom::IPolyMeshSchema &schema, ImportSettings *settings)
template<>
bool has_animations (Alembic::AbcGeom::ISubDSchema &schema, ImportSettings *settings)
static void read_subd_sample (const std::string &iobject_full_name, ImportSettings *settings, const ISubDSchema &schema, const ISampleSelector &selector, CDStreamConfig &config)
static void read_vertex_creases (Mesh *mesh, const Int32ArraySamplePtr &indices, const FloatArraySamplePtr &sharpnesses, const ImportSettings *settings)
static void read_edge_creases (Mesh *mesh, const Int32ArraySamplePtr &indices, const FloatArraySamplePtr &sharpnesses, const ImportSettings *settings)
void read_mverts (Mesh &mesh, const Alembic::AbcGeom::P3fArraySamplePtr positions, const Alembic::AbcGeom::N3fArraySamplePtr normals)
static bool set_knots (const FloatArraySamplePtr &knots, float *&nu_knots)
static Imath::M44d blend_matrices (const Imath::M44d &m0, const Imath::M44d &m1, const double weight)
Imath::M44d get_matrix (const IXformSchema &schema, const chrono_t time)
template<typename Schema>
static bool has_animations (Schema &schema, ImportSettings *settings)
Imath::M44d get_matrix (const Alembic::AbcGeom::IXformSchema &schema, chrono_t time)
static void read_points (const P3fArraySamplePtr positions, MutableSpan< float3 > r_points)
static void read_points_sample (const IPointsSchema &schema, const ISampleSelector &selector, MutableSpan< float3 > r_points)
template<typename TOut, typename TIn>
static TOut convert_abc_value (const TIn &in)
template<>
float3 convert_abc_value (const V3f &in)
template<>
ColorGeometry4f convert_abc_value (const C3f &in)
template<>
float2 convert_abc_value (const V2f &in)
template<typename TArrayProperty, typename TWriteValue>
static void read_typed_property_sample (const ICompoundProperty &parent, const ISampleSelector &selector, const std::string &name, bke::MutableAttributeAccessor &attribute_accessor)
static void read_point_arb_geom_params (const IPointsSchema &schema, const ISampleSelector &selector, bke::MutableAttributeAccessor &attribute_accessor)
std::string get_valid_abc_name (const char *name)
Imath::M44d convert_matrix_datatype (const float mat[4][4])
void convert_matrix_datatype (const Imath::M44d &xform, float r_mat[4][4])
void split (const std::string &s, const char delim, std::vector< std::string > &tokens)
bool has_property (const Alembic::Abc::ICompoundProperty &prop, const std::string &name)
V3fArraySamplePtr get_velocity_prop (const Alembic::Abc::ICompoundProperty &schema, const Alembic::AbcGeom::ISampleSelector &selector, const std::string &name)
std::optional< SampleInterpolationSettingsget_sample_interpolation_settings (const Alembic::AbcGeom::ISampleSelector &selector, const Alembic::AbcCoreAbstract::TimeSamplingPtr &time_sampling, size_t samples_number)
AbcObjectReadercreate_reader (const Alembic::AbcGeom::IObject &object, ImportSettings &settings)
template<class TContainer>
bool begins_with (const TContainer &input, const TContainer &match)
template<typename Schema>
void get_min_max_time_ex (const Schema &schema, chrono_t &min, chrono_t &max)
template<typename Schema>
void get_min_max_time (const Alembic::AbcGeom::IObject &object, const Schema &schema, chrono_t &min, chrono_t &max)
 TEST_F (AlembicExportTest, TimeSamplesFullShutterUniform)
 TEST_F (AlembicExportTest, TimeSamplesFullShutterDifferent)
 TEST_F (AlembicExportTest, TimeSamples180degShutter)
 TEST (abc_matrix, CreateRotationMatrixY_YfromZ)
 TEST (abc_matrix, CreateRotationMatrixZ_YfromZ)
 TEST (abc_matrix, CreateRotationMatrixXYZ_YfromZ)
 TEST (abc_matrix, CreateRotationMatrixXYZ_ZfromY)
 TEST (abc_matrix, CopyM44AxisSwap_YfromZ)
 TEST (abc_matrix, CopyM44AxisSwapWithScale_YfromZ)
 TEST (abc_matrix, CopyM44AxisSwap_ZfromY)
 TEST (abc_matrix, CopyM44AxisSwapWithScale_ZfromY)
 TEST (abc_matrix, CopyM44AxisSwapWithScale_gimbal_ZfromY)

Variables

const std::string ABC_CURVE_RESOLUTION_U_PROPNAME

Typedef Documentation

◆ index_time_pair_t

using blender::io::alembic::index_time_pair_t = std::pair<Alembic::AbcCoreAbstract::index_t, Alembic::AbcGeom::chrono_t>

Definition at line 120 of file abc_util.cc.

Enumeration Type Documentation

◆ AbcAxisSwapMode

Enumerator
ABC_ZUP_FROM_YUP 
ABC_YUP_FROM_ZUP 

Definition at line 60 of file abc_axis_conversion.h.

◆ AbcMatrixMode

Enumerator
ABC_MATRIX_WORLD 
ABC_MATRIX_LOCAL 

Definition at line 81 of file abc_axis_conversion.h.

◆ AbcUvScope

Enumerator
ABC_UV_SCOPE_NONE 
ABC_UV_SCOPE_LOOP 
ABC_UV_SCOPE_VERTEX 

Definition at line 106 of file abc_customdata.h.

Function Documentation

◆ ABC_CURVE_RESOLUTION_U_PROPNAME()

const std::string blender::io::alembic::ABC_CURVE_RESOLUTION_U_PROPNAME ( "blender:resolution" )

◆ add_bezier_control_point()

void blender::io::alembic::add_bezier_control_point ( int cp,
int offset,
const Span< Imath::V3f > floor_positions,
const Span< Imath::V3f > ceil_positions,
MutableSpan< float3 > positions,
MutableSpan< float3 > handles_left,
MutableSpan< float3 > handles_right,
float weight )
static

◆ add_customdata_cb()

void * blender::io::alembic::add_customdata_cb ( Mesh * mesh,
const char * name,
int data_type )
static

◆ begins_with()

template<class TContainer>
bool blender::io::alembic::begins_with ( const TContainer & input,
const TContainer & match )

Definition at line 45 of file abc_util.h.

References input.

◆ bezier_point_count()

int blender::io::alembic::bezier_point_count ( int alembic_count,
bool is_cyclic )
inlinestatic

Definition at line 141 of file abc_reader_curves.cc.

References is_cyclic().

Referenced by preprocess_sample().

◆ blend_matrices()

Imath::M44d blender::io::alembic::blend_matrices ( const Imath::M44d & m0,
const Imath::M44d & m1,
const double weight )
static

Definition at line 104 of file abc_reader_object.cc.

References convert_matrix_datatype(), interp_m4_m4m4(), and ret.

Referenced by get_matrix().

◆ build_depsgraph()

◆ convert_abc_value() [1/4]

template<>
ColorGeometry4f blender::io::alembic::convert_abc_value ( const C3f & in)

Definition at line 117 of file abc_reader_points.cc.

References in.

◆ convert_abc_value() [2/4]

template<typename TOut, typename TIn>
TOut blender::io::alembic::convert_abc_value ( const TIn & in)
static

Definition at line 103 of file abc_reader_points.cc.

References in.

Referenced by read_typed_property_sample().

◆ convert_abc_value() [3/4]

template<>
float2 blender::io::alembic::convert_abc_value ( const V2f & in)

Definition at line 122 of file abc_reader_points.cc.

References in.

◆ convert_abc_value() [4/4]

template<>
float3 blender::io::alembic::convert_abc_value ( const V3f & in)

Definition at line 110 of file abc_reader_points.cc.

References copy_zup_from_yup(), in, and out.

◆ convert_matrix_datatype() [1/2]

Imath::M44d blender::io::alembic::convert_matrix_datatype ( const float mat[4][4])

◆ convert_matrix_datatype() [2/2]

void blender::io::alembic::convert_matrix_datatype ( const Imath::M44d & xform,
float r_mat[4][4] )

Definition at line 52 of file abc_util.cc.

References float, and i.

◆ copy_m44_axis_swap()

◆ copy_yup_from_zup() [1/2]

BLI_INLINE void blender::io::alembic::copy_yup_from_zup ( float yup[3],
const float zup[3] )

◆ copy_yup_from_zup() [2/2]

BLI_INLINE void blender::io::alembic::copy_yup_from_zup ( short yup[3],
const short zup[3] )

Definition at line 49 of file abc_axis_conversion.h.

References BLI_INLINE.

◆ copy_zup_from_yup() [1/2]

◆ copy_zup_from_yup() [2/2]

BLI_INLINE void blender::io::alembic::copy_zup_from_yup ( short zup[3],
const short yup[3] )

Definition at line 31 of file abc_axis_conversion.h.

References BLI_INLINE.

◆ create_abc_metadata()

MetaData blender::io::alembic::create_abc_metadata ( const Main * bmain,
double scene_fps )
static

◆ create_archive()

OArchive * blender::io::alembic::create_archive ( std::ofstream * abc_ostream,
const std::string & filepath,
MetaData & abc_metadata )
static

◆ create_reader()

AbcObjectReader * blender::io::alembic::create_reader ( const Alembic::AbcGeom::IObject & object,
ImportSettings & settings )

Definition at line 155 of file abc_util.cc.

Referenced by CacheReader_open_alembic_object().

◆ create_swapped_rotation_matrix()

void blender::io::alembic::create_swapped_rotation_matrix ( float rot_x_mat[3][3],
float rot_y_mat[3][3],
float rot_z_mat[3][3],
const float euler[3],
AbcAxisSwapMode mode )

Create a rotation matrix for each axis from euler angles. Euler angles are swapped to change coordinate system.

Definition at line 22 of file abc_axis_conversion.cc.

References ABC_YUP_FROM_ZUP, ABC_ZUP_FROM_YUP, BLI_assert, cos, sin, and unit_m3().

Referenced by copy_m44_axis_swap(), TEST(), TEST(), TEST(), and TEST().

◆ create_time_sampling()

TimeSamplingPtr blender::io::alembic::create_time_sampling ( double scene_fps,
const AlembicExportParams & params,
int nr_of_samples )
static

Definition at line 126 of file abc_archive.cc.

References get_shutter_samples(), and params.

Referenced by blender::io::alembic::ABCArchive::ABCArchive().

◆ create_transform_matrix()

void blender::io::alembic::create_transform_matrix ( Object * obj,
float r_yup_mat[4][4],
AbcMatrixMode mode,
Object * proxy_from )

Recompute transform matrix of object in new coordinate system (from Z-Up to Y-Up).

Definition at line 132 of file abc_axis_conversion.cc.

References ABC_MATRIX_LOCAL, ABC_YUP_FROM_ZUP, copy_m44_axis_swap(), copy_m4_m4(), invert_m4_m4(), and mul_m4_m4m4().

◆ curves_topology_changed()

bool blender::io::alembic::curves_topology_changed ( const bke::CurvesGeometry & curves,
Span< int > preprocessed_offsets )
static

◆ export_endjob()

void blender::io::alembic::export_endjob ( void * customdata)
static

◆ export_startjob()

◆ get_cols()

void blender::io::alembic::get_cols ( const CDStreamConfig & config,
std::vector< Imath::C4f > & buffer,
std::vector< uint32_t > & uvidx,
const void * cd_data )
static

◆ get_config()

◆ get_curve_order()

int16_t blender::io::alembic::get_curve_order ( const Alembic::AbcGeom::CurveType abc_curve_type,
const UcharArraySamplePtr orders,
const size_t curve_index )
static

Definition at line 61 of file abc_reader_curves.cc.

References ATTR_FALLTHROUGH.

Referenced by preprocess_sample().

◆ get_curve_overlap()

int blender::io::alembic::get_curve_overlap ( const P3fArraySamplePtr positions,
const int idx,
const int num_verts,
const int16_t order )
static

Definition at line 88 of file abc_reader_curves.cc.

Referenced by preprocess_sample().

◆ get_curve_resolution()

int16_t blender::io::alembic::get_curve_resolution ( const ICurvesSchema & schema,
const Alembic::Abc::ISampleSelector & sample_sel )
static

◆ get_curve_type()

CurveType blender::io::alembic::get_curve_type ( const Alembic::AbcGeom::BasisType basis)
static

◆ get_edge_creases()

void blender::io::alembic::get_edge_creases ( Mesh * mesh,
std::vector< int32_t > & indices,
std::vector< int32_t > & lengths,
std::vector< float > & sharpnesses )
static

◆ get_frames()

void blender::io::alembic::get_frames ( double scene_fps,
const AlembicExportParams & params,
uint nr_of_samples,
std::set< double > & r_frames )
static

Definition at line 142 of file abc_archive.cc.

References get_shutter_samples(), and params.

Referenced by blender::io::alembic::ABCArchive::ABCArchive().

◆ get_knot_mode()

int8_t blender::io::alembic::get_knot_mode ( const Alembic::AbcGeom::CurveType abc_curve_type)
static

Definition at line 79 of file abc_reader_curves.cc.

References NURBS_KNOT_MODE_ENDPOINT, and NURBS_KNOT_MODE_NORMAL.

Referenced by preprocess_sample().

◆ get_knots()

void blender::io::alembic::get_knots ( std::vector< float > & knots,
const int num_knots,
float * nu_knots )
static

Definition at line 91 of file abc_writer_nurbs.cc.

References i.

Referenced by blender::io::alembic::ABCNurbsWriter::do_write().

◆ get_loop_normals()

void blender::io::alembic::get_loop_normals ( const Mesh * mesh,
std::vector< Imath::V3f > & normals )
static

◆ get_matrix() [1/2]

Imath::M44d blender::io::alembic::get_matrix ( const Alembic::AbcGeom::IXformSchema & schema,
chrono_t time )

◆ get_matrix() [2/2]

Imath::M44d blender::io::alembic::get_matrix ( const IXformSchema & schema,
const chrono_t time )

◆ get_min_max_time()

◆ get_min_max_time_ex()

template<typename Schema>
void blender::io::alembic::get_min_max_time_ex ( const Schema & schema,
chrono_t & min,
chrono_t & max )

Definition at line 51 of file abc_util.h.

References max, and min.

Referenced by get_min_max_time().

◆ get_sample_interpolation_settings()

std::optional< SampleInterpolationSettings > blender::io::alembic::get_sample_interpolation_settings ( const Alembic::AbcGeom::ISampleSelector & selector,
const Alembic::AbcCoreAbstract::TimeSamplingPtr & time_sampling,
size_t samples_number )

Check whether the requested time from the selector falls between two sampling time from the time_sampling. If so, returns a SampleInterpolationSettings with the required data to interpolate. If not, returns nothing and we can assume that the requested time falls on a specific sampling time of time_sampling and no interpolation is necessary.

Definition at line 122 of file abc_util.cc.

References fabs().

Referenced by get_matrix(), preprocess_sample(), read_mesh_sample(), and read_subd_sample().

◆ get_shutter_samples()

void blender::io::alembic::get_shutter_samples ( double scene_fps,
const AlembicExportParams & params,
int nr_of_samples,
bool time_relative,
std::vector< double > & r_samples )
static

Definition at line 105 of file abc_archive.cc.

References params, and sample.

Referenced by create_time_sampling(), and get_frames().

◆ get_topology()

void blender::io::alembic::get_topology ( Mesh * mesh,
std::vector< int32_t > & face_verts,
std::vector< int32_t > & loop_counts )
static

◆ get_uv_sample()

const char * blender::io::alembic::get_uv_sample ( UVSample & sample,
const CDStreamConfig & config,
CustomData * data )

◆ get_uv_scope()

AbcUvScope blender::io::alembic::get_uv_scope ( const Alembic::AbcGeom::GeometryScope scope,
const CDStreamConfig & config,
const Alembic::AbcGeom::UInt32ArraySamplePtr & indices )

UVs can be defined per-loop (one value per vertex per face), or per-vertex (one value per vertex). The first case is the most common, as this is the standard way of storing this data given that some vertices might be on UV seams and have multiple possible UV coordinates; the second case can happen when the mesh is split according to the UV islands, in which case storing a single UV value per vertex allows to de-duplicate data and thus to reduce the file size since vertices are guaranteed to only have a single UV coordinate.

Definition at line 619 of file abc_customdata.cc.

References ABC_UV_SCOPE_LOOP, ABC_UV_SCOPE_NONE, ABC_UV_SCOPE_VERTEX, ELEM, indices, blender::io::alembic::CDStreamConfig::totloop, and blender::io::alembic::CDStreamConfig::totvert.

Referenced by read_custom_data_uvs(), and read_uvs_params().

◆ get_uvs()

void blender::io::alembic::get_uvs ( const CDStreamConfig & config,
std::vector< Imath::V2f > & uvs,
std::vector< uint32_t > & uvidx,
const void * cd_data )
static

◆ get_valid_abc_name()

std::string blender::io::alembic::get_valid_abc_name ( const char * name)

Definition at line 29 of file abc_util.cc.

References name.

Referenced by blender::io::alembic::ABCHierarchyIterator::make_valid_name(), and write_custom_data().

◆ get_velocity_prop()

V3fArraySamplePtr blender::io::alembic::get_velocity_prop ( const Alembic::Abc::ICompoundProperty & schema,
const Alembic::AbcGeom::ISampleSelector & selector,
const std::string & name )

◆ get_vert_creases()

void blender::io::alembic::get_vert_creases ( Mesh * mesh,
std::vector< int32_t > & indices,
std::vector< float > & sharpnesses )
static

◆ get_vertices()

void blender::io::alembic::get_vertices ( Mesh * mesh,
std::vector< Imath::V3f > & points )
static

Definition at line 429 of file abc_writer_mesh.cc.

References copy_yup_from_zup(), e, i, and Mesh::verts_num.

◆ has_animated_geom_params()

bool blender::io::alembic::has_animated_geom_params ( const ICompoundProperty arbGeomParams)
static

Definition at line 529 of file abc_reader_mesh.cc.

References i, and is_valid_animated().

Referenced by has_animations(), and has_animations().

◆ has_animations() [1/3]

◆ has_animations() [2/3]

template<>
bool blender::io::alembic::has_animations ( Alembic::AbcGeom::ISubDSchema & schema,
ImportSettings * settings )

◆ has_animations() [3/3]

template<typename Schema>
bool blender::io::alembic::has_animations ( Schema & schema,
ImportSettings * settings )
static

◆ has_property()

bool blender::io::alembic::has_property ( const Alembic::Abc::ICompoundProperty & prop,
const std::string & name )

◆ interpolate_to_zup()

BLI_INLINE float3 blender::io::alembic::interpolate_to_zup ( const Span< Imath::V3f > & floor_positions,
const Span< Imath::V3f > & ceil_positions,
int i,
float weight )

◆ is_valid_animated()

template<class typedGeomParam>
bool blender::io::alembic::is_valid_animated ( const ICompoundProperty arbGeomParams,
const PropertyHeader & prop_header )

Definition at line 519 of file abc_reader_mesh.cc.

Referenced by has_animated_geom_params().

◆ mcols_out_of_bounds_check()

size_t blender::io::alembic::mcols_out_of_bounds_check ( const size_t color_index,
const size_t array_size,
const std::string & iobject_full_name,
const PropertyHeader & prop_header,
bool & r_is_out_of_bounds,
bool & r_bounds_warning_given )
static

Definition at line 351 of file abc_customdata.cc.

Referenced by read_custom_data_mcols().

◆ open_archive()

IArchive blender::io::alembic::open_archive ( const std::string & filename,
const std::vector< std::istream * > & input_streams )
static

Definition at line 36 of file abc_reader_archive.cc.

References e.

◆ preprocess_sample()

std::optional< PreprocessedSampleData > blender::io::alembic::preprocess_sample ( StringRefNull iobject_name,
bool use_interpolation,
const ICurvesSchema & schema,
const ISampleSelector sample_sel )
static

◆ process_loop_normals()

void blender::io::alembic::process_loop_normals ( CDStreamConfig & config,
const N3fArraySamplePtr loop_normals_ptr )
static

◆ process_no_normals()

void blender::io::alembic::process_no_normals ( CDStreamConfig & )
static

◆ process_normals()

void blender::io::alembic::process_normals ( CDStreamConfig & config,
const IN3fGeomParam & normals,
const ISampleSelector & selector )
static

◆ process_vertex_normals()

void blender::io::alembic::process_vertex_normals ( CDStreamConfig & config,
const N3fArraySamplePtr vertex_normals_ptr )
static

◆ propNameOriginalCoordinates()

const std::string blender::io::alembic::propNameOriginalCoordinates ( "Pref" )
static

◆ read_custom_data()

void blender::io::alembic::read_custom_data ( const std::string & iobject_full_name,
const ICompoundProperty & prop,
const CDStreamConfig & config,
const Alembic::Abc::ISampleSelector & iss )

Definition at line 585 of file abc_customdata.cc.

References i, MAX_MTFACE, read_custom_data_mcols(), and read_custom_data_uvs().

Referenced by read_mesh_sample(), and read_subd_sample().

◆ read_custom_data_mcols()

void blender::io::alembic::read_custom_data_mcols ( const std::string & iobject_full_name,
const ICompoundProperty & arbGeomParams,
const PropertyHeader & prop_header,
const CDStreamConfig & config,
const Alembic::Abc::ISampleSelector & iss )
static

◆ read_custom_data_uvs()

void blender::io::alembic::read_custom_data_uvs ( const ICompoundProperty & prop,
const PropertyHeader & prop_header,
const CDStreamConfig & config,
const Alembic::Abc::ISampleSelector & iss )
static

◆ read_edge_creases()

◆ read_generated_coordinates()

void blender::io::alembic::read_generated_coordinates ( const ICompoundProperty & prop,
const CDStreamConfig & config,
const Alembic::Abc::ISampleSelector & iss )

◆ read_mesh_sample()

◆ read_mpolys()

◆ read_mverts() [1/3]

◆ read_mverts() [2/3]

void blender::io::alembic::read_mverts ( Mesh & mesh,
const Alembic::AbcGeom::P3fArraySamplePtr positions,
const Alembic::AbcGeom::N3fArraySamplePtr normals )

References normals.

◆ read_mverts() [3/3]

void blender::io::alembic::read_mverts ( Mesh & mesh,
const P3fArraySamplePtr positions,
const N3fArraySamplePtr normals )

◆ read_mverts_interp()

void blender::io::alembic::read_mverts_interp ( float3 * vert_positions,
const P3fArraySamplePtr & positions,
const P3fArraySamplePtr & ceil_positions,
const double weight )
static

Definition at line 128 of file abc_reader_mesh.cc.

References copy_zup_from_yup(), i, and interp_v3_v3v3().

Referenced by read_mverts().

◆ read_point_arb_geom_params()

void blender::io::alembic::read_point_arb_geom_params ( const IPointsSchema & schema,
const ISampleSelector & selector,
bke::MutableAttributeAccessor & attribute_accessor )
static

◆ read_points()

void blender::io::alembic::read_points ( const P3fArraySamplePtr positions,
MutableSpan< float3 > r_points )
static

Definition at line 86 of file abc_reader_points.cc.

References copy_zup_from_yup(), and i.

Referenced by read_points_sample().

◆ read_points_sample()

void blender::io::alembic::read_points_sample ( const IPointsSchema & schema,
const ISampleSelector & selector,
MutableSpan< float3 > r_points )
static

Definition at line 93 of file abc_reader_points.cc.

References read_points(), and sample.

Referenced by blender::io::alembic::AbcPointsReader::read_geometry().

◆ read_subd_sample()

◆ read_typed_property_sample()

template<typename TArrayProperty, typename TWriteValue>
void blender::io::alembic::read_typed_property_sample ( const ICompoundProperty & parent,
const ISampleSelector & selector,
const std::string & name,
bke::MutableAttributeAccessor & attribute_accessor )
static

◆ read_uvs()

void blender::io::alembic::read_uvs ( const CDStreamConfig & config,
void * data,
const AbcUvScope uv_scope,
const Alembic::AbcGeom::V2fArraySamplePtr & uvs,
const UInt32ArraySamplePtr & indices )
static

◆ read_uvs_params()

◆ read_velocity()

void blender::io::alembic::read_velocity ( const V3fArraySamplePtr & velocities,
const CDStreamConfig & config,
const float velocity_scale )

◆ read_vertex_creases()

◆ report_job_duration()

void blender::io::alembic::report_job_duration ( const ExportJobData * data)
static

Definition at line 73 of file abc_export_capi.cc.

References data, and blender::timeit::print_duration().

Referenced by export_endjob(), and import_endjob().

◆ samples_have_same_topology() [1/2]

template<typename SampleType>
bool blender::io::alembic::samples_have_same_topology ( const SampleType & sample,
const SampleType & ceil_sample )
static

Definition at line 163 of file abc_reader_curves.cc.

References sample.

Referenced by preprocess_sample(), read_mesh_sample(), and read_subd_sample().

◆ samples_have_same_topology() [2/2]

template<typename SampleType>
bool blender::io::alembic::samples_have_same_topology ( const SampleType & sample,
const SampleType & ceil_sample )
static

Definition at line 398 of file abc_reader_mesh.cc.

References sample.

◆ set_knots()

bool blender::io::alembic::set_knots ( const FloatArraySamplePtr & knots,
float *& nu_knots )
static

◆ split()

void blender::io::alembic::split ( const std::string & s,
const char delim,
std::vector< std::string > & tokens )

◆ TEST() [1/9]

blender::io::alembic::TEST ( abc_matrix ,
CopyM44AxisSwap_YfromZ  )

Definition at line 149 of file abc_matrix_test.cc.

References ABC_YUP_FROM_ZUP, copy_m44_axis_swap(), input, and result.

◆ TEST() [2/9]

blender::io::alembic::TEST ( abc_matrix ,
CopyM44AxisSwap_ZfromY  )

Definition at line 209 of file abc_matrix_test.cc.

References ABC_ZUP_FROM_YUP, copy_m44_axis_swap(), input, and result.

◆ TEST() [3/9]

blender::io::alembic::TEST ( abc_matrix ,
CopyM44AxisSwapWithScale_gimbal_ZfromY  )

Definition at line 265 of file abc_matrix_test.cc.

References ABC_ZUP_FROM_YUP, copy_m44_axis_swap(), input, and result.

◆ TEST() [4/9]

blender::io::alembic::TEST ( abc_matrix ,
CopyM44AxisSwapWithScale_YfromZ  )

Definition at line 180 of file abc_matrix_test.cc.

References ABC_YUP_FROM_ZUP, copy_m44_axis_swap(), input, and result.

◆ TEST() [5/9]

blender::io::alembic::TEST ( abc_matrix ,
CopyM44AxisSwapWithScale_ZfromY  )

Definition at line 236 of file abc_matrix_test.cc.

References ABC_ZUP_FROM_YUP, copy_m44_axis_swap(), input, and result.

◆ TEST() [6/9]

blender::io::alembic::TEST ( abc_matrix ,
CreateRotationMatrixXYZ_YfromZ  )

Definition at line 69 of file abc_matrix_test.cc.

References ABC_YUP_FROM_ZUP, create_swapped_rotation_matrix(), and unit_m3().

◆ TEST() [7/9]

blender::io::alembic::TEST ( abc_matrix ,
CreateRotationMatrixXYZ_ZfromY  )

Definition at line 109 of file abc_matrix_test.cc.

References ABC_ZUP_FROM_YUP, create_swapped_rotation_matrix(), and unit_m3().

◆ TEST() [8/9]

blender::io::alembic::TEST ( abc_matrix ,
CreateRotationMatrixY_YfromZ  )

◆ TEST() [9/9]

blender::io::alembic::TEST ( abc_matrix ,
CreateRotationMatrixZ_YfromZ  )

◆ TEST_F() [1/3]

blender::io::alembic::TEST_F ( AlembicExportTest ,
TimeSamples180degShutter  )

Definition at line 139 of file abc_export_test.cc.

References e, EXPECT_EQ(), and params.

◆ TEST_F() [2/3]

blender::io::alembic::TEST_F ( AlembicExportTest ,
TimeSamplesFullShutterDifferent  )

Definition at line 101 of file abc_export_test.cc.

References e, EXPECT_EQ(), and params.

◆ TEST_F() [3/3]

blender::io::alembic::TEST_F ( AlembicExportTest ,
TimeSamplesFullShutterUniform  )

Definition at line 73 of file abc_export_test.cc.

References e, EXPECT_EQ(), and params.

◆ to_yup_V3f()

Imath::V3f blender::io::alembic::to_yup_V3f ( float3 v)
inlinestatic

Definition at line 42 of file abc_writer_curves.cc.

References copy_yup_from_zup(), and v.

Referenced by blender::io::alembic::ABCCurveWriter::do_write().

◆ to_zup_float3()

float3 blender::io::alembic::to_zup_float3 ( Imath::V3f v)
inlinestatic

◆ write_custom_data()

void blender::io::alembic::write_custom_data ( const OCompoundProperty & prop,
CDStreamConfig & config,
CustomData * data,
int data_type )

◆ write_generated_coordinates()

◆ write_mcol()

void blender::io::alembic::write_mcol ( const OCompoundProperty & prop,
CDStreamConfig & config,
const void * data,
const std::string & vcol_name )
static

◆ write_uv()

void blender::io::alembic::write_uv ( const OCompoundProperty & prop,
CDStreamConfig & config,
const void * data,
const std::string & uv_map_name )
static

Variable Documentation

◆ ABC_CURVE_RESOLUTION_U_PROPNAME

const std::string blender::io::alembic::ABC_CURVE_RESOLUTION_U_PROPNAME
extern