/// <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 }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }