|
|
@@ -6,13 +6,14 @@ using System.Reflection;
|
|
|
|
|
|
using OneOf;
|
|
|
|
|
|
-namespace SharpGLTF.Schema2.Tiles3D
|
|
|
+namespace SharpGLTF.Schema2
|
|
|
{
|
|
|
using Collections;
|
|
|
using Memory;
|
|
|
using Validation;
|
|
|
+ using Tiles3D;
|
|
|
|
|
|
- using METADATAORURI = OneOf<StructuralMetadataSchema, Uri>;
|
|
|
+ using METADATAORURI = OneOf<Tiles3D.StructuralMetadataSchema, Uri>;
|
|
|
|
|
|
partial class Tiles3DExtensions
|
|
|
{
|
|
|
@@ -138,686 +139,689 @@ METADATAORURI schema)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public partial class EXTStructuralMetadataRoot
|
|
|
+ namespace Tiles3D
|
|
|
{
|
|
|
- #region lifecycle
|
|
|
-
|
|
|
- internal EXTStructuralMetadataRoot(ModelRoot modelRoot)
|
|
|
+ public partial class EXTStructuralMetadataRoot
|
|
|
{
|
|
|
- this.modelRoot = modelRoot;
|
|
|
- _propertyTables = new ChildrenList<PropertyTable, EXTStructuralMetadataRoot>(this);
|
|
|
- _propertyAttributes = new ChildrenList<PropertyAttribute, EXTStructuralMetadataRoot>(this);
|
|
|
- _propertyTextures = new ChildrenList<PropertyTexture, EXTStructuralMetadataRoot>(this);
|
|
|
- }
|
|
|
+ #region lifecycle
|
|
|
|
|
|
- protected override IEnumerable<ExtraProperties> GetLogicalChildren()
|
|
|
- {
|
|
|
- var items = base.GetLogicalChildren()
|
|
|
- .Concat(_propertyTables)
|
|
|
- .Concat(_propertyAttributes)
|
|
|
- .Concat(_propertyTextures);
|
|
|
+ internal EXTStructuralMetadataRoot(ModelRoot modelRoot)
|
|
|
+ {
|
|
|
+ this.modelRoot = modelRoot;
|
|
|
+ _propertyTables = new ChildrenList<PropertyTable, EXTStructuralMetadataRoot>(this);
|
|
|
+ _propertyAttributes = new ChildrenList<PropertyAttribute, EXTStructuralMetadataRoot>(this);
|
|
|
+ _propertyTextures = new ChildrenList<PropertyTexture, EXTStructuralMetadataRoot>(this);
|
|
|
+ }
|
|
|
|
|
|
- if (Schema != null) items = items.Append(Schema);
|
|
|
+ protected override IEnumerable<ExtraProperties> GetLogicalChildren()
|
|
|
+ {
|
|
|
+ var items = base.GetLogicalChildren()
|
|
|
+ .Concat(_propertyTables)
|
|
|
+ .Concat(_propertyAttributes)
|
|
|
+ .Concat(_propertyTextures);
|
|
|
|
|
|
- return items;
|
|
|
- }
|
|
|
+ if (Schema != null) items = items.Append(Schema);
|
|
|
|
|
|
- #endregion
|
|
|
+ return items;
|
|
|
+ }
|
|
|
|
|
|
- #region data
|
|
|
+ #endregion
|
|
|
|
|
|
- private ModelRoot modelRoot;
|
|
|
+ #region data
|
|
|
|
|
|
- #endregion
|
|
|
+ private ModelRoot modelRoot;
|
|
|
|
|
|
- #region properties
|
|
|
+ #endregion
|
|
|
|
|
|
- internal string SchemaUri
|
|
|
- {
|
|
|
- get => _schemaUri;
|
|
|
- set { _schemaUri = value; }
|
|
|
- }
|
|
|
+ #region properties
|
|
|
|
|
|
- internal StructuralMetadataSchema Schema
|
|
|
- {
|
|
|
- get => _schema;
|
|
|
- set { GetChildSetter(this).SetListProperty(ref _schema, value); }
|
|
|
- }
|
|
|
+ internal string SchemaUri
|
|
|
+ {
|
|
|
+ get => _schemaUri;
|
|
|
+ set { _schemaUri = value; }
|
|
|
+ }
|
|
|
|
|
|
- internal IReadOnlyList<PropertyTable> PropertyTables => _propertyTables;
|
|
|
- internal IReadOnlyList<PropertyAttribute> PropertyAttributes => _propertyAttributes;
|
|
|
- internal IReadOnlyList<PropertyTexture> PropertyTextures => _propertyTextures;
|
|
|
+ internal StructuralMetadataSchema Schema
|
|
|
+ {
|
|
|
+ get => _schema;
|
|
|
+ set { GetChildSetter(this).SetListProperty(ref _schema, value); }
|
|
|
+ }
|
|
|
|
|
|
- #endregion
|
|
|
+ internal IReadOnlyList<PropertyTable> PropertyTables => _propertyTables;
|
|
|
+ internal IReadOnlyList<PropertyAttribute> PropertyAttributes => _propertyAttributes;
|
|
|
+ internal IReadOnlyList<PropertyTexture> PropertyTextures => _propertyTextures;
|
|
|
|
|
|
- #region API
|
|
|
+ #endregion
|
|
|
|
|
|
- internal void AddSchema(METADATAORURI schema)
|
|
|
- {
|
|
|
- schema.Switch(
|
|
|
- StructuralMetadataSchema => _schema = StructuralMetadataSchema,
|
|
|
- Uri => this.SchemaUri = Uri.ToString()
|
|
|
- );
|
|
|
- }
|
|
|
+ #region API
|
|
|
|
|
|
- #endregion
|
|
|
+ internal void AddSchema(METADATAORURI schema)
|
|
|
+ {
|
|
|
+ schema.Switch(
|
|
|
+ StructuralMetadataSchema => _schema = StructuralMetadataSchema,
|
|
|
+ Uri => this.SchemaUri = Uri.ToString()
|
|
|
+ );
|
|
|
+ }
|
|
|
|
|
|
- #region validation
|
|
|
+ #endregion
|
|
|
|
|
|
- protected override void OnValidateReferences(ValidationContext validate)
|
|
|
- {
|
|
|
- foreach (var propertyTexture in PropertyTextures)
|
|
|
+ #region validation
|
|
|
+
|
|
|
+ protected override void OnValidateReferences(ValidationContext validate)
|
|
|
{
|
|
|
- foreach (var propertyTextureProperty in propertyTexture.Properties)
|
|
|
+ foreach (var propertyTexture in PropertyTextures)
|
|
|
{
|
|
|
- var textureId = propertyTextureProperty.Value.LogicalTextureIndex;
|
|
|
- validate.IsNullOrIndex(nameof(propertyTexture), textureId, modelRoot.LogicalTextures);
|
|
|
+ foreach (var propertyTextureProperty in propertyTexture.Properties)
|
|
|
+ {
|
|
|
+ var textureId = propertyTextureProperty.Value.LogicalTextureIndex;
|
|
|
+ validate.IsNullOrIndex(nameof(propertyTexture), textureId, modelRoot.LogicalTextures);
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
-
|
|
|
- foreach (var propertyTable in PropertyTables)
|
|
|
- {
|
|
|
- Guard.NotNull(Schema.Classes[propertyTable.Class], nameof(propertyTable.Class), $"Schema must have class {propertyTable.Class}");
|
|
|
|
|
|
- foreach (var property in propertyTable.Properties)
|
|
|
+ foreach (var propertyTable in PropertyTables)
|
|
|
{
|
|
|
- Guard.NotNull(Schema.Classes[propertyTable.Class].Properties[property.Key], nameof(property.Key), $"Schema must have property {property.Key}");
|
|
|
+ Guard.NotNull(Schema.Classes[propertyTable.Class], nameof(propertyTable.Class), $"Schema must have class {propertyTable.Class}");
|
|
|
|
|
|
- var values = property.Value.Values;
|
|
|
- validate.IsNullOrIndex(nameof(propertyTable), values, modelRoot.LogicalBufferViews);
|
|
|
-
|
|
|
- if (property.Value.ArrayOffsets.HasValue)
|
|
|
+ foreach (var property in propertyTable.Properties)
|
|
|
{
|
|
|
- var arrayOffsets = property.Value.ArrayOffsets.Value;
|
|
|
- validate.IsNullOrIndex(nameof(propertyTable), arrayOffsets, modelRoot.LogicalBufferViews);
|
|
|
- }
|
|
|
+ Guard.NotNull(Schema.Classes[propertyTable.Class].Properties[property.Key], nameof(property.Key), $"Schema must have property {property.Key}");
|
|
|
|
|
|
- if (property.Value.StringOffsets.HasValue)
|
|
|
- {
|
|
|
- var stringOffsets = property.Value.StringOffsets.Value;
|
|
|
- validate.IsNullOrIndex(nameof(propertyTable), stringOffsets, modelRoot.LogicalBufferViews);
|
|
|
+ var values = property.Value.Values;
|
|
|
+ validate.IsNullOrIndex(nameof(propertyTable), values, modelRoot.LogicalBufferViews);
|
|
|
+
|
|
|
+ if (property.Value.ArrayOffsets.HasValue)
|
|
|
+ {
|
|
|
+ var arrayOffsets = property.Value.ArrayOffsets.Value;
|
|
|
+ validate.IsNullOrIndex(nameof(propertyTable), arrayOffsets, modelRoot.LogicalBufferViews);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (property.Value.StringOffsets.HasValue)
|
|
|
+ {
|
|
|
+ var stringOffsets = property.Value.StringOffsets.Value;
|
|
|
+ validate.IsNullOrIndex(nameof(propertyTable), stringOffsets, modelRoot.LogicalBufferViews);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- if (Schema != null)
|
|
|
- {
|
|
|
- foreach (var @class in Schema.Classes)
|
|
|
+ if (Schema != null)
|
|
|
{
|
|
|
- foreach (var property in @class.Value.Properties)
|
|
|
+ foreach (var @class in Schema.Classes)
|
|
|
{
|
|
|
- if (property.Value.Type == ElementType.ENUM)
|
|
|
+ foreach (var property in @class.Value.Properties)
|
|
|
{
|
|
|
- Guard.IsTrue(Schema.Enums.ContainsKey(property.Value.EnumType), nameof(property.Value.EnumType), $"Enum {property.Value.EnumType} must be defined in schema");
|
|
|
+ if (property.Value.Type == ElementType.ENUM)
|
|
|
+ {
|
|
|
+ Guard.IsTrue(Schema.Enums.ContainsKey(property.Value.EnumType), nameof(property.Value.EnumType), $"Enum {property.Value.EnumType} must be defined in schema");
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- base.OnValidateReferences(validate);
|
|
|
- }
|
|
|
+ base.OnValidateReferences(validate);
|
|
|
+ }
|
|
|
|
|
|
- protected override void OnValidateContent(ValidationContext result)
|
|
|
- {
|
|
|
- // check schema id is defined and valid
|
|
|
- if (Schema != null && !String.IsNullOrEmpty(Schema.Id))
|
|
|
+ protected override void OnValidateContent(ValidationContext result)
|
|
|
{
|
|
|
- var regex = "^[a-zA-Z_][a-zA-Z0-9_]*$";
|
|
|
- Guard.IsTrue(System.Text.RegularExpressions.Regex.IsMatch(Schema.Id, regex), nameof(Schema.Id));
|
|
|
-
|
|
|
-
|
|
|
- foreach(var _class in Schema.Classes)
|
|
|
+ // check schema id is defined and valid
|
|
|
+ if (Schema != null && !String.IsNullOrEmpty(Schema.Id))
|
|
|
{
|
|
|
- Guard.IsTrue(System.Text.RegularExpressions.Regex.IsMatch(_class.Key, regex), nameof(_class.Key));
|
|
|
+ var regex = "^[a-zA-Z_][a-zA-Z0-9_]*$";
|
|
|
+ Guard.IsTrue(System.Text.RegularExpressions.Regex.IsMatch(Schema.Id, regex), nameof(Schema.Id));
|
|
|
+
|
|
|
|
|
|
- foreach(var property in _class.Value.Properties)
|
|
|
+ foreach (var _class in Schema.Classes)
|
|
|
{
|
|
|
- if (property.Value.Count.HasValue)
|
|
|
+ Guard.IsTrue(System.Text.RegularExpressions.Regex.IsMatch(_class.Key, regex), nameof(_class.Key));
|
|
|
+
|
|
|
+ foreach (var property in _class.Value.Properties)
|
|
|
{
|
|
|
- Guard.MustBeGreaterThanOrEqualTo(property.Value.Count.Value, 2, nameof(property.Value.Count));
|
|
|
+ if (property.Value.Count.HasValue)
|
|
|
+ {
|
|
|
+ Guard.MustBeGreaterThanOrEqualTo(property.Value.Count.Value, 2, nameof(property.Value.Count));
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- foreach (var propertyTexture in PropertyTextures)
|
|
|
- {
|
|
|
- foreach (var propertyTextureProperty in propertyTexture.Properties)
|
|
|
+ foreach (var propertyTexture in PropertyTextures)
|
|
|
{
|
|
|
- var texCoord = propertyTextureProperty.Value.TextureCoordinate;
|
|
|
- var channels = propertyTextureProperty.Value.Channels;
|
|
|
- var index = propertyTextureProperty.Value.LogicalTextureIndex;
|
|
|
- Guard.MustBeGreaterThanOrEqualTo(texCoord, 0, nameof(texCoord));
|
|
|
- Guard.IsTrue(channels.Count > 0, nameof(channels), "Channels must be defined");
|
|
|
- Guard.IsTrue(index >= 0, nameof(index), "Index must be defined");
|
|
|
+ foreach (var propertyTextureProperty in propertyTexture.Properties)
|
|
|
+ {
|
|
|
+ var texCoord = propertyTextureProperty.Value.TextureCoordinate;
|
|
|
+ var channels = propertyTextureProperty.Value.Channels;
|
|
|
+ var index = propertyTextureProperty.Value.LogicalTextureIndex;
|
|
|
+ Guard.MustBeGreaterThanOrEqualTo(texCoord, 0, nameof(texCoord));
|
|
|
+ Guard.IsTrue(channels.Count > 0, nameof(channels), "Channels must be defined");
|
|
|
+ Guard.IsTrue(index >= 0, nameof(index), "Index must be defined");
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
-
|
|
|
- foreach (var propertyTable in PropertyTables)
|
|
|
- {
|
|
|
- Guard.IsTrue(propertyTable.Class != null, nameof(propertyTable.Class), "Class must be defined");
|
|
|
- Guard.IsTrue(propertyTable.Count > 0, nameof(propertyTable.Count), "Count must be greater than 0");
|
|
|
- Guard.IsTrue(propertyTable.Properties.Count > 0, nameof(propertyTable.Properties), "Properties must be defined");
|
|
|
- }
|
|
|
|
|
|
- // Check one of schema or schemaUri is defined, but not both
|
|
|
- Guard.IsFalse(Schema != null && SchemaUri != null, "Schema/SchemaUri", "Schema and SchemaUri cannot both be defined");
|
|
|
- Guard.IsFalse(Schema == null && SchemaUri == null, "Schema/SchemaUri", "One of Schema and SchemaUri must be defined");
|
|
|
+ foreach (var propertyTable in PropertyTables)
|
|
|
+ {
|
|
|
+ Guard.IsTrue(propertyTable.Class != null, nameof(propertyTable.Class), "Class must be defined");
|
|
|
+ Guard.IsTrue(propertyTable.Count > 0, nameof(propertyTable.Count), "Count must be greater than 0");
|
|
|
+ Guard.IsTrue(propertyTable.Properties.Count > 0, nameof(propertyTable.Properties), "Properties must be defined");
|
|
|
+ }
|
|
|
|
|
|
- base.OnValidateContent(result);
|
|
|
- }
|
|
|
+ // Check one of schema or schemaUri is defined, but not both
|
|
|
+ Guard.IsFalse(Schema != null && SchemaUri != null, "Schema/SchemaUri", "Schema and SchemaUri cannot both be defined");
|
|
|
+ Guard.IsFalse(Schema == null && SchemaUri == null, "Schema/SchemaUri", "One of Schema and SchemaUri must be defined");
|
|
|
|
|
|
- #endregion
|
|
|
- }
|
|
|
+ base.OnValidateContent(result);
|
|
|
+ }
|
|
|
|
|
|
- public partial class PropertyTexture : IChildOfList<EXTStructuralMetadataRoot>
|
|
|
- {
|
|
|
- #region lifecycle
|
|
|
- public PropertyTexture()
|
|
|
- {
|
|
|
- _properties = new ChildrenDictionary<PropertyTextureProperty, PropertyTexture>(this);
|
|
|
+ #endregion
|
|
|
}
|
|
|
|
|
|
- protected override IEnumerable<ExtraProperties> GetLogicalChildren()
|
|
|
+ public partial class PropertyTexture : IChildOfList<EXTStructuralMetadataRoot>
|
|
|
{
|
|
|
- return base.GetLogicalChildren()
|
|
|
- .Concat(_properties.Values);
|
|
|
- }
|
|
|
+ #region lifecycle
|
|
|
+ public PropertyTexture()
|
|
|
+ {
|
|
|
+ _properties = new ChildrenDictionary<PropertyTextureProperty, PropertyTexture>(this);
|
|
|
+ }
|
|
|
|
|
|
- #endregion
|
|
|
+ protected override IEnumerable<ExtraProperties> GetLogicalChildren()
|
|
|
+ {
|
|
|
+ return base.GetLogicalChildren()
|
|
|
+ .Concat(_properties.Values);
|
|
|
+ }
|
|
|
|
|
|
- #region child properties
|
|
|
+ #endregion
|
|
|
|
|
|
- public int LogicalIndex { get; private set; } = -1;
|
|
|
-
|
|
|
- public EXTStructuralMetadataRoot LogicalParent { get; private set; }
|
|
|
+ #region child properties
|
|
|
|
|
|
- void IChildOfList<EXTStructuralMetadataRoot>.SetLogicalParent(EXTStructuralMetadataRoot parent, int index)
|
|
|
- {
|
|
|
- LogicalParent = parent;
|
|
|
- LogicalIndex = index;
|
|
|
- }
|
|
|
+ public int LogicalIndex { get; private set; } = -1;
|
|
|
|
|
|
- #endregion
|
|
|
+ public EXTStructuralMetadataRoot LogicalParent { get; private set; }
|
|
|
|
|
|
- #region properties
|
|
|
+ void IChildOfList<EXTStructuralMetadataRoot>.SetLogicalParent(EXTStructuralMetadataRoot parent, int index)
|
|
|
+ {
|
|
|
+ LogicalParent = parent;
|
|
|
+ LogicalIndex = index;
|
|
|
+ }
|
|
|
|
|
|
- public string ClassName
|
|
|
- {
|
|
|
- get => _class;
|
|
|
- set => _class = value;
|
|
|
- }
|
|
|
+ #endregion
|
|
|
|
|
|
- public IReadOnlyDictionary<string, PropertyTextureProperty> Properties => _properties;
|
|
|
+ #region properties
|
|
|
|
|
|
- #endregion
|
|
|
- }
|
|
|
+ public string ClassName
|
|
|
+ {
|
|
|
+ get => _class;
|
|
|
+ set => _class = value;
|
|
|
+ }
|
|
|
|
|
|
- public partial class PropertyTextureProperty : IChildOfDictionary<PropertyTexture>
|
|
|
- {
|
|
|
- #region lifecycle
|
|
|
- public PropertyTextureProperty()
|
|
|
- {
|
|
|
- _channels = new List<int>();
|
|
|
+ public IReadOnlyDictionary<string, PropertyTextureProperty> Properties => _properties;
|
|
|
+
|
|
|
+ #endregion
|
|
|
}
|
|
|
|
|
|
- #endregion
|
|
|
+ public partial class PropertyTextureProperty : IChildOfDictionary<PropertyTexture>
|
|
|
+ {
|
|
|
+ #region lifecycle
|
|
|
+ public PropertyTextureProperty()
|
|
|
+ {
|
|
|
+ _channels = new List<int>();
|
|
|
+ }
|
|
|
|
|
|
- #region child properties
|
|
|
+ #endregion
|
|
|
|
|
|
- public string LogicalKey { get; private set; }
|
|
|
+ #region child properties
|
|
|
|
|
|
- public PropertyTexture LogicalParent { get; private set; }
|
|
|
+ public string LogicalKey { get; private set; }
|
|
|
|
|
|
- void IChildOfDictionary<PropertyTexture>.SetLogicalParent(PropertyTexture parent, string key)
|
|
|
- {
|
|
|
- LogicalParent = parent;
|
|
|
- LogicalKey = key;
|
|
|
- }
|
|
|
+ public PropertyTexture LogicalParent { get; private set; }
|
|
|
|
|
|
- #endregion
|
|
|
+ void IChildOfDictionary<PropertyTexture>.SetLogicalParent(PropertyTexture parent, string key)
|
|
|
+ {
|
|
|
+ LogicalParent = parent;
|
|
|
+ LogicalKey = key;
|
|
|
+ }
|
|
|
|
|
|
- #region data
|
|
|
+ #endregion
|
|
|
|
|
|
- public List<int> Channels => _channels;
|
|
|
+ #region data
|
|
|
|
|
|
- #endregion
|
|
|
- }
|
|
|
+ public List<int> Channels => _channels;
|
|
|
|
|
|
- public partial class PropertyAttribute : IChildOfList<EXTStructuralMetadataRoot>
|
|
|
- {
|
|
|
- #region lifecycle
|
|
|
- public PropertyAttribute()
|
|
|
- {
|
|
|
- _properties = new ChildrenDictionary<PropertyAttributeProperty, PropertyAttribute>(this);
|
|
|
+ #endregion
|
|
|
}
|
|
|
|
|
|
- protected override IEnumerable<ExtraProperties> GetLogicalChildren()
|
|
|
+ public partial class PropertyAttribute : IChildOfList<EXTStructuralMetadataRoot>
|
|
|
{
|
|
|
- return base.GetLogicalChildren()
|
|
|
- .Concat(_properties.Values);
|
|
|
- }
|
|
|
+ #region lifecycle
|
|
|
+ public PropertyAttribute()
|
|
|
+ {
|
|
|
+ _properties = new ChildrenDictionary<PropertyAttributeProperty, PropertyAttribute>(this);
|
|
|
+ }
|
|
|
|
|
|
- #endregion
|
|
|
+ protected override IEnumerable<ExtraProperties> GetLogicalChildren()
|
|
|
+ {
|
|
|
+ return base.GetLogicalChildren()
|
|
|
+ .Concat(_properties.Values);
|
|
|
+ }
|
|
|
|
|
|
- #region child properties
|
|
|
+ #endregion
|
|
|
|
|
|
- /// <summary>
|
|
|
- /// Gets the zero-based index of this <see cref="MeshExtInstanceFeatureID"/> at <see cref="MeshExtInstanceFeatures.FeatureIds"/>.
|
|
|
- /// </summary>
|
|
|
- public int LogicalIndex { get; private set; } = -1;
|
|
|
+ #region child properties
|
|
|
|
|
|
- /// <summary>
|
|
|
- /// Gets the <see cref="MeshExtInstanceFeatures"/> instance that owns this <see cref="MeshExtInstanceFeatureID"/> instance.
|
|
|
- /// </summary>
|
|
|
- public EXTStructuralMetadataRoot LogicalParent { get; private set; }
|
|
|
+ /// <summary>
|
|
|
+ /// Gets the zero-based index of this <see cref="MeshExtInstanceFeatureID"/> at <see cref="MeshExtInstanceFeatures.FeatureIds"/>.
|
|
|
+ /// </summary>
|
|
|
+ public int LogicalIndex { get; private set; } = -1;
|
|
|
|
|
|
- void IChildOfList<EXTStructuralMetadataRoot>.SetLogicalParent(EXTStructuralMetadataRoot parent, int index)
|
|
|
- {
|
|
|
- LogicalParent = parent;
|
|
|
- LogicalIndex = index;
|
|
|
- }
|
|
|
+ /// <summary>
|
|
|
+ /// Gets the <see cref="MeshExtInstanceFeatures"/> instance that owns this <see cref="MeshExtInstanceFeatureID"/> instance.
|
|
|
+ /// </summary>
|
|
|
+ public EXTStructuralMetadataRoot LogicalParent { get; private set; }
|
|
|
|
|
|
- #endregion
|
|
|
+ void IChildOfList<EXTStructuralMetadataRoot>.SetLogicalParent(EXTStructuralMetadataRoot parent, int index)
|
|
|
+ {
|
|
|
+ LogicalParent = parent;
|
|
|
+ LogicalIndex = index;
|
|
|
+ }
|
|
|
|
|
|
- #region properties
|
|
|
- public string Class
|
|
|
- {
|
|
|
- get => _class;
|
|
|
- set => _class = value;
|
|
|
- }
|
|
|
+ #endregion
|
|
|
|
|
|
- public IReadOnlyDictionary<string, PropertyAttributeProperty> Properties => _properties;
|
|
|
+ #region properties
|
|
|
+ public string Class
|
|
|
+ {
|
|
|
+ get => _class;
|
|
|
+ set => _class = value;
|
|
|
+ }
|
|
|
|
|
|
- #endregion
|
|
|
+ public IReadOnlyDictionary<string, PropertyAttributeProperty> Properties => _properties;
|
|
|
|
|
|
- }
|
|
|
+ #endregion
|
|
|
|
|
|
- public partial class PropertyAttributeProperty : IChildOfDictionary<PropertyAttribute>
|
|
|
- {
|
|
|
- #region child properties
|
|
|
+ }
|
|
|
|
|
|
- public string LogicalKey { get; private set; }
|
|
|
+ public partial class PropertyAttributeProperty : IChildOfDictionary<PropertyAttribute>
|
|
|
+ {
|
|
|
+ #region child properties
|
|
|
|
|
|
- public PropertyAttribute LogicalParent { get; private set; }
|
|
|
+ public string LogicalKey { get; private set; }
|
|
|
|
|
|
- void IChildOfDictionary<PropertyAttribute>.SetLogicalParent(PropertyAttribute parent, string key)
|
|
|
- {
|
|
|
- LogicalParent = parent;
|
|
|
- LogicalKey = key;
|
|
|
- }
|
|
|
+ public PropertyAttribute LogicalParent { get; private set; }
|
|
|
|
|
|
- #endregion
|
|
|
+ void IChildOfDictionary<PropertyAttribute>.SetLogicalParent(PropertyAttribute parent, string key)
|
|
|
+ {
|
|
|
+ LogicalParent = parent;
|
|
|
+ LogicalKey = key;
|
|
|
+ }
|
|
|
|
|
|
- #region properties
|
|
|
+ #endregion
|
|
|
|
|
|
- public string Attribute
|
|
|
- {
|
|
|
- get => _attribute;
|
|
|
- set => _attribute = value;
|
|
|
- }
|
|
|
+ #region properties
|
|
|
|
|
|
- #endregion
|
|
|
- }
|
|
|
+ public string Attribute
|
|
|
+ {
|
|
|
+ get => _attribute;
|
|
|
+ set => _attribute = value;
|
|
|
+ }
|
|
|
|
|
|
- public partial class StructuralMetadataSchema : IChildOfList<EXTStructuralMetadataRoot>
|
|
|
- {
|
|
|
- #region lifecycle
|
|
|
- public StructuralMetadataSchema()
|
|
|
- {
|
|
|
- _classes = new ChildrenDictionary<StructuralMetadataClass, StructuralMetadataSchema>(this);
|
|
|
- _enums = new ChildrenDictionary<StructuralMetadataEnum, StructuralMetadataSchema>(this);
|
|
|
+ #endregion
|
|
|
}
|
|
|
|
|
|
- protected override IEnumerable<ExtraProperties> GetLogicalChildren()
|
|
|
+ public partial class StructuralMetadataSchema : IChildOfList<EXTStructuralMetadataRoot>
|
|
|
{
|
|
|
- return base.GetLogicalChildren()
|
|
|
- .Concat(_classes.Values)
|
|
|
- .Concat(_enums.Values);
|
|
|
- }
|
|
|
+ #region lifecycle
|
|
|
+ public StructuralMetadataSchema()
|
|
|
+ {
|
|
|
+ _classes = new ChildrenDictionary<StructuralMetadataClass, StructuralMetadataSchema>(this);
|
|
|
+ _enums = new ChildrenDictionary<StructuralMetadataEnum, StructuralMetadataSchema>(this);
|
|
|
+ }
|
|
|
|
|
|
- #endregion
|
|
|
+ protected override IEnumerable<ExtraProperties> GetLogicalChildren()
|
|
|
+ {
|
|
|
+ return base.GetLogicalChildren()
|
|
|
+ .Concat(_classes.Values)
|
|
|
+ .Concat(_enums.Values);
|
|
|
+ }
|
|
|
|
|
|
- #region child properties
|
|
|
+ #endregion
|
|
|
|
|
|
- public int LogicalIndex { get; private set; } = -1;
|
|
|
+ #region child properties
|
|
|
|
|
|
- public EXTStructuralMetadataRoot LogicalParent { get; private set; }
|
|
|
+ public int LogicalIndex { get; private set; } = -1;
|
|
|
|
|
|
- void IChildOfList<EXTStructuralMetadataRoot>.SetLogicalParent(EXTStructuralMetadataRoot parent, int index)
|
|
|
- {
|
|
|
- LogicalParent = parent;
|
|
|
- LogicalIndex = index;
|
|
|
- }
|
|
|
+ public EXTStructuralMetadataRoot LogicalParent { get; private set; }
|
|
|
|
|
|
- #endregion
|
|
|
+ void IChildOfList<EXTStructuralMetadataRoot>.SetLogicalParent(EXTStructuralMetadataRoot parent, int index)
|
|
|
+ {
|
|
|
+ LogicalParent = parent;
|
|
|
+ LogicalIndex = index;
|
|
|
+ }
|
|
|
|
|
|
- #region properties
|
|
|
+ #endregion
|
|
|
|
|
|
- public IReadOnlyDictionary<string, StructuralMetadataClass> Classes => _classes;
|
|
|
- public IReadOnlyDictionary<string, StructuralMetadataEnum> Enums => _enums;
|
|
|
+ #region properties
|
|
|
|
|
|
- public string Id
|
|
|
- {
|
|
|
- get => _id;
|
|
|
- set => _id = value;
|
|
|
- }
|
|
|
+ public IReadOnlyDictionary<string, StructuralMetadataClass> Classes => _classes;
|
|
|
+ public IReadOnlyDictionary<string, StructuralMetadataEnum> Enums => _enums;
|
|
|
|
|
|
- public string Version
|
|
|
- {
|
|
|
- get => _version;
|
|
|
- set => _version = value;
|
|
|
- }
|
|
|
+ public string Id
|
|
|
+ {
|
|
|
+ get => _id;
|
|
|
+ set => _id = value;
|
|
|
+ }
|
|
|
|
|
|
- public string Name
|
|
|
- {
|
|
|
- get => _name;
|
|
|
- set => _name = value;
|
|
|
- }
|
|
|
+ public string Version
|
|
|
+ {
|
|
|
+ get => _version;
|
|
|
+ set => _version = value;
|
|
|
+ }
|
|
|
|
|
|
- public string Description
|
|
|
- {
|
|
|
- get => _description;
|
|
|
- set => _description = value;
|
|
|
- }
|
|
|
+ public string Name
|
|
|
+ {
|
|
|
+ get => _name;
|
|
|
+ set => _name = value;
|
|
|
+ }
|
|
|
|
|
|
- #endregion
|
|
|
- }
|
|
|
+ public string Description
|
|
|
+ {
|
|
|
+ get => _description;
|
|
|
+ set => _description = value;
|
|
|
+ }
|
|
|
|
|
|
- public partial class StructuralMetadataEnum : IChildOfDictionary<StructuralMetadataSchema>
|
|
|
- {
|
|
|
- #region lifecycle
|
|
|
- public StructuralMetadataEnum()
|
|
|
- {
|
|
|
- _values = new List<EnumValue>();
|
|
|
+ #endregion
|
|
|
}
|
|
|
|
|
|
- #endregion
|
|
|
+ public partial class StructuralMetadataEnum : IChildOfDictionary<StructuralMetadataSchema>
|
|
|
+ {
|
|
|
+ #region lifecycle
|
|
|
+ public StructuralMetadataEnum()
|
|
|
+ {
|
|
|
+ _values = new List<EnumValue>();
|
|
|
+ }
|
|
|
|
|
|
- #region child properties
|
|
|
+ #endregion
|
|
|
|
|
|
- public string LogicalKey { get; private set; }
|
|
|
+ #region child properties
|
|
|
|
|
|
- public StructuralMetadataSchema LogicalParent { get; private set; }
|
|
|
+ public string LogicalKey { get; private set; }
|
|
|
|
|
|
- void IChildOfDictionary<StructuralMetadataSchema>.SetLogicalParent(StructuralMetadataSchema parent, string key)
|
|
|
- {
|
|
|
- LogicalParent = parent;
|
|
|
- LogicalKey = key;
|
|
|
- }
|
|
|
+ public StructuralMetadataSchema LogicalParent { get; private set; }
|
|
|
|
|
|
- #endregion
|
|
|
+ void IChildOfDictionary<StructuralMetadataSchema>.SetLogicalParent(StructuralMetadataSchema parent, string key)
|
|
|
+ {
|
|
|
+ LogicalParent = parent;
|
|
|
+ LogicalKey = key;
|
|
|
+ }
|
|
|
|
|
|
- #region properties
|
|
|
+ #endregion
|
|
|
|
|
|
- public string Name
|
|
|
- {
|
|
|
- get => _name;
|
|
|
- set => _name = value;
|
|
|
- }
|
|
|
- public string Description
|
|
|
- {
|
|
|
- get => _description;
|
|
|
- set => _description = value;
|
|
|
- }
|
|
|
- public List<EnumValue> Values
|
|
|
- {
|
|
|
- get => _values;
|
|
|
- set => _values = value;
|
|
|
- }
|
|
|
+ #region properties
|
|
|
|
|
|
- #endregion
|
|
|
- }
|
|
|
+ public string Name
|
|
|
+ {
|
|
|
+ get => _name;
|
|
|
+ set => _name = value;
|
|
|
+ }
|
|
|
+ public string Description
|
|
|
+ {
|
|
|
+ get => _description;
|
|
|
+ set => _description = value;
|
|
|
+ }
|
|
|
+ public List<EnumValue> Values
|
|
|
+ {
|
|
|
+ get => _values;
|
|
|
+ set => _values = value;
|
|
|
+ }
|
|
|
|
|
|
- public partial class EnumValue
|
|
|
- {
|
|
|
- public string Description
|
|
|
- {
|
|
|
- get => _description;
|
|
|
- set => _description = value;
|
|
|
+ #endregion
|
|
|
}
|
|
|
- public string Name
|
|
|
+
|
|
|
+ public partial class EnumValue
|
|
|
{
|
|
|
- get => _name;
|
|
|
- set => _name = value;
|
|
|
+ public string Description
|
|
|
+ {
|
|
|
+ get => _description;
|
|
|
+ set => _description = value;
|
|
|
+ }
|
|
|
+ public string Name
|
|
|
+ {
|
|
|
+ get => _name;
|
|
|
+ set => _name = value;
|
|
|
+ }
|
|
|
+ public int Value
|
|
|
+ {
|
|
|
+ get => _value;
|
|
|
+ set => _value = value;
|
|
|
+ }
|
|
|
}
|
|
|
- public int Value
|
|
|
+
|
|
|
+ public partial class StructuralMetadataClass : IChildOfDictionary<StructuralMetadataSchema>
|
|
|
{
|
|
|
- get => _value;
|
|
|
- set => _value = value;
|
|
|
- }
|
|
|
- }
|
|
|
+ #region lifecycle
|
|
|
|
|
|
- public partial class StructuralMetadataClass : IChildOfDictionary<StructuralMetadataSchema>
|
|
|
- {
|
|
|
- #region lifecycle
|
|
|
+ public StructuralMetadataClass()
|
|
|
+ {
|
|
|
+ _properties = new ChildrenDictionary<ClassProperty, StructuralMetadataClass>(this);
|
|
|
+ }
|
|
|
|
|
|
- public StructuralMetadataClass()
|
|
|
- {
|
|
|
- _properties = new ChildrenDictionary<ClassProperty, StructuralMetadataClass>(this);
|
|
|
- }
|
|
|
+ protected override IEnumerable<ExtraProperties> GetLogicalChildren()
|
|
|
+ {
|
|
|
+ return base.GetLogicalChildren()
|
|
|
+ .Concat(_properties.Values);
|
|
|
+ }
|
|
|
|
|
|
- protected override IEnumerable<ExtraProperties> GetLogicalChildren()
|
|
|
- {
|
|
|
- return base.GetLogicalChildren()
|
|
|
- .Concat(_properties.Values);
|
|
|
- }
|
|
|
+ #endregion
|
|
|
|
|
|
- #endregion
|
|
|
+ #region child properties
|
|
|
|
|
|
- #region child properties
|
|
|
+ public string LogicalKey { get; private set; }
|
|
|
|
|
|
- public string LogicalKey { get; private set; }
|
|
|
+ public StructuralMetadataSchema LogicalParent { get; private set; }
|
|
|
|
|
|
- public StructuralMetadataSchema LogicalParent { get; private set; }
|
|
|
+ void IChildOfDictionary<StructuralMetadataSchema>.SetLogicalParent(StructuralMetadataSchema parent, string key)
|
|
|
+ {
|
|
|
+ LogicalParent = parent;
|
|
|
+ LogicalKey = key;
|
|
|
+ }
|
|
|
|
|
|
- void IChildOfDictionary<StructuralMetadataSchema>.SetLogicalParent(StructuralMetadataSchema parent, string key)
|
|
|
- {
|
|
|
- LogicalParent = parent;
|
|
|
- LogicalKey = key;
|
|
|
- }
|
|
|
+ #endregion
|
|
|
|
|
|
- #endregion
|
|
|
+ #region properties
|
|
|
|
|
|
- #region properties
|
|
|
+ public IReadOnlyDictionary<string, ClassProperty> Properties => _properties;
|
|
|
|
|
|
- public IReadOnlyDictionary<string, ClassProperty> Properties => _properties;
|
|
|
+ public string Name
|
|
|
+ {
|
|
|
+ get => _name;
|
|
|
+ set => _name = value;
|
|
|
+ }
|
|
|
|
|
|
- public string Name
|
|
|
- {
|
|
|
- get => _name;
|
|
|
- set => _name = value;
|
|
|
- }
|
|
|
+ public string Description
|
|
|
+ {
|
|
|
+ get => _description;
|
|
|
+ set => _description = value;
|
|
|
+ }
|
|
|
+
|
|
|
+ #endregion
|
|
|
|
|
|
- public string Description
|
|
|
- {
|
|
|
- get => _description;
|
|
|
- set => _description = value;
|
|
|
}
|
|
|
|
|
|
- #endregion
|
|
|
+ public partial class ClassProperty : IChildOfDictionary<StructuralMetadataClass>
|
|
|
+ {
|
|
|
+ #region child properties
|
|
|
|
|
|
- }
|
|
|
+ public string LogicalKey { get; private set; }
|
|
|
|
|
|
- public partial class ClassProperty : IChildOfDictionary<StructuralMetadataClass>
|
|
|
- {
|
|
|
- #region child properties
|
|
|
+ public StructuralMetadataClass LogicalParent { get; private set; }
|
|
|
|
|
|
- public string LogicalKey { get; private set; }
|
|
|
+ void IChildOfDictionary<StructuralMetadataClass>.SetLogicalParent(StructuralMetadataClass parent, string key)
|
|
|
+ {
|
|
|
+ LogicalParent = parent;
|
|
|
+ LogicalKey = key;
|
|
|
+ }
|
|
|
|
|
|
- public StructuralMetadataClass LogicalParent { get; private set; }
|
|
|
+ #endregion
|
|
|
|
|
|
- void IChildOfDictionary<StructuralMetadataClass>.SetLogicalParent(StructuralMetadataClass parent, string key)
|
|
|
- {
|
|
|
- LogicalParent = parent;
|
|
|
- LogicalKey = key;
|
|
|
- }
|
|
|
+ #region properties
|
|
|
+ public string Name
|
|
|
+ {
|
|
|
+ get => _name;
|
|
|
+ set => _name = value;
|
|
|
+ }
|
|
|
|
|
|
- #endregion
|
|
|
+ public string Description
|
|
|
+ {
|
|
|
+ get => _description;
|
|
|
+ set => _description = value;
|
|
|
+ }
|
|
|
|
|
|
- #region properties
|
|
|
- public string Name
|
|
|
- {
|
|
|
- get => _name;
|
|
|
- set => _name = value;
|
|
|
- }
|
|
|
+ public ElementType Type
|
|
|
+ {
|
|
|
+ get => _type;
|
|
|
+ set => _type = value;
|
|
|
+ }
|
|
|
|
|
|
- public string Description
|
|
|
- {
|
|
|
- get => _description;
|
|
|
- set => _description = value;
|
|
|
- }
|
|
|
+ public string EnumType
|
|
|
+ {
|
|
|
+ get => _enumType;
|
|
|
+ set => _enumType = value;
|
|
|
+ }
|
|
|
|
|
|
- public ElementType Type
|
|
|
- {
|
|
|
- get => _type;
|
|
|
- set => _type = value;
|
|
|
- }
|
|
|
+ public DataType? ComponentType
|
|
|
+ {
|
|
|
+ get => _componentType;
|
|
|
+ set => _componentType = value;
|
|
|
+ }
|
|
|
|
|
|
- public string EnumType
|
|
|
- {
|
|
|
- get => _enumType;
|
|
|
- set => _enumType = value;
|
|
|
- }
|
|
|
+ public bool? Required
|
|
|
+ {
|
|
|
+ get => _required;
|
|
|
+ set => _required = value;
|
|
|
+ }
|
|
|
|
|
|
- public DataType? ComponentType
|
|
|
- {
|
|
|
- get => _componentType;
|
|
|
- set => _componentType = value;
|
|
|
- }
|
|
|
+ public bool? Normalized
|
|
|
+ {
|
|
|
+ get => _normalized;
|
|
|
+ set => _normalized = value;
|
|
|
+ }
|
|
|
|
|
|
- public bool? Required
|
|
|
- {
|
|
|
- get => _required;
|
|
|
- set => _required = value;
|
|
|
- }
|
|
|
+ public bool? Array
|
|
|
+ {
|
|
|
+ get => _array;
|
|
|
+ set => _array = value;
|
|
|
+ }
|
|
|
|
|
|
- public bool? Normalized
|
|
|
- {
|
|
|
- get => _normalized;
|
|
|
- set => _normalized = value;
|
|
|
- }
|
|
|
+ public int? Count
|
|
|
+ {
|
|
|
+ get => _count;
|
|
|
+ set => _count = value;
|
|
|
+ }
|
|
|
|
|
|
- public bool? Array
|
|
|
- {
|
|
|
- get => _array;
|
|
|
- set => _array = value;
|
|
|
+ #endregion
|
|
|
}
|
|
|
|
|
|
- public int? Count
|
|
|
+ /// <remarks>
|
|
|
+ /// Represents a Propery table of <see cref="EXTStructuralMetadataRoot"/>
|
|
|
+ /// </remarks>
|
|
|
+ public partial class PropertyTable : IChildOfList<EXTStructuralMetadataRoot>
|
|
|
{
|
|
|
- get => _count;
|
|
|
- set => _count = value;
|
|
|
- }
|
|
|
+ #region lifecycle
|
|
|
+ public PropertyTable()
|
|
|
+ {
|
|
|
+ _properties = new ChildrenDictionary<PropertyTableProperty, PropertyTable>(this);
|
|
|
+ }
|
|
|
+ public PropertyTable(string Class, int Count, string Name = "") : this()
|
|
|
+ {
|
|
|
+ _class = Class;
|
|
|
+ _count = Count;
|
|
|
+ _name = Name;
|
|
|
+ }
|
|
|
|
|
|
- #endregion
|
|
|
- }
|
|
|
+ protected override IEnumerable<ExtraProperties> GetLogicalChildren()
|
|
|
+ {
|
|
|
+ return base.GetLogicalChildren()
|
|
|
+ .Concat(_properties.Values);
|
|
|
+ }
|
|
|
|
|
|
- /// <remarks>
|
|
|
- /// Represents a Propery table of <see cref="EXTStructuralMetadataRoot"/>
|
|
|
- /// </remarks>
|
|
|
- public partial class PropertyTable : IChildOfList<EXTStructuralMetadataRoot>
|
|
|
- {
|
|
|
- #region lifecycle
|
|
|
- public PropertyTable()
|
|
|
- {
|
|
|
- _properties = new ChildrenDictionary<PropertyTableProperty, PropertyTable>(this);
|
|
|
- }
|
|
|
- public PropertyTable(string Class, int Count, string Name = "") : this()
|
|
|
- {
|
|
|
- _class = Class;
|
|
|
- _count = Count;
|
|
|
- _name = Name;
|
|
|
- }
|
|
|
+ #endregion
|
|
|
|
|
|
- protected override IEnumerable<ExtraProperties> GetLogicalChildren()
|
|
|
- {
|
|
|
- return base.GetLogicalChildren()
|
|
|
- .Concat(_properties.Values);
|
|
|
- }
|
|
|
+ #region child properties
|
|
|
|
|
|
- #endregion
|
|
|
+ public int LogicalIndex { get; private set; } = -1;
|
|
|
+ public EXTStructuralMetadataRoot LogicalParent { get; private set; }
|
|
|
|
|
|
- #region child properties
|
|
|
+ void IChildOfList<EXTStructuralMetadataRoot>.SetLogicalParent(EXTStructuralMetadataRoot parent, int index)
|
|
|
+ {
|
|
|
+ LogicalParent = parent;
|
|
|
+ LogicalIndex = index;
|
|
|
+ }
|
|
|
|
|
|
- public int LogicalIndex { get; private set; } = -1;
|
|
|
- public EXTStructuralMetadataRoot LogicalParent { get; private set; }
|
|
|
+ #endregion
|
|
|
|
|
|
- void IChildOfList<EXTStructuralMetadataRoot>.SetLogicalParent(EXTStructuralMetadataRoot parent, int index)
|
|
|
- {
|
|
|
- LogicalParent = parent;
|
|
|
- LogicalIndex = index;
|
|
|
- }
|
|
|
+ #region properties
|
|
|
|
|
|
- #endregion
|
|
|
+ public IReadOnlyDictionary<string, PropertyTableProperty> Properties => _properties;
|
|
|
|
|
|
- #region properties
|
|
|
+ public string Name
|
|
|
+ {
|
|
|
+ get => _name;
|
|
|
+ set => _name = value;
|
|
|
+ }
|
|
|
|
|
|
- public IReadOnlyDictionary<string, PropertyTableProperty> Properties => _properties;
|
|
|
+ public string Class
|
|
|
+ {
|
|
|
+ get => _class;
|
|
|
+ set => _class = value;
|
|
|
+ }
|
|
|
|
|
|
- public string Name
|
|
|
- {
|
|
|
- get => _name;
|
|
|
- set => _name = value;
|
|
|
- }
|
|
|
+ public int Count
|
|
|
+ {
|
|
|
+ get => _count;
|
|
|
+ set => _count = value;
|
|
|
+ }
|
|
|
|
|
|
- public string Class
|
|
|
- {
|
|
|
- get => _class;
|
|
|
- set => _class = value;
|
|
|
+ #endregion
|
|
|
}
|
|
|
|
|
|
- public int Count
|
|
|
+ /// <remarks>
|
|
|
+ /// Represents a Property of <see cref="PropertyTable"/>
|
|
|
+ /// </remarks>
|
|
|
+ public partial class PropertyTableProperty : IChildOfDictionary<PropertyTable>
|
|
|
{
|
|
|
- get => _count;
|
|
|
- set => _count = value;
|
|
|
- }
|
|
|
+ #region child properties
|
|
|
|
|
|
- #endregion
|
|
|
- }
|
|
|
+ public string LogicalKey { get; private set; }
|
|
|
|
|
|
- /// <remarks>
|
|
|
- /// Represents a Property of <see cref="PropertyTable"/>
|
|
|
- /// </remarks>
|
|
|
- public partial class PropertyTableProperty : IChildOfDictionary<PropertyTable>
|
|
|
- {
|
|
|
- #region child properties
|
|
|
+ public PropertyTable LogicalParent { get; private set; }
|
|
|
|
|
|
- public string LogicalKey { get; private set; }
|
|
|
-
|
|
|
- public PropertyTable LogicalParent { get; private set; }
|
|
|
+ void IChildOfDictionary<PropertyTable>.SetLogicalParent(PropertyTable parent, string key)
|
|
|
+ {
|
|
|
+ LogicalParent = parent;
|
|
|
+ LogicalKey = key;
|
|
|
+ }
|
|
|
|
|
|
- void IChildOfDictionary<PropertyTable>.SetLogicalParent(PropertyTable parent, string key)
|
|
|
- {
|
|
|
- LogicalParent = parent;
|
|
|
- LogicalKey = key;
|
|
|
- }
|
|
|
+ #endregion
|
|
|
|
|
|
- #endregion
|
|
|
+ #region properties
|
|
|
+ /// <summary>
|
|
|
+ /// this is an index to a BufferView
|
|
|
+ /// </summary>
|
|
|
+ public int Values
|
|
|
+ {
|
|
|
+ get => _values;
|
|
|
+ set => _values = value;
|
|
|
+ }
|
|
|
|
|
|
- #region properties
|
|
|
- /// <summary>
|
|
|
- /// this is an index to a BufferView
|
|
|
- /// </summary>
|
|
|
- public int Values
|
|
|
- {
|
|
|
- get => _values;
|
|
|
- set => _values = value;
|
|
|
- }
|
|
|
+ public int? ArrayOffsets
|
|
|
+ {
|
|
|
+ get => _arrayOffsets;
|
|
|
+ set => _arrayOffsets = value;
|
|
|
+ }
|
|
|
|
|
|
- public int? ArrayOffsets
|
|
|
- {
|
|
|
- get => _arrayOffsets;
|
|
|
- set => _arrayOffsets = value;
|
|
|
- }
|
|
|
+ public int? StringOffsets
|
|
|
+ {
|
|
|
+ get => _stringOffsets;
|
|
|
+ set => _stringOffsets = value;
|
|
|
+ }
|
|
|
|
|
|
- public int? StringOffsets
|
|
|
- {
|
|
|
- get => _stringOffsets;
|
|
|
- set => _stringOffsets = value;
|
|
|
+ #endregion
|
|
|
}
|
|
|
-
|
|
|
- #endregion
|
|
|
}
|
|
|
}
|
|
|
|