/usr/include/ImageMagick-6/Magick++/Geometry.h is in libmagick++-6-headers 8:6.9.7.4+dfsg-16ubuntu6.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 | // This may look like C code, but it is really -*- C++ -*-
//
// Copyright Bob Friesenhahn, 1999, 2000, 2001, 2002
// Copyright Dirk Lemstra 2014
//
// Geometry Definition
//
// Representation of an ImageMagick geometry specification
// X11 geometry specification plus hints
#if !defined (Magick_Geometry_header)
#define Magick_Geometry_header
#include "Magick++/Include.h"
#include <string>
namespace Magick
{
class MagickPPExport Geometry;
// Compare two Geometry objects regardless of LHS/RHS
MagickPPExport int operator ==
(const Magick::Geometry& left_,const Magick::Geometry& right_);
MagickPPExport int operator !=
(const Magick::Geometry& left_,const Magick::Geometry& right_);
MagickPPExport int operator >
(const Magick::Geometry& left_,const Magick::Geometry& right_);
MagickPPExport int operator <
(const Magick::Geometry& left_,const Magick::Geometry& right_);
MagickPPExport int operator >=
(const Magick::Geometry& left_,const Magick::Geometry& right_);
MagickPPExport int operator <=
(const Magick::Geometry& left_,const Magick::Geometry& right_);
class MagickPPExport Geometry
{
public:
// Default constructor
Geometry();
// Construct Geometry from specified string
Geometry(const char *geometry_);
// Copy constructor
Geometry(const Geometry &geometry_);
// Construct Geometry from specified string
Geometry(const std::string &geometry_);
// Construct Geometry from specified dimensions
Geometry(size_t width_,size_t height_,::ssize_t xOff_=0,
::ssize_t yOff_=0,bool xNegative_=false,bool yNegative_=false);
// Destructor
~Geometry(void);
// Set via geometry string
const Geometry& operator=(const char *geometry_);
// Assignment operator
Geometry& operator=(const Geometry& Geometry_);
// Set via geometry string
const Geometry& operator=(const std::string &geometry_ );
// Return geometry string
operator std::string() const;
// Resize without preserving aspect ratio (!)
void aspect(bool aspect_);
bool aspect(void) const;
// Resize the image based on the smallest fitting dimension (^)
void fillArea(bool fillArea_);
bool fillArea(void) const;
// Resize if image is greater than size (>)
void greater(bool greater_);
bool greater(void) const;
// Height
void height(size_t height_);
size_t height(void) const;
// Does object contain valid geometry?
void isValid(bool isValid_);
bool isValid(void) const;
// Resize if image is less than size (<)
void less(bool less_);
bool less(void) const;
// Resize using a pixel area count limit (@)
void limitPixels(bool limitPixels_);
bool limitPixels(void) const;
// Width and height are expressed as percentages
void percent(bool percent_);
bool percent(void) const;
// Width
void width(size_t width_);
size_t width(void) const;
// Sign of X offset negative? (X origin at right)
void xNegative(bool xNegative_);
bool xNegative(void) const;
// X offset from origin
void xOff(::ssize_t xOff_);
::ssize_t xOff(void) const;
// Sign of Y offset negative? (Y origin at bottom)
void yNegative(bool yNegative_);
bool yNegative(void) const;
// Y offset from origin
void yOff(::ssize_t yOff_);
::ssize_t yOff(void) const;
//
// Public methods below this point are for Magick++ use only.
//
// Construct from RectangleInfo
Geometry(const MagickCore::RectangleInfo &rectangle_);
// Set via RectangleInfo
const Geometry& operator=(const MagickCore::RectangleInfo &rectangle_);
// Return an ImageMagick RectangleInfo struct
operator MagickCore::RectangleInfo() const;
private:
size_t _width;
size_t _height;
::ssize_t _xOff;
::ssize_t _yOff;
bool _xNegative;
bool _yNegative;
bool _isValid;
bool _percent; // Interpret width & height as percentages (%)
bool _aspect; // Force exact size (!)
bool _greater; // Resize only if larger than geometry (>)
bool _less; // Resize only if smaller than geometry (<)
bool _fillArea; // Resize the image based on the smallest fitting dimension (^)
bool _limitPixels; // Resize using a pixel area count limit (@)
};
class MagickPPExport Offset;
// Compare two Offset objects
MagickPPExport int operator ==
(const Magick::Offset& left_,const Magick::Offset& right_);
MagickPPExport int operator !=
(const Magick::Offset& left_,const Magick::Offset& right_);
class MagickPPExport Offset
{
public:
// Default constructor
Offset();
// Construct Offset from specified string
Offset(const char *offset_);
// Copy constructor
Offset(const Offset &offset_);
// Construct Offset from specified string
Offset(const std::string &offset_);
// Construct Offset from specified x and y
Offset(ssize_t x_,ssize_t y_);
// Destructor
~Offset(void);
// Set via offset string
const Offset& operator=(const char *offset_);
// Assignment operator
Offset& operator=(const Offset& offset_);
// Set via offset string
const Offset& operator=(const std::string &offset_);
// X offset from origin
ssize_t x(void) const;
// Y offset from origin
ssize_t y(void) const;
//
// Public methods below this point are for Magick++ use only.
//
// Return an ImageMagick OffsetInfo struct
operator MagickCore::OffsetInfo() const;
private:
ssize_t _x;
ssize_t _y;
};
} // namespace Magick
//
// Inlines
//
inline void Magick::Geometry::aspect(bool aspect_)
{
_aspect=aspect_;
}
inline bool Magick::Geometry::aspect(void) const
{
return(_aspect);
}
inline void Magick::Geometry::fillArea(bool fillArea_)
{
_fillArea=fillArea_;
}
inline bool Magick::Geometry::fillArea(void) const
{
return(_fillArea);
}
inline void Magick::Geometry::greater(bool greater_)
{
_greater=greater_;
}
inline bool Magick::Geometry::greater(void) const
{
return(_greater);
}
inline void Magick::Geometry::height(size_t height_)
{
_height=height_;
}
inline size_t Magick::Geometry::height(void) const
{
return(_height);
}
inline void Magick::Geometry::isValid(bool isValid_)
{
_isValid=isValid_;
}
inline bool Magick::Geometry::isValid(void) const
{
return(_isValid);
}
inline void Magick::Geometry::less(bool less_)
{
_less=less_;
}
inline bool Magick::Geometry::less(void) const
{
return(_less);
}
inline void Magick::Geometry::limitPixels(bool limitPixels_)
{
_limitPixels=limitPixels_;
}
inline bool Magick::Geometry::limitPixels(void) const
{
return(_limitPixels);
}
inline void Magick::Geometry::width(size_t width_)
{
_width=width_;
isValid(true);
}
inline void Magick::Geometry::percent(bool percent_)
{
_percent = percent_;
}
inline bool Magick::Geometry::percent(void) const
{
return(_percent);
}
inline size_t Magick::Geometry::width(void) const
{
return(_width);
}
inline void Magick::Geometry::xNegative(bool xNegative_)
{
_xNegative=xNegative_;
}
inline bool Magick::Geometry::xNegative(void) const
{
return(_xNegative);
}
inline void Magick::Geometry::xOff(::ssize_t xOff_)
{
_xOff=xOff_;
}
inline ::ssize_t Magick::Geometry::xOff(void) const
{
return(_xOff);
}
inline void Magick::Geometry::yNegative(bool yNegative_)
{
_yNegative=yNegative_;
}
inline bool Magick::Geometry::yNegative(void) const
{
return(_yNegative);
}
inline void Magick::Geometry::yOff(::ssize_t yOff_)
{
_yOff=yOff_;
}
inline ::ssize_t Magick::Geometry::yOff(void) const
{
return(_yOff);
}
#endif // Magick_Geometry_header
|