Notes concernant Alembic

Code

Aperçu des quelques classes récurrentes.

IPolyMesh

Un IPolyMesh est un typedef sur Abc::ISchemaObject<IPolyMeshSchema>.

ISchemaObject

Un ISchemaObject est une classe dérivée de IObject. Elle est défini dans Abc/ISchemaObject.h. Lien ici.

Traduction de la documentation :

Un ISchemaObject est un object avec un unique schéma. Il s’agit simplement d’une classe de commodité, mais elle s’occupe également de la configuration et de la validation des métadonnées.

Un IObject étant un objet pouvant être stocké physiquement dans un IArchive, je soupçonne que le ISchemaObject ne sert qu’à stocker un Schema.

IPolyMeshSchema, IGeomBaseSchema et ISchema

IPolyMeshSchema hérite de IGeomBaseSchema qui lui même hérite de ISchema.

L’explication d’un Shema est donné dans Abc/OSchema.h. Lien ici.

Traduction de la documentation :

Un Schema est un ensemble de propriétés groupées qui implémentent des objects plus complexes, tel qu’un poly mesh. Dans le cas le plus simple, il y a, tout en haut, une propriété composée avec un nom donné, et à l’intérieur de cette propriété composé, il y a des propriétés additionnelles implémentant l’objet. Dans le cas d’un poly mesh, ces propriétés seraient une list de vertices (V3fArray), une liste d’indices (Int32Array), et une liste de « nombre de points par face » (également dans un Int32Array).

IGeomBaseSchema (défini dans AbcGeom/IGeomBase.h, lien ici) est une classe contenant les propriétés communes à toutes les classes géométriques ayant un volume physique :

Cette classe est utilisé pour encapsuler les fonctionnalités communes des classes schema de géométrie ; IPoints, IPolyMesh, etc.

TimeSampling

Un TimeSampling fait la relation entre l’index d’un sample et sa valeur de temps (souvent en seconde). Lien ici.

Traduction de la documentation :

La classe TimeSampling sert à récupérer les valeurs de temps assosciés aux samples d’une propriété. Généralement, le sampling sera uniforme ou cyclique, dès lors il s’agit d’une interface algorithmique sur le petit tampon de temps samplé. Dans le cas d’un sampling acyclique, cette classe fait office d’accesseur au tableau de temps.

Cette classe est composé :

ArrayProperty

Les IInt32ArrayProperty, IP3fArrayProperty, et autre *ArrayProperty sont des ITypedArrayProperty définies dans Abc/ITypedArrayProperty.h. Lien ici.

Dernière mise à jour : mer. 27 janvier 2021