public static ImageSetHelper CreateGeneric(ImageSetType dataSetType, BandPass bandPass)
        {
            ImageSetHelper temp = new ImageSetHelper();

            temp.generic         = true;
            temp.name            = "Generic";
            temp.sparse          = false;
            temp.dataSetType     = dataSetType;
            temp.bandPass        = bandPass;
            temp.quadTreeTileMap = "";
            temp.url             = "";
            temp.levels          = 0;
            temp.baseTileDegrees = 0;
            temp.imageSetID      = 0;
            temp.extension       = "";
            temp.projection      = ProjectionType.Equirectangular;
            temp.bottomsUp       = false;
            temp.baseLevel       = 0;
            temp.mercator        = (temp.projection == ProjectionType.Mercator);
            temp.centerX         = 0;
            temp.centerY         = 0;
            temp.rotation        = 0;
            //todo add scale
            temp.thumbnailUrl = "";

            temp.matrix = Matrix3d.Identity;
            temp.matrix.Multiply(Matrix3d.RotationX((((temp.Rotation)) / 180f * Math.PI)));
            temp.matrix.Multiply(Matrix3d.RotationZ(((temp.CenterY) / 180f * Math.PI)));
            temp.matrix.Multiply(Matrix3d.RotationY((((360 - temp.CenterX) + 180) / 180f * Math.PI)));

            return(temp);
        }
        public static ImageSetHelper Create(string name, string url, ImageSetType dataSetType, BandPass bandPass, ProjectionType projection, int imageSetID, int baseLevel, int levels, int tileSize, double baseTileDegrees, string extension, bool bottomsUp, string quadTreeMap, double centerX, double centerY, double rotation, bool sparse, string thumbnailUrl, bool defaultSet, bool elevationModel, int wf, double offsetX, double offsetY, string credits, string creditsUrl, string demUrlIn, string alturl, double meanRadius, string referenceFrame)
        {
            ImageSetHelper temp = new ImageSetHelper();

            temp.ReferenceFrame  = referenceFrame;
            temp.MeanRadius      = meanRadius;
            temp.altUrl          = alturl;
            temp.demUrl          = demUrlIn;
            temp.creditsText     = credits;
            temp.creditsUrl      = creditsUrl;
            temp.offsetY         = offsetY;
            temp.offsetX         = offsetX;
            temp.widthFactor     = wf;
            temp.elevationModel  = elevationModel;
            temp.defaultSet      = defaultSet;
            temp.name            = name;
            temp.sparse          = sparse;
            temp.dataSetType     = dataSetType;
            temp.bandPass        = bandPass;
            temp.quadTreeTileMap = quadTreeMap;
            temp.url             = url;
            temp.levels          = levels;
            temp.baseTileDegrees = baseTileDegrees;
            temp.imageSetID      = imageSetID;
            temp.extension       = extension;
            temp.projection      = projection;
            temp.bottomsUp       = bottomsUp;
            temp.baseLevel       = baseLevel;
            temp.mercator        = (projection == ProjectionType.Mercator);
            temp.centerX         = centerX;
            temp.centerY         = centerY;
            temp.rotation        = rotation;
            temp.thumbnailUrl    = thumbnailUrl;
            temp.ComputeMatrix();

            return(temp);
        }
        public static ImageSetHelper CreateGeneric(ImageSetType dataSetType, BandPass bandPass)
        {
            ImageSetHelper temp = new ImageSetHelper();
            temp.generic = true;
            temp.name = "Generic";
            temp.sparse = false;
            temp.dataSetType = dataSetType;
            temp.bandPass = bandPass;
            temp.quadTreeTileMap = "";
            temp.url = "";
            temp.levels = 0;
            temp.baseTileDegrees = 0;
            temp.imageSetID = 0;
            temp.extension = "";
            temp.projection = ProjectionType.Equirectangular;
            temp.bottomsUp = false;
            temp.baseLevel = 0;
            temp.mercator = (temp.projection == ProjectionType.Mercator);
            temp.centerX = 0;
            temp.centerY = 0;
            temp.rotation = 0;
            //todo add scale
            temp.thumbnailUrl = "";

            temp.matrix = Matrix3d.Identity;
            temp.matrix.Multiply(Matrix3d.RotationX((((temp.Rotation)) / 180f * Math.PI)));
            temp.matrix.Multiply(Matrix3d.RotationZ(((temp.CenterY) / 180f * Math.PI)));
            temp.matrix.Multiply(Matrix3d.RotationY((((360 - temp.CenterX) + 180) / 180f * Math.PI)));

            return temp;
        }
        public static ImageSetHelper Create(string name, string url, ImageSetType dataSetType, BandPass bandPass, ProjectionType projection, int imageSetID, int baseLevel, int levels, int tileSize, double baseTileDegrees, string extension, bool bottomsUp, string quadTreeMap, double centerX, double centerY, double rotation, bool sparse, string thumbnailUrl, bool defaultSet, bool elevationModel, int wf, double offsetX, double offsetY, string credits, string creditsUrl, string demUrlIn, string alturl, double meanRadius, string referenceFrame)
        {
            ImageSetHelper temp = new ImageSetHelper();

            temp.ReferenceFrame = referenceFrame;
            temp.MeanRadius = meanRadius;
            temp.altUrl = alturl;
            temp.demUrl = demUrlIn;
            temp.creditsText = credits;
            temp.creditsUrl = creditsUrl;
            temp.offsetY = offsetY;
            temp.offsetX = offsetX;
            temp.widthFactor = wf;
            temp.elevationModel = elevationModel;
            temp.defaultSet = defaultSet;
            temp.name = name;
            temp.sparse = sparse;
            temp.dataSetType = dataSetType;
            temp.bandPass = bandPass;
            temp.quadTreeTileMap = quadTreeMap;
            temp.url = url;
            temp.levels = levels;
            temp.baseTileDegrees = baseTileDegrees;
            temp.imageSetID = imageSetID;
            temp.extension = extension;
            temp.projection = projection;
            temp.bottomsUp = bottomsUp;
            temp.baseLevel = baseLevel;
            temp.mercator = (projection == ProjectionType.Mercator);
            temp.centerX = centerX;
            temp.centerY = centerY;
            temp.rotation = rotation;
            temp.thumbnailUrl = thumbnailUrl;
            temp.ComputeMatrix();

            return temp;
        }