private void SetMembers(EngineManager engineState) { this.EngineState = engineState; AreaCompPolyHandler = new AreaCompPolyHandler(EngineState); DefCompPolyHandler = new DefinitiveCompPolyHandler(EngineState); _entityBuilder = new EntityBuilder(this); BumpersHandler = new BumpersHandler(this); _rocketsHandler = new RocketsHandler(this); ProjectionHandler = new ProjectionHandler(this); }
public bool IsComponentsOverlapping() { var ovlpedPairs = new List <KeyValuePair <List <IntPoint>, List <IntPoint> > >(); //String[] args = new string[2]; //args[1] = this.LevelStr; //GenManager.GenerateGevaLevel(args, null); OverlappedComponents = 0; DefinitiveCompPolyHandler def = new DefinitiveCompPolyHandler(StaticData.EngineManager); List <List <IntPoint> > polys = new List <List <IntPoint> >(); polys.AddRange(def.GetDefBubblesPolys()); polys.AddRange(def.GetDefRocketsPolys()); polys.AddRange(def.GetDefBumpersPolys()); foreach (BlowerService blowerService in StaticData.EngineManager.BlowerManagerEngine.ListOfServices) { polys.Add(PolysHelper.GetShapeSquarePoly(blowerService.PositionXNACenter, (int)StaticData.BlowerDimWidth / 2)); } for (int i = 0; i < polys.Count - 1; i++) { var polyNow = polys[i]; for (int j = i + 1; j < polys.Count; j++) { var polyCompare = polys[j]; if (polyNow != polyCompare) { if (EntraSolver.IsPolyOperation(polyCompare, polyNow, ClipType.ctIntersection)) { //List<KeyValuePair<List<IntPoint>, List<IntPoint>>> var res = (from kv in ovlpedPairs where (kv.Key == polyCompare && kv.Value == polyNow) || (kv.Key == polyNow && kv.Value == polyCompare) select kv).ToList(); if (res != null) { ovlpedPairs.Add(new KeyValuePair <List <IntPoint>, List <IntPoint> >(polyNow, polyCompare)); OverlappedComponents++; } } } } } return(OverlappedComponents != 0); }