From e65b007a40d87eb10cf92c545ff07e7a943e7002 Mon Sep 17 00:00:00 2001 From: Robin Dunn Date: Wed, 4 Apr 2012 23:23:57 +0000 Subject: [PATCH] Add Matrix classses git-svn-id: https://svn.wxwidgets.org/svn/wx/wxPython/Phoenix/trunk@71093 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- etg/_core.py | 1 + etg/affinematrix2d.py | 60 ++++++++++++++++++++++++++++++++ unittests/test_affinematrix2d.py | 22 ++++++++++++ 3 files changed, 83 insertions(+) create mode 100644 etg/affinematrix2d.py create mode 100644 unittests/test_affinematrix2d.py diff --git a/etg/_core.py b/etg/_core.py index cf4f4682..30ac9f6e 100644 --- a/etg/_core.py +++ b/etg/_core.py @@ -52,6 +52,7 @@ INCLUDES = [ # core 'cmndata', 'gdicmn', 'geometry', + 'affinematrix2d', 'position', 'colour', diff --git a/etg/affinematrix2d.py b/etg/affinematrix2d.py new file mode 100644 index 00000000..9c0d42e2 --- /dev/null +++ b/etg/affinematrix2d.py @@ -0,0 +1,60 @@ +#--------------------------------------------------------------------------- +# Name: etg/affinematrix2d.py +# Author: Robin Dunn +# +# Created: 04-Apr-2012 +# Copyright: (c) 2012 by Total Control Software +# License: wxWindows License +#--------------------------------------------------------------------------- + +import etgtools +import etgtools.tweaker_tools as tools + +PACKAGE = "wx" +MODULE = "_core" +NAME = "affinematrix2d" # Base name of the file to generate to for this script +DOCSTRING = "" + +# The classes and/or the basename of the Doxygen XML files to be processed by +# this script. +ITEMS = [ "wxMatrix2D", + "wxAffineMatrix2DBase", + "wxAffineMatrix2D", + ] + +#--------------------------------------------------------------------------- + +def run(): + # Parse the XML file(s) building a collection of Extractor objects + module = etgtools.ModuleDef(PACKAGE, MODULE, NAME, DOCSTRING) + etgtools.parseDoxyXML(module, ITEMS) + + #----------------------------------------------------------------- + # Tweak the parsed meta objects in the module object as needed for + # customizing the generated code and docstrings. + + c = module.find('wxAffineMatrix2DBase') + assert isinstance(c, etgtools.ClassDef) + c.abstract = True + + for c in [module.find('wxAffineMatrix2DBase'), + module.find('wxAffineMatrix2D')]: + + c.find('Get.mat2D').out = True + c.find('Get.tr').out = True + + c.find('TransformPoint.x').inOut = True + c.find('TransformPoint.y').inOut = True + + c.find('TransformDistance.dx').inOut = True + c.find('TransformDistance.dy').inOut = True + + #----------------------------------------------------------------- + tools.doCommonTweaks(module) + tools.runGenerators(module) + + +#--------------------------------------------------------------------------- +if __name__ == '__main__': + run() + diff --git a/unittests/test_affinematrix2d.py b/unittests/test_affinematrix2d.py new file mode 100644 index 00000000..99ef3948 --- /dev/null +++ b/unittests/test_affinematrix2d.py @@ -0,0 +1,22 @@ +import imp_unittest, unittest +import wtc +import wx + +#--------------------------------------------------------------------------- + +class affinematrix2d_Tests(wtc.WidgetTestCase): + + def test_affinematrix2d1(self): + m = wx.Matrix2D() + am = wx.AffineMatrix2D() + am.Set(m, (23, 25)) + values = am.Get() + self.assertTrue(len(values) == 2) + self.assertTrue(isinstance(values[0], wx.Matrix2D)) + self.assertTrue(isinstance(values[1], wx.Point2D)) + + +#--------------------------------------------------------------------------- + +if __name__ == '__main__': + unittest.main()