6 using System.Collections.Generic;
8 using System.Collections.ObjectModel;
10 namespace HoloToolkit.Examples.SpatialUnderstandingFeatureOverview
15 public bool HasCreatedShapes {
get;
private set; }
16 public ReadOnlyCollection<string> CustomShapeDefinitions {
get {
return customShapeDefinitions.AsReadOnly(); } }
19 private List<string> customShapeDefinitions =
new List<string>();
42 if (HasCreatedShapes ||
49 CreateCustomShapeDefinitions();
53 private void OnScanStateChanged()
63 private bool AddShape(
65 List<SpatialUnderstandingDllShapes.ShapeComponent> shapeComponents)
67 return AddShape(shapeName, shapeComponents, null);
70 private bool AddShape(
72 List<SpatialUnderstandingDllShapes.ShapeComponent> shapeComponents,
73 List<SpatialUnderstandingDllShapes.ShapeConstraint> shapeConstraints)
83 (shapeComponents == null) ? 0 : shapeComponents.Count,
85 (shapeConstraints == null) ? 0 : shapeConstraints.Count,
86 shapeConstraintsPtr) == 0)
88 Debug.LogError(
"Failed to create custom shape description");
91 customShapeDefinitions.Add(shapeName);
95 private void CreateCustomShapeDefinitions()
109 new List<SpatialUnderstandingDllShapes.ShapeComponentConstraint>()
114 AddShape(
"All Surfaces", shapeComponents);
120 new List<SpatialUnderstandingDllShapes.ShapeComponentConstraint>()
127 AddShape(
"Sittable", shapeComponents);
133 new List<SpatialUnderstandingDllShapes.ShapeComponentConstraint>()
144 AddShape(
"Chair", shapeComponents);
150 new List<SpatialUnderstandingDllShapes.ShapeComponentConstraint>()
159 AddShape(
"Large Surface", shapeComponents);
165 new List<SpatialUnderstandingDllShapes.ShapeComponentConstraint>()
178 AddShape(
"Large Empty Surface", shapeComponents, shapeConstraints);
184 new List<SpatialUnderstandingDllShapes.ShapeComponentConstraint>()
195 new List<SpatialUnderstandingDllShapes.ShapeComponentConstraint>()
198 SpatialUnderstandingDllShapes.ShapeComponentConstraint.Create_SurfaceHeight_Between(0.6f, 1.0f),
199 SpatialUnderstandingDllShapes.ShapeComponentConstraint.Create_SurfaceCount_Min(1),
200 SpatialUnderstandingDllShapes.ShapeComponentConstraint.Create_IsRectangle(0.3f),
201 SpatialUnderstandingDllShapes.ShapeComponentConstraint.Create_RectangleLength_Between(0.4f, 3.0f),
202 SpatialUnderstandingDllShapes.ShapeComponentConstraint.Create_RectangleWidth_Min(0.05f),
212 AddShape(
"Couch", shapeComponents, shapeConstraints);
215 HasCreatedShapes =
true;