| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- <?php
- namespace Intervention\Image;
- class Constraint
- {
- /**
- * Bit value of aspect ratio constraint
- */
- const ASPECTRATIO = 1;
- /**
- * Bit value of upsize constraint
- */
- const UPSIZE = 2;
- /**
- * Constraint size
- *
- * @var \Intervention\Image\Size
- */
- private $size;
- /**
- * Integer value of fixed parameters
- *
- * @var int
- */
- private $fixed = 0;
- /**
- * Create a new constraint based on size
- *
- * @param Size $size
- */
- public function __construct(Size $size)
- {
- $this->size = $size;
- }
- /**
- * Returns current size of constraint
- *
- * @return \Intervention\Image\Size
- */
- public function getSize()
- {
- return $this->size;
- }
- /**
- * Fix the given argument in current constraint
- *
- * @param int $type
- * @return void
- */
- public function fix($type)
- {
- $this->fixed = ($this->fixed & ~(1 << $type)) | (1 << $type);
- }
- /**
- * Checks if given argument is fixed in current constraint
- *
- * @param int $type
- * @return boolean
- */
- public function isFixed($type)
- {
- return (bool) ($this->fixed & (1 << $type));
- }
- /**
- * Fixes aspect ratio in current constraint
- *
- * @return void
- */
- public function aspectRatio()
- {
- $this->fix(self::ASPECTRATIO);
- }
- /**
- * Fixes possibility to size up in current constraint
- *
- * @return void
- */
- public function upsize()
- {
- $this->fix(self::UPSIZE);
- }
- }
|