Magick++ 6.9.13
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, bool xNegative_=false, bool yNegative_=false)
 
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 xNegative (bool xNegative_)
 
bool xNegative (void) const
 
void xOff (::ssize_t xOff_)
 
::ssize_t xOff (void) const
 
void yNegative (bool yNegative_)
 
bool yNegative (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 _xNegative
 
bool _yNegative
 
bool _isValid
 
bool _percent
 
bool _aspect
 
bool _greater
 
bool _less
 
bool _fillArea
 
bool _limitPixels
 

Detailed Description

Definition at line 35 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 _xNegative(false),
78 _yNegative(false),
79 _isValid(false),
80 _percent(false),
81 _aspect(false),
82 _greater(false),
83 _less(false),
84 _fillArea(false),
85 _limitPixels(false)
86{
87}

◆ Geometry() [2/5]

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

Definition at line 89 of file Geometry.cpp.

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

◆ Geometry() [3/5]

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

Definition at line 107 of file Geometry.cpp.

108 : _width(geometry_._width),
109 _height(geometry_._height),
110 _xOff(geometry_._xOff),
111 _yOff(geometry_._yOff),
112 _xNegative(geometry_._xNegative),
113 _yNegative(geometry_._yNegative),
114 _isValid(geometry_._isValid),
115 _percent(geometry_._percent),
116 _aspect(geometry_._aspect),
117 _greater(geometry_._greater),
118 _less(geometry_._less),
119 _fillArea(geometry_._fillArea),
120 _limitPixels(geometry_._limitPixels)
121{
122}

◆ Geometry() [4/5]

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

Definition at line 124 of file Geometry.cpp.

125 : _width(0),
126 _height(0),
127 _xOff(0),
128 _yOff(0),
129 _xNegative(false),
130 _yNegative(false),
131 _isValid(false),
132 _percent(false),
133 _aspect(false),
134 _greater(false),
135 _less(false),
136 _fillArea(false),
137 _limitPixels(false)
138{
139 *this=geometry_; // Use assignment operator
140}

◆ ~Geometry()

Magick::Geometry::~Geometry ( void )

Definition at line 160 of file Geometry.cpp.

161{
162}

◆ Geometry() [5/5]

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

Definition at line 350 of file Geometry.cpp.

351 : _width(static_cast<size_t>(rectangle_.width)),
352 _height(static_cast<size_t>(rectangle_.height)),
353 _xOff(static_cast<ssize_t>(rectangle_.x)),
354 _yOff(static_cast<ssize_t>(rectangle_.y)),
355 _xNegative(rectangle_.x < 0 ? true : false),
356 _yNegative(rectangle_.y < 0 ? true : false),
357 _isValid(true),
358 _percent(false),
359 _aspect(false),
360 _greater(false),
361 _less(false),
362 _fillArea(false),
363 _limitPixels(false)
364{
365}

Member Function Documentation

◆ aspect() [1/2]

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

Definition at line 213 of file Geometry.h.

214{
215 _aspect=aspect_;
216}

◆ aspect() [2/2]

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

Definition at line 218 of file Geometry.h.

219{
220 return(_aspect);
221}

◆ fillArea() [1/2]

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

Definition at line 223 of file Geometry.h.

224{
225 _fillArea=fillArea_;
226}

◆ fillArea() [2/2]

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

Definition at line 228 of file Geometry.h.

229{
230 return(_fillArea);
231}

◆ greater() [1/2]

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

Definition at line 233 of file Geometry.h.

234{
235 _greater=greater_;
236}

◆ greater() [2/2]

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

Definition at line 238 of file Geometry.h.

239{
240 return(_greater);
241}

◆ height() [1/2]

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

Definition at line 243 of file Geometry.h.

244{
245 _height=height_;
246}

◆ height() [2/2]

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

Definition at line 248 of file Geometry.h.

249{
250 return(_height);
251}

◆ isValid() [1/2]

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

Definition at line 253 of file Geometry.h.

254{
255 _isValid=isValid_;
256}

◆ isValid() [2/2]

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

Definition at line 258 of file Geometry.h.

259{
260 return(_isValid);
261}

◆ less() [1/2]

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

Definition at line 263 of file Geometry.h.

264{
265 _less=less_;
266}

◆ less() [2/2]

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

Definition at line 268 of file Geometry.h.

269{
270 return(_less);
271}

◆ limitPixels() [1/2]

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

Definition at line 273 of file Geometry.h.

274{
275 _limitPixels=limitPixels_;
276}

◆ limitPixels() [2/2]

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

Definition at line 278 of file Geometry.h.

279{
280 return(_limitPixels);
281}

◆ operator MagickCore::RectangleInfo()

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

Definition at line 380 of file Geometry.cpp.

381{
382 RectangleInfo rectangle;
383 rectangle.width=_width;
384 rectangle.height=_height;
385 rectangle.x=_xOff;
386 rectangle.y=_yOff;
387 return(rectangle);
388}

◆ operator std::string()

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

Definition at line 286 of file Geometry.cpp.

287{
288 char
289 buffer[MaxTextExtent];
290
291 std::string
292 geometry;
293
294 if (!isValid())
295 throwExceptionExplicit(OptionError,"Invalid geometry argument");
296
297 if (_width)
298 {
299 FormatLocaleString(buffer,MaxTextExtent,"%.20g",(double) _width);
300 geometry+=buffer;
301 }
302
303 if (_height)
304 {
305 FormatLocaleString(buffer,MaxTextExtent,"%.20g",(double) _height);
306 geometry+='x';
307 geometry+=buffer;
308 }
309
310 if (_xOff || _yOff)
311 {
312 if (_xNegative)
313 geometry+='-';
314 else
315 geometry+='+';
316
317 FormatLocaleString(buffer,MaxTextExtent,"%.20g",(double) _xOff);
318 geometry+=buffer;
319
320 if (_yNegative)
321 geometry+='-';
322 else
323 geometry+='+';
324
325 FormatLocaleString(buffer,MaxTextExtent,"%.20g",(double) _yOff);
326 geometry+=buffer;
327 }
328
329 if (_percent)
330 geometry+='%';
331
332 if (_aspect)
333 geometry+='!';
334
335 if (_greater)
336 geometry+='>';
337
338 if (_less)
339 geometry+='<';
340
341 if (_fillArea)
342 geometry+='^';
343
344 if (_limitPixels)
345 geometry+='@';
346
347 return(geometry);
348}

◆ operator=() [1/4]

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

Definition at line 164 of file Geometry.cpp.

165{
166 *this=std::string(geometry_);
167 return(*this);
168}

◆ operator=() [2/4]

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

Definition at line 170 of file Geometry.cpp.

171{
172 // If not being set to ourself
173 if (this != &geometry_)
174 {
175 _width=geometry_._width;
176 _height=geometry_._height;
177 _xOff=geometry_._xOff;
178 _yOff=geometry_._yOff;
179 _xNegative=geometry_._xNegative;
180 _yNegative=geometry_._yNegative;
181 _isValid=geometry_._isValid;
182 _percent=geometry_._percent;
183 _aspect=geometry_._aspect;
184 _greater=geometry_._greater;
185 _less=geometry_._less;
186 _fillArea=geometry_._fillArea;
187 _limitPixels=geometry_._limitPixels;
188 }
189 return(*this);
190}

◆ operator=() [3/4]

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

Definition at line 367 of file Geometry.cpp.

369{
370 _width=static_cast<size_t>(rectangle_.width),
371 _height=static_cast<size_t>(rectangle_.height),
372 _xOff=static_cast<ssize_t>(rectangle_.x),
373 _yOff=static_cast<ssize_t>(rectangle_.y),
374 _xNegative=rectangle_.x < 0 ? true : false,
375 _yNegative=rectangle_.y < 0 ? true : false,
376 _isValid=true;
377 return(*this);
378}

◆ operator=() [4/4]

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

Definition at line 192 of file Geometry.cpp.

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

◆ percent() [1/2]

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

Definition at line 289 of file Geometry.h.

290{
291 _percent = percent_;
292}

◆ percent() [2/2]

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

Definition at line 294 of file Geometry.h.

295{
296 return(_percent);
297}

◆ width() [1/2]

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

Definition at line 283 of file Geometry.h.

284{
285 _width=width_;
286 isValid(true);
287}

◆ width() [2/2]

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

Definition at line 299 of file Geometry.h.

300{
301 return(_width);
302}

◆ xNegative() [1/2]

void Magick::Geometry::xNegative ( bool xNegative_)
inline

Definition at line 304 of file Geometry.h.

305{
306 _xNegative=xNegative_;
307}

◆ xNegative() [2/2]

bool Magick::Geometry::xNegative ( void ) const
inline

Definition at line 309 of file Geometry.h.

310{
311 return(_xNegative);
312}

◆ xOff() [1/2]

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

Definition at line 314 of file Geometry.h.

315{
316 _xOff=xOff_;
317}

◆ xOff() [2/2]

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

Definition at line 319 of file Geometry.h.

320{
321 return(_xOff);
322}

◆ yNegative() [1/2]

void Magick::Geometry::yNegative ( bool yNegative_)
inline

Definition at line 324 of file Geometry.h.

325{
326 _yNegative=yNegative_;
327}

◆ yNegative() [2/2]

bool Magick::Geometry::yNegative ( void ) const
inline

Definition at line 329 of file Geometry.h.

330{
331 return(_yNegative);
332}

◆ yOff() [1/2]

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

Definition at line 334 of file Geometry.h.

335{
336 _yOff=yOff_;
337}

◆ yOff() [2/2]

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

Definition at line 339 of file Geometry.h.

340{
341 return(_yOff);
342}

Member Data Documentation

◆ _aspect

bool Magick::Geometry::_aspect
private

Definition at line 144 of file Geometry.h.

◆ _fillArea

bool Magick::Geometry::_fillArea
private

Definition at line 147 of file Geometry.h.

◆ _greater

bool Magick::Geometry::_greater
private

Definition at line 145 of file Geometry.h.

◆ _height

size_t Magick::Geometry::_height
private

Definition at line 137 of file Geometry.h.

◆ _isValid

bool Magick::Geometry::_isValid
private

Definition at line 142 of file Geometry.h.

◆ _less

bool Magick::Geometry::_less
private

Definition at line 146 of file Geometry.h.

◆ _limitPixels

bool Magick::Geometry::_limitPixels
private

Definition at line 148 of file Geometry.h.

◆ _percent

bool Magick::Geometry::_percent
private

Definition at line 143 of file Geometry.h.

◆ _width

size_t Magick::Geometry::_width
private

Definition at line 136 of file Geometry.h.

◆ _xNegative

bool Magick::Geometry::_xNegative
private

Definition at line 140 of file Geometry.h.

◆ _xOff

::ssize_t Magick::Geometry::_xOff
private

Definition at line 138 of file Geometry.h.

◆ _yNegative

bool Magick::Geometry::_yNegative
private

Definition at line 141 of file Geometry.h.

◆ _yOff

::ssize_t Magick::Geometry::_yOff
private

Definition at line 139 of file Geometry.h.


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