//Richiamata dall'animazione public void InstantiateWheel() { GameObject LaunchObject = GameObject.Instantiate(WheelPrefab, WheelShotPoint.position, WheelShotPoint.rotation); Ruota ruota = LaunchObject.GetComponent <Ruota>(); DeadTrigger deadTrigger = LaunchObject.GetComponentInChildren <DeadTrigger>(); if (ruota) { ruota.Torque += AddTorqueForce; ruota.ForwardForce += AddForwardForce; } if (deadTrigger) { deadTrigger.FiredBy = this; } }
public override IImmagine applica(IImmagine immagineSorgente, Correzione correzione) { BitmapSource bmpsource = ((ImmagineWic)immagineSorgente).bitmapSource; Ruota ruotaCorrezione = (Ruota)correzione; BitmapSource newBmp; if (ruotaCorrezione.isAngoloRetto) { newBmp = rotazioneSemplice(bmpsource, ruotaCorrezione.gradi); } else { newBmp = rotazioneSulPosto(bmpsource, ruotaCorrezione.gradi); } // newBmp = rotazioneComplessa( bmpsource, ruotaCorrezione.gradi ); return(new ImmagineWic(newBmp)); }
/** Leggendo l'immagine indicata dall'attributo "nomeFile", * cerco di caricare almeno la data di scatto, e qualche altro * dato interessante */ private void caricaMetadatiImmagine(string nomeFile, Fotografia foto) { try { bool presoOrientamento; ushort orientamento = 0; // Istanzio il reader poi lo chiudo subito perché tiene aperto il file. using (ExifReader reader = new ExifReader(nomeFile)) { DateTime dateTime; if (reader.GetTagValue <DateTime>(ExifTags.DateTime, out dateTime)) { foto.dataOraScatto = dateTime; } presoOrientamento = reader.GetTagValue <ushort>(ExifTags.Orientation, out orientamento); } // Gestisco eventuale auto rotazione if (Configurazione.UserConfigLumen.autoRotazione && presoOrientamento) { Ruota ruota = null; if (orientamento == 6) { ruota = new Ruota(90f); } else if (orientamento == 8) { ruota = new Ruota(-90f); } if (ruota != null) { fotoRitoccoSrv.autoRuotaSuOriginale(foto, ruota); } } } catch (Exception ee) { _giornale.Debug("lettura metadati", ee); // Pazienza se non ho informazioni exif vado avanti ugualmente. } }
/// <summary> /// Faccio qualche controllo preventivo. /// </summary> /// <param name="fotografia"></param> /// <param name="ruota"></param> public void autoRuotaSuOriginale(Fotografia fotografia, Ruota ruota) { if (fotografia.correzioniXml != null) { throw new LumenException("Sulla foto " + fotografia.numero + " esistono correzioni.\nImpossibile ruotare sull'originale.\nRimuovere prima le correzioni (torna originale)"); } if (!ruota.isAngoloRetto) { throw new ArgumentException("La rotazione sull'originale funziona solo con angoli retti"); } string nomeFileOrig = PathUtil.nomeCompletoOrig(fotografia); string estensione = Path.GetExtension(nomeFileOrig); if (fotografia.imgOrig == null) { AiutanteFoto.idrataImmaginiFoto(fotografia, IdrataTarget.Originale); } IImmagine imgRuotata = applicaCorrezione(fotografia.imgOrig, ruota); string nomeFileBackup = Path.ChangeExtension(nomeFileOrig, "BACKUP" + estensione); if (!File.Exists(nomeFileBackup)) { // Salvo per sicurezza il file originale File.Move(nomeFileOrig, nomeFileBackup); } fotografia.imgOrig = imgRuotata; gestoreImmaginiSrv.save(imgRuotata, nomeFileOrig); AiutanteFoto.creaProvinoFoto(fotografia); // Libero memoria. Lascio solo il provino AiutanteFoto.disposeImmagini(fotografia, IdrataTarget.Originale); AiutanteFoto.disposeImmagini(fotografia, IdrataTarget.Risultante); }
public void ruotare(IEnumerable <Fotografia> fotografie, int pGradi) { Ruota ruota = new Ruota(pGradi); // Devo informate tutti che queste foto sono cambiate. Preparo il messaggio FotoModificateMsg msg = new FotoModificateMsg(this); foreach (Fotografia f in fotografie) { if (ruota.isAngoloRetto) { autoRuotaSuOriginale(f, ruota); } else { addCorrezione(f, ruota); gestoreImmaginiSrv.salvaCorrezioniTransienti(f); } msg.add(f); } pubblicaMessaggio(msg); }
public void init() { _autos = new List <Auto>() { new Auto() { tipoAuto = "bmw", Ruote = Ruota.GetRuote() }, new Auto() { tipoAuto = "fiat", Ruote = Ruota.GetRuote() }, new Auto() { tipoAuto = "audi", Ruote = Ruota.GetRuote() } }; _expected = new List <Piattone>() { new Piattone() { tipoAuto = "bmw", tipoRuota = "ASX", tipoBullone = "uno" }, new Piattone() { tipoAuto = "bmw", tipoRuota = "ASX", tipoBullone = "due" }, new Piattone() { tipoAuto = "bmw", tipoRuota = "ASX", tipoBullone = "tre" }, new Piattone() { tipoAuto = "bmw", tipoRuota = "ASX", tipoBullone = "quattro" }, new Piattone() { tipoAuto = "bmw", tipoRuota = "ADX", tipoBullone = "uno" }, new Piattone() { tipoAuto = "bmw", tipoRuota = "ADX", tipoBullone = "due" }, new Piattone() { tipoAuto = "bmw", tipoRuota = "ADX", tipoBullone = "tre" }, new Piattone() { tipoAuto = "bmw", tipoRuota = "ADX", tipoBullone = "quattro" }, new Piattone() { tipoAuto = "bmw", tipoRuota = "RSX", tipoBullone = "uno" }, new Piattone() { tipoAuto = "bmw", tipoRuota = "RSX", tipoBullone = "due" }, new Piattone() { tipoAuto = "bmw", tipoRuota = "RSX", tipoBullone = "tre" }, new Piattone() { tipoAuto = "bmw", tipoRuota = "RSX", tipoBullone = "quattro" }, new Piattone() { tipoAuto = "bmw", tipoRuota = "RDX", tipoBullone = "uno" }, new Piattone() { tipoAuto = "bmw", tipoRuota = "RDX", tipoBullone = "due" }, new Piattone() { tipoAuto = "bmw", tipoRuota = "RDX", tipoBullone = "tre" }, new Piattone() { tipoAuto = "bmw", tipoRuota = "RDX", tipoBullone = "quattro" }, new Piattone() { tipoAuto = "fiat", tipoRuota = "ASX", tipoBullone = "uno" }, new Piattone() { tipoAuto = "fiat", tipoRuota = "ASX", tipoBullone = "due" }, new Piattone() { tipoAuto = "fiat", tipoRuota = "ASX", tipoBullone = "tre" }, new Piattone() { tipoAuto = "fiat", tipoRuota = "ASX", tipoBullone = "quattro" }, new Piattone() { tipoAuto = "fiat", tipoRuota = "ADX", tipoBullone = "uno" }, new Piattone() { tipoAuto = "fiat", tipoRuota = "ADX", tipoBullone = "due" }, new Piattone() { tipoAuto = "fiat", tipoRuota = "ADX", tipoBullone = "tre" }, new Piattone() { tipoAuto = "fiat", tipoRuota = "ADX", tipoBullone = "quattro" }, new Piattone() { tipoAuto = "fiat", tipoRuota = "RSX", tipoBullone = "uno" }, new Piattone() { tipoAuto = "fiat", tipoRuota = "RSX", tipoBullone = "due" }, new Piattone() { tipoAuto = "fiat", tipoRuota = "RSX", tipoBullone = "tre" }, new Piattone() { tipoAuto = "fiat", tipoRuota = "RSX", tipoBullone = "quattro" }, new Piattone() { tipoAuto = "fiat", tipoRuota = "RDX", tipoBullone = "uno" }, new Piattone() { tipoAuto = "fiat", tipoRuota = "RDX", tipoBullone = "due" }, new Piattone() { tipoAuto = "fiat", tipoRuota = "RDX", tipoBullone = "tre" }, new Piattone() { tipoAuto = "fiat", tipoRuota = "RDX", tipoBullone = "quattro" }, new Piattone() { tipoAuto = "audi", tipoRuota = "ASX", tipoBullone = "uno" }, new Piattone() { tipoAuto = "audi", tipoRuota = "ASX", tipoBullone = "due" }, new Piattone() { tipoAuto = "audi", tipoRuota = "ASX", tipoBullone = "tre" }, new Piattone() { tipoAuto = "audi", tipoRuota = "ASX", tipoBullone = "quattro" }, new Piattone() { tipoAuto = "audi", tipoRuota = "ADX", tipoBullone = "uno" }, new Piattone() { tipoAuto = "audi", tipoRuota = "ADX", tipoBullone = "due" }, new Piattone() { tipoAuto = "audi", tipoRuota = "ADX", tipoBullone = "tre" }, new Piattone() { tipoAuto = "audi", tipoRuota = "ADX", tipoBullone = "quattro" }, new Piattone() { tipoAuto = "audi", tipoRuota = "RSX", tipoBullone = "uno" }, new Piattone() { tipoAuto = "audi", tipoRuota = "RSX", tipoBullone = "due" }, new Piattone() { tipoAuto = "audi", tipoRuota = "RSX", tipoBullone = "tre" }, new Piattone() { tipoAuto = "audi", tipoRuota = "RSX", tipoBullone = "quattro" }, new Piattone() { tipoAuto = "audi", tipoRuota = "RDX", tipoBullone = "uno" }, new Piattone() { tipoAuto = "audi", tipoRuota = "RDX", tipoBullone = "due" }, new Piattone() { tipoAuto = "audi", tipoRuota = "RDX", tipoBullone = "tre" }, new Piattone() { tipoAuto = "audi", tipoRuota = "RDX", tipoBullone = "quattro" }, }; }