Pathfinding.TriangleMeshNode.ContainsPoint C# (CSharp) Method

ContainsPoint() public method

public ContainsPoint ( Int3 p ) : bool
p Int3
return bool
		public override bool ContainsPoint (Int3 p) {
			INavmeshHolder g = GetNavmeshHolder(GraphIndex);
			
			Int3 a = g.GetVertex(v0);
			Int3 b = g.GetVertex(v1);
			Int3 c = g.GetVertex(v2);
			
			if ((long)(b.x - a.x) * (long)(p.z - a.z) - (long)(p.x - a.x) * (long)(b.z - a.z) > 0) return false;
			
			if ((long)(c.x - b.x) * (long)(p.z - b.z) - (long)(p.x - b.x) * (long)(c.z - b.z) > 0) return false;
			
			if ((long)(a.x - c.x) * (long)(p.z - c.z) - (long)(p.x - c.x) * (long)(a.z - c.z) > 0) return false;
			
			return true;
			//return Polygon.IsClockwiseMargin (a,b, p) && Polygon.IsClockwiseMargin (b,c, p) && Polygon.IsClockwiseMargin (c,a, p);
			
			//return Polygon.ContainsPoint(g.GetVertex(v0),g.GetVertex(v1),g.GetVertex(v2),p);
		}
		

Usage Example

Ejemplo n.º 1
0
 private TriangleMeshNode SearchBoxInside(int boxi, Vector3 p, NNConstraint constraint)
 {
     BBTree.BBTreeBox bbtreeBox = this.tree[boxi];
     if (bbtreeBox.IsLeaf)
     {
         TriangleMeshNode[] array = this.nodeLookup;
         int num = 0;
         while (num < 4 && array[bbtreeBox.nodeOffset + num] != null)
         {
             TriangleMeshNode triangleMeshNode = array[bbtreeBox.nodeOffset + num];
             if (triangleMeshNode.ContainsPoint((Int3)p))
             {
                 if (constraint == null || constraint.Suitable(triangleMeshNode))
                 {
                     return(triangleMeshNode);
                 }
             }
             num++;
         }
     }
     else
     {
         if (this.tree[bbtreeBox.left].Contains(p))
         {
             TriangleMeshNode triangleMeshNode2 = this.SearchBoxInside(bbtreeBox.left, p, constraint);
             if (triangleMeshNode2 != null)
             {
                 return(triangleMeshNode2);
             }
         }
         if (this.tree[bbtreeBox.right].Contains(p))
         {
             TriangleMeshNode triangleMeshNode3 = this.SearchBoxInside(bbtreeBox.right, p, constraint);
             if (triangleMeshNode3 != null)
             {
                 return(triangleMeshNode3);
             }
         }
     }
     return(null);
 }
All Usage Examples Of Pathfinding.TriangleMeshNode::ContainsPoint