Blender V4.3
blender::io::alembic Namespace Reference

Namespaces

namespace  utils
 

Classes

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

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 char *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 char *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)
 
static std::optional< PreprocessedSampleDatapreprocess_sample (StringRefNull iobject_name, const ICurvesSchema &schema, const ISampleSelector sample_sel)
 
static void add_bezier_control_point (int cp, int offset, const Span< Imath::V3f > alembic_positions, MutableSpan< float3 > positions, MutableSpan< float3 > handles_left, MutableSpan< float3 > handles_right)
 
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)
 
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)
 
static void read_edge_creases (Mesh *mesh, const Int32ArraySamplePtr &indices, const FloatArraySamplePtr &sharpnesses)
 
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 N3fArraySamplePtr read_points_sample (const IPointsSchema &schema, const ISampleSelector &selector, MutableSpan< float3 > r_points)
 
std::string get_id_name (const Object *const ob)
 
std::string get_id_name (const ID *const id)
 
std::string get_valid_abc_name (const char *name)
 
std::string get_object_dag_path_name (const Object *const ob, Object *dupli_parent)
 get_object_dag_path_name returns the name under which the object will be exported in the Alembic file. It is of the form "[../grandparent/]parent/object" if dupli_parent is NULL, or "dupli_parent/[../grandparent/]parent/object" otherwise.
 
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)
 
std::ostream & operator<< (std::ostream &os, const SimpleLogger &logger)
 
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 155 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 118 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()

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

◆ add_customdata_cb()

static 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 58 of file abc_util.h.

◆ bezier_point_count()

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

Definition at line 140 of file abc_reader_curves.cc.

References is_cyclic().

Referenced by preprocess_sample().

◆ blend_matrices()

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

Definition at line 105 of file abc_reader_object.cc.

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

Referenced by get_matrix().

◆ build_depsgraph()

◆ 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 87 of file abc_util.cc.

References float.

◆ 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.

◆ 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.

◆ create_abc_metadata()

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

◆ create_archive()

static 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 190 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(), and unit_m3().

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

◆ create_time_sampling()

static 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(), mul_m4_m4m4(), Object::parent, and Object::runtime.

◆ curves_topology_changed()

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

◆ export_endjob()

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

◆ export_startjob()

◆ get_cols()

static 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()

static 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 60 of file abc_reader_curves.cc.

References ATTR_FALLTHROUGH.

Referenced by preprocess_sample().

◆ get_curve_overlap()

static 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 87 of file abc_reader_curves.cc.

Referenced by preprocess_sample().

◆ get_curve_resolution()

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

◆ get_curve_type()

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

◆ get_edge_creases()

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

Definition at line 467 of file abc_writer_mesh.cc.

References blender::bke::Edge.

◆ get_frames()

static 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_id_name() [1/2]

std::string blender::io::alembic::get_id_name ( const ID *const id)

Definition at line 42 of file abc_util.cc.

References get_valid_abc_name().

◆ get_id_name() [2/2]

std::string blender::io::alembic::get_id_name ( const Object *const ob)

Definition at line 33 of file abc_util.cc.

References get_id_name(), and Object::id.

Referenced by get_id_name(), and get_object_dag_path_name().

◆ get_knot_mode()

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

Definition at line 78 of file abc_reader_curves.cc.

References NURBS_KNOT_MODE_ENDPOINT, and NURBS_KNOT_MODE_NORMAL.

Referenced by preprocess_sample().

◆ get_knots()

static 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.

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

◆ get_loop_normals()

static 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 64 of file abc_util.h.

References min.

Referenced by get_min_max_time().

◆ get_object_dag_path_name()

std::string blender::io::alembic::get_object_dag_path_name ( const Object *const ob,
Object * dupli_parent )

get_object_dag_path_name returns the name under which the object will be exported in the Alembic file. It is of the form "[../grandparent/]parent/object" if dupli_parent is NULL, or "dupli_parent/[../grandparent/]parent/object" otherwise.

Parameters
ob
dupli_parent
Returns

Definition at line 56 of file abc_util.cc.

References get_id_name(), and Object::parent.

◆ 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 157 of file abc_util.cc.

References fabs().

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

◆ get_shutter_samples()

static 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()

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

Definition at line 443 of file abc_writer_mesh.cc.

References blender::Span< T >::size().

◆ 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 620 of file abc_customdata.cc.

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

Referenced by read_custom_data_uvs(), and read_uvs_params().

◆ get_uvs()

static 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 47 of file abc_util.cc.

Referenced by get_id_name().

◆ 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()

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

Definition at line 497 of file abc_writer_mesh.cc.

References blender::Span< T >::index_range(), and blender::bke::Point.

◆ get_vertices()

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

Definition at line 432 of file abc_writer_mesh.cc.

References copy_yup_from_zup(), and e.

◆ has_animated_geom_params()

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

Definition at line 533 of file abc_reader_mesh.cc.

References is_valid_animated().

Referenced by has_animations().

◆ has_animations() [1/2]

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

◆ has_animations() [2/2]

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

Definition at line 77 of file abc_reader_object.h.

References CacheFile::is_sequence.

◆ has_property()

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

◆ is_valid_animated()

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

Definition at line 523 of file abc_reader_mesh.cc.

Referenced by has_animated_geom_params().

◆ mcols_out_of_bounds_check()

static 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 352 of file abc_customdata.cc.

Referenced by read_custom_data_mcols().

◆ open_archive()

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

Definition at line 33 of file abc_reader_archive.cc.

References e.

◆ operator<<()

std::ostream & blender::io::alembic::operator<< ( std::ostream & os,
const SimpleLogger & logger )

Pass the content of the logger's stream to the specified std::ostream.

Definition at line 271 of file abc_util.cc.

References blender::io::alembic::SimpleLogger::str().

◆ preprocess_sample()

◆ process_loop_normals()

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

◆ process_no_normals()

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

◆ process_normals()

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

◆ process_vertex_normals()

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

◆ propNameOriginalCoordinates()

static 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 )

◆ read_custom_data_mcols()

static 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()

static 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 )

◆ read_mverts() [3/3]

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

◆ read_mverts_interp()

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

Definition at line 127 of file abc_reader_mesh.cc.

References copy_zup_from_yup(), and interp_v3_v3v3().

Referenced by read_mverts().

◆ read_points()

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

Definition at line 85 of file abc_reader_points.cc.

References copy_zup_from_yup().

Referenced by read_points_sample().

◆ read_points_sample()

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

◆ read_subd_sample()

◆ read_uvs()

static 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()

static void blender::io::alembic::read_vertex_creases ( Mesh * mesh,
const Int32ArraySamplePtr & indices,
const FloatArraySamplePtr & sharpnesses )
static

◆ report_job_duration()

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

Definition at line 76 of file abc_export_capi.cc.

References blender::timeit::print_duration().

Referenced by export_endjob(), and import_endjob().

◆ samples_have_same_topology()

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

Definition at line 402 of file abc_reader_mesh.cc.

References sample.

Referenced by read_mesh_sample(), and read_subd_sample().

◆ set_knots()

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

Definition at line 82 of file abc_reader_nurbs.cc.

References MEM_callocN.

Referenced by blender::io::alembic::AbcNurbsReader::readObjectData().

◆ 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 150 of file abc_matrix_test.cc.

References ABC_YUP_FROM_ZUP, and copy_m44_axis_swap().

◆ TEST() [2/9]

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

Definition at line 210 of file abc_matrix_test.cc.

References ABC_ZUP_FROM_YUP, and copy_m44_axis_swap().

◆ TEST() [3/9]

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

Definition at line 266 of file abc_matrix_test.cc.

References ABC_ZUP_FROM_YUP, and copy_m44_axis_swap().

◆ TEST() [4/9]

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

Definition at line 181 of file abc_matrix_test.cc.

References ABC_YUP_FROM_ZUP, and copy_m44_axis_swap().

◆ TEST() [5/9]

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

Definition at line 237 of file abc_matrix_test.cc.

References ABC_ZUP_FROM_YUP, and copy_m44_axis_swap().

◆ TEST() [6/9]

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

Definition at line 70 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 110 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 141 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 103 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 75 of file abc_export_test.cc.

References e, EXPECT_EQ(), and params.

◆ to_yup_V3f()

static 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()

static 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()

static void blender::io::alembic::write_mcol ( const OCompoundProperty & prop,
CDStreamConfig & config,
const void * data,
const char * name )
static

◆ write_uv()

static void blender::io::alembic::write_uv ( const OCompoundProperty & prop,
CDStreamConfig & config,
const void * data,
const char * name )
static

Variable Documentation

◆ ABC_CURVE_RESOLUTION_U_PROPNAME

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