1 //***************************************************************************/ 2 // This software is released under the 2-Clause BSD license, included 3 // below. 4 // 5 // Copyright (c) 2019, Aous Naman 6 // Copyright (c) 2019, Kakadu Software Pty Ltd, Australia 7 // Copyright (c) 2019, The University of New South Wales, Australia 8 // 9 // Redistribution and use in source and binary forms, with or without 10 // modification, are permitted provided that the following conditions are 11 // met: 12 // 13 // 1. Redistributions of source code must retain the above copyright 14 // notice, this list of conditions and the following disclaimer. 15 // 16 // 2. Redistributions in binary form must reproduce the above copyright 17 // notice, this list of conditions and the following disclaimer in the 18 // documentation and/or other materials provided with the distribution. 19 // 20 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS 21 // IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 22 // TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A 23 // PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 24 // HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 25 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED 26 // TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 27 // PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 28 // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 29 // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 30 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 //***************************************************************************/ 32 // This file is part of the OpenJPH software implementation. 33 // File: ojph_base.h 34 // Author: Aous Naman 35 // Date: 28 August 2019 36 //***************************************************************************/ 37 38 39 #ifndef OJPH_BASE_H 40 #define OJPH_BASE_H 41 42 #include "ojph_defs.h" 43 44 namespace ojph { 45 46 ///////////////////////////////////////////////////////////////////////////// 47 struct size 48 { wsize49 explicit size(int w = 0, int h = 0) : w(w), h(h) {} 50 si32 w; //width 51 si32 h; //height 52 areasize53 si64 area() const { return (si64)w * (si64)h; } 54 }; 55 56 ///////////////////////////////////////////////////////////////////////////// 57 struct point 58 { xpoint59 explicit point(int x = 0, int y = 0) : x(x), y(y) {} 60 si32 x, y; 61 }; 62 63 ///////////////////////////////////////////////////////////////////////////// 64 struct rect 65 { 66 point org; 67 size siz; 68 }; 69 70 } 71 72 #endif // !OJPH_BASE_H 73