Struct cogl::MatrixStack [−][src]
Implementations
impl MatrixStack[src]
pub fn new(ctx: &Context) -> MatrixStack[src]
Allocates a new MatrixStack that can be used to build up
transformations relating to objects in a scenegraph like hierarchy.
(See the description of MatrixStack and MatrixEntry for
more details of what a matrix stack is best suited for)
When a MatrixStack is first allocated it is conceptually
positioned at the root of your scenegraph hierarchy. As you
traverse your scenegraph then you should call
MatrixStack::push whenever you move down a level and
MatrixStack::pop whenever you move back up a level towards
the root.
Once you have allocated a MatrixStack you can get a reference
to the current transformation for the current position in the
hierarchy by calling MatrixStack::get_entry.
Once you have allocated a MatrixStack you can apply operations
such as rotate, scale and translate to modify the current transform
for the current position in the hierarchy by calling
MatrixStack::rotate, MatrixStack::scale and
MatrixStack::translate.
ctx
A Context
Returns
A newly allocated MatrixStack
pub fn frustum(
&self,
left: f32,
right: f32,
bottom: f32,
top: f32,
z_near: f32,
z_far: f32
)[src]
&self,
left: f32,
right: f32,
bottom: f32,
top: f32,
z_near: f32,
z_far: f32
)
Replaces the current matrix with a perspective matrix for a given viewing frustum defined by 4 side clip planes that all cross through the origin and 2 near and far clip planes.
left
X position of the left clipping plane where it intersects the near clipping plane
right
X position of the right clipping plane where it intersects the near clipping plane
bottom
Y position of the bottom clipping plane where it intersects the near clipping plane
top
Y position of the top clipping plane where it intersects the near clipping plane
z_near
The distance to the near clipping plane (Must be positive)
z_far
The distance to the far clipping plane (Must be positive)
pub fn get_entry(&self) -> Option<MatrixEntry>[src]
Gets a reference to the current transform represented by a
MatrixEntry pointer.
<note>The transform represented by a MatrixEntry is
immutable.</note>
<note>``MatrixEntrys are reference counted using
MatrixEntry::ref and MatrixEntry::unref and you
should call MatrixEntry::unref when you are finished with
and entry you get via MatrixStack::get_entry.</note>
Returns
A pointer to the MatrixEntry
representing the current matrix stack transform.
pub fn load_identity(&self)[src]
Resets the current matrix to the identity matrix.
pub fn multiply(&self, matrix: &Matrix)[src]
Multiplies the current matrix by the given matrix.
matrix
the matrix to multiply with the current model-view
pub fn orthographic(
&self,
x_1: f32,
y_1: f32,
x_2: f32,
y_2: f32,
near: f32,
far: f32
)[src]
&self,
x_1: f32,
y_1: f32,
x_2: f32,
y_2: f32,
near: f32,
far: f32
)
Replaces the current matrix with an orthographic projection matrix.
x_1
The x coordinate for the first vertical clipping plane
y_1
The y coordinate for the first horizontal clipping plane
x_2
The x coordinate for the second vertical clipping plane
y_2
The y coordinate for the second horizontal clipping plane
near
The <emphasis>distance</emphasis> to the near clipping
plane (will be <emphasis>negative</emphasis> if the plane is
behind the viewer)
far
The <emphasis>distance</emphasis> to the far clipping
plane (will be <emphasis>negative</emphasis> if the plane is
behind the viewer)
pub fn perspective(&self, fov_y: f32, aspect: f32, z_near: f32, z_far: f32)[src]
Replaces the current matrix with a perspective matrix based on the provided values.
<note>You should be careful not to have too great a z_far / z_near
ratio since that will reduce the effectiveness of depth testing
since there wont be enough precision to identify the depth of
objects near to each other.</note>
fov_y
Vertical field of view angle in degrees.
aspect
The (width over height) aspect ratio for display
z_near
The distance to the near clipping plane (Must be positive, and must not be 0)
z_far
The distance to the far clipping plane (Must be positive)
pub fn pop(&self)[src]
Restores the previous transform that was last saved by calling
MatrixStack::push.
This is usually called while traversing a scenegraph whenever you return up one level in the graph towards the root node.
pub fn push(&self)[src]
Saves the current transform and starts a new transform that derives from the current transform.
This is usually called while traversing a scenegraph whenever you
traverse one level deeper. MatrixStack::pop can then be
called when going back up one layer to restore the previous
transform of an ancestor.
pub fn rotate(&self, angle: f32, x: f32, y: f32, z: f32)[src]
Multiplies the current matrix by one that rotates the around the
axis-vector specified by x, y and z. The rotation follows the
right-hand thumb rule so for example rotating by 10 degrees about
the axis-vector (0, 0, 1) causes a small counter-clockwise
rotation.
angle
Angle in degrees to rotate.
x
X-component of vertex to rotate around.
y
Y-component of vertex to rotate around.
z
Z-component of vertex to rotate around.
pub fn rotate_euler(&self, euler: &Euler)[src]
Multiplies the current matrix by one that rotates according to the
rotation described by euler.
euler
A Euler
pub fn rotate_quaternion(&self, quaternion: &Quaternion)[src]
Multiplies the current matrix by one that rotates according to the
rotation described by quaternion.
quaternion
A Quaternion
pub fn scale(&self, x: f32, y: f32, z: f32)[src]
Multiplies the current matrix by one that scales the x, y and z axes by the given values.
x
Amount to scale along the x-axis
y
Amount to scale along the y-axis
z
Amount to scale along the z-axis
pub fn set(&self, matrix: &Matrix)[src]
Replaces the current self matrix value with the value of matrix.
This effectively discards any other operations that were applied
since the last time MatrixStack::push was called or since
the stack was initialized.
matrix
A Matrix replace the current matrix value with
pub fn translate(&self, x: f32, y: f32, z: f32)[src]
Trait Implementations
impl Clone for MatrixStack[src]
fn clone(&self) -> MatrixStack[src]
pub fn clone_from(&mut self, source: &Self)1.0.0[src]
impl Debug for MatrixStack[src]
impl Display for MatrixStack[src]
impl Eq for MatrixStack[src]
impl Hash for MatrixStack[src]
fn hash<__H: Hasher>(&self, state: &mut __H)[src]
pub fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher, 1.3.0[src]
H: Hasher,
impl IsA<Object> for MatrixStack[src]
impl Ord for MatrixStack[src]
fn cmp(&self, other: &MatrixStack) -> Ordering[src]
#[must_use]pub fn max(self, other: Self) -> Self1.21.0[src]
#[must_use]pub fn min(self, other: Self) -> Self1.21.0[src]
#[must_use]pub fn clamp(self, min: Self, max: Self) -> Self1.50.0[src]
impl<T: ObjectType> PartialEq<T> for MatrixStack[src]
impl<T: ObjectType> PartialOrd<T> for MatrixStack[src]
fn partial_cmp(&self, other: &T) -> Option<Ordering>[src]
#[must_use]pub fn lt(&self, other: &Rhs) -> bool1.0.0[src]
#[must_use]pub fn le(&self, other: &Rhs) -> bool1.0.0[src]
#[must_use]pub fn gt(&self, other: &Rhs) -> bool1.0.0[src]
#[must_use]pub fn ge(&self, other: &Rhs) -> bool1.0.0[src]
impl StaticType for MatrixStack[src]
fn static_type() -> Type[src]
Auto Trait Implementations
impl RefUnwindSafe for MatrixStack
impl !Send for MatrixStack
impl !Sync for MatrixStack
impl Unpin for MatrixStack
impl UnwindSafe for MatrixStack
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T[src]
impl<Super, Sub> CanDowncast<Sub> for Super where
Sub: IsA<Super>,
Super: IsA<Super>, [src]
Sub: IsA<Super>,
Super: IsA<Super>,
impl<T> Cast for T where
T: ObjectType, [src]
T: ObjectType,
pub fn upcast<T>(self) -> T where
Self: IsA<T>,
T: ObjectType, [src]
Self: IsA<T>,
T: ObjectType,
pub fn upcast_ref<T>(&self) -> &T where
Self: IsA<T>,
T: ObjectType, [src]
Self: IsA<T>,
T: ObjectType,
pub fn downcast<T>(self) -> Result<T, Self> where
Self: CanDowncast<T>,
T: ObjectType, [src]
Self: CanDowncast<T>,
T: ObjectType,
pub fn downcast_ref<T>(&self) -> Option<&T> where
Self: CanDowncast<T>,
T: ObjectType, [src]
Self: CanDowncast<T>,
T: ObjectType,
pub fn dynamic_cast<T>(self) -> Result<T, Self> where
T: ObjectType, [src]
T: ObjectType,
pub fn dynamic_cast_ref<T>(&self) -> Option<&T> where
T: ObjectType, [src]
T: ObjectType,
pub unsafe fn unsafe_cast<T>(self) -> T where
T: ObjectType, [src]
T: ObjectType,
pub unsafe fn unsafe_cast_ref<T>(&self) -> &T where
T: ObjectType, [src]
T: ObjectType,
impl<T> From<T> for T[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
impl<T> ObjectExt for T where
T: ObjectType, [src]
T: ObjectType,
pub fn is<U>(&self) -> bool where
U: StaticType, [src]
U: StaticType,
pub fn get_type(&self) -> Type[src]
pub fn get_object_class(&self) -> &ObjectClass[src]
pub fn set_properties(
&self,
property_values: &[(&str, &dyn ToValue)]
) -> Result<(), BoolError>[src]
&self,
property_values: &[(&str, &dyn ToValue)]
) -> Result<(), BoolError>
pub fn set_property<'a, N>(
&self,
property_name: N,
value: &dyn ToValue
) -> Result<(), BoolError> where
N: Into<&'a str>, [src]
&self,
property_name: N,
value: &dyn ToValue
) -> Result<(), BoolError> where
N: Into<&'a str>,
pub fn get_property<'a, N>(&self, property_name: N) -> Result<Value, BoolError> where
N: Into<&'a str>, [src]
N: Into<&'a str>,
pub unsafe fn set_qdata<QD>(&self, key: Quark, value: QD) where
QD: 'static, [src]
QD: 'static,
pub unsafe fn get_qdata<QD>(&self, key: Quark) -> Option<&QD> where
QD: 'static, [src]
QD: 'static,
pub unsafe fn steal_qdata<QD>(&self, key: Quark) -> Option<QD> where
QD: 'static, [src]
QD: 'static,
pub unsafe fn set_data<QD>(&self, key: &str, value: QD) where
QD: 'static, [src]
QD: 'static,
pub unsafe fn get_data<QD>(&self, key: &str) -> Option<&QD> where
QD: 'static, [src]
QD: 'static,
pub unsafe fn steal_data<QD>(&self, key: &str) -> Option<QD> where
QD: 'static, [src]
QD: 'static,
pub fn block_signal(&self, handler_id: &SignalHandlerId)[src]
pub fn unblock_signal(&self, handler_id: &SignalHandlerId)[src]
pub fn stop_signal_emission(&self, signal_name: &str)[src]
pub fn disconnect(&self, handler_id: SignalHandlerId)[src]
pub fn connect_notify<F>(&self, name: Option<&str>, f: F) -> SignalHandlerId where
F: 'static + Fn(&T, &ParamSpec) + Send + Sync, [src]
F: 'static + Fn(&T, &ParamSpec) + Send + Sync,
pub unsafe fn connect_notify_unsafe<F>(
&self,
name: Option<&str>,
f: F
) -> SignalHandlerId where
F: Fn(&T, &ParamSpec), [src]
&self,
name: Option<&str>,
f: F
) -> SignalHandlerId where
F: Fn(&T, &ParamSpec),
pub fn notify<'a, N>(&self, property_name: N) where
N: Into<&'a str>, [src]
N: Into<&'a str>,
pub fn notify_by_pspec(&self, pspec: &ParamSpec)[src]
pub fn has_property<'a, N>(&self, property_name: N, type_: Option<Type>) -> bool where
N: Into<&'a str>, [src]
N: Into<&'a str>,
pub fn get_property_type<'a, N>(&self, property_name: N) -> Option<Type> where
N: Into<&'a str>, [src]
N: Into<&'a str>,
pub fn find_property<'a, N>(&self, property_name: N) -> Option<ParamSpec> where
N: Into<&'a str>, [src]
N: Into<&'a str>,
pub fn list_properties(&self) -> Vec<ParamSpec, Global>[src]
pub fn connect<'a, N, F>(
&self,
signal_name: N,
after: bool,
callback: F
) -> Result<SignalHandlerId, BoolError> where
F: Fn(&[Value]) -> Option<Value> + Send + Sync + 'static,
N: Into<&'a str>, [src]
&self,
signal_name: N,
after: bool,
callback: F
) -> Result<SignalHandlerId, BoolError> where
F: Fn(&[Value]) -> Option<Value> + Send + Sync + 'static,
N: Into<&'a str>,
pub fn connect_local<'a, N, F>(
&self,
signal_name: N,
after: bool,
callback: F
) -> Result<SignalHandlerId, BoolError> where
F: Fn(&[Value]) -> Option<Value> + 'static,
N: Into<&'a str>, [src]
&self,
signal_name: N,
after: bool,
callback: F
) -> Result<SignalHandlerId, BoolError> where
F: Fn(&[Value]) -> Option<Value> + 'static,
N: Into<&'a str>,
pub unsafe fn connect_unsafe<'a, N, F>(
&self,
signal_name: N,
after: bool,
callback: F
) -> Result<SignalHandlerId, BoolError> where
F: Fn(&[Value]) -> Option<Value>,
N: Into<&'a str>, [src]
&self,
signal_name: N,
after: bool,
callback: F
) -> Result<SignalHandlerId, BoolError> where
F: Fn(&[Value]) -> Option<Value>,
N: Into<&'a str>,
pub fn emit<'a, N>(
&self,
signal_name: N,
args: &[&dyn ToValue]
) -> Result<Option<Value>, BoolError> where
N: Into<&'a str>, [src]
&self,
signal_name: N,
args: &[&dyn ToValue]
) -> Result<Option<Value>, BoolError> where
N: Into<&'a str>,
pub fn downgrade(&self) -> WeakRef<T>[src]
pub fn bind_property<'a, O, N, M>(
&'a self,
source_property: N,
target: &'a O,
target_property: M
) -> BindingBuilder<'a> where
O: ObjectType,
N: Into<&'a str>,
M: Into<&'a str>, [src]
&'a self,
source_property: N,
target: &'a O,
target_property: M
) -> BindingBuilder<'a> where
O: ObjectType,
N: Into<&'a str>,
M: Into<&'a str>,
pub fn ref_count(&self) -> u32[src]
impl<T> ToOwned for T where
T: Clone, [src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T[src]
pub fn clone_into(&self, target: &mut T)[src]
impl<T> ToSendValue for T where
T: SetValue + Send + ToValue + ?Sized, [src]
T: SetValue + Send + ToValue + ?Sized,
pub fn to_send_value(&self) -> SendValue[src]
impl<T> ToString for T where
T: Display + ?Sized, [src]
T: Display + ?Sized,
impl<T> ToValue for T where
T: SetValue + ?Sized, [src]
T: SetValue + ?Sized,
impl<T, U> TryFrom<U> for T where
U: Into<T>, [src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>, [src]
U: TryFrom<T>,