8 #include <Alembic/Abc/All.h>
9 #include <Alembic/AbcGeom/All.h>
11 using Alembic::Abc::chrono_t;
18 class AbcObjectReader;
40 void split(
const std::string &s,
char delim, std::vector<std::string> &tokens);
42 template<
class TContainer>
bool begins_with(
const TContainer &
input,
const TContainer &match)
44 return input.size() >= match.size() && std::equal(match.begin(), match.end(),
input.begin());
47 template<
typename Schema>
50 const Alembic::Abc::TimeSamplingPtr &time_samp = schema.getTimeSampling();
52 if (!schema.isConstant()) {
53 const size_t num_samps = schema.getNumSamples();
56 const chrono_t min_time = time_samp->getSampleTime(0);
59 const chrono_t max_time = time_samp->getSampleTime(num_samps - 1);
65 template<
typename Schema>
73 const Alembic::AbcGeom::IObject &parent =
object.getParent();
74 if (parent.valid() && Alembic::AbcGeom::IXform::matches(parent.getMetaData())) {
75 Alembic::AbcGeom::IXform xform(parent, Alembic::AbcGeom::kWrapExisting);
80 bool has_property(
const Alembic::Abc::ICompoundProperty &prop,
const std::string &name);
83 const Alembic::AbcCoreAbstract::TimeSamplingPtr &time_sampling,
85 Alembic::AbcGeom::index_t &i0,
86 Alembic::AbcGeom::index_t &
i1);
95 const char *m_message;
103 #ifdef ABC_DEBUG_TIME
104 # define SCOPE_TIMER(message) ScopeTimer prof(message)
106 # define SCOPE_TIMER(message)
121 std::ostringstream m_stream;
127 std::string
str()
const;
138 std::ostringstream &
stream();
141 #define ABC_LOG(logger) logger.stream()
146 std::ostream &
operator<<(std::ostream &os,
const SimpleLogger &logger);
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei GLsizei GLenum type _GL_VOID_RET _GL_VOID GLsizei GLenum GLenum const void *pixels _GL_VOID_RET _GL_VOID const void *pointer _GL_VOID_RET _GL_VOID GLdouble v _GL_VOID_RET _GL_VOID GLfloat v _GL_VOID_RET _GL_VOID GLint i1
ScopeTimer(const char *message)
std::ostringstream & stream()
ccl_global KernelShaderEvalInput * input
static void get_weight_and_index(CDStreamConfig &config, Alembic::AbcCoreAbstract::TimeSamplingPtr time_sampling, size_t samples_number)
bool begins_with(const TContainer &input, const TContainer &match)
void get_min_max_time(const Alembic::AbcGeom::IObject &object, const Schema &schema, chrono_t &min, chrono_t &max)
std::string get_valid_abc_name(const char *name)
std::ostream & operator<<(std::ostream &os, const SimpleLogger &logger)
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...
std::string get_id_name(const Object *const ob)
Imath::M44d convert_matrix_datatype(float mat[4][4])
bool has_property(const Alembic::Abc::ICompoundProperty &prop, const std::string &name)
void get_min_max_time_ex(const Schema &schema, chrono_t &min, chrono_t &max)
AbcObjectReader * create_reader(const Alembic::AbcGeom::IObject &object, ImportSettings &settings)
void split(const std::string &s, const char delim, std::vector< std::string > &tokens)