private static bool PerOtr(Vector2 Seg1_N, Vector2 Seg1_K, Vector2 Seg2_N, Vector2 Seg2_K) { float x1 = Seg1_N.X; float y1 = Seg1_N.Y; float x2 = Seg1_K.X; float y2 = Seg1_K.Y; float x3 = Seg2_N.X; float y3 = Seg2_N.Y; float x4 = Seg2_K.X; float y4 = Seg2_K.Y; return (((x3 - x1) * (y2 - y1) - (y3 - y1) * (x2 - x1)) * ((x4 - x1) * (y2 - y1) - (y4 - y1) * (x2 - x1)) <= 0) && (((x1 - x3) * (y4 - y3) - (y1 - y3) * (x4 - x3)) * ((x2 - x3) * (y4 - y3) - (y2 - y3) * (x4 - x3)) <= 0); }
public static void DrawLens(DVector3 Position, Vector2 Size, Vector2 UVMin, Vector2 UVMax, Vector4 Color, TextureContainer Textur) { if (Textur == null) return; if (LastFreeIndex >= MassSize) { //resize MassSize = Utils.GetBinResize(LastFreeIndex + 1); System.Array.Resize(ref MasterRequest, MassSize); System.Array.Resize(ref SlaveRequest, MassSize); for (int i = LastFreeIndex; i < MassSize; i++) { MasterRequest[i] = new Request(); SlaveRequest[i] = new Request(); ResizeVertex = true; } } MasterRequest[LastFreeIndex].Position = Position; MasterRequest[LastFreeIndex].Size = Size; MasterRequest[LastFreeIndex].UVMin = UVMin; MasterRequest[LastFreeIndex].UVMax = UVMax; MasterRequest[LastFreeIndex].Color = Color; MasterRequest[LastFreeIndex].Textur = Textur; LastFreeIndex++; }