[cluttermm] Adds Matrix and associated methods.
- From: Murray Cumming <murrayc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [cluttermm] Adds Matrix and associated methods.
- Date: Thu, 27 Mar 2014 09:44:46 +0000 (UTC)
commit 3c12bccbf9f6204cbd0b1f6395948a6e18b71cb8
Author: Ian Martin <martin_id vodafone co nz>
Date: Thu Mar 27 16:59:21 2014 +1300
Adds Matrix and associated methods.
Adds the Matrix typedef and conversions
Methods for transforming an actor.
clutter/src/actor.ccg | 8 ++++++++
clutter/src/actor.hg | 25 ++++++++++++++++++-------
codegen/m4/convert_clutter.m4 | 3 +++
3 files changed, 29 insertions(+), 7 deletions(-)
---
diff --git a/clutter/src/actor.ccg b/clutter/src/actor.ccg
index 77bb887..67bc680 100644
--- a/clutter/src/actor.ccg
+++ b/clutter/src/actor.ccg
@@ -117,6 +117,14 @@ void Actor::unset_layout_manager()
clutter_actor_set_layout_manager(gobj(), 0);
}
+
+Matrix Actor::get_transform () const
+{
+ Matrix matrix;
+ clutter_actor_get_transform(const_cast<ClutterActor*>(this->gobj()), &matrix);
+ return matrix;
+}
+
// Glib::RefPtr<Animation>
// Actor::animate(gulong mode, guint duration, const std::map<std::string, Glib::ValueBase>& properties)
// {
diff --git a/clutter/src/actor.hg b/clutter/src/actor.hg
index 22aafef..3d01ff7 100644
--- a/clutter/src/actor.hg
+++ b/clutter/src/actor.hg
@@ -41,6 +41,8 @@ _PINCLUDE(glibmm/private/object_p.h)
namespace Clutter
{
+typedef ClutterMatrix Matrix;
+
class Animation;
class Content;
class LayoutManager;
@@ -133,8 +135,16 @@ public:
_WRAP_METHOD(Glib::RefPtr<Pango::Layout> create_pango_layout(const Glib::ustring& text),
clutter_actor_create_pango_layout)
- //TODO: Wrap ClutterMatrix
+ _IGNORE( clutter_actor_get_transform) //handcoded to allow returning the Matrix.
+
+ /**
+ * Returns the transformation matrix being used by the actor.
+ * */
+ Matrix get_transform() const;
+
_WRAP_METHOD(void get_transformation_matrix(ClutterMatrix* matrix),
clutter_actor_get_transformation_matrix, deprecated "Use get_transform() instead")
+ _WRAP_METHOD(void set_transform(const Matrix& transform), clutter_actor_set_transform)
+ _WRAP_METHOD(void set_child_transform(const Matrix& transform), clutter_actor_set_child_transform)
_WRAP_METHOD(bool is_in_clone_paint() const, clutter_actor_is_in_clone_paint)
_WRAP_METHOD(bool has_pointer() const, clutter_actor_has_pointer)
@@ -274,14 +284,20 @@ _DEPRECATE_IFDEF_END
_WRAP_METHOD(void allocate(const ActorBox& box, AllocationFlags absolute_origin_changed =
ALLOCATION_NONE), clutter_actor_allocate)
+ //TODO: Make this protected?
_WRAP_METHOD(void allocate_preferred_size(AllocationFlags absolute_origin_changed = ALLOCATION_NONE),
clutter_actor_allocate_preferred_size)
- _WRAP_METHOD(void allocate_available_size(float x, float y, float available_width, float
available_height, AllocationFlags flags = ALLOCATION_NONE), clutter_actor_allocate_available_size)
+ _WRAP_METHOD(void allocate_available_size(float x, float y, float available_width, float available_height,
AllocationFlags flags = ALLOCATION_NONE), clutter_actor_allocate_available_size)
+
+ _WRAP_METHOD(void apply_transform_to_point(const Vertex& point, Vertex& vertex) const,
clutter_actor_apply_transform_to_point)
+ _WRAP_METHOD(void transform_stage_point(float x, float y, float& x_out, float& y_out) const,
clutter_actor_transform_stage_point)
#m4 _CONVERSION(`const Vertex&',`ClutterVertex*',`const_cast<ClutterVertex*>(($3).gobj())')
#m4 _CONVERSION(`Vertex&',`ClutterVertex*',`($3).gobj()')
_WRAP_METHOD(void apply_relative_transform_to_point(const Glib::RefPtr<Actor>& ancestor, const Vertex&
point, Vertex& vertex) const, clutter_actor_apply_relative_transform_to_point)
_WRAP_METHOD_DOCS_ONLY(clutter_actor_get_allocation_vertices)
void apply_relative_transform_to_point(const Vertex& point, Vertex& vertex) const;
+ _WRAP_METHOD(void get_transformed_position(float& x, float& y) const,
clutter_actor_get_transformed_position)
+ _WRAP_METHOD(void get_transformed_size(float& width, float& height) const,
clutter_actor_get_transformed_size)
_WRAP_METHOD(void set_request_mode(RequestMode mode), clutter_actor_set_request_mode)
_WRAP_METHOD(RequestMode get_request_mode() const, clutter_actor_get_request_mode)
@@ -316,8 +332,6 @@ _DEPRECATE_IFDEF_END
_WRAP_METHOD(bool get_fixed_position_set() const, clutter_actor_get_fixed_position_set)
_WRAP_METHOD(void set_fixed_position_set(bool is_set), clutter_actor_set_fixed_position_set)
- _WRAP_METHOD(void get_transformed_position(float& x, float& y) const,
clutter_actor_get_transformed_position)
- _WRAP_METHOD(void get_transformed_size(float& width, float& height) const,
clutter_actor_get_transformed_size)
_DEPRECATE_IFDEF_START
_WRAP_METHOD_DOCS_ONLY(clutter_actor_get_allocation_geometry)
@@ -342,9 +356,6 @@ _DEPRECATE_IFDEF_END
_WRAP_METHOD(void get_size(float& width, float& height) const, clutter_actor_get_size)
_WRAP_METHOD(void move_by(float dx, float dy), clutter_actor_move_by)
- _WRAP_METHOD(void apply_transform_to_point(const Vertex& point, Vertex& vertex) const,
clutter_actor_apply_transform_to_point)
- _WRAP_METHOD(void transform_stage_point(float x, float y, float& x_out, float& y_out) const,
clutter_actor_transform_stage_point)
-
_WRAP_METHOD(bool event(const ClutterEvent* event, bool capture), clutter_actor_event)
_WRAP_METHOD(static Glib::RefPtr<Actor> get_actor_by_gid(guint32 id), clutter_get_actor_by_gid, refreturn,
deprecated "The ID is no longer used.")
diff --git a/codegen/m4/convert_clutter.m4 b/codegen/m4/convert_clutter.m4
index 402735d..e99fa54 100644
--- a/codegen/m4/convert_clutter.m4
+++ b/codegen/m4/convert_clutter.m4
@@ -149,6 +149,9 @@ _EQUAL(ClutterAngle,Angle)
_CONVERSION(`Angle&',`ClutterAngle*',`&($3)')
_EQUAL(ClutterFog,Fog)
_CONVERSION(`Fog&',`ClutterFog*',`&($3)')
+_EQUAL(ClutterMatrix,Matrix)
+#_CONVERSION(`Matrix&',`ClutterMatrix*',`&($3)')
+_CONVERSION(`const Matrix&',`const ClutterMatrix*',`&($3)')
_EQUAL(ClutterButtonEvent*,ButtonEvent*)
_EQUAL(ClutterCrossingEvent*,CrossingEvent*)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]