Exemple #1
0
    //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);
        }
Exemple #6
0
        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"
                },
            };
        }