HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
SchemaInfoDeclarations.h File Reference
+ Include dependency graph for SchemaInfoDeclarations.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 Alembic
 Alembic namespace ...
 
 Alembic::AbcGeom
 
 Alembic::AbcGeom::ALEMBIC_VERSION_NS
 

Macros

#define ALEMBIC_ABCGEOM_DECLARE_SCHEMA_INFO(STITLE, SBTYP, SDFLT, STDEF)
 
#define ALEMBIC_ABCGEOM_POLYMESH_SCHEMA   (PolyMeshSchemaInfo::title())
 
#define ALEMBIC_ABCGEOM_NUPATCH_SCHEMA   (NuPatchSchemaInfo::title())
 
#define ALEMBIC_ABCGEOM_SUBD_SCHEMA   (SubDSchemaInfo::title())
 
#define ALEMBIC_ABCGEOM_PARITION_SCHEMA   (FaceSetSchemaInfo::title())
 
#define ALEMBIC_ABCGEOM_POINTS_SCHEMA   (PointsSchemaInfo::title())
 
#define ALEMBIC_ABCGEOM_XFORM_SCHEMA   (XformSchemaInfo::title())
 
#define ALEMBIC_ABCGEOM_CAMERA_SCHEMA   (CameraSchemaInfo::title())
 
#define ALEMBIC_ABCGEOM_CURVE_SCHEMA   (CurvesSchemaInfo::title())
 
#define ALEMBIC_ABCGEOM_LIGHT_SCHEMA   (LightSchemaInfo::title())
 

Functions

 Alembic::AbcGeom::ALEMBIC_VERSION_NS::ALEMBIC_ABCGEOM_DECLARE_SCHEMA_INFO ("AbcGeom_PolyMesh_v1","AbcGeom_GeomBase_v1",".geom", PolyMeshSchemaInfo)
 
 Alembic::AbcGeom::ALEMBIC_VERSION_NS::ALEMBIC_ABCGEOM_DECLARE_SCHEMA_INFO ("AbcGeom_NuPatch_v2","AbcGeom_GeomBase_v1",".geom", NuPatchSchemaInfo)
 
 Alembic::AbcGeom::ALEMBIC_VERSION_NS::ALEMBIC_ABCGEOM_DECLARE_SCHEMA_INFO ("AbcGeom_SubD_v1","AbcGeom_GeomBase_v1",".geom", SubDSchemaInfo)
 
 Alembic::AbcGeom::ALEMBIC_VERSION_NS::ALEMBIC_ABCGEOM_DECLARE_SCHEMA_INFO ("AbcGeom_FaceSet_v1","AbcGeom_GeomBase_v1",".faceset", FaceSetSchemaInfo)
 
 Alembic::AbcGeom::ALEMBIC_VERSION_NS::ALEMBIC_ABCGEOM_DECLARE_SCHEMA_INFO ("AbcGeom_Points_v1","AbcGeom_GeomBase_v1",".geom", PointsSchemaInfo)
 
 Alembic::AbcGeom::ALEMBIC_VERSION_NS::ALEMBIC_ABCGEOM_DECLARE_SCHEMA_INFO ("AbcGeom_Xform_v3","",".xform", XformSchemaInfo)
 
 Alembic::AbcGeom::ALEMBIC_VERSION_NS::ALEMBIC_ABCGEOM_DECLARE_SCHEMA_INFO ("AbcGeom_Camera_v1","",".geom", CameraSchemaInfo)
 
 Alembic::AbcGeom::ALEMBIC_VERSION_NS::ALEMBIC_ABCGEOM_DECLARE_SCHEMA_INFO ("AbcGeom_Curve_v2","AbcGeom_GeomBase_v1",".geom", CurvesSchemaInfo)
 
 Alembic::AbcGeom::ALEMBIC_VERSION_NS::ALEMBIC_ABCGEOM_DECLARE_SCHEMA_INFO ("AbcGeom_GeomBase_v1","",".geom", GeomBaseSchemaInfo)
 
 Alembic::AbcGeom::ALEMBIC_VERSION_NS::ALEMBIC_ABCGEOM_DECLARE_SCHEMA_INFO ("AbcGeom_Light_v1","",".geom", LightSchemaInfo)
 

Macro Definition Documentation

#define ALEMBIC_ABCGEOM_CAMERA_SCHEMA   (CameraSchemaInfo::title())

Definition at line 149 of file SchemaInfoDeclarations.h.

#define ALEMBIC_ABCGEOM_CURVE_SCHEMA   (CurvesSchemaInfo::title())

Definition at line 165 of file SchemaInfoDeclarations.h.

#define ALEMBIC_ABCGEOM_DECLARE_SCHEMA_INFO (   STITLE,
  SBTYP,
  SDFLT,
  STDEF 
)
Value:
struct STDEF \
{ \
static const char * title() { return ( STITLE ) ; } \
static const char * defaultName() { return ( SDFLT ); } \
static const char * schemaBaseType() { return ( SBTYP ); } \
}

With properties, specific flavors of properties are expressed via the TypedScalarProperty and the TypedArrayProperty. Compound Properties are more complex, and the specific flavors require a more complex treatment - That's what Schemas are. The CompoundProperty equivalent of a TypedArrayProperty or a TypedScalarProperty.

A Schema is a collection of grouped properties which implement some complex object, such as a poly mesh. In the simpelest, standard case, there will be a compound property at the top with a certain name, and inside the compound property will be some number of additional properties that implement the object. In the case of a poly mesh, these properties would include a list of vertices (a V3fArray), a list of indices (an Int32Array), and a list of "per-face counts" (also an Int32Array). Here is a macro for declaring SCHEMA_INFO It takes three arguments

  • the SchemaTitle( a string ),
  • the SchemaBaseType( a string ),
  • the DefaultSchemaName( a string )
  • the name of the SchemaInfo Type to be declared.
  • for example: ALEMBIC_ABCGEOM_DECLARE_SCHEMA_INFO( "AbcGeom_PolyMesh_v1", "AbcGeom_GeomBase_v1", ".geom", PolyMeshSchemaInfo );

Definition at line 74 of file SchemaInfoDeclarations.h.

#define ALEMBIC_ABCGEOM_LIGHT_SCHEMA   (LightSchemaInfo::title())

Definition at line 174 of file SchemaInfoDeclarations.h.

#define ALEMBIC_ABCGEOM_NUPATCH_SCHEMA   (NuPatchSchemaInfo::title())

Definition at line 103 of file SchemaInfoDeclarations.h.

#define ALEMBIC_ABCGEOM_PARITION_SCHEMA   (FaceSetSchemaInfo::title())

Definition at line 121 of file SchemaInfoDeclarations.h.

#define ALEMBIC_ABCGEOM_POINTS_SCHEMA   (PointsSchemaInfo::title())

Definition at line 131 of file SchemaInfoDeclarations.h.

#define ALEMBIC_ABCGEOM_POLYMESH_SCHEMA   (PolyMeshSchemaInfo::title())

Definition at line 94 of file SchemaInfoDeclarations.h.

#define ALEMBIC_ABCGEOM_SUBD_SCHEMA   (SubDSchemaInfo::title())

Definition at line 112 of file SchemaInfoDeclarations.h.

#define ALEMBIC_ABCGEOM_XFORM_SCHEMA   (XformSchemaInfo::title())

Definition at line 140 of file SchemaInfoDeclarations.h.