JSFiddle - React, Tailwind, and code Playground
by whelkaholism
HTML
<xmp id="o"></xmp>
JavaScript
// Copyright 2015 cFront Software Ltd, http://www.cfront.co.uk
// Free for any use, provided this copyright notice is maintained.
if(typeof(cFront) === 'undefined') var cFront = {};
if(typeof(cFront.EV) == 'undefined') cFront.EV = {};
// ============================================================================================================================================================
cFront.EV.Converter = function(iso, shutterspeed, fstop)
{
// Original values
var _o_iso;
var _o_fstop;
var _o_shutterspeed;
// Current values
var _iso;
var _fstop;
var _shutterspeed;
//
// Accessors
this.ISO = function() { return _iso; }
this.FStop = function() { return _fstop; }
this.ShutterSpeed = function() { return _shutterspeed; }
// ---------------------------------------------------------------------------------------------------------
// Initialize
_iso = _o_iso = iso;
_o_shutterspeed = shutterspeed.clone();
_shutterspeed = shutterspeed.clone();
_fstop = _o_fstop = fstop;
//
// ---------------------------------------------------------------------------------------------------------
this.reset = function()
{
_iso = _o_iso;
_fstop = _o_fstop;
_shutterspeed = _o_shutterspeed.clone();
};
// Returns false if an out of range value would be generated
this.setISO = function(new_iso, priority)
{
var stops = cFront.EV.getEVChangeBetweenISOSpeeds(_iso, new_iso);
var ok;
if(priority == cFront.EV.KEEP_SHUTTER)
ok = this.changeAperture(Math.abs(stops), stops > 0);
else
ok = this.changeShutterSpeed(Math.abs(stops), stops > 0);
if(ok)
_iso = new_iso;
return ok;
};
// Returns false if an out of range value would be generated
this.setFStop = function(new_fstop)
{
var stops = cFront.EV.getEVChangeBetweenFStops(_fstop, new_fstop);
var ok =...