Magick++ 7.1.1
Loading...
Searching...
No Matches
Magick::Geometry Class Reference
Collaboration diagram for Magick::Geometry:

Public Member Functions

 Geometry (const char *geometry_)
 
 Geometry (const Geometry &geometry_)
 
 Geometry (const std::string &geometry_)
 
 Geometry (size_t width_, size_t height_,::ssize_t xOff_=0, ::ssize_t yOff_=0)
 
const Geometryoperator= (const char *geometry_)
 
Geometryoperator= (const Geometry &Geometry_)
 
const Geometryoperator= (const std::string &geometry_)
 
 operator std::string () const
 
void aspect (bool aspect_)
 
bool aspect (void) const
 
void fillArea (bool fillArea_)
 
bool fillArea (void) const
 
void greater (bool greater_)
 
bool greater (void) const
 
void height (size_t height_)
 
size_t height (void) const
 
void isValid (bool isValid_)
 
bool isValid (void) const
 
void less (bool less_)
 
bool less (void) const
 
void limitPixels (bool limitPixels_)
 
bool limitPixels (void) const
 
void percent (bool percent_)
 
bool percent (void) const
 
void width (size_t width_)
 
size_t width (void) const
 
void xOff (::ssize_t xOff_)
 
::ssize_t xOff (void) const
 
void yOff (::ssize_t yOff_)
 
::ssize_t yOff (void) const
 
 Geometry (const MagickCore::RectangleInfo &rectangle_)
 
const Geometryoperator= (const MagickCore::RectangleInfo &rectangle_)
 
 operator MagickCore::RectangleInfo () const
 

Private Attributes

size_t _width
 
size_t _height
 
::ssize_t _xOff
 
::ssize_t _yOff
 
bool _isValid
 
bool _percent
 
bool _aspect
 
bool _greater
 
bool _less
 
bool _fillArea
 
bool _limitPixels
 

Detailed Description

Definition at line 37 of file Geometry.h.

Constructor & Destructor Documentation

◆ Geometry() [1/5]

Magick::Geometry::Geometry ( void  )

Definition at line 72 of file Geometry.cpp.

73 : _width(0),
74 _height(0),
75 _xOff(0),
76 _yOff(0),
77 _isValid(false),
78 _percent(false),
79 _aspect(false),
80 _greater(false),
81 _less(false),
82 _fillArea(false),
83 _limitPixels(false)
84{
85}

◆ Geometry() [2/5]

Magick::Geometry::Geometry ( const char *  geometry_)

Definition at line 87 of file Geometry.cpp.

88 : _width(0),
89 _height(0),
90 _xOff(0),
91 _yOff(0),
92 _isValid(false),
93 _percent(false),
94 _aspect(false),
95 _greater(false),
96 _less(false),
97 _fillArea(false),
98 _limitPixels(false)
99{
100 *this=geometry_; // Use assignment operator
101}

◆ Geometry() [3/5]

Magick::Geometry::Geometry ( const Geometry geometry_)

Definition at line 103 of file Geometry.cpp.

104 : _width(geometry_._width),
105 _height(geometry_._height),
106 _xOff(geometry_._xOff),
107 _yOff(geometry_._yOff),
108 _isValid(geometry_._isValid),
109 _percent(geometry_._percent),
110 _aspect(geometry_._aspect),
111 _greater(geometry_._greater),
112 _less(geometry_._less),
113 _fillArea(geometry_._fillArea),
114 _limitPixels(geometry_._limitPixels)
115{
116}

◆ Geometry() [4/5]

Magick::Geometry::Geometry ( const std::string &  geometry_)

Definition at line 118 of file Geometry.cpp.

119 : _width(0),
120 _height(0),
121 _xOff(0),
122 _yOff(0),
123 _isValid(false),
124 _percent(false),
125 _aspect(false),
126 _greater(false),
127 _less(false),
128 _fillArea(false),
129 _limitPixels(false)
130{
131 *this=geometry_; // Use assignment operator
132}

◆ ~Geometry()

Magick::Geometry::~Geometry ( void  )

Definition at line 150 of file Geometry.cpp.

151{
152}

◆ Geometry() [5/5]

Magick::Geometry::Geometry ( const MagickCore::RectangleInfo &  rectangle_)

Definition at line 440 of file Geometry.cpp.

441 : _width(static_cast<size_t>(rectangle_.width)),
442 _height(static_cast<size_t>(rectangle_.height)),
443 _xOff(static_cast<ssize_t>(rectangle_.x)),
444 _yOff(static_cast<ssize_t>(rectangle_.y)),
445 _isValid(true),
446 _percent(false),
447 _aspect(false),
448 _greater(false),
449 _less(false),
450 _fillArea(false),
451 _limitPixels(false)
452{
453}

Member Function Documentation

◆ aspect() [1/2]

void Magick::Geometry::aspect ( bool  aspect_)

Definition at line 329 of file Geometry.cpp.

330{
331 _aspect=aspect_;
332}

◆ aspect() [2/2]

bool Magick::Geometry::aspect ( void  ) const

Definition at line 334 of file Geometry.cpp.

335{
336 return(_aspect);
337}

◆ fillArea() [1/2]

void Magick::Geometry::fillArea ( bool  fillArea_)

Definition at line 339 of file Geometry.cpp.

340{
341 _fillArea=fillArea_;
342}

◆ fillArea() [2/2]

bool Magick::Geometry::fillArea ( void  ) const

Definition at line 344 of file Geometry.cpp.

345{
346 return(_fillArea);
347}

◆ greater() [1/2]

void Magick::Geometry::greater ( bool  greater_)

Definition at line 349 of file Geometry.cpp.

350{
351 _greater=greater_;
352}

◆ greater() [2/2]

bool Magick::Geometry::greater ( void  ) const

Definition at line 354 of file Geometry.cpp.

355{
356 return(_greater);
357}

◆ height() [1/2]

void Magick::Geometry::height ( size_t  height_)

Definition at line 359 of file Geometry.cpp.

360{
361 _height=height_;
362}

◆ height() [2/2]

size_t Magick::Geometry::height ( void  ) const

Definition at line 364 of file Geometry.cpp.

365{
366 return(_height);
367}

◆ isValid() [1/2]

void Magick::Geometry::isValid ( bool  isValid_)

Definition at line 369 of file Geometry.cpp.

370{
371 _isValid=isValid_;
372}

◆ isValid() [2/2]

bool Magick::Geometry::isValid ( void  ) const

Definition at line 374 of file Geometry.cpp.

375{
376 return(_isValid);
377}

◆ less() [1/2]

void Magick::Geometry::less ( bool  less_)

Definition at line 379 of file Geometry.cpp.

380{
381 _less=less_;
382}

◆ less() [2/2]

bool Magick::Geometry::less ( void  ) const

Definition at line 384 of file Geometry.cpp.

385{
386 return(_less);
387}

◆ limitPixels() [1/2]

void Magick::Geometry::limitPixels ( bool  limitPixels_)

Definition at line 389 of file Geometry.cpp.

390{
391 _limitPixels=limitPixels_;
392}

◆ limitPixels() [2/2]

bool Magick::Geometry::limitPixels ( void  ) const

Definition at line 394 of file Geometry.cpp.

395{
396 return(_limitPixels);
397}

◆ operator MagickCore::RectangleInfo()

Magick::Geometry::operator MagickCore::RectangleInfo ( ) const

Definition at line 466 of file Geometry.cpp.

467{
468 RectangleInfo rectangle;
469 rectangle.width=_width;
470 rectangle.height=_height;
471 rectangle.x=_xOff;
472 rectangle.y=_yOff;
473 return(rectangle);
474}

◆ operator std::string()

Magick::Geometry::operator std::string ( ) const

Definition at line 268 of file Geometry.cpp.

269{
270 char
271 buffer[MagickPathExtent];
272
273 std::string
274 geometry;
275
276 if (!isValid())
277 throwExceptionExplicit(MagickCore::OptionError,
278 "Invalid geometry argument");
279
280 if (_width)
281 {
282 FormatLocaleString(buffer,MagickPathExtent,"%.20g",(double) _width);
283 geometry+=buffer;
284 }
285
286 if (_height)
287 {
288 FormatLocaleString(buffer,MagickPathExtent,"%.20g",(double) _height);
289 geometry+='x';
290 geometry+=buffer;
291 }
292
293 if (_xOff || _yOff)
294 {
295 if (_xOff >= 0)
296 geometry+='+';
297
298 FormatLocaleString(buffer,MagickPathExtent,"%.20g",(double) _xOff);
299 geometry+=buffer;
300
301 if (_yOff >= 0)
302 geometry+='+';
303
304 FormatLocaleString(buffer,MagickPathExtent,"%.20g",(double) _yOff);
305 geometry+=buffer;
306 }
307
308 if (_percent)
309 geometry+='%';
310
311 if (_aspect)
312 geometry+='!';
313
314 if (_greater)
315 geometry+='>';
316
317 if (_less)
318 geometry+='<';
319
320 if (_fillArea)
321 geometry+='^';
322
323 if (_limitPixels)
324 geometry+='@';
325
326 return(geometry);
327}

◆ operator=() [1/4]

const Magick::Geometry & Magick::Geometry::operator= ( const char *  geometry_)

Definition at line 154 of file Geometry.cpp.

155{
156 *this=std::string(geometry_);
157 return(*this);
158}

◆ operator=() [2/4]

Magick::Geometry & Magick::Geometry::operator= ( const Geometry Geometry_)

Definition at line 160 of file Geometry.cpp.

161{
162 // If not being set to ourself
163 if (this != &geometry_)
164 {
165 _width=geometry_._width;
166 _height=geometry_._height;
167 _xOff=geometry_._xOff;
168 _yOff=geometry_._yOff;
169 _isValid=geometry_._isValid;
170 _percent=geometry_._percent;
171 _aspect=geometry_._aspect;
172 _greater=geometry_._greater;
173 _less=geometry_._less;
174 _fillArea=geometry_._fillArea;
175 _limitPixels=geometry_._limitPixels;
176 }
177 return(*this);
178}

◆ operator=() [3/4]

const Magick::Geometry & Magick::Geometry::operator= ( const MagickCore::RectangleInfo &  rectangle_)

Definition at line 455 of file Geometry.cpp.

457{
458 _width=static_cast<size_t>(rectangle_.width),
459 _height=static_cast<size_t>(rectangle_.height),
460 _xOff=static_cast<ssize_t>(rectangle_.x),
461 _yOff=static_cast<ssize_t>(rectangle_.y),
462 _isValid=true;
463 return(*this);
464}

◆ operator=() [4/4]

const Magick::Geometry & Magick::Geometry::operator= ( const std::string &  geometry_)

Definition at line 180 of file Geometry.cpp.

182{
183 char
184 geom[MagickPathExtent];
185
186 char
187 *pageptr;
188
189 ssize_t
190 flags,
191 x = 0,
192 y = 0;
193
194 size_t
195 height_val=0,
196 width_val=0;
197
198 // If argument does not start with digit, presume that it is a
199 // page-size specification that needs to be converted to an
200 // equivalent geometry specification using PostscriptGeometry()
201 (void) CopyMagickString(geom,geometry_.c_str(),MagickPathExtent);
202 if (geom[0] != '-' && geom[0] != '+' && geom[0] != 'x' &&
203 !isdigit(static_cast<int>(geom[0])))
204 {
205 pageptr=GetPageGeometry(geom);
206 if (pageptr != 0)
207 {
208 (void) CopyMagickString(geom,pageptr,MagickPathExtent);
209 pageptr=(char *) RelinquishMagickMemory(pageptr);
210 }
211 }
212
213 flags=GetGeometry(geom,&x,&y,&width_val,&height_val);
214
215 if (flags == NoValue)
216 {
217 // Total failure!
218 *this=Geometry();
219 isValid(false);
220 return(*this);
221 }
222
223 if ((flags & WidthValue) != 0)
224 {
225 _width=width_val;
226 isValid(true);
227 }
228
229 if ((flags & HeightValue) != 0)
230 {
231 _height=height_val;
232 isValid(true);
233 }
234
235 if ((flags & XValue) != 0)
236 {
237 _xOff=static_cast<ssize_t>(x);
238 isValid(true);
239 }
240
241 if ((flags & YValue) != 0)
242 {
243 _yOff=static_cast<ssize_t>(y);
244 isValid(true);
245 }
246
247 if ((flags & PercentValue) != 0)
248 _percent=true;
249
250 if ((flags & AspectValue) != 0)
251 _aspect=true;
252
253 if ((flags & LessValue) != 0)
254 _less=true;
255
256 if ((flags & GreaterValue) != 0)
257 _greater=true;
258
259 if ((flags & MinimumValue) != 0)
260 _fillArea=true;
261
262 if ((flags & AreaValue) != 0)
263 _limitPixels=true;
264
265 return(*this);
266}

◆ percent() [1/2]

void Magick::Geometry::percent ( bool  percent_)

Definition at line 405 of file Geometry.cpp.

406{
407 _percent = percent_;
408}

◆ percent() [2/2]

bool Magick::Geometry::percent ( void  ) const

Definition at line 410 of file Geometry.cpp.

411{
412 return(_percent);
413}

◆ width() [1/2]

void Magick::Geometry::width ( size_t  width_)

Definition at line 399 of file Geometry.cpp.

400{
401 _width=width_;
402 isValid(true);
403}

◆ width() [2/2]

size_t Magick::Geometry::width ( void  ) const

Definition at line 415 of file Geometry.cpp.

416{
417 return(_width);
418}

◆ xOff() [1/2]

void Magick::Geometry::xOff ( ::ssize_t  xOff_)

Definition at line 420 of file Geometry.cpp.

421{
422 _xOff=xOff_;
423}

◆ xOff() [2/2]

ssize_t Magick::Geometry::xOff ( void  ) const

Definition at line 425 of file Geometry.cpp.

426{
427 return(_xOff);
428}

◆ yOff() [1/2]

void Magick::Geometry::yOff ( ::ssize_t  yOff_)

Definition at line 430 of file Geometry.cpp.

431{
432 _yOff=yOff_;
433}

◆ yOff() [2/2]

ssize_t Magick::Geometry::yOff ( void  ) const

Definition at line 435 of file Geometry.cpp.

436{
437 return(_yOff);
438}

Member Data Documentation

◆ _aspect

bool Magick::Geometry::_aspect
private

Definition at line 136 of file Geometry.h.

◆ _fillArea

bool Magick::Geometry::_fillArea
private

Definition at line 139 of file Geometry.h.

◆ _greater

bool Magick::Geometry::_greater
private

Definition at line 137 of file Geometry.h.

◆ _height

size_t Magick::Geometry::_height
private

Definition at line 131 of file Geometry.h.

◆ _isValid

bool Magick::Geometry::_isValid
private

Definition at line 134 of file Geometry.h.

◆ _less

bool Magick::Geometry::_less
private

Definition at line 138 of file Geometry.h.

◆ _limitPixels

bool Magick::Geometry::_limitPixels
private

Definition at line 140 of file Geometry.h.

◆ _percent

bool Magick::Geometry::_percent
private

Definition at line 135 of file Geometry.h.

◆ _width

size_t Magick::Geometry::_width
private

Definition at line 130 of file Geometry.h.

◆ _xOff

::ssize_t Magick::Geometry::_xOff
private

Definition at line 132 of file Geometry.h.

◆ _yOff

::ssize_t Magick::Geometry::_yOff
private

Definition at line 133 of file Geometry.h.


The documentation for this class was generated from the following files: