public static GeometryAttribute <int> GetAttributeSubGeoIndexOffset(this IGeometryAttributes self) => self.GetAttribute <int>(CommonAttributes.SubGeoIndexOffset);
public static GeometryAttribute <Matrix4x4> GetAttributeInstanceTransforms(this IGeometryAttributes self) => self.GetAttribute <Matrix4x4>(CommonAttributes.InstanceTransforms);
public static GeometryAttribute <Byte4> GetAttributeVertexColor8Bit(this IGeometryAttributes self) => self.GetAttribute <Byte4>(CommonAttributes.VertexColor8Bit);
public static GeometryAttribute <T> GetAttribute <T>(this IGeometryAttributes g, string attributeName) where T : unmanaged => g.GetAttribute(attributeName)?.AsType <T>();
public static GeometryAttribute <Vector3> GetAttributePosition(this IGeometryAttributes self) => self.GetAttribute <Vector3>(CommonAttributes.Position);
public static GeometryAttribute <Vector3> GetAttributeVertexNormal(this IGeometryAttributes self) => self.GetAttribute <Vector3>(CommonAttributes.VertexNormal);
public static GeometryAttribute <Vector4> GetAttributeMaterialColor(this IGeometryAttributes self) => self.GetAttribute <Vector4>(CommonAttributes.MaterialColor);
public static GeometryAttribute <int> GetAttributeObjectFaceSize(this IGeometryAttributes self) => self.GetAttribute <int>(CommonAttributes.ObjectFaceSize);
public static GeometryAttribute <int> GetAttributeShapeVertexOffset(this IGeometryAttributes self) => self.GetAttribute <int>(CommonAttributes.ShapeVertexOffset);
public static GeometryAttribute <float> GetAttributeShapeWidth(this IGeometryAttributes self) => self.GetAttribute <float>(CommonAttributes.ShapeWidth);
public static GeometryAttribute <Vector3> GetAttributeShapeVertex(this IGeometryAttributes self) => self.GetAttribute <Vector3>(CommonAttributes.ShapeVertex);
public static GeometryAttribute <int> GetAttributeMeshSubmeshOffset(this IGeometryAttributes self) => self.GetAttribute <int>(CommonAttributes.MeshSubmeshOffset);
public static GeometryAttribute GetOrDefaultAttribute(this IGeometryAttributes self, AttributeDescriptor desc) => self.GetAttribute(desc.ToString()) ?? desc.ToDefaultAttribute(self.ExpectedElementCount(desc));
public static GeometryAttribute <int> GetAttributeInstanceGeometries(this IGeometryAttributes self) => self.GetAttribute <int>(CommonAttributes.InstanceGeometries);
public static GeometryAttribute <float> GetAttributeMaterialSmoothness(this IGeometryAttributes self) => self.GetAttribute <float>(CommonAttributes.MaterialSmoothness);
public static GeometryAttribute <Vector3> GetAttributeLineTangentOut(this IGeometryAttributes self) => self.GetAttribute <Vector3>(CommonAttributes.LineTangentOut);
public static GeometryAttribute <int> GetAttributeSubmeshMaterial(this IGeometryAttributes self) => self.GetAttribute <int>(CommonAttributes.SubmeshMaterial);
public static GeometryAttribute <int> GetAttributeIndex(this IGeometryAttributes self) => self.GetAttribute <int>(CommonAttributes.Index);
public static GeometryAttribute <float> GetAttributeVertexSelectionWeight(this IGeometryAttributes self) => self.GetAttribute <float>(CommonAttributes.VertexSelectionWeight);
public static GeometryAttribute <Vector2> GetAttributeVertexUv(this IGeometryAttributes self) => self.GetAttribute <Vector2>(CommonAttributes.VertexUv);
public static GeometryAttribute <int> GetAttributeFaceMaterialId(this IGeometryAttributes self) => self.GetAttribute <int>(CommonAttributes.FaceMaterialId);
public static GeometryAttribute <Vector4> GetAttributeVertexColor(this IGeometryAttributes self) => self.GetAttribute <Vector4>(CommonAttributes.VertexColor);
public static GeometryAttribute <int> GetAttributeFaceGroup(this IGeometryAttributes self) => self.GetAttribute <int>(CommonAttributes.FaceGroup);
public static GeometryAttribute <Vector4> GetAttributeVertexTangent(this IGeometryAttributes self) => self.GetAttribute <Vector4>(CommonAttributes.VertexTangent);
public static GeometryAttribute GetAttributeOrDefault(this IGeometryAttributes g, string name) => g.GetAttribute(name) ?? g.DefaultAttribute(name);