/// <summary>
        /// Queries for planes via MLPlanesStarterKit with all of the set query flags and parameters
        /// and sets the PlanesResult[] when finished. Based on the query flags that
        /// are passed in, extraction and calculation times may vary.
        /// </summary>
        private void QueryPlanes()
        {
            // Construct flag data.
            _queryFlags  = (MLPlanes.QueryFlags)orientationFlags;
            _queryFlags |= (MLPlanes.QueryFlags)semanticFlags;
            _queryFlags |= (MLPlanes.QueryFlags)systemFlags;

            #if PLATFORM_LUMIN
            _queryParams.Flags          = _queryFlags;
            _queryParams.BoundsCenter   = transform.position;
            _queryParams.MaxResults     = MaxPlaneCount;
            _queryParams.BoundsExtents  = transform.localScale;
            _queryParams.BoundsRotation = transform.rotation;
            _queryParams.MinHoleLength  = minHoleLength;
            _queryParams.MinPlaneArea   = minPlaneArea;

            MLPlanesStarterKit.QueryPlanes(_queryParams, HandleOnQueriedPlanes);
            #endif
        }
Esempio n. 2
0
 /// <summary>
 /// Used to determine if some MLPlanes.Plane object contains a certain flag.
 /// </summary>
 /// <param name="plane">The MLPlanes.Plane object to be checked.</param>
 /// <param name="flag">The MLPlanes.QueryFlags to be checked.</param>
 public bool ContainsFlag(MLPlanes.QueryFlags flag)
 {
     return((this.Flags & (uint)flag) == (uint)flag);
 }
Esempio n. 3
0
 /// <summary>
 /// Utility function used to determine if some MLPlanes.Plane object contains a certain flag.
 /// </summary>
 /// <param name="plane">The MLPlanes.Plane object to be checked.</param>
 /// <param name="flag">The MLPlanes.QueryFlags to be checked.</param>
 public static bool DoesPlaneHaveFlag(MLPlanes.Plane plane, MLPlanes.QueryFlags flag)
 {
     return((plane.Flags & (uint)flag) == (uint)flag);
 }
Esempio n. 4
0
 /// <summary>
 /// Indicates if QueryFlags contains IgnoreHoles flag
 /// </summary>
 /// <param name="queryFlags">The bitmask of control flags for plane queries.</param>
 /// <returns>True if the MLPlanes.QueryFlags.IgnoreHoles flag is true.</returns>
 public static bool IsIgnoreHoles(this MLPlanes.QueryFlags queryFlags)
 {
     return((queryFlags & MLPlanes.QueryFlags.IgnoreHoles) != 0);
 }
Esempio n. 5
0
 /// <summary>
 /// Indicates if QueryFlags contains Ceiling flag
 /// </summary>
 /// <param name="queryFlags">The bitmask of control flags for plane queries.</param>
 /// <returns>True if the MLPlanes.QueryFlags.SemanticCeiling flag is true.</returns>
 public static bool IsCeiling(this MLPlanes.QueryFlags queryFlags)
 {
     return((queryFlags & MLPlanes.QueryFlags.SemanticCeiling) != 0);
 }
Esempio n. 6
0
 /// <summary>
 /// Indicates if QueryFlags contains OrientToGravity flag
 /// </summary>
 /// <param name="queryFlags">The bitmask of control flags for plane queries.</param>
 /// <returns>True if the MLPlanes.QueryFlags.OrientToGravity flag is true.</returns>
 public static bool IsOrientedToGravity(this MLPlanes.QueryFlags queryFlags)
 {
     return((queryFlags & MLPlanes.QueryFlags.OrientToGravity) != 0);
 }
Esempio n. 7
0
 /// <summary>
 /// Indicates if QueryFlags contains Inner flag
 /// </summary>
 /// <param name="queryFlags">The bitmask of control flags for plane queries.</param>
 /// <returns>True if the MLPlanes.QueryFlags.Inner flag is true.</returns>
 public static bool IsInner(this MLPlanes.QueryFlags queryFlags)
 {
     return((queryFlags & MLPlanes.QueryFlags.Inner) != 0);
 }
Esempio n. 8
0
 /// <summary>
 /// Indicates if QueryFlags contains Arbitrary flag
 /// </summary>
 /// <param name="queryFlags">The bitmask of control flags for plane queries.</param>
 /// <returns>True if the MLPlanes.QueryFlags.Arbitrary flag is true.</returns>
 public static bool IsArbitrary(this MLPlanes.QueryFlags queryFlags)
 {
     return((queryFlags & MLPlanes.QueryFlags.Arbitrary) != 0);
 }
Esempio n. 9
0
 /// <summary>
 /// Indicates if QueryFlags contains AllOrientations flag
 /// </summary>
 /// <param name="queryFlags">The bitmask of control flags for plane queries.</param>
 /// <returns>True if the MLPlanes.QueryFlags.AllOrientations flag is true.</returns>
 public static bool IsAllOrientations(this MLPlanes.QueryFlags queryFlags)
 {
     return((queryFlags & MLPlanes.QueryFlags.AllOrientations) != 0);
 }
Esempio n. 10
0
 /// <summary>
 /// Indicates if QueryFlags contains Horizontal flag
 /// </summary>
 /// <param name="queryFlags">The bitmask of control flags for plane queries.</param>
 /// <returns>True if the MLPlanes.QueryFlags.Horizontal flag is true.</returns>
 public static bool IsHorizontal(this MLPlanes.QueryFlags queryFlags)
 {
     return((queryFlags & MLPlanes.QueryFlags.Horizontal) != 0);
 }
Esempio n. 11
0
 /// <summary>
 /// Indicates if QueryFlags contains Vertical flag
 /// </summary>
 /// <param name="queryFlags">The bitmask of control flags for plane queries.</param>
 /// <returns>True if the MLPlanes.QueryFlags.Vertical flag is true.</returns>
 public static bool IsVertical(this MLPlanes.QueryFlags queryFlags)
 {
     return((queryFlags & MLPlanes.QueryFlags.Vertical) != 0);
 }
Esempio n. 12
0
 /// <summary>
 /// Indicates if QueryFlags contains Polygons flag
 /// </summary>
 /// <param name="queryFlags">The bitmask of control flags for plane queries.</param>
 /// <returns>True if the MLPlanes.QueryFlags.Polygons flag is true.</returns>
 public static bool IsPolygons(this MLPlanes.QueryFlags queryFlags)
 {
     return((queryFlags & MLPlanes.QueryFlags.Polygons) != 0);
 }
Esempio n. 13
0
 /// <summary>
 /// Indicates if QueryFlags contains All flag
 /// </summary>
 /// <param name="queryFlags">The bitmask of control flags for plane queries.</param>
 /// <returns>True if the MLPlanes.QueryFlags.SemanticAll flag is true.</returns>
 public static bool IsAll(this MLPlanes.QueryFlags queryFlags)
 {
     return((queryFlags & MLPlanes.QueryFlags.SemanticAll) != 0);
 }
Esempio n. 14
0
 /// <summary>
 /// Indicates if QueryFlags contains Floor flag
 /// </summary>
 /// <param name="queryFlags">The bitmask of control flags for plane queries.</param>
 /// <returns>True if the MLPlanes.QueryFlags.SemanticFloor flag is true.</returns>
 public static bool IsFloor(this MLPlanes.QueryFlags queryFlags)
 {
     return((queryFlags & MLPlanes.QueryFlags.SemanticFloor) != 0);
 }