---
name: "Clutter::Behaviour::Ellipse"
section: "3pm"
platform: "linux"
package: "libclutter-perl"
version: "1.002-1"
release: "Debian 6.0 (Squeeze)"
platforms: ["linux"]
url: "https://new.carta.tech/Clutter::Behaviour::Ellipse"
---

# Clutter::Behaviour::Ellipse(3pm)

A behaviour interpolating position along an ellipse

## NAME

Clutter::Behaviour::Ellipse - A behaviour interpolating position along an ellipse

## SYNOPSIS

```
    my $behaviour = Clutter::Behaviour::Ellipse->new(
        Clutter::Alpha->new($timeline, 'linear'),
        [ 100, 100 ],   # center of the ellipse
        [ 250, 250 ],   # width and height of the ellipse
        [   0, 360 ],   # initial and final angle
    );
    $behaviour->apply($icon_group);
```

## DESCRIPTION

**Clutter::Behaviour::Ellipse** interpolates actors along a path defined by an ellipse.

**Note**: When applying an ellipse behaviour to an actor, the behaviour will update the actor's position and depth and set them to what is dictated by the ellipses initial position.

## HIERARCHY

```
  Glib::Object
  +----Clutter::Behaviour
       +----Clutter::Behaviour::Ellipse
```

## METHODS

### behaviour = Clutter::Behaviour::Ellipse-\>new ($alpha=undef, $center, $size, $direction, $angles)

- •

  `$alpha` (Clutter::Alpha or undef)

- •

  `$center` (scalar) an array reference containing the x and y coordinates

- •

  `$size` (scalar) an array reference containing the width and height of the ellipse

- •

  `$direction` (Clutter::RotateDirection)

- •

  `$angles` (scalar) an array reference containing the initial and final angles

### double = $ellipse-\>get\_angle\_end

### $ellipse-\>set\_angle\_end ($end)

- •

  `$end` (double)

### double = $ellipse-\>get\_angle\_start

### $ellipse-\>set\_angle\_start ($start)

- •

  `$start` (double)

### double = $ellipse-\>get\_angle\_tilt ($axis)

- •

  `$axis` (Clutter::RotateAxis)

### $ellipse-\>set\_angle\_tilt ($axis, $tilt)

- •

  `$axis` (Clutter::RotateAxis)

- •

  `$tilt` (double)

### (start, end) = $behaviour-\>get\_angles

### $ellipse-\>set\_angles ($start, $end)

- •

  `$start` (double)

- •

  `$end` (double)

### (x, y) = $ellipse-\>get\_center

### $ellipse-\>set\_center ($x, $y)

- •

  `$x` (integer)

- •

  `$y` (integer)

### rotatedirection = $ellipse-\>get\_direction

### $ellipse-\>set\_direction ($direction)

- •

  `$direction` (Clutter::RotateDirection)

### integer = $ellipse-\>get\_height

### $ellipse-\>set\_height ($height)

- •

  `$height` (integer)

### (width, height) = $ellipse-\>get\_size

### $ellipse-\>set\_size ($width, $height)

- •

  `$width` (integer)

- •

  `$height` (integer)

### (tilt\_x, tilt\_y, tilt\_z) = $ellipse-\>get\_tilt

### $ellipse-\>set\_tilt ($tilt\_x, $tilt\_y, $tilt\_z)

- •

  `$tilt_x` (double)

- •

  `$tilt_y` (double)

- •

  `$tilt_z` (double)

### integer = $ellipse-\>get\_width

### $ellipse-\>set\_width ($width)

- •

  `$width` (integer)

## PROPERTIES

- 'angle-end' (double : readable / writable / private)

  Final angle

- 'angle-start' (double : readable / writable / private)

  Initial angle

- 'angle-tilt-x' (double : readable / writable / private)

  Tilt of the ellipse around x axis

- 'angle-tilt-y' (double : readable / writable / private)

  Tilt of the ellipse around y axis

- 'angle-tilt-z' (double : readable / writable / private)

  Tilt of the ellipse around z axis

- 'center' (Clutter::Knot : readable / writable / private)

  Center of ellipse

- 'direction' (Clutter::RotateDirection : readable / writable / private)

  Direction of rotation

- 'height' (integer : readable / writable / private)

  Height of ellipse

- 'width' (integer : readable / writable / private)

  Width of the ellipse

## ENUMS AND FLAGS

### enum Clutter::RotateAxis

- •

  'x-axis' / 'CLUTTER\_X\_AXIS'

- •

  'y-axis' / 'CLUTTER\_Y\_AXIS'

- •

  'z-axis' / 'CLUTTER\_Z\_AXIS'

### enum Clutter::RotateDirection

- •

  'cw' / 'CLUTTER\_ROTATE\_CW'

- •

  'ccw' / 'CLUTTER\_ROTATE\_CCW'

## SEE ALSO

Clutter::Behaviour, Clutter::Alpha

## COPYRIGHT

Copyright (C) 2006, 2007, 2008  OpenedHand Ltd

Copyright (C) 2009  Intel Corporation

This module is free software; you can redistribute it and/or modify it under the terms of either:

- •

  the GNU Lesser General Public Library version 2.1; or

- •

  the Artistic License, version 2.0.

See Clutter for the full copyright notice.
