public void GenererScene3d() { if (this.listeSPositionObjetDansImage != null) { if (this.environnement != null) { for (int i = 0; i < this.listeSPositionObjetDansImage.Count; i++) { int idObj = this.listeObjetsIdentifiables.RecupererIdobjetAvecLibelle(this.listeSPositionObjetDansImage[i].libelle); if (this.environnement.ObjetDansEnvironnement_idObj(idObj)) { CObjetIdentifie nouvelobjetIdentifie = new CObjetIdentifie(); //Recuperer elevation et azimut centre pour les ajouter a elevationAuCentre... //Élevation de l'objet par rapport au centre de l'image float elevationCentre = image.CalculerAngleElevationCentre(image.GetSecteurAngulaire_elevation_Max() - image.GetSecteurAngulaire_elevation_Min()); float elevationObjet = image.CalculerAngleElevationObjet(this.listeSPositionObjetDansImage[i], image.GetSecteurAngulaire_elevation_Max() - image.GetSecteurAngulaire_elevation_Min()); float elevationCentreVersObjet = elevationObjet - elevationCentre; float elevationReel = image.GetSecteurAngulaire_elevation_Min() + elevationObjet; //Azimut de l'objet par rapport au centre de l'image float azimutCentre = image.CalculerAngleAzimutCentre(image.GetSecteurAngulaire_azimut_Max() - image.GetSecteurAngulaire_azimut_Min()); float azimutObjet = image.CalculerAngleAzimutObjet(this.listeSPositionObjetDansImage[i], image.GetSecteurAngulaire_azimut_Max() - image.GetSecteurAngulaire_azimut_Min()); float azimutCentreVersObjet = azimutObjet - azimutCentre; float azimutReel = image.GetSecteurAngulaire_azimut_Min() + azimutObjet; double distance = this.nuagePoint3D.GetDistance((int)Math.Ceiling(elevationReel), (int)Math.Ceiling(azimutReel)); if (distance == -1) { Console.WriteLine("Distance non disponnible dans le nuage de point 3D"); } if (azimutCentreVersObjet < 0) { nouvelobjetIdentifie.SetPosition3D_X(this.image.GetPosition3D_X() - (Math.Sin((Math.Abs(azimutCentreVersObjet) * Math.PI) / 180) * distance)); } if (azimutCentreVersObjet >= 0) { nouvelobjetIdentifie.SetPosition3D_X(this.image.GetPosition3D_X() + (Math.Sin((Math.Abs(azimutCentreVersObjet) * Math.PI) / 180) * distance)); } nouvelobjetIdentifie.SetPosition3D_Y(this.image.GetPosition3D_Y() + (Math.Cos((Math.Abs(azimutCentreVersObjet) * Math.PI) / 180) * distance)); if (elevationCentreVersObjet < 0) { nouvelobjetIdentifie.SetPosition3D_Z(this.image.GetPosition3D_Z() - (Math.Sin((Math.Abs(elevationCentreVersObjet) * Math.PI) / 180) * distance)); } if (elevationCentreVersObjet >= 0) { nouvelobjetIdentifie.SetPosition3D_Z(this.image.GetPosition3D_Z() + (Math.Sin((Math.Abs(elevationCentreVersObjet) * Math.PI) / 180) * distance)); } nouvelobjetIdentifie.setLibelle(this.listeSPositionObjetDansImage[i].libelle); CObjetIdentifiable objetIdentifiableTemp = this.listeObjetsIdentifiables.RecupererObjetIdentifiable_Libelle(this.listeSPositionObjetDansImage[i].libelle); if (objetIdentifiableTemp != null) { nouvelobjetIdentifie.ChargerObjetIdentifiable(objetIdentifiableTemp); this.scene3D.AjouterObjetIdentifie(nouvelobjetIdentifie); } else { Console.WriteLine("L'objet \"" + this.listeSPositionObjetDansImage[i].libelle + "\" n'est répertorié dans la liste des objets identifiables."); } } else { Console.WriteLine("L'objet \"" + this.listeSPositionObjetDansImage[i].libelle + "\" ne fait pas partie de l'environnement\"" + this.environnement.GetLibelle() + "\"."); } } } else { Console.WriteLine("L'environnement\"" + this.image.GetLibelle() + "\" n'est pas déninit dans comme étant un environnement identifiable."); } } else { Console.WriteLine("+----------------------------------------------------------------------------------------------+"); Console.WriteLine("| " + DateTime.Now.ToString("HH:mm:ss", System.Globalization.DateTimeFormatInfo.InvariantInfo) + " | Méthode: \"GenererScene3d(List<SPositionObjetDansImage> sPositionObjetDansImage)\" |"); Console.WriteLine("| La variable \"sPositionObjetDansImage\" vaut: null. |"); Console.WriteLine("+----------------------------------------------------------------------------------------------------------------+"); Console.WriteLine("| Conseil: Vérifier que la méthode \"application.PositionnerObjetsDansImage()\" soit appelée avant cette méthode. |"); Console.WriteLine("+----------------------------------------------------------------------------------------------------------------+"); Console.WriteLine(" "); } }
public int AjouterObjetIdentifie(CObjetIdentifie objetIdentifie) { this.lObjetsIdentifies.Add(objetIdentifie); return(this.lObjetsIdentifies.IndexOf(objetIdentifie)); }
public int AjouterObjetIdentifie(CObjetIdentifie objetIdentifie) { return(this.listeObjetsIdentifies.AjouterObjetIdentifie(objetIdentifie)); }