[openrtm-commit:01375] r133 - in branches/newCMakeForVC2010/ImageProcessing/opencv/components: . TkCalibGUI TkCalibGUI/cmake TkCalibGUI/cmake_modules TkCalibGUI/cpack_resources TkCalibGUI/doc TkCalibGUI/doc/content TkCalibGUI/idl TkCalibGUI/include TkCalibGUI/include/TkCalibGUI TkCalibGUI/src
openrtm @ openrtm.org
openrtm @ openrtm.org
2014年 3月 18日 (火) 11:46:05 JST
Author: kawauchi
Date: 2014-03-18 11:46:05 +0900 (Tue, 18 Mar 2014)
New Revision: 133
Added:
branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/
branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/.project
branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/CMakeLists.txt
branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/COPYING
branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/COPYING.LESSER
branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/CalibrationService.idl
branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/README.TkCalibGUI
branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/RTC.xml
branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/TkCalibGUI.conf
branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/TkCalibGUIComp.py
branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/cmake/
branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/cmake/CMakeLists.txt
branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/cmake/License.rtf
branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/cmake/cpack_options.cmake.in
branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/cmake/tkcalibgui-config-version.cmake.in
branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/cmake/tkcalibgui-config.cmake.in
branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/cmake/tkcalibgui.pc.in
branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/cmake/uninstall_target.cmake.in
branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/cmake/utils.cmake
branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/cmake_modules/
branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/cmake_modules/FindOpenRTMPython.cmake
branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/cpack_resources/
branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/cpack_resources/Description.txt
branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/cpack_resources/License.rtf
branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/cpack_resources/License.txt
branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/cpack_resources/wix.xsl.in
branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/doc/
branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/doc/CMakeLists.txt
branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/doc/conf.py.in
branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/doc/content/
branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/doc/content/index.txt
branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/doc/content/index_j.txt
branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/doc/doxyfile.in
branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/idl/
branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/idl/BasicDataType.idl
branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/idl/CMakeLists.txt
branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/idl/CalibrationService.idl
branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/idl/ExtendedDataTypes.idl
branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/idl/InterfaceDataTypes.idl
branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/idlcompile.bat
branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/idlcompile.sh
branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/include/
branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/include/CMakeLists.txt
branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/include/TkCalibGUI/
branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/include/TkCalibGUI/CMakeLists.txt
branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/rtc.conf
branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/src/
branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/src/CMakeLists.txt
branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/tkcalibgui.py
Modified:
branches/newCMakeForVC2010/ImageProcessing/opencv/components/CMakeLists.txt
Log:
TkCalibGUI : Created new GUI component for ImageCalibration. refs #2704
Modified: branches/newCMakeForVC2010/ImageProcessing/opencv/components/CMakeLists.txt
===================================================================
--- branches/newCMakeForVC2010/ImageProcessing/opencv/components/CMakeLists.txt 2014-03-18 01:21:19 UTC (rev 132)
+++ branches/newCMakeForVC2010/ImageProcessing/opencv/components/CMakeLists.txt 2014-03-18 02:46:05 UTC (rev 133)
@@ -33,5 +33,5 @@
add_subdirectory(SubStractCaptureImage)
add_subdirectory(Template)
add_subdirectory(Translate)
+add_subdirectory(TkCalibGUI)
-
Added: branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/.project
===================================================================
--- branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/.project (rev 0)
+++ branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/.project 2014-03-18 02:46:05 UTC (rev 133)
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>TkCalibGUI</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ </buildSpec>
+ <natures>
+ </natures>
+</projectDescription>
Added: branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/CMakeLists.txt
===================================================================
--- branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/CMakeLists.txt (rev 0)
+++ branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/CMakeLists.txt 2014-03-18 02:46:05 UTC (rev 133)
@@ -0,0 +1,238 @@
+cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
+
+project(TkCalibGUI NONE)
+
+set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true)
+set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake_modules")
+
+set(LINUX_PACKAGE_GENERATOR "DEB")
+#set(LINUX_PACKAGE_GENERATOR "RPM")
+
+
+# component settings
+set(RTC_NAME "${PROJECT_NAME}")
+set(RTC_VERSION "1.1.0")
+set(RTC_VERSION_MAJOR "1")
+set(RTC_VERSION_MINOR "1")
+set(RTC_VERSION_PATCH "0")
+set(RTC_LANG "python")
+set(RTC_DESCRIPTION "Image Calibration GUI")
+set(RTC_VENDOR "AIST")
+set(RTC_MAINTAINER "author at example.com")
+
+string(TOLOWER ${RTC_NAME} PACKAGE_NAME)
+set(PACKAGE_VERSION "${RTC_VERSION_MAJOR}.${RTC_VERSION_MINOR}.${RTC_VERSION_PATCH}")
+
+set(IDL_FILES ""
+ CalibrationService.idl
+)
+
+set(EXEC_FILES ""
+ TkCalibGUIComp.py tkcalibgui.py
+)
+
+set(OTHER_SRCS CMakeLists.txt
+ RTC.xml TkCalibGUI.conf rtc.conf)
+
+
+# check OpenRTM installed
+find_package(OpenRTMPython REQUIRED)
+
+# check doxygen installed
+find_package(Doxygen)
+if(DOXYGEN_FOUND STREQUAL "NO")
+ message(FATAL_ERROR "Doxygen not found.")
+endif()
+
+# check python installed
+find_package(PythonInterp)
+find_package(PythonLibs)
+
+
+if(WIN32)
+ # add command path
+# set($ENV{PATH} $ENV{PATH} "${OPENRTM_DIR}/bin")
+ # set install path prefix
+# set(CMAKE_INSTALL_PREFIX "${OPENRTM_DIR}")
+ set(INSTALL_PREFIX "components/${RTC_LANG}/${PACKAGE_NAME}${PACKAGE_VERSION}")
+else()
+ # add command path
+# set($ENV{PATH} $ENV{PATH} "${OPENRTM_DIR}/bin")
+ # set install path prefix
+# set(CMAKE_INSTALL_PREFIX "${OPENRTM_DIR}")
+ set(OPENRTM_SHARE_PREFIX "share/openrtm-${OPENRTM_VERSION_MAJOR}.${OPENRTM_VERSION_MINOR}")
+ set(INSTALL_PREFIX "${OPENRTM_SHARE_PREFIX}/components/${RTC_LANG}/${PACKAGE_NAME}${PACKAGE_VERSION}")
+endif()
+
+
+# add uninstall target
+configure_file(
+ "${CMAKE_CURRENT_SOURCE_DIR}/cmake/uninstall_target.cmake.in"
+ "${CMAKE_CURRENT_BINARY_DIR}/uninstall_target.cmake"
+ IMMEDIATE @ONLY)
+add_custom_target(uninstall COMMAND
+ ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake)
+
+
+# add build target
+add_custom_target(build ALL)
+
+if(WIN32)
+ add_custom_target( ${PROJECT_NAME} ALL
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_BINARY_DIR}/idl
+ COMMAND ${CMAKE_COMMAND} -E copy_directory
+ ${PROJECT_SOURCE_DIR}/idl ${PROJECT_BINARY_DIR}/idl
+ COMMAND cmd ARGS /k ${PROJECT_SOURCE_DIR}/idlcompile.bat
+ )
+
+else()
+ add_custom_target( ${PROJECT_NAME} ALL
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_BINARY_DIR}/idl
+ COMMAND ${CMAKE_COMMAND} -E copy_directory
+ ${PROJECT_SOURCE_DIR}/idl ${PROJECT_BINARY_DIR}/idl
+ COMMAND /bin/sh ${PROJECT_SOURCE_DIR}/idlcompile.sh
+ )
+endif()
+
+foreach(target ${EXEC_FILES})
+ add_custom_command( TARGET ${PROJECT_NAME} POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E copy
+ ${PROJECT_SOURCE_DIR}/${target} ${PROJECT_BINARY_DIR}
+ )
+endforeach()
+
+install(PROGRAMS ${EXEC_FILES} DESTINATION "${INSTALL_PREFIX}"
+ COMPONENT "applications")
+
+install(FILES ${PROJECT_BINARY_DIR}/CalibrationService_idl.py DESTINATION "${INSTALL_PREFIX}"
+ COMPONENT "applications")
+
+install(DIRECTORY idl
+ ${PROJECT_BINARY_DIR}/ImageCalibService
+ ${PROJECT_BINARY_DIR}/ImageCalibService__POA
+ DESTINATION "${INSTALL_PREFIX}"
+ COMPONENT "applications")
+
+# install source files
+#install(FILES ${IDL_FILES} ${EXEC_FILES} ${OTHER_SRCS}
+# DESTINATION "${INSTALL_PREFIX}/src"
+# COMPONENT "sources")
+
+#install(DIRECTORY cmake_modules cpack_resources
+# DESTINATION "${INSTALL_PREFIX}/src"
+# COMPONENT "sources")
+
+
+# package settings
+set(CPACK_PACKAGE_NAME "${RTC_NAME}")
+set(CPACK_PACKAGE_VERSION_MAJOR "${RTC_VERSION_MAJOR}")
+set(CPACK_PACKAGE_VERSION_MINOR "${RTC_VERSION_MINOR}")
+set(CPACK_PACKAGE_VERSION_PATCH "${RTC_VERSION_PATCH}")
+set(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
+set(CPACK_PACKAGE_VENDOR "${RTC_VENDOR}")
+set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "${RTC_DESCRIPTION}")
+set(CPACK_PACKAGE_CONTACT "${RTC_MAINTAINER}")
+
+set(CPACK_RESOURCE_FILE_LICENSE
+ "${CMAKE_CURRENT_SOURCE_DIR}/cpack_resources/License.txt")
+set(CPACK_PACKAGE_DESCRIPTION_FILE
+ "${CMAKE_CURRENT_SOURCE_DIR}/cpack_resources/Description.txt")
+
+set(CPACK_COMPONENTS_ALL applications documents sources)
+set(CPACK_COMPONENT_APPLICATIONS_DISPLAY_NAME "Applications")
+set(CPACK_COMPONENT_APPLICATIONS_DESCRIPTION "RT-Component applications")
+set(CPACK_COMPONENT_APPLICATIONS_DISABLED FALSE)
+
+set(CPACK_COMPONENT_DOCUMENTS_DISPLAY_NAME "Documents")
+set(CPACK_COMPONENT_DOCUMENTS_DESCRIPTION "RT-Component documents")
+set(CPACK_COMPONENT_DOCUMENTS_DISABLED TRUE)
+
+set(CPACK_COMPONENT_SOURCES_DISPLAY_NAME "Source files")
+set(CPACK_COMPONENT_SOURCES_DESCRIPTION "RT-Component source files")
+set(CPACK_COMPONENT_SOURCES_DISABLED TRUE)
+
+if(WIN32)
+ set(CPACK_GENERATOR "WIX")
+
+ # Windows WiX package settings
+
+ set(CPACK_WIX_XSL "@CMAKE_CURRENT_BINARY_DIR@/wix.xsl")
+ set(CPACK_WIX_LANG "ja-jp")
+ set(CPACK_RESOURCE_FILE_LICENSE
+ "@CMAKE_CURRENT_SOURCE_DIR@/cpack_resources/License.rtf")
+ configure_file(
+ "${CMAKE_CURRENT_SOURCE_DIR}/cpack_resources/wix.xsl.in"
+ "${CMAKE_CURRENT_BINARY_DIR}/wix.xsl" @ONLY)
+
+ set(CPACK_PACKAGE_FILE_NAME
+ "rtc${OPENRTM_VERSION}-${PACKAGE_NAME}${PACKAGE_VERSION}")
+
+else()
+ set(CPACK_GENERATOR "${LINUX_PACKAGE_GENERATOR}")
+
+ if(CPACK_GENERATOR STREQUAL "DEB")
+ # Linux Debian package settings
+
+ set(CPACK_DEBIAN_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION}")
+ set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "i386")
+ set(CPACK_DEBIAN_PACKAGE_SECTION "main")
+ set(CPACK_DEBIAN_PACKAGE_PRIORITY "extra")
+ set(CPACK_DEBIAN_PACKAGE_DEPENDS "openrtm-aist (>= 1.0.0)")
+
+ set(CPACK_PACKAGE_FILE_NAME
+ "rtc${OPENRTM_VERSION}-${PACKAGE_NAME}_${CPACK_DEBIAN_PACKAGE_VERSION}_${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}")
+
+ elseif(CPACK_GENERATOR STREQUAL "RPM")
+ # Linux RPM package settings
+
+ set(CPACK_RPM_PACKAGE_RELEASE "1.fc10")
+ set(CPACK_RPM_PACKAGE_ARCHITECTURE "i386")
+ set(CPACK_RPM_PACKAGE_GROUP "Development/Libraries")
+ set(CPACK_RPM_PACKAGE_LICENSE "LGPL")
+ set(CPACK_RPM_PACKAGE_REQUIRES "OpenRTM-aist >= 1.0.0")
+
+ set(CPACK_PACKAGE_FILE_NAME
+ "rtc${OPENRTM_VERSION}-${PACKAGE_NAME}-${PACKAGE_VERSION}-${CPACK_RPM_PACKAGE_RELEASE}.${CPACK_RPM_PACKAGE_ARCHITECTURE}")
+
+ endif()
+endif()
+
+message(STATUS "Package type: ${CPACK_GENERATOR}")
+message(STATUS "Package name: ${CPACK_PACKAGE_FILE_NAME}")
+
+include(CPack)
+
+if (SolutionDir)
+ SET (calib_python_file
+ ${PROJECT_SOURCE_DIR}/TkCalibGUIComp.py
+ ${PROJECT_SOURCE_DIR}/tkcalibgui.py
+ ${PROJECT_BINARY_DIR}/CalibrationService_idl.py)
+
+ foreach(target ${calib_python_file})
+ add_custom_command(
+ TARGET ${PROJECT_NAME} POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E copy
+ ${target} ${SolutionDir}/bin
+ )
+ endforeach()
+
+ SET (calib_python_dir
+ idl
+ ImageCalibService
+ ImageCalibService__POA)
+
+ foreach(target ${calib_python_dir})
+ add_custom_command(
+ TARGET ${PROJECT_NAME} POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${SolutionDir}/bin/${target}
+ )
+ endforeach()
+
+ foreach(target ${calib_python_dir})
+ add_custom_command(
+ TARGET ${PROJECT_NAME} POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E copy_directory
+ ${target} ${SolutionDir}/bin/${target}
+ )
+ endforeach()
+endif (SolutionDir)
Added: branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/COPYING
===================================================================
--- branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/COPYING (rev 0)
+++ branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/COPYING 2014-03-18 02:46:05 UTC (rev 133)
@@ -0,0 +1,674 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ <program> Copyright (C) <year> <name of author>
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<http://www.gnu.org/licenses/>.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+<http://www.gnu.org/philosophy/why-not-lgpl.html>.
Added: branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/COPYING.LESSER
===================================================================
--- branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/COPYING.LESSER (rev 0)
+++ branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/COPYING.LESSER 2014-03-18 02:46:05 UTC (rev 133)
@@ -0,0 +1,165 @@
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+
+ This version of the GNU Lesser General Public License incorporates
+the terms and conditions of version 3 of the GNU General Public
+License, supplemented by the additional permissions listed below.
+
+ 0. Additional Definitions.
+
+ As used herein, "this License" refers to version 3 of the GNU Lesser
+General Public License, and the "GNU GPL" refers to version 3 of the GNU
+General Public License.
+
+ "The Library" refers to a covered work governed by this License,
+other than an Application or a Combined Work as defined below.
+
+ An "Application" is any work that makes use of an interface provided
+by the Library, but which is not otherwise based on the Library.
+Defining a subclass of a class defined by the Library is deemed a mode
+of using an interface provided by the Library.
+
+ A "Combined Work" is a work produced by combining or linking an
+Application with the Library. The particular version of the Library
+with which the Combined Work was made is also called the "Linked
+Version".
+
+ The "Minimal Corresponding Source" for a Combined Work means the
+Corresponding Source for the Combined Work, excluding any source code
+for portions of the Combined Work that, considered in isolation, are
+based on the Application, and not on the Linked Version.
+
+ The "Corresponding Application Code" for a Combined Work means the
+object code and/or source code for the Application, including any data
+and utility programs needed for reproducing the Combined Work from the
+Application, but excluding the System Libraries of the Combined Work.
+
+ 1. Exception to Section 3 of the GNU GPL.
+
+ You may convey a covered work under sections 3 and 4 of this License
+without being bound by section 3 of the GNU GPL.
+
+ 2. Conveying Modified Versions.
+
+ If you modify a copy of the Library, and, in your modifications, a
+facility refers to a function or data to be supplied by an Application
+that uses the facility (other than as an argument passed when the
+facility is invoked), then you may convey a copy of the modified
+version:
+
+ a) under this License, provided that you make a good faith effort to
+ ensure that, in the event an Application does not supply the
+ function or data, the facility still operates, and performs
+ whatever part of its purpose remains meaningful, or
+
+ b) under the GNU GPL, with none of the additional permissions of
+ this License applicable to that copy.
+
+ 3. Object Code Incorporating Material from Library Header Files.
+
+ The object code form of an Application may incorporate material from
+a header file that is part of the Library. You may convey such object
+code under terms of your choice, provided that, if the incorporated
+material is not limited to numerical parameters, data structure
+layouts and accessors, or small macros, inline functions and templates
+(ten or fewer lines in length), you do both of the following:
+
+ a) Give prominent notice with each copy of the object code that the
+ Library is used in it and that the Library and its use are
+ covered by this License.
+
+ b) Accompany the object code with a copy of the GNU GPL and this license
+ document.
+
+ 4. Combined Works.
+
+ You may convey a Combined Work under terms of your choice that,
+taken together, effectively do not restrict modification of the
+portions of the Library contained in the Combined Work and reverse
+engineering for debugging such modifications, if you also do each of
+the following:
+
+ a) Give prominent notice with each copy of the Combined Work that
+ the Library is used in it and that the Library and its use are
+ covered by this License.
+
+ b) Accompany the Combined Work with a copy of the GNU GPL and this license
+ document.
+
+ c) For a Combined Work that displays copyright notices during
+ execution, include the copyright notice for the Library among
+ these notices, as well as a reference directing the user to the
+ copies of the GNU GPL and this license document.
+
+ d) Do one of the following:
+
+ 0) Convey the Minimal Corresponding Source under the terms of this
+ License, and the Corresponding Application Code in a form
+ suitable for, and under terms that permit, the user to
+ recombine or relink the Application with a modified version of
+ the Linked Version to produce a modified Combined Work, in the
+ manner specified by section 6 of the GNU GPL for conveying
+ Corresponding Source.
+
+ 1) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (a) uses at run time
+ a copy of the Library already present on the user's computer
+ system, and (b) will operate properly with a modified version
+ of the Library that is interface-compatible with the Linked
+ Version.
+
+ e) Provide Installation Information, but only if you would otherwise
+ be required to provide such information under section 6 of the
+ GNU GPL, and only to the extent that such information is
+ necessary to install and execute a modified version of the
+ Combined Work produced by recombining or relinking the
+ Application with a modified version of the Linked Version. (If
+ you use option 4d0, the Installation Information must accompany
+ the Minimal Corresponding Source and Corresponding Application
+ Code. If you use option 4d1, you must provide the Installation
+ Information in the manner specified by section 6 of the GNU GPL
+ for conveying Corresponding Source.)
+
+ 5. Combined Libraries.
+
+ You may place library facilities that are a work based on the
+Library side by side in a single library together with other library
+facilities that are not Applications and are not covered by this
+License, and convey such a combined library under terms of your
+choice, if you do both of the following:
+
+ a) Accompany the combined library with a copy of the same work based
+ on the Library, uncombined with any other library facilities,
+ conveyed under the terms of this License.
+
+ b) Give prominent notice with the combined library that part of it
+ is a work based on the Library, and explaining where to find the
+ accompanying uncombined form of the same work.
+
+ 6. Revised Versions of the GNU Lesser General Public License.
+
+ The Free Software Foundation may publish revised and/or new versions
+of the GNU Lesser General Public License from time to time. Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Library as you received it specifies that a certain numbered version
+of the GNU Lesser General Public License "or any later version"
+applies to it, you have the option of following the terms and
+conditions either of that published version or of any later version
+published by the Free Software Foundation. If the Library as you
+received it does not specify a version number of the GNU Lesser
+General Public License, you may choose any version of the GNU Lesser
+General Public License ever published by the Free Software Foundation.
+
+ If the Library as you received it specifies that a proxy can decide
+whether future versions of the GNU Lesser General Public License shall
+apply, that proxy's public statement of acceptance of any version is
+permanent authorization for you to choose that version for the
+Library.
Added: branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/CalibrationService.idl
===================================================================
--- branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/CalibrationService.idl (rev 0)
+++ branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/CalibrationService.idl 2014-03-18 02:46:05 UTC (rev 133)
@@ -0,0 +1,22 @@
+#ifndef CALIBRATION_SERVICE_IDL
+#define CALIBRATION_SERVICE_IDL
+
+#include "InterfaceDataTypes.idl"
+
+module ImageCalibService
+{
+ typedef sequence<RTC::CameraImage> ImageList;
+ interface CalibrationService
+ {
+ void setImageNumber(in short num);
+ short getImageNumber();
+ RTC::CameraImage captureCalibImage(in short num);
+ RTC::CameraImage getCalibImage(in short num);
+ ImageList getCalibImages();
+ boolean removeCalibImage(in short num);
+ RTC::CameraInfo getCalibParameter();
+ };
+};
+
+#endif /* CALIBRATION_SERVICE_IDL */
+
Added: branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/README.TkCalibGUI
===================================================================
--- branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/README.TkCalibGUI (rev 0)
+++ branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/README.TkCalibGUI 2014-03-18 02:46:05 UTC (rev 133)
@@ -0,0 +1,130 @@
+======================================================================
+ RTComponent: TkCalibGUI specificatioin
+
+ OpenRTM-aist-1.0.0
+ Date: $Date$
+
+ This file is generated by rtc-template with the following argments.
+
+# rtc-template -bpython --module-name=TkCalibGUI
+# --module-desc='Image Calibration GUI' --module-version=1.1.0 --module-vendor=AIST
+# --module-category=Category --module-comp-type=STATIC
+# --module-act-type=PERIODIC --module-max-inst=1
+# --inport=checker_image:RTC::CameraImage
+# --consumer-idl=/home/openrtm/opt/ImageProcessing/opencv/components/TkCalibGUI/CalibrationService.idl
+# --consumer=CameraCalibrationService:CalibrationService:ImageCalibService::CalibrationService
+
+
+======================================================================
+ Basic Information
+======================================================================
+# <rtc-template block="module">
+Module Name: TkCalibGUI
+Description: Image Calibration GUI
+Version: 1.1.0
+Vendor: AIST
+Category: Category
+Kind: DataFlowComponent
+Comp. Type: STATIC
+Act. Type: PERIODIC
+MAX Inst.: 1
+Lang: Python
+Lang Type:
+
+# </rtc-template>
+
+
+======================================================================
+ Activity definition
+======================================================================
+
+[on_initialize] implemented
+
+[on_finalize]
+
+[on_startup]
+
+[on_shutdown]
+
+[on_activated]
+
+[on_deactivated]
+
+[on_execute] implemented
+
+[on_aborting]
+
+[on_error]
+
+[on_reset]
+
+[on_state_update]
+
+[on_rate_changed]
+
+======================================================================
+ InPorts definition
+======================================================================
+# <rtc-template block="inport">
+
+ Name: checker_image
+ PortNumber: 0
+ Description:
+ PortType:
+ DataType: RTC::CameraImage
+ MaxOut:
+ [Data Elements]
+ Name:
+ Type:
+ Number:
+ Semantics:
+ Unit:
+ Frequency:
+ Operation Cycle:
+ RangeLow:
+ RangeHigh:
+ DefaultValue:
+
+
+# </rtc-template>
+
+======================================================================
+ OutPorts definition
+======================================================================
+# <rtc-template block="outport">
+
+
+# </rtc-template>
+
+
+======================================================================
+ Service Port definition
+======================================================================
+# <rtc-template block="serviceport">
+ PortName: CameraCalibrationService
+ Description:
+ Interface:
+ [Service Consumer Interfaces]
+ Name: CalibrationService
+ Type: ImageCalibService::CalibrationService
+ Description:
+ Argument:
+ Return Value:
+ Exception:
+ PreCondition:
+ PostCondition:
+# </rtc-template>
+
+======================================================================
+ Configuration definition
+======================================================================
+# <rtc-template block="configuration">
+# </rtc-template>
+
+This software is developed at the National Institute of Advanced
+Industrial Science and Technology. Approval number H23PRO-????. This
+software is licensed under the Lesser General Public License. See
+COPYING.LESSER.
+
+This area is reserved for future OpenRTM.
+
Added: branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/RTC.xml
===================================================================
--- branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/RTC.xml (rev 0)
+++ branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/RTC.xml 2014-03-18 02:46:05 UTC (rev 133)
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<rtc:RtcProfile rtc:version="0.2" rtc:id="RTC:AIST:Category:TkCalibGUI:1.1.0" xmlns:rtcExt="http://www.openrtp.org/namespaces/rtc_ext" xmlns:rtcDoc="http://www.openrtp.org/namespaces/rtc_doc" xmlns:rtc="http://www.openrtp.org/namespaces/rtc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <rtc:BasicInfo xsi:type="rtcExt:basic_info_ext" rtcExt:saveProject="TkCalibGUI" rtc:updateDate="2013-12-25T14:29:57+09:00" rtc:creationDate="2013-12-06T13:01:38+09:00" rtc:version="1.1.0" rtc:vendor="AIST" rtc:maxInstances="1" rtc:executionType="PeriodicExecutionContext" rtc:executionRate="1000.0" rtc:description="Image Calibration GUI" rtc:category="Category" rtc:componentKind="DataFlowComponent" rtc:activityType="PERIODIC" rtc:componentType="STATIC" rtc:name="TkCalibGUI"/>
+ <rtc:Actions>
+ <rtc:OnInitialize xsi:type="rtcDoc:action_status_doc" rtc:implemented="true"/>
+ <rtc:OnFinalize xsi:type="rtcDoc:action_status_doc" rtc:implemented="false"/>
+ <rtc:OnStartup xsi:type="rtcDoc:action_status_doc" rtc:implemented="false"/>
+ <rtc:OnShutdown xsi:type="rtcDoc:action_status_doc" rtc:implemented="false"/>
+ <rtc:OnActivated xsi:type="rtcDoc:action_status_doc" rtc:implemented="false"/>
+ <rtc:OnDeactivated xsi:type="rtcDoc:action_status_doc" rtc:implemented="false"/>
+ <rtc:OnAborting xsi:type="rtcDoc:action_status_doc" rtc:implemented="false"/>
+ <rtc:OnError xsi:type="rtcDoc:action_status_doc" rtc:implemented="false"/>
+ <rtc:OnReset xsi:type="rtcDoc:action_status_doc" rtc:implemented="false"/>
+ <rtc:OnExecute xsi:type="rtcDoc:action_status_doc" rtc:implemented="true"/>
+ <rtc:OnStateUpdate xsi:type="rtcDoc:action_status_doc" rtc:implemented="false"/>
+ <rtc:OnRateChanged xsi:type="rtcDoc:action_status_doc" rtc:implemented="false"/>
+ <rtc:OnAction xsi:type="rtcDoc:action_status_doc" rtc:implemented="false"/>
+ <rtc:OnModeChanged xsi:type="rtcDoc:action_status_doc" rtc:implemented="false"/>
+ </rtc:Actions>
+ <rtc:DataPorts xsi:type="rtcExt:dataport_ext" rtcExt:position="LEFT" rtcExt:variableName="img_check" rtc:unit="" rtc:subscriptionType="" rtc:dataflowType="" rtc:interfaceType="" rtc:idlFile="" rtc:type="RTC::CameraImage" rtc:name="checker_image" rtc:portType="DataInPort"/>
+ <rtc:ServicePorts xsi:type="rtcExt:serviceport_ext" rtcExt:position="LEFT" rtc:name="CameraCalibrationService">
+ <rtc:ServiceInterface xsi:type="rtcExt:serviceinterface_ext" rtcExt:variableName="" rtc:path="/usr/include/openrtm-1.1/rtm/idl" rtc:type="ImageCalibService::CalibrationService" rtc:idlFile="/home/openrtm/opt/ImageProcessing/opencv/components/TkCalibGUI/CalibrationService.idl" rtc:instanceName="" rtc:direction="Required" rtc:name="CalibrationService"/>
+ </rtc:ServicePorts>
+ <rtc:Language xsi:type="rtcExt:language_ext" rtc:kind="Python"/>
+</rtc:RtcProfile>
Added: branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/TkCalibGUI.conf
===================================================================
--- branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/TkCalibGUI.conf (rev 0)
+++ branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/TkCalibGUI.conf 2014-03-18 02:46:05 UTC (rev 133)
@@ -0,0 +1,139 @@
+# -*- sh -*-
+#------------------------------------------------------------
+# Configuration file for TkCalibGUI
+#
+# This configuration file name should be specified in rtc.conf (or other
+# configuration file specified by -f option) by "config_file" property.
+#
+# Category.TkCalibGUI.config_file: TkCalibGUI.conf
+# or
+# Category.TkCalibGUI0.config_file: TkCalibGUI0.conf
+# Category.TkCalibGUI1.config_file: TkCalibGUI1.conf
+# Category.TkCalibGUI2.config_file: TkCalibGUI2.conf
+#
+# ------------------------------------------------------------
+# An example configuration file for TkCalibGUI
+#
+# See details in the following reference manual
+#
+
+# Execution context configuration
+# exec_cxt.periodic.type: PeriodicExecutionContext
+# exec_cxt.periodic.rate: 1000
+#
+#
+# configuration.active_config: mode0
+
+# Additional configuration-set example named "mode0"
+#
+# conf.mode0.int_param0: 0
+# conf.mode0.int_param1: 1
+# conf.mode0.double_param0: 0.99
+# conf.mode0.double_param1: -0.99
+# conf.mode0.str_param0: default
+# conf.mode0.str_param1: default set in conf file
+# conf.mode0.vector_param0: 0.0,0.1,0.2,0.3,0.4,0.5,0.6
+#
+# Other configuration set named "mode1"
+#
+# conf.mode1.int_param0: 0
+# conf.mode1.int_param1: 1
+# conf.mode1.double_param0: 0.99
+# conf.mode1.double_param1: -0.99
+# conf.mode1.str_param0: default
+# conf.mode1.str_param1: default set in conf file
+# conf.mode1.vector_param0: 0.0,0.1,0.2,0.3,0.4,0.5,0.6
+
+
+
+
+
+##============================================================
+## Component configuration reference
+##
+
+##============================================================
+## Active configuration-set
+##============================================================
+##
+## Initial active configuration-set. The following "mode0" is a
+## configuration-set name. A configuration-set named "mode0" should be
+## appear in this configuration file as follows.
+##
+## configuration.active_config: mode0
+##
+# conf.mode0.param0: hoge
+# conf.mode0.param1: fuga
+# conf.mode0.param2: munya
+
+##============================================================
+## GUI control option for RTSystemEditor
+##============================================================
+## Available GUI control options [__widget__]:
+##
+## - text: text box [default].
+## - slider.<step>: Horizontal slider. <step> is step for the slider.
+## A range constraints option is required.
+## - spin: Spin button. A range constraitns option is required.
+## - radio: Radio button. An enumeration constraints is required.
+## - checkbox: Checkbox control. An enumeration constraints is
+## required. The parameter has to be able to accept a
+## comma separated list.
+## - orderd_list: Orderd list control. An enumeration constraint is
+## required. The parameter has to be able to accept a
+## comma separated list. In this control, Enumerated
+## elements can appear one or more times in the given list.
+##
+## Available GUI control constraint options [__constraints__]:
+##
+## - none: blank
+## - direct value: 100 (constant value)
+## - range: <, >, <=, >= can be used.
+## - enumeration: (enum0, enum1, ...)
+## - array: <constraints0>, ,constraints1>, ... for only array value
+## - hash: {key0: value0, key1:, value0, ...}
+##
+## examples:
+# conf.__widget__.int_param0: slider.10
+# conf.__widget__.int_param1: spin
+# conf.__widget__.double_param0: slider.10
+# conf.__widget__.double_param1: text
+# conf.__widget__.str_param0: radio
+# conf.__widget__.vector_param0: checkbox
+# conf.__widget__.vector_param1: orderd_list
+
+
+# conf.__constraints__.int_param0: 0<=x<=150
+# conf.__constraints__.int_param1: 0<=x<=1000
+# conf.__constraints__.double_param0: 0<=x<=100
+# conf.__constraints__.double_param1:
+# conf.__constraints__.str_param0: (default,mode0,mode1)
+# conf.__constraints__.vector_param0: (dog,monky,pheasant,cat)
+# conf.__constraints__.vector_param1: (pita,gora,switch)
+
+##============================================================
+## Execution context settings
+##============================================================
+##
+## Periodic type ExecutionContext
+##
+## Other availabilities in OpenRTM-aist
+##
+## - ExtTrigExecutionContext: External triggered EC. It is embedded in
+## OpenRTM library.
+## - OpenHRPExecutionContext: External triggred paralell execution
+## EC. It is embedded in OpenRTM
+## library. This is usually used with
+## OpenHRP3.
+## - RTPreemptEC: Real-time execution context for Linux
+## RT-preemptive pathed kernel.
+## - ArtExecutionContext: Real-time execution context for ARTLinux
+## (http://sourceforge.net/projects/art-linux/)
+##
+# exec_cxt.periodic.type: PeriodicExecutionContext
+
+##
+## The execution cycle of ExecutionContext
+##
+exec_cxt.periodic.rate:1000.0
+
Added: branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/TkCalibGUIComp.py
===================================================================
--- branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/TkCalibGUIComp.py (rev 0)
+++ branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/TkCalibGUIComp.py 2014-03-18 02:46:05 UTC (rev 133)
@@ -0,0 +1,376 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+# -*- Python -*-
+
+"""
+ @file TkCalibGUIComp.py
+ @brief Image Calibration GUI
+ @date $Date$
+
+
+"""
+import os
+import sys
+import socket
+import getopt
+import re
+import time
+sys.path.append(".")
+
+# Import RTM module
+import RTC
+import OpenRTM_aist
+from omniORB import CORBA
+
+import tkcalibgui
+import CalibrationService_idl
+from rtshell import rtdel
+
+# Import Service implementation class
+# <rtc-template block="service_impl">
+
+# </rtc-template>
+
+# Import Service stub modules
+# <rtc-template block="consumer_import">
+import ImageCalibService, ImageCalibService__POA
+
+# </rtc-template>
+
+# This module's spesification
+# <rtc-template block="module_spec">
+tkcalibgui_spec = ["implementation_id", "TkCalibGUI",
+ "type_name", "TkCalibGUI",
+ "description", "Image Calibration GUI",
+ "version", "1.1.0",
+ "vendor", "AIST",
+ "category", "Category",
+ "activity_type", "STATIC",
+ "max_instance", "1",
+ "language", "Python",
+ "lang_type", "SCRIPT",
+ ""]
+# </rtc-template>
+
+##
+# @class TkCalibGUI
+# @brief Image Calibration GUI
+#
+#
+class TkCalibGUI(OpenRTM_aist.DataFlowComponentBase):
+
+ ##
+ # @brief constructor
+ # @param manager Maneger Object
+ #
+ def __init__(self, manager):
+ OpenRTM_aist.DataFlowComponentBase.__init__(self, manager)
+
+ self._d_img_check = RTC.CameraImage(RTC.Time(0,0),0,0,0,"",0.0,[])
+ """
+ """
+ self._checker_imageIn = OpenRTM_aist.InPort("checker_image", self._d_img_check)
+
+ """
+ """
+ self._CameraCalibrationServicePort = OpenRTM_aist.CorbaPort("CameraCalibrationService")
+
+ """
+ """
+ self._CalibrationService = OpenRTM_aist.CorbaConsumer(interfaceType=ImageCalibService.CalibrationService)
+
+ # initialize of configuration-data.
+ # <rtc-template block="init_conf_param">
+
+ # </rtc-template>
+
+
+
+ ##
+ #
+ # The initialize action (on CREATED->ALIVE transition)
+ # formaer rtc_init_entry()
+ #
+ # @return RTC::ReturnCode_t
+ #
+ #
+ def onInitialize(self):
+ # Bind variables and configuration variable
+
+ # Set InPort buffers
+ self.addInPort("checker_image",self._checker_imageIn)
+
+ # Set OutPort buffers
+
+ # Set service provider to Ports
+
+ # Set service consumers to Ports
+ self._CameraCalibrationServicePort.registerConsumer("CalibrationService", "ImageCalibService::CalibrationService", self._CalibrationService)
+
+ # Set CORBA Service Ports
+ self.addPort(self._CameraCalibrationServicePort)
+
+ self.pic_num = 0
+ return RTC.RTC_OK
+
+ # ##
+ # #
+ # # The finalize action (on ALIVE->END transition)
+ # # formaer rtc_exiting_entry()
+ # #
+ # # @return RTC::ReturnCode_t
+ #
+ # #
+ def onFinalize(self):
+ self.gui.quit()
+ return RTC.RTC_OK
+
+ # ##
+ # #
+ # # The startup action when ExecutionContext startup
+ # # former rtc_starting_entry()
+ # #
+ # # @param ec_id target ExecutionContext Id
+ # #
+ # # @return RTC::ReturnCode_t
+ # #
+ # #
+ #def onStartup(self, ec_id):
+ #
+ # return RTC.RTC_OK
+
+ # ##
+ # #
+ # # The shutdown action when ExecutionContext stop
+ # # former rtc_stopping_entry()
+ # #
+ # # @param ec_id target ExecutionContext Id
+ # #
+ # # @return RTC::ReturnCode_t
+ # #
+ # #
+ #def onShutdown(self, ec_id):
+ #
+ # return RTC.RTC_OK
+
+ # ##
+ # #
+ # # The activated action (Active state entry action)
+ # # former rtc_active_entry()
+ # #
+ # # @param ec_id target ExecutionContext Id
+ # #
+ # # @return RTC::ReturnCode_t
+ # #
+ # #
+ def onActivated(self, ec_id):
+
+ self.gui.setConsumerPointer(self._CalibrationService._ptr())
+
+ return RTC.RTC_OK
+
+ # ##
+ # #
+ # # The deactivated action (Active state exit action)
+ # # former rtc_active_exit()
+ # #
+ # # @param ec_id target ExecutionContext Id
+ # #
+ # # @return RTC::ReturnCode_t
+ # #
+ # #
+ #def onDeactivated(self, ec_id):
+ #
+ # return RTC.RTC_OK
+
+ ##
+ #
+ # The execution action that is invoked periodically
+ # former rtc_active_do()
+ #
+ # @param ec_id target ExecutionContext Id
+ #
+ # @return RTC::ReturnCode_t
+ #
+ #
+ def onExecute(self, ec_id):
+
+ try:
+ if CORBA.is_nil(self._CalibrationService._ptr()):
+# print "TkCalibGUI : [nil] object reference is not assigned."
+ return RTC.RTC_OK
+ elif self._CalibrationService._ptr()._non_existent():
+# print "TkCalibGUI : provider is inactive."
+ return RTC.RTC_OK
+ except Exception as e:
+ print "TkCalibGUI : " + str(e)
+ return RTC.RTC_OK
+
+ if self._checker_imageIn.isNew():
+ _image = self._checker_imageIn.read()
+
+ # チェスボード撮影枚数確認
+ try:
+ num = self._CalibrationService._ptr().getImageNumber()
+ except Exception as e:
+# print "TkCalibGUI : getImageNumber() : " + str(e)
+ return RTC.RTC_OK
+
+ if self.pic_num != num:
+ self.pic_num = num
+
+ # 撮影枚数変更に伴うGUI再描画
+ self.gui.redraw_gui(num)
+
+ self.gui.set_image( _image.pixels, _image.width, _image.height)
+ return RTC.RTC_OK
+
+ # ##
+ # #
+ # # The aborting action when main logic error occurred.
+ # # former rtc_aborting_entry()
+ # #
+ # # @param ec_id target ExecutionContext Id
+ # #
+ # # @return RTC::ReturnCode_t
+ # #
+ # #
+ #def onAborting(self, ec_id):
+ #
+ # return RTC.RTC_OK
+
+ # ##
+ # #
+ # # The error action in ERROR state
+ # # former rtc_error_do()
+ # #
+ # # @param ec_id target ExecutionContext Id
+ # #
+ # # @return RTC::ReturnCode_t
+ # #
+ # #
+ #def onError(self, ec_id):
+ #
+ # return RTC.RTC_OK
+
+ # ##
+ # #
+ # # The reset action that is invoked resetting
+ # # This is same but different the former rtc_init_entry()
+ # #
+ # # @param ec_id target ExecutionContext Id
+ # #
+ # # @return RTC::ReturnCode_t
+ # #
+ # #
+ #def onReset(self, ec_id):
+ #
+ # return RTC.RTC_OK
+
+ # ##
+ # #
+ # # The state update action that is invoked after onExecute() action
+ # # no corresponding operation exists in OpenRTm-aist-0.2.0
+ # #
+ # # @param ec_id target ExecutionContext Id
+ # #
+ # # @return RTC::ReturnCode_t
+ # #
+
+ # #
+ #def onStateUpdate(self, ec_id):
+ #
+ # return RTC.RTC_OK
+
+ # ##
+ # #
+ # # The action that is invoked when execution context's rate is changed
+ # # no corresponding operation exists in OpenRTm-aist-0.2.0
+ # #
+ # # @param ec_id target ExecutionContext Id
+ # #
+ # # @return RTC::ReturnCode_t
+ # #
+ # #
+ #def onRateChanged(self, ec_id):
+ #
+ # return RTC.RTC_OK
+
+ def set_gui(self, gui):
+ self.gui = gui
+
+ def set_tree(self, tree):
+ self.tree = tree
+
+ def get_tree(self):
+ return self.tree
+
+def get_options(pid, opts):
+ o_option = False
+ for o, a in opts:
+ if o == "-o":
+ index = a.find("naming.formats")
+ if index != -1:
+ # naming.formatsのオプション指定あり
+ index = a.find("%p")
+ comp_option = a[:index] + str(pid) + a[index+2:]
+ o_option = True
+
+ if o_option == False:
+ # naming.formatsのオプション指定が無いので追加する
+ comp_option = "naming.formats:cvcalib{0}/%n.rtc".format(pid)
+
+ return comp_option
+
+def usage():
+ print "usage: TkCalibGUIComp.py [-o naming.formats]"
+
+def main():
+ calibgui = tkcalibgui.TkCalibGUI()
+
+ pid = os.getpid()
+ rt_dir = "/localhost/cvcalib{0}/".format(pid)
+ try:
+ opts, args = getopt.getopt(sys.argv[1:], "o:f:")
+ except getopt.GetoptError, err:
+ print usage()
+ return
+
+ comp_option = get_options(pid, opts)
+ sys.argv += ["-o", comp_option]
+ sys.argv += ["-o", "manager.shutdown_on_nortcs:NO"]
+ sys.argv += ["-o", "manager.shutdown_auto:NO"]
+
+ mgr = OpenRTM_aist.Manager.init(sys.argv)
+ mgr.activateManager()
+ orb = mgr.getORB()
+
+ # Register component
+ profile = OpenRTM_aist.Properties(defaults_str=tkcalibgui_spec)
+ mgr.registerFactory(profile,
+ TkCalibGUI,
+ OpenRTM_aist.Delete)
+ # Create a component
+ comp = mgr.createComponent("TkCalibGUI")
+ comp.set_gui(calibgui)
+ calibgui.set_on_update(comp.set_tree)
+ mgr.runManager(True)
+
+ calibgui.set_options(orb, rt_dir, comp_option)
+ calibgui.mainloop()
+
+ while True:
+ comp_list = mgr.getComponents()
+ # is finished?
+ if len(comp_list) == 0:
+ break
+ time.sleep(0.9)
+
+ # Delete context
+ tree = comp.get_tree()
+ rtdel.main([str(rt_dir)], tree)
+ mgr.shutdown()
+
+if __name__ == "__main__":
+ main()
+
Added: branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/cmake/CMakeLists.txt
===================================================================
--- branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/cmake/CMakeLists.txt (rev 0)
+++ branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/cmake/CMakeLists.txt 2014-03-18 02:46:05 UTC (rev 133)
@@ -0,0 +1,18 @@
+set(PKG_DEPS "openrtm-aist")
+set(PKG_LIBS -l${PROJECT_NAME_LOWER})
+set(pkg_conf_file ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME_LOWER}.pc)
+configure_file(${PROJECT_NAME_LOWER}.pc.in ${pkg_conf_file} @ONLY)
+install(FILES ${pkg_conf_file}
+ DESTINATION ${LIB_INSTALL_DIR}/pkgconfig/ COMPONENT component)
+
+# Install CMake modules
+set(cmake_config ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME_LOWER}-config.cmake)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME_LOWER}-config.cmake.in
+ ${cmake_config} @ONLY)
+set(cmake_version_config
+ ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME_LOWER}-config-version.cmake)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME_LOWER}-config-version.cmake.in
+ ${cmake_version_config} @ONLY)
+set(cmake_mods ${cmake_config} ${cmake_version_config})
+install(FILES ${cmake_mods} DESTINATION ${SHARE_INSTALL_DIR} COMPONENT library)
+
Added: branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/cmake/License.rtf
===================================================================
--- branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/cmake/License.rtf (rev 0)
+++ branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/cmake/License.rtf 2014-03-18 02:46:05 UTC (rev 133)
@@ -0,0 +1,7 @@
+{\rtf1\ansi\ansicpg932\deff0\deflang1033\deflangfe1041{\fonttbl{\f0\froman\fprq1\fcharset128 \'82\'6c\'82\'72 \'82\'6f\'83\'53\'83\'56\'83\'62\'83\'4e;}}
+{\*\generator Msftedit 5.41.15.1515;}\viewkind4\uc1\pard\lang1041\f0\fs20 LICENSE\par
+=======\par
+\par
+This is an installer created using CPack (http://www.cmake.org). No license provided.\par
+\par
+}
Added: branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/cmake/cpack_options.cmake.in
===================================================================
--- branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/cmake/cpack_options.cmake.in (rev 0)
+++ branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/cmake/cpack_options.cmake.in 2014-03-18 02:46:05 UTC (rev 133)
@@ -0,0 +1,94 @@
+set(CPACK_PACKAGE_NAME "@PROJECT_NAME@")
+set(CPACK_PACKAGE_VERSION_MAJOR "@PROJECT_VERSION_MAJOR@")
+set(CPACK_PACKAGE_VERSION_MINOR "@PROJECT_VERSION_MINOR@")
+set(CPACK_PACKAGE_VERSION_PATCH "@PROJECT_VERSION_REVISION@")
+set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "@PROJECT_DESCRIPTION@")
+set(CPACK_PACKAGE_VENDOR "@PROJECT_VENDOR@")
+set(CPACK_PACKAGE_INSTALL_DIRECTORY "@PROJECT_NAME@@PROJECT_VERSION_MAJOR@@PROJECT_VERSION_MINOR@@PROJECT_VERSION_REVISION@")
+set(CPACK_PACKAGE_FILE_NAME "@PROJECT_NAME at -@PROJECT_VERSION@")
+set(CPACK_RESOURCE_FILE_LICENSE "@PROJECT_SOURCE_DIR@/COPYING.LESSER")
+
+set(CPACK_COMPONENTS_ALL component)
+set(CPACK_COMPONENT_COMPONENT_DISPLAY_NAME "Applications")
+set(CPACK_COMPONENT_COMPONENT_DESCRIPTION
+ "Component library and stand-alone executable")
+if(INSTALL_HEADERS)
+ set(CPACK_COMPONENTS_ALL ${CPACK_COMPONENTS_ALL} headers)
+ set(CPACK_COMPONENT_HEADERS_DISPLAY_NAME "Header files")
+ set(CPACK_COMPONENT_HEADERS_DESCRIPTION
+ "Header files from the component.")
+ set(CPACK_COMPONENT_HEADERS_DEPENDS component)
+endif(INSTALL_HEADERS)
+if(INSTALL_IDL)
+ set(CPACK_COMPONENTS_ALL ${CPACK_COMPONENTS_ALL} idl)
+ set(CPACK_COMPONENT_IDL_DISPLAY_NAME "IDL files")
+ set(CPACK_COMPONENT_IDL_DESCRIPTION
+ "IDL files for the component's services.")
+ set(CPACK_COMPONENT_IDL_DEPENDS component)
+endif(INSTALL_IDL)
+set(INSTALL_EXAMPLES @BUILD_EXAMPLES@)
+if(INSTALL_EXAMPLES)
+ set(CPACK_COMPONENTS_ALL ${CPACK_COMPONENTS_ALL} examples)
+ set(CPACK_COMPONENT_EXAMPLES_DISPLAY_NAME "Examples")
+ set(CPACK_COMPONENT_EXAMPLES_DESCRIPTION
+ "Sample configuration files and other component resources.")
+ set(CPACK_COMPONENT_EXAMPLES_DEPENDS component)
+endif(INSTALL_EXAMPLES)
+set(INSTALL_DOCUMENTATION @BUILD_DOCUMENTATION@)
+if(INSTALL_DOCUMENTATION)
+ set(CPACK_COMPONENTS_ALL ${CPACK_COMPONENTS_ALL} documentation)
+ set(CPACK_COMPONENT_DOCUMENTATION_DISPLAY_NAME "Documentation")
+ set(CPACK_COMPONENT_DOCUMENTATION_DESCRIPTION
+ "Component documentation")
+ set(CPACK_COMPONENT_DOCUMENTATION_DEPENDS component)
+endif(INSTALL_DOCUMENTATION)
+if(INSTALL_SOURCES)
+ set(CPACK_COMPONENTS_ALL ${CPACK_COMPONENTS_ALL} sources)
+ set(CPACK_COMPONENT_SOURCES_DISPLAY_NAME "Source files")
+ set(CPACK_COMPONENT_SOURCES_DESCRIPTION
+ "Source files from the component.")
+endif(INSTALL_SOURCES)
+
+IF (WIN32)
+
+ # Windows WiX package settings
+
+ set(CPACK_WIX_XSL "@CMAKE_CURRENT_BINARY_DIR@/wix.xsl")
+ set(CPACK_WIX_LANG "ja-jp")
+ set(CPACK_RESOURCE_FILE_LICENSE
+ "@CMAKE_CURRENT_SOURCE_DIR@/cmake/License.rtf")
+ configure_file(
+ "@CMAKE_CURRENT_SOURCE_DIR@/cmake/wix.xsl.in"
+ "@CMAKE_CURRENT_BINARY_DIR@/wix.xsl" @ONLY)
+
+ set(CPACK_PACKAGE_FILE_NAME
+ "@PROJECT_NAME@@PROJECT_VERSION_MAJOR@@PROJECT_VERSION_MINOR@@PROJECT_VERSION_REVISION@")
+
+
+ #
+ #
+ #
+ set(CPACK_NSIS_MUI_ICON "@PROJECT_SOURCE_DIR@/cmake\\rt_middleware_logo.ico")
+ set(CPACK_NSIS_MUI_UNIICON "@PROJECT_SOURCE_DIR@/cmake\\rt_middleware_logo.ico")
+ set(CPACK_PACKAGE_ICON "@PROJECT_SOURCE_DIR@/cmake\\rt_middleware_logo.bmp")
+ set(CPACK_NSIS_HELP_LINK "http://www.openrtm.org")
+ set(CPACK_NSIS_URL_INFO_ABOUT "http://www.openrtm.org")
+ set(CPACK_NSIS_MODIFY_PATH ON)
+ set(CPACK_PACKAGE_EXECUTABLES @PROJECT_EXECUTABLES@)
+ if(INSTALL_DOCUMENTATION)
+ set(CPACK_NSIS_MENU_LINKS
+ "@CMAKE_INSTALL_PREFIX@/share/doc/@PROJECT_NAME_LOWER at -@PROJECT_VERSION_MAJOR@/html/index.html"
+ "Component documentation")
+ endif(INSTALL_DOCUMENTATION)
+ string(REPLACE "/@PROJECT_NAME@" "" install_prefix_root
+ "@CMAKE_INSTALL_PREFIX@")
+ file(TO_NATIVE_PATH "${install_prefix_root}" install_prefix_root)
+ set(CPACK_NSIS_INSTALL_ROOT "${install_prefix_root}")
+ set(CPACK_NSIS_EXTRA_INSTALL_COMMANDS
+ " Rename \"$INSTDIR\\share\\@PROJECT_NAME_LOWER at -@PROJECT_VERSION_MAJOR@\\@PROJECT_NAME_LOWER at -config.cmake\" \"$INSTDIR\\@PROJECT_NAME_LOWER at -config.cmake\"
+ Rename \"$INSTDIR\\share\\@PROJECT_NAME_LOWER at -@PROJECT_VERSION_MAJOR@\\@PROJECT_NAME_LOWER at -config-version.cmake\" \"$INSTDIR\\@PROJECT_NAME_LOWER at -config-version.cmake\"")
+ set(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS
+ " Delete \"$INSTDIR\\@PROJECT_NAME_LOWER at -config.cmake\"
+ Delete \"$INSTDIR\\@PROJECT_NAME_LOWER at -config-version.cmake\"")
+ENDIF (WIN32)
+
Added: branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/cmake/tkcalibgui-config-version.cmake.in
===================================================================
--- branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/cmake/tkcalibgui-config-version.cmake.in (rev 0)
+++ branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/cmake/tkcalibgui-config-version.cmake.in 2014-03-18 02:46:05 UTC (rev 133)
@@ -0,0 +1,10 @@
+set(PACKAGE_VERSION @PROJECT_VERSION@)
+if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION)
+ set(PACKAGE_VERSION_COMPATIBLE FALSE)
+else(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION)
+ set(PACKAGE_VERSION_COMPATIBLE TRUE)
+ if(PACKAGE_VERSION VERSION_EQUAL PACKAGE_FIND_VERSION)
+ set(PACKAGE_VERSION_EXACT TRUE)
+ endif(PACKAGE_VERSION VERSION_EQUAL PACKAGE_FIND_VERSION)
+endif(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION)
+
Added: branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/cmake/tkcalibgui-config.cmake.in
===================================================================
--- branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/cmake/tkcalibgui-config.cmake.in (rev 0)
+++ branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/cmake/tkcalibgui-config.cmake.in 2014-03-18 02:46:05 UTC (rev 133)
@@ -0,0 +1,54 @@
+# TkCalibGUI CMake config file
+#
+# This file sets the following variables:
+# TkCalibGUI_FOUND - Always TRUE.
+# TkCalibGUI_INCLUDE_DIRS - Directories containing the TkCalibGUI include files.
+# TkCalibGUI_IDL_DIRS - Directories containing the TkCalibGUI IDL files.
+# TkCalibGUI_LIBRARIES - Libraries needed to use TkCalibGUI.
+# TkCalibGUI_DEFINITIONS - Compiler flags for TkCalibGUI.
+# TkCalibGUI_VERSION - The version of TkCalibGUI found.
+# TkCalibGUI_VERSION_MAJOR - The major version of TkCalibGUI found.
+# TkCalibGUI_VERSION_MINOR - The minor version of TkCalibGUI found.
+# TkCalibGUI_VERSION_REVISION - The revision version of TkCalibGUI found.
+# TkCalibGUI_VERSION_CANDIDATE - The candidate version of TkCalibGUI found.
+
+message(STATUS "Found TkCalibGUI- at PROJECT_VERSION@")
+set(TkCalibGUI_FOUND TRUE)
+
+find_package(<dependency> REQUIRED)
+
+#set(TkCalibGUI_INCLUDE_DIRS
+# "@CMAKE_INSTALL_PREFIX@/include/@PROJECT_NAME_LOWER at -@PROJECT_VERSION_MAJOR@"
+# ${<dependency>_INCLUDE_DIRS}
+# )
+#
+#set(TkCalibGUI_IDL_DIRS
+# "@CMAKE_INSTALL_PREFIX@/include/@PROJECT_NAME_LOWER at -@PROJECT_VERSION_MAJOR@/idl")
+set(TkCalibGUI_INCLUDE_DIRS
+ "@CMAKE_INSTALL_PREFIX@/include/@CPACK_PACKAGE_FILE_NAME@"
+ ${<dependency>_INCLUDE_DIRS}
+ )
+set(TkCalibGUI_IDL_DIRS
+ "@CMAKE_INSTALL_PREFIX@/include/@CPACK_PACKAGE_FILE_NAME@/idl")
+
+
+if(WIN32)
+ set(TkCalibGUI_LIBRARIES
+ "@CMAKE_INSTALL_PREFIX@/@LIB_INSTALL_DIR@/@CMAKE_SHARED_LIBRARY_PREFIX@@PROJECT_NAME_LOWER@@CMAKE_STATIC_LIBRARY_SUFFIX@"
+ ${<dependency>_LIBRARIES}
+ )
+else(WIN32)
+ set(TkCalibGUI_LIBRARIES
+ "@CMAKE_INSTALL_PREFIX@/@LIB_INSTALL_DIR@/@CMAKE_SHARED_LIBRARY_PREFIX@@PROJECT_NAME_LOWER@@CMAKE_SHARED_LIBRARY_SUFFIX@"
+ ${<dependency>_LIBRARIES}
+ )
+endif(WIN32)
+
+set(TkCalibGUI_DEFINITIONS ${<dependency>_DEFINITIONS})
+
+set(TkCalibGUI_VERSION @PROJECT_VERSION@)
+set(TkCalibGUI_VERSION_MAJOR @PROJECT_VERSION_MAJOR@)
+set(TkCalibGUI_VERSION_MINOR @PROJECT_VERSION_MINOR@)
+set(TkCalibGUI_VERSION_REVISION @PROJECT_VERSION_REVISION@)
+set(TkCalibGUI_VERSION_CANDIDATE @PROJECT_VERSION_CANDIDATE@)
+
Added: branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/cmake/tkcalibgui.pc.in
===================================================================
--- branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/cmake/tkcalibgui.pc.in (rev 0)
+++ branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/cmake/tkcalibgui.pc.in 2014-03-18 02:46:05 UTC (rev 133)
@@ -0,0 +1,13 @@
+# This file was generated by CMake for @PROJECT_NAME@
+prefix=@CMAKE_INSTALL_PREFIX@
+exec_prefix=${prefix}
+libdir=${prefix}/@LIB_INSTALL_DIR@
+includedir=${prefix}/include
+
+Name: @PROJECT_NAME@
+Description: @PROJECT_DESCRIPTION@
+Version: @PROJECT_VERSION@
+Requires: @PKG_DEPS@
+Libs: -L${libdir} @PKG_LIBS@
+Cflags: -I${includedir}/@PROJECT_NAME_LOWER at -@PROJECT_VERSION_MAJOR@
+
Added: branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/cmake/uninstall_target.cmake.in
===================================================================
--- branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/cmake/uninstall_target.cmake.in (rev 0)
+++ branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/cmake/uninstall_target.cmake.in 2014-03-18 02:46:05 UTC (rev 133)
@@ -0,0 +1,18 @@
+if(NOT EXISTS "@PROJECT_BINARY_DIR@/install_manifest.txt")
+ message(FATAL_ERROR "Cannot find install manifest: \"@PROJECT_BINARY_DIR@/install_manifest.txt\"")
+endif(NOT EXISTS "@PROJECT_BINARY_DIR@/install_manifest.txt")
+
+file(READ "@PROJECT_BINARY_DIR@/install_manifest.txt" files)
+string(REGEX REPLACE "\n" ";" files "${files}")
+foreach(file ${files})
+ message(STATUS "Uninstalling \"$ENV{DESTDIR}${file}\"")
+ if(EXISTS "$ENV{DESTDIR}${file}")
+ exec_program("@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\""
+ OUTPUT_VARIABLE rm_out RETURN_VALUE rm_retval)
+ if(NOT "${rm_retval}" STREQUAL 0)
+ message(FATAL_ERROR "Problem when removing \"$ENV{DESTDIR}${file}\"")
+ endif(NOT "${rm_retval}" STREQUAL 0)
+ else(EXISTS "$ENV{DESTDIR}${file}")
+ message(STATUS "File \"$ENV{DESTDIR}${file}\" does not exist.")
+ endif(EXISTS "$ENV{DESTDIR}${file}")
+endforeach(file)
Added: branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/cmake/utils.cmake
===================================================================
--- branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/cmake/utils.cmake (rev 0)
+++ branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/cmake/utils.cmake 2014-03-18 02:46:05 UTC (rev 133)
@@ -0,0 +1,32 @@
+# Dissect the version specified in PROJECT_VERSION, placing the major,
+# minor, revision and candidate components in PROJECT_VERSION_MAJOR, etc.
+# _prefix: The prefix string for the version variable names.
+macro(DISSECT_VERSION)
+ # Find version components
+ string(REGEX REPLACE "^([0-9]+).*" "\\1"
+ PROJECT_VERSION_MAJOR "${PROJECT_VERSION}")
+ string(REGEX REPLACE "^[0-9]+\\.([0-9]+).*" "\\1"
+ PROJECT_VERSION_MINOR "${PROJECT_VERSION}")
+ string(REGEX REPLACE "^[0-9]+\\.[0-9]+\\.([0-9]+)" "\\1"
+ PROJECT_VERSION_REVISION "${PROJECT_VERSION}")
+ string(REGEX REPLACE "^[0-9]+\\.[0-9]+\\.[0-9]+(.*)" "\\1"
+ PROJECT_VERSION_CANDIDATE "${PROJECT_VERSION}")
+endmacro(DISSECT_VERSION)
+
+# Filter a list to remove all strings matching the regex in _pattern. The
+# output is placed in the variable pointed at by _output.
+macro(FILTER_LIST _list _pattern _output)
+ set(${_output})
+ foreach(_item ${${_list}})
+ if("${_item}" MATCHES ${_pattern})
+ set(${_output} ${${_output}} ${_item})
+ endif("${_item}" MATCHES ${_pattern})
+ endforeach(_item)
+endmacro(FILTER_LIST)
+
+macro(MAP_ADD_STR _list _str _output)
+ set(${_output})
+ foreach(_item ${${_list}})
+ set(${_output} ${${_output}} ${_str}${_item})
+ endforeach(_item)
+endmacro(MAP_ADD_STR)
Added: branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/cmake_modules/FindOpenRTMPython.cmake
===================================================================
--- branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/cmake_modules/FindOpenRTMPython.cmake (rev 0)
+++ branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/cmake_modules/FindOpenRTMPython.cmake 2014-03-18 02:46:05 UTC (rev 133)
@@ -0,0 +1,107 @@
+
+set(OMNIORB_FOUND FALSE)
+set(OPENRTM_FOUND FALSE)
+
+
+if(UNIX)
+ include(FindPkgConfig)
+
+ # omniORB
+ pkg_check_modules(OMNIORB REQUIRED "omniORB4")
+ if(NOT OMNIORB_DIR)
+ if(OMNIORB_FOUND)
+ set(OMNIORB_DIR "${OMNIORB_PREFIX}")
+ endif()
+ set(OMNIORB_DIR "${OMNIORB_DIR}" CACHE PATH "omniORB root directory")
+ endif()
+
+ # OpenRTM-aist
+ pkg_check_modules(OPENRTM REQUIRED "openrtm-aist")
+ if(NOT OPENRTM_DIR)
+ if(OPENRTM_FOUND)
+ set(OPENRTM_DIR "${OPENRTM_PREFIX}")
+ endif()
+ set(OPENRTM_DIR "${OPENRTM_DIR}" CACHE PATH "OpenRTM-aist root directory")
+ endif()
+
+ string(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\1"
+ OPENRTM_VERSION_MAJOR "${OPENRTM_VERSION}")
+ string(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\2"
+ OPENRTM_VERSION_MINOR "${OPENRTM_VERSION}")
+ string(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\3"
+ OPENRTM_VERSION_PATCH "${OPENRTM_VERSION}")
+
+ # IDL Compiler
+ set(OPENRTM_IDLC "omniidl")
+ set(OPENRTM_IDLFLAGS "-bpython")
+
+endif(UNIX)
+
+if(WIN32)
+ # omniORB
+ if(NOT OMNIORB_DIR)
+ if(NOT $ENV{OMNI_ROOT} STREQUAL "")
+ set(OMNIORB_DIR "$ENV{OMNI_ROOT}")
+ set(OMNIORB_FOUND TRUE)
+ endif()
+ set(OMNIORB_DIR "${OMNIORB_DIR}" CACHE PATH "omniORB root directory")
+ if(NOT OMNIORB_FOUND)
+ message(FATAL_ERROR "omniORB not found.")
+ endif()
+ endif()
+
+ # omniORB version
+ file(GLOB _vers RELATIVE "${OMNIORB_DIR}" "${OMNIORB_DIR}/THIS_IS_OMNIORB*")
+ if("${_vers}" STREQUAL "")
+ message(FATAL_ERROR "omniORB version file not found.")
+ endif()
+
+ if("${_vers}" MATCHES "THIS_IS_OMNIORB")
+ set(OMNIORB_VERSION "${_vers}")
+ string(REGEX REPLACE "THIS_IS_OMNIORB_" ""
+ OMNIORB_VERSION "${OMNIORB_VERSION}")
+ string(REGEX REPLACE "[_]" "."
+ OMNIORB_VERSION "${OMNIORB_VERSION}")
+ string(REGEX REPLACE "[.]" ""
+ OMNIORB_VERSION_NUM "${OMNIORB_VERSION}")
+ endif()
+
+ # OpenRTM-aist
+ if(NOT OPENRTM_DIR)
+ if(NOT $ENV{RTM_ROOT} STREQUAL "")
+ set(OPENRTM_DIR "$ENV{RTM_ROOT}")
+ set(OPENRTM_FOUND TRUE)
+ endif()
+ set(OPENRTM_DIR "${OPENRTM_DIR}" CACHE PATH "OpenRTM-aist root directory")
+ if(NOT OPENRTM_FOUND)
+ message(FATAL_ERROR "OpenRTM-aist not found.")
+ endif()
+ endif()
+
+ # OpenRTM-aist version
+ set(OPENRTM_VERSION "${OPENRTM_DIR}")
+ string(REGEX REPLACE ".*OpenRTM-aist/" "" OPENRTM_VERSION "${OPENRTM_VERSION}")
+ string(REGEX REPLACE "([0-9]+)\\.([0-9]+)" "\\1" OPENRTM_VERSION_MAJOR "${OPENRTM_VERSION}")
+ string(REGEX REPLACE "([0-9]+)\\.([0-9]+)" "\\2" OPENRTM_VERSION_MINOR "${OPENRTM_VERSION}")
+ set(OPENRTM_VERSION_PATCH "0")
+ set(OPENRTM_VERSION "${OPENRTM_VERSION_MAJOR}.${OPENRTM_VERSION_MINOR}.${OPENRTM_VERSION_PATCH}")
+
+ # IDL Compiler
+ set(OPENRTM_IDLC "omniidl")
+ set(OPENRTM_IDLFLAGS -bpython)
+
+endif(WIN32)
+
+message(STATUS "FindOpenRTMPython setup done.")
+
+message(STATUS " OMNIORB_DIR=${OMNIORB_DIR}")
+message(STATUS " OMNIORB_VERSION=${OMNIORB_VERSION}")
+
+message(STATUS " OPENRTM_DIR=${OPENRTM_DIR}")
+message(STATUS " OPENRTM_VERSION=${OPENRTM_VERSION}")
+message(STATUS " OPENRTM_VERSION_MAJOR=${OPENRTM_VERSION_MAJOR}")
+message(STATUS " OPENRTM_VERSION_MINOR=${OPENRTM_VERSION_MINOR}")
+message(STATUS " OPENRTM_VERSION_PATCH=${OPENRTM_VERSION_PATCH}")
+
+message(STATUS " OPENRTM_IDLC=${OPENRTM_IDLC}")
+message(STATUS " OPENRTM_IDLFLAGS=${OPENRTM_IDLFLAGS}")
Added: branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/cpack_resources/Description.txt
===================================================================
Added: branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/cpack_resources/License.rtf
===================================================================
--- branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/cpack_resources/License.rtf (rev 0)
+++ branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/cpack_resources/License.rtf 2014-03-18 02:46:05 UTC (rev 133)
@@ -0,0 +1,7 @@
+{\rtf1\ansi\ansicpg932\deff0\deflang1033\deflangfe1041{\fonttbl{\f0\froman\fprq1\fcharset128 \'82\'6c\'82\'72 \'82\'6f\'83\'53\'83\'56\'83\'62\'83\'4e;}}
+{\*\generator Msftedit 5.41.15.1515;}\viewkind4\uc1\pard\lang1041\f0\fs20 LICENSE\par
+=======\par
+\par
+This is an installer created using CPack (http://www.cmake.org). No license provided.\par
+\par
+}
Added: branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/cpack_resources/License.txt
===================================================================
Added: branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/cpack_resources/wix.xsl.in
===================================================================
--- branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/cpack_resources/wix.xsl.in (rev 0)
+++ branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/cpack_resources/wix.xsl.in 2014-03-18 02:46:05 UTC (rev 133)
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:wix="http://schemas.microsoft.com/wix/2006/wi">
+ <xsl:output indent="yes" method="xml"/>
+
+ <xsl:template match="/wix:Wix">
+ <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
+ <Product xmlns="http://schemas.microsoft.com/wix/2006/wi" Id="AF0C394F-8B37-4F3E-B141-8572FDBB468A" Name="@RTC_NAME@ @PACKAGE_VERSION@" Language="1041" Codepage="932" Version="@PACKAGE_VERSION@" Manufacturer="@RTC_VENDOR@" UpgradeCode="FCB05B9A-7E78-4271-B4AE-4029D433A168">
+ <Package InstallerVersion="300" Compressed="yes" Languages='1041' SummaryCodepage='932' />
+ <Media Id="1" Cabinet="@RTC_NAME at .cab" EmbedCab="yes" />
+ <Directory Id="TARGETDIR" Name="SourceDir" >
+ <Directory Id="ProgramFilesFolder" Name="PFILE" >
+ <Directory Id="OPENRTM_DIR" Name="OpenRTM-aist" >
+ <Directory Id="INSTALLLOCATION" Name="@OPENRTM_VERSION_MAJOR at .@OPENRTM_VERSION_MINOR@" />
+ </Directory>
+ </Directory>
+ </Directory>
+
+ <Feature Id="APPLICATIONS" Title="@CPACK_COMPONENT_APPLICATIONS_DISPLAY_NAME@" Level="1" Description="@CPACK_COMPONENT_APPLICATIONS_DESCRIPTION@" >
+ <!-- Start Ripping through the xml -->
+ <xsl:apply-templates select="wix:Fragment/wix:DirectoryRef/wix:Component[contains(wix:File/@Source, '@PACKAGE_NAME@@PACKAGE_VERSION@\RTC.xml')]" />
+ <xsl:apply-templates select="wix:Fragment/wix:DirectoryRef/wix:Component[contains(wix:File/@Source, '@PACKAGE_NAME@@PACKAGE_VERSION@\@RTC_NAME at .py')]" />
+ <xsl:apply-templates select="wix:Fragment/wix:DirectoryRef/wix:Component[contains(wix:File/@Source, '@PACKAGE_NAME@@PACKAGE_VERSION@') and contains(wix:File/@Source, '_idl_example.py')]" />
+ <xsl:apply-templates select="wix:Fragment/wix:DirectoryRef/wix:Component[contains(wix:File/@Source, '@PACKAGE_NAME@@PACKAGE_VERSION@') and contains(wix:File/@Source, '_idl.py')]" />
+ <xsl:apply-templates select="wix:Fragment/wix:DirectoryRef/wix:Component[contains(wix:File/@Source, '@PACKAGE_NAME@@PACKAGE_VERSION@') and contains(wix:File/@Source, '__init__.py')]" />
+ </Feature>
+
+ <Feature Id="DOCUMENTS" Title="@CPACK_COMPONENT_DOCUMENTS_DISPLAY_NAME@" Level="1" Absent="allow" Description="@CPACK_COMPONENT_DOCUMENTS_DESCRIPTION@" >
+ <!-- Start Ripping through the xml -->
+ <xsl:apply-templates select="wix:Fragment/wix:DirectoryRef/wix:Component[contains(wix:File/@Source, '@PACKAGE_NAME@@PACKAGE_VERSION@\doc')]" />
+ </Feature>
+
+ <Feature Id="SOURCES" Title="@CPACK_COMPONENT_SOURCES_DISPLAY_NAME@" Level="1" Absent="allow" Description="@CPACK_COMPONENT_SOURCES_DESCRIPTION@" >
+ <!-- Start Ripping through the xml -->
+ <xsl:apply-templates select="wix:Fragment/wix:DirectoryRef/wix:Component[contains(wix:File/@Source, '@PACKAGE_NAME@@PACKAGE_VERSION@\src')]" />
+ </Feature>
+
+ <!--Tack on your specific wix options-->
+ <UIRef Id="WixUI_FeatureTree" />
+ <UIRef Id="WixUI_ErrorProgressText" />
+ <WixVariable Id="WixUILicenseRtf" Value="@CPACK_RESOURCE_FILE_LICENSE@"/>
+ <!-- TODO: Add Wix Specific Dialogs and features. -->
+ <!-- TODO: Add artwork -->
+ <!-- TODO: Add ... -->
+
+ </Product>
+
+ <!--Output the fragment info which heat generates-->
+ <xsl:copy-of select="wix:Fragment[wix:DirectoryRef/wix:Component]" />
+ <xsl:apply-templates select="wix:Fragment[wix:DirectoryRef/@Id!='TARGETDIR' and wix:DirectoryRef/wix:Directory]" />
+
+ </Wix>
+ </xsl:template>
+
+ <xsl:template match="wix:Fragment[wix:DirectoryRef/wix:Directory]" >
+ <xsl:copy>
+ <xsl:apply-templates select="wix:DirectoryRef" />
+ </xsl:copy>
+ </xsl:template>
+
+ <xsl:template match="wix:DirectoryRef" >
+ <xsl:copy>
+ <xsl:choose>
+ <xsl:when test="wix:Directory[@Name='components']" >
+ <xsl:attribute name="Id">INSTALLLOCATION</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="Id"><xsl:value-of select="@Id" /></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:apply-templates />
+ </xsl:copy>
+ </xsl:template>
+
+ <xsl:template match="wix:Directory" >
+ <xsl:copy>
+ <xsl:attribute name="Id"><xsl:value-of select="@Id" /></xsl:attribute>
+ <xsl:attribute name="Name"><xsl:value-of select="@Name" /></xsl:attribute>
+ </xsl:copy>
+ </xsl:template>
+
+ <xsl:template match="wix:Component">
+ <xsl:element name="ComponentRef" xmlns="http://schemas.microsoft.com/wix/2006/wi" >
+ <xsl:attribute name="Id">
+ <xsl:value-of select="@Id" />
+ </xsl:attribute>
+ </xsl:element>
+ </xsl:template>
+
+</xsl:stylesheet>
Added: branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/doc/CMakeLists.txt
===================================================================
--- branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/doc/CMakeLists.txt (rev 0)
+++ branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/doc/CMakeLists.txt 2014-03-18 02:46:05 UTC (rev 133)
@@ -0,0 +1,40 @@
+cmake_policy(SET CMP0002 OLD)
+
+find_package(Doxygen)
+if(DOXYGEN_FOUND)
+ # Search for Sphinx
+ #set(SPHINX_PATH "" CACHE PATH
+ # "Path to the directory containing the sphinx-build program")
+ #find_program(SPHINX_BUILD sphinx-build PATHS ${SPHINX_PATH})
+ #if(NOT SPHINX_BUILD)
+ # message(FATAL_ERROR
+ # "Sphinx was not found. Set SPHINX_PATH to the directory containing the sphinx-build executable, or disable BUILD_DOCUMENTATION.")
+ #endif(NOT SPHINX_BUILD)
+
+ set(html_dir "${CMAKE_CURRENT_BINARY_DIR}/html")
+ set(doxygen_dir "${html_dir}/doxygen")
+ file(MAKE_DIRECTORY ${html_dir})
+ file(MAKE_DIRECTORY ${doxygen_dir})
+
+ # Doxygen part
+ set(doxyfile "${CMAKE_CURRENT_BINARY_DIR}/doxyfile")
+ configure_file(doxyfile.in ${doxyfile})
+ add_custom_target(doxygen_doc ${DOXYGEN_EXECUTABLE} ${doxyfile})
+
+ # Sphinx part
+ #set(conf_dir "${CMAKE_CURRENT_BINARY_DIR}/conf")
+ #file(MAKE_DIRECTORY "${conf_dir}")
+ #file(MAKE_DIRECTORY "${conf_dir}/_static")
+ #set(conf_py "${conf_dir}/conf.py")
+ #configure_file(conf.py.in ${conf_py})
+ #add_custom_target(sphinx_doc ALL sphinx-build -b html -c ${conf_dir}
+ # ${CMAKE_CURRENT_SOURCE_DIR}/content ${CMAKE_CURRENT_BINARY_DIR}/html
+ # DEPENDS doxygen_doc)
+ #install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/html" DESTINATION
+ # "components/share/doc/${PROJECT_NAME_LOWER}-${PROJECT_VERSION_MAJOR}"
+ # COMPONENT documentation)
+else(DOXYGEN_FOUND)
+ message(FATAL_ERROR
+ "Doxygen was not found. Cannot build documentation. Disable BUILD_DOCUMENTATION to continue")
+endif(DOXYGEN_FOUND)
+
Added: branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/doc/conf.py.in
===================================================================
--- branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/doc/conf.py.in (rev 0)
+++ branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/doc/conf.py.in 2014-03-18 02:46:05 UTC (rev 133)
@@ -0,0 +1,216 @@
+# -*- coding: utf-8 -*-
+#
+# TkCalibGUI documentation build configuration file, created by
+# sphinx-quickstart on Mon Aug 8 11:28:05 2011.
+#
+# This file is execfile()d with the current directory set to its containing dir.
+#
+# Note that not all possible configuration values are present in this
+# autogenerated file.
+#
+# All configuration values have a default; values that are commented out
+# serve to show the default.
+
+import sys, os
+
+# If extensions (or modules to document with autodoc) are in another directory,
+# add these directories to sys.path here. If the directory is relative to the
+# documentation root, use os.path.abspath to make it absolute, like shown here.
+#sys.path.insert(0, os.path.abspath('.'))
+
+# -- General configuration -----------------------------------------------------
+
+# If your documentation needs a minimal Sphinx version, state it here.
+#needs_sphinx = '1.0'
+
+# Add any Sphinx extension module names here, as strings. They can be extensions
+# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
+extensions = ['breathe']
+
+# Add any paths that contain templates here, relative to this directory.
+templates_path = ['_templates']
+
+# The suffix of source filenames.
+source_suffix = '.txt'
+
+# The encoding of source files.
+#source_encoding = 'utf-8-sig'
+
+# The master toctree document.
+master_doc = 'index'
+
+# General information about the project.
+project = u'@PROJECT_NAME@'
+copyright = u'@PROJECT_COPYRIGHT_YEAR@, @PROJECT_AUTHOR@'
+
+# The version info for the project you're documenting, acts as replacement for
+# |version| and |release|, also used in various other places throughout the
+# built documents.
+#
+# The short X.Y version.
+version = '@PROJECT_VERSION_MAJOR at .@PROJECT_VERSION_MINOR@'
+# The full version, including alpha/beta/rc tags.
+release = '@PROJECT_VERSION@'
+
+# The language for content autogenerated by Sphinx. Refer to documentation
+# for a list of supported languages.
+#language = None
+
+# There are two options for replacing |today|: either, you set today to some
+# non-false value, then it is used:
+#today = ''
+# Else, today_fmt is used as the format for a strftime call.
+#today_fmt = '%B %d, %Y'
+
+# List of patterns, relative to source directory, that match files and
+# directories to ignore when looking for source files.
+exclude_patterns = ['_build']
+
+# The reST default role (used for this markup: `text`) to use for all documents.
+#default_role = None
+
+# If true, '()' will be appended to :func: etc. cross-reference text.
+#add_function_parentheses = True
+
+# If true, the current module name will be prepended to all description
+# unit titles (such as .. function::).
+#add_module_names = True
+
+# If true, sectionauthor and moduleauthor directives will be shown in the
+# output. They are ignored by default.
+#show_authors = False
+
+# The name of the Pygments (syntax highlighting) style to use.
+pygments_style = 'sphinx'
+
+# A list of ignored prefixes for module index sorting.
+#modindex_common_prefix = []
+
+
+# -- Options for HTML output ---------------------------------------------------
+
+# The theme to use for HTML and HTML Help pages. See the documentation for
+# a list of builtin themes.
+html_theme = 'default'
+
+# Theme options are theme-specific and customize the look and feel of a theme
+# further. For a list of options available for each theme, see the
+# documentation.
+#html_theme_options = {}
+
+# Add any paths that contain custom themes here, relative to this directory.
+#html_theme_path = []
+
+# The name for this set of Sphinx documents. If None, it defaults to
+# "<project> v<release> documentation".
+#html_title = None
+
+# A shorter title for the navigation bar. Default is the same as html_title.
+#html_short_title = None
+
+# The name of an image file (relative to this directory) to place at the top
+# of the sidebar.
+#html_logo = None
+
+# The name of an image file (within the static path) to use as favicon of the
+# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
+# pixels large.
+#html_favicon = None
+
+# Add any paths that contain custom static files (such as style sheets) here,
+# relative to this directory. They are copied after the builtin static files,
+# so a file named "default.css" will overwrite the builtin "default.css".
+html_static_path = ['_static']
+
+# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
+# using the given strftime format.
+#html_last_updated_fmt = '%b %d, %Y'
+
+# If true, SmartyPants will be used to convert quotes and dashes to
+# typographically correct entities.
+#html_use_smartypants = True
+
+# Custom sidebar templates, maps document names to template names.
+#html_sidebars = {}
+
+# Additional templates that should be rendered to pages, maps page names to
+# template names.
+#html_additional_pages = {}
+
+# If false, no module index is generated.
+#html_domain_indices = True
+
+# If false, no index is generated.
+#html_use_index = True
+
+# If true, the index is split into individual pages for each letter.
+#html_split_index = False
+
+# If true, links to the reST sources are added to the pages.
+#html_show_sourcelink = True
+
+# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
+#html_show_sphinx = True
+
+# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
+#html_show_copyright = True
+
+# If true, an OpenSearch description file will be output, and all pages will
+# contain a <link> tag referring to it. The value of this option must be the
+# base URL from which the finished HTML is served.
+#html_use_opensearch = ''
+
+# This is the file name suffix for HTML files (e.g. ".xhtml").
+#html_file_suffix = None
+
+# Output file base name for HTML help builder.
+htmlhelp_basename = '@PROJECT_NAME at doc'
+
+
+# -- Options for LaTeX output --------------------------------------------------
+
+# The paper size ('letter' or 'a4').
+#latex_paper_size = 'letter'
+
+# The font size ('10pt', '11pt' or '12pt').
+#latex_font_size = '10pt'
+
+# Grouping the document tree into LaTeX files. List of tuples
+# (source start file, target name, title, author, documentclass [howto/manual]).
+latex_documents = [
+ ('index', '@PROJECT_NAME at .tex', u'@PROJECT_NAME@ Documentation',
+ u'@PROJECT_AUTHOR@', 'manual'),
+]
+
+# The name of an image file (relative to this directory) to place at the top of
+# the title page.
+#latex_logo = None
+
+# For "manual" documents, if this is true, then toplevel headings are parts,
+# not chapters.
+#latex_use_parts = False
+
+# If true, show page references after internal links.
+#latex_show_pagerefs = False
+
+# If true, show URL addresses after external links.
+#latex_show_urls = False
+
+# Additional stuff for the LaTeX preamble.
+#latex_preamble = ''
+
+# Documents to append as an appendix to all manuals.
+#latex_appendices = []
+
+# If false, no module index is generated.
+#latex_domain_indices = True
+
+
+# -- Options for manual page output --------------------------------------------
+
+# One entry per manual page. List of tuples
+# (source start file, name, description, authors, manual section).
+man_pages = [
+ ('index', '@PROJECT_NAME@', u'@PROJECT_NAME@ Documentation',
+ [u'@PROJECT_AUTHOR@'], 1)
+]
Added: branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/doc/content/index.txt
===================================================================
--- branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/doc/content/index.txt (rev 0)
+++ branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/doc/content/index.txt 2014-03-18 02:46:05 UTC (rev 133)
@@ -0,0 +1,141 @@
+TkCalibGUIName - English
+========================
+
+.. toctree::
+ :hidden:
+
+ index_j
+
+
+Introduction
+============
+
+
+For a full list of classes and functions, see the `API documentation`_.
+
+.. _`API Documentation`:
+ doxygen/html/index.html
+
+Requirements
+============
+
+TkCalibGUI uses the `CMake build system`. You will need at least version
+2.8 to be able to build the component.
+
+.. _`CMAke build system`:
+ http://www.cmake.org
+
+
+Installation
+============
+
+Binary
+------
+
+Users of Windows can install the component using the binary installer. This
+will install the component and all its necessary dependencies. It is the
+recommended method of installation in Windows.
+
+- Download the installer from the website.
+- Double-click the executable file to begin installation.
+- Follow the instructions to install the component.
+- You may need to restart your computer for environment variable changes
+ to take effect before using the component.
+
+The component can be launched by double-clicking the
+``TkCalibGUIComp`` executable. The ``TkCalibGUI`` library
+is available for loading into a manager, using the initialisation function
+``TkCalibGUIInit``.
+
+From source
+-----------
+
+Follow these steps to install TkCalibGUI from source in any operating
+system:
+
+- Download the source, either from the repository or a source archive,
+ and extract it somewhere::
+
+ tar -xvzf TkCalibGUI-1.0.0.tar.gz
+
+- Change to the directory containing the extracted source::
+
+ cd TkCalibGUI-1.0.0
+
+- Create a directory called ``build``::
+
+ mkdir build
+
+- Change to that directory::
+
+ cd build
+
+- Run cmake or cmake-gui::
+
+ cmake ../
+
+- If no errors occurred, run make::
+
+ make
+
+- Finally, install the component. Ensure the necessary permissions to
+ install into the chosen prefix are available::
+
+ make install
+
+- The install destination can be changed by executing ccmake and changing
+ the variable ``CMAKE_INSTALL_PREFIX``::
+
+ ccmake ../
+
+The component is now ready for use. See the next section for instructions on
+configuring the component.
+
+TkCalibGUI can be launched in stand-alone mode by executing the
+``TkCalibGUIComp`` executable (installed into ``${prefix}/components/bin``).
+Alternatively, ``libTkCalibGUI.so`` can be loaded into a manager, using the
+initialisation function ``TkCalibGUIInit``. This shared object can be found in
+``${prefix}/components/lib`` or ``${prefix}/components/lib64``.
+
+
+Configuration
+=============
+
+The available configuration parameters are described below:
+
+================ ================== ================ ======
+Parameter Data type Default Value Effect
+================ ================== ================ ======
+================ ================== ================ ======
+
+Ports
+=====
+
+The ports provided by the component are described below:
+
+=============== =========== ============================== =======
+Name Type Data type Purpose
+=============== =========== ============================== =======
+checker_image InPort RTC::CameraImage
+CalibrationService ServicePort ImageCalibService::CalibrationService
+=============== =========== ============================== =======
+
+Examples
+========
+
+An example configuration file is provided in the
+``${prefix}/components/share/TkCalibGUI/examples/conf/`` directory.
+
+Changelog
+=========
+
+
+
+License
+=======
+
+This software is developed at the National Institute of Advanced
+Industrial Science and Technology. Approval number H23PRO-????. This
+software is licensed under the Lesser General Public License. See
+COPYING.LESSER.
+
Added: branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/doc/content/index_j.txt
===================================================================
--- branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/doc/content/index_j.txt (rev 0)
+++ branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/doc/content/index_j.txt 2014-03-18 02:46:05 UTC (rev 133)
@@ -0,0 +1,131 @@
+TkCalibGUI - 日本語
+=======================
+
+
+はじめに
+========
+
+クラスについては、 `APIドキュメンテーション`_ に参照してください。
+
+.. _`APIドキュメンテーション`:
+ doxygen/html/index.html
+
+条件
+====
+
+TkCalibGUIはOpenRTM-aist 1.0.0以上のC++版が必要です。
+
+TkCalibGUIは CMake_ を使います。CMake 2.8以上が必要です。
+
+.. _CMAke:
+ http://www.cmake.org
+
+インストール
+============
+
+インストーラ
+------------
+
+Windowsのユーザはインストーラパッケージを使用してコンポーネントをインストール
+することができます。これはコンポーネント及びそのすべての必要なライブラリを
+インストールします。Windowsでインストールする場合、インストーラの使用を推奨してます。
+
+- インストーラをダウンロードしてください。
+- インストールを始めるためにインストーラをダブルクリックしてください。
+- 指示にしたがってコンポーネントをインストールしてください。
+- 環境変数の変更を適用するため、コンポーネントを使用する前にコンピューターを
+ 再起動する必要があるかもしれません。
+
+TkCalibGUIは ``TkCalibGUIComp`` の実行をダブルクリックして実行することが
+できます。あるいは、 ``TkCalibGUI`` を初期化関数の ``TkCalibGUIInit`` を利用して、
+マネージャにロードすることができます。
+
+ソースから
+----------
+
+ソースを使う場合は以下の手順でインストールしてください。
+
+- ソースをダウンロードして解凍してください::
+
+ tar -xvzf TkCalibGUI-1.0.0.tar.gz
+
+- 解凍されたフォルダに入ってください::
+
+ cd TkCalibGUI-1.0.0
+
+- ``build`` フォルダを作ってください::
+
+ mkdir build
+
+- `` build`` フォルダに入ってください::
+
+ cd build
+
+- CMakeを実行してください::
+
+ cmake ../
+
+- エラーが出無い場合、makeを実行してください::
+
+ make
+
+- ``make install`` でコンポーネントをインストールしてください。選択された
+ インストール場所に書き込み権限があるかを確認してください::
+
+ ``make install``
+
+- インストールする場所はccmakeを実行して ``CMAKE_INSTALL_PREFIX`` を
+ 設定することで変更が可能です。
+
+ ccmake ../
+
+ここまでで、コンポーネントが使えるようになりました。コンフィグレーションは次のセクションを
+参照してください。
+
+TkCalibGUIは ``TkCalibGUIComp`` を実行( ``${prefix}/components/bin`` に
+インストールされます)することでスタンドアローンモードで実行することができます。
+あるいは、 ``libTkCalibGUI.so`` を初期化関数の ``TkCalibGUIInit`` を利用して、
+マネージャにロードすることができます。このライブラリは ``${prefix}/components/lib``
+または ``${prefix}/components/lib64`` にインストールされます。
+
+
+コンフィグレーション
+====================
+
+使えるコンフィグレーションパラメータは以下のテーブルを参照
+してください。
+
+================ ================== ================ ====
+パラメータ データ型 デフォルト値 意味
+================ ================== ================ ====
+================ ================== ================ ====
+
+ポート
+======
+
+コンポーネントによって提供されるポートは以下のテーブルで述べられています。
+
+=============== =========== ============================== ====
+ポート名 ポート型 データ型 意味
+=============== =========== ============================== ====
+checker_image InPort RTC::CameraImage
+CalibrationService ServicePort ImageCalibService::CalibrationService
+=============== =========== ============================== ====
+
+例
+==
+
+例のrtc.confファイルは ``${prefix}/components/share/TkCalibGUI/examples/conf/``
+フォルダにインストールされています。
+
+Changelog
+=========
+
+
+License
+=======
+
+このソフトウェアは産業技術総合研究所で開発されています。承認番号はH23PRO-????
+です。このソフトウェアは Lesser General Public License (LGPL) ライセンスとして
+公開されてます。COPYING.LESSER を参照してください。
+
Added: branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/doc/doxyfile.in
===================================================================
--- branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/doc/doxyfile.in (rev 0)
+++ branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/doc/doxyfile.in 2014-03-18 02:46:05 UTC (rev 133)
@@ -0,0 +1,297 @@
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+DOXYFILE_ENCODING = UTF-8
+PROJECT_NAME = "@PROJECT_NAME@"
+PROJECT_NUMBER = @PROJECT_VERSION@
+OUTPUT_DIRECTORY = "@doxygen_dir@"
+CREATE_SUBDIRS = NO
+OUTPUT_LANGUAGE = English
+BRIEF_MEMBER_DESC = YES
+REPEAT_BRIEF = YES
+ABBREVIATE_BRIEF = "The $name class" \
+ "The $name widget" \
+ "The $name file" \
+ is \
+ provides \
+ specifies \
+ contains \
+ represents \
+ a \
+ an \
+ the
+ALWAYS_DETAILED_SEC = NO
+INLINE_INHERITED_MEMB = NO
+FULL_PATH_NAMES = YES
+STRIP_FROM_PATH =
+STRIP_FROM_INC_PATH = @PROJECT_SOURCE_DIR@/include
+SHORT_NAMES = NO
+JAVADOC_AUTOBRIEF = YES
+QT_AUTOBRIEF = NO
+MULTILINE_CPP_IS_BRIEF = NO
+INHERIT_DOCS = YES
+SEPARATE_MEMBER_PAGES = NO
+TAB_SIZE = 2
+ALIASES =
+OPTIMIZE_OUTPUT_FOR_C = NO
+OPTIMIZE_OUTPUT_JAVA = NO
+OPTIMIZE_FOR_FORTRAN = NO
+OPTIMIZE_OUTPUT_VHDL = NO
+EXTENSION_MAPPING =
+BUILTIN_STL_SUPPORT = NO
+CPP_CLI_SUPPORT = NO
+SIP_SUPPORT = NO
+IDL_PROPERTY_SUPPORT = YES
+DISTRIBUTE_GROUP_DOC = NO
+SUBGROUPING = YES
+TYPEDEF_HIDES_STRUCT = NO
+SYMBOL_CACHE_SIZE = 0
+
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+EXTRACT_ALL = YES
+EXTRACT_PRIVATE = NO
+EXTRACT_STATIC = NO
+EXTRACT_LOCAL_CLASSES = YES
+EXTRACT_LOCAL_METHODS = NO
+EXTRACT_ANON_NSPACES = NO
+HIDE_UNDOC_MEMBERS = NO
+HIDE_UNDOC_CLASSES = NO
+HIDE_FRIEND_COMPOUNDS = NO
+HIDE_IN_BODY_DOCS = NO
+INTERNAL_DOCS = NO
+CASE_SENSE_NAMES = NO
+HIDE_SCOPE_NAMES = NO
+SHOW_INCLUDE_FILES = YES
+FORCE_LOCAL_INCLUDES = NO
+INLINE_INFO = YES
+SORT_MEMBER_DOCS = YES
+SORT_BRIEF_DOCS = NO
+SORT_MEMBERS_CTORS_1ST = NO
+SORT_GROUP_NAMES = NO
+SORT_BY_SCOPE_NAME = NO
+GENERATE_TODOLIST = YES
+GENERATE_TESTLIST = YES
+GENERATE_BUGLIST = YES
+GENERATE_DEPRECATEDLIST= YES
+ENABLED_SECTIONS =
+MAX_INITIALIZER_LINES = 30
+SHOW_USED_FILES = YES
+SHOW_DIRECTORIES = YES
+SHOW_FILES = YES
+SHOW_NAMESPACES = YES
+FILE_VERSION_FILTER =
+LAYOUT_FILE =
+
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+QUIET = YES
+WARNINGS = YES
+WARN_IF_UNDOCUMENTED = YES
+WARN_IF_DOC_ERROR = YES
+WARN_NO_PARAMDOC = NO
+WARN_FORMAT = "$file:$line: $text"
+WARN_LOGFILE =
+
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+INPUT = "@PROJECT_SOURCE_DIR@" \
+ "@PROJECT_SOURCE_DIR@/doc"
+INPUT_ENCODING = UTF-8
+FILE_PATTERNS = *.h \
+ *.hpp \
+ *.doxy
+RECURSIVE = YES
+EXCLUDE = "@PROJECT_SOURCE_DIR@/cmake" \
+ "@PROJECT_SOURCE_DIR@/build"
+EXCLUDE_SYMLINKS = YES
+EXCLUDE_PATTERNS =
+EXCLUDE_SYMBOLS =
+EXAMPLE_PATH =
+EXAMPLE_PATTERNS = *
+EXAMPLE_RECURSIVE = NO
+IMAGE_PATH =
+INPUT_FILTER =
+FILTER_PATTERNS =
+FILTER_SOURCE_FILES = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+SOURCE_BROWSER = YES
+INLINE_SOURCES = NO
+STRIP_CODE_COMMENTS = YES
+REFERENCED_BY_RELATION = NO
+REFERENCES_RELATION = NO
+REFERENCES_LINK_SOURCE = YES
+USE_HTAGS = NO
+VERBATIM_HEADERS = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+ALPHABETICAL_INDEX = YES
+COLS_IN_ALPHA_INDEX = 5
+IGNORE_PREFIX =
+
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+GENERATE_HTML = YES
+HTML_OUTPUT = html
+HTML_FILE_EXTENSION = .html
+HTML_HEADER =
+HTML_FOOTER =
+HTML_STYLESHEET =
+HTML_COLORSTYLE_HUE = 220
+HTML_COLORSTYLE_SAT = 100
+HTML_COLORSTYLE_GAMMA = 80
+HTML_TIMESTAMP = YES
+HTML_ALIGN_MEMBERS = YES
+HTML_DYNAMIC_SECTIONS = NO
+GENERATE_DOCSET = YES
+DOCSET_FEEDNAME = "Doxygen generated docs"
+DOCSET_BUNDLE_ID = @PROJECT_NAME_LOWER at .@PROJECT_AUTHOR_SHORT@
+DOCSET_PUBLISHER_ID = @PROJECT_NAME_LOWER at .@PROJECT_AUTHOR_SHORT at .Publisher
+DOCSET_PUBLISHER_NAME = @PROJECT_AUTHOR@/@PROJECT_VENDOR@
+GENERATE_HTMLHELP = YES
+CHM_FILE = "@PROJECT_NAME at -@PROJECT_VERSION_MAJOR at .@PROJECT_VERSION_MINOR at .chm"
+HHC_LOCATION = "@HTML_HELP_COMPILER@"
+GENERATE_CHI = NO
+CHM_INDEX_ENCODING =
+BINARY_TOC = NO
+TOC_EXPAND = NO
+GENERATE_QHP = NO
+QCH_FILE =
+QHP_NAMESPACE = @PROJECT_NAME_LOWER at .@PROJECT_AUTHOR_SHORT at .Project
+QHP_VIRTUAL_FOLDER = doc
+QHP_CUST_FILTER_NAME =
+QHP_CUST_FILTER_ATTRS =
+QHP_SECT_FILTER_ATTRS =
+QHG_LOCATION =
+GENERATE_ECLIPSEHELP = NO
+ECLIPSE_DOC_ID = @PROJECT_NAME_LOWER at .@PROJECT_AUTHOR_SHORT at .Project
+DISABLE_INDEX = NO
+ENUM_VALUES_PER_LINE = 4
+GENERATE_TREEVIEW = NO
+USE_INLINE_TREES = NO
+TREEVIEW_WIDTH = 250
+EXT_LINKS_IN_WINDOW = NO
+FORMULA_FONTSIZE = 10
+FORMULA_TRANSPARENT = YES
+SEARCHENGINE = YES
+SERVER_BASED_SEARCH = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+GENERATE_LATEX = NO
+LATEX_OUTPUT = latex
+LATEX_CMD_NAME = latex
+MAKEINDEX_CMD_NAME = makeindex
+COMPACT_LATEX = NO
+PAPER_TYPE = a4wide
+EXTRA_PACKAGES =
+LATEX_HEADER =
+PDF_HYPERLINKS = YES
+USE_PDFLATEX = YES
+LATEX_BATCHMODE = NO
+LATEX_HIDE_INDICES = NO
+LATEX_SOURCE_CODE = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+GENERATE_RTF = NO
+RTF_OUTPUT = rtf
+COMPACT_RTF = NO
+RTF_HYPERLINKS = NO
+RTF_STYLESHEET_FILE =
+RTF_EXTENSIONS_FILE =
+
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+GENERATE_MAN = NO
+MAN_OUTPUT = man
+MAN_EXTENSION = .3
+MAN_LINKS = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+GENERATE_XML = NO
+XML_OUTPUT = xml
+XML_SCHEMA =
+XML_DTD =
+XML_PROGRAMLISTING = YES
+
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+GENERATE_AUTOGEN_DEF = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+GENERATE_PERLMOD = NO
+PERLMOD_LATEX = NO
+PERLMOD_PRETTY = YES
+PERLMOD_MAKEVAR_PREFIX =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+ENABLE_PREPROCESSING = YES
+MACRO_EXPANSION = NO
+EXPAND_ONLY_PREDEF = NO
+SEARCH_INCLUDES = YES
+INCLUDE_PATH =
+INCLUDE_FILE_PATTERNS = *.h
+PREDEFINED =
+EXPAND_AS_DEFINED =
+SKIP_FUNCTION_MACROS = YES
+
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references
+#---------------------------------------------------------------------------
+TAGFILES =
+GENERATE_TAGFILE =
+ALLEXTERNALS = NO
+EXTERNAL_GROUPS = YES
+PERL_PATH = /usr/bin/perl
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+CLASS_DIAGRAMS = YES
+MSCGEN_PATH =
+HIDE_UNDOC_RELATIONS = YES
+HAVE_DOT = YES
+DOT_NUM_THREADS = 0
+DOT_FONTNAME = FreeSans.ttf
+DOT_FONTSIZE = 10
+DOT_FONTPATH =
+CLASS_GRAPH = YES
+COLLABORATION_GRAPH = YES
+GROUP_GRAPHS = YES
+UML_LOOK = NO
+TEMPLATE_RELATIONS = NO
+INCLUDE_GRAPH = YES
+INCLUDED_BY_GRAPH = YES
+CALL_GRAPH = NO
+CALLER_GRAPH = NO
+GRAPHICAL_HIERARCHY = YES
+DIRECTORY_GRAPH = YES
+DOT_IMAGE_FORMAT = png
+DOT_PATH =
+DOTFILE_DIRS =
+DOT_GRAPH_MAX_NODES = 50
+MAX_DOT_GRAPH_DEPTH = 0
+DOT_TRANSPARENT = NO
+DOT_MULTI_TARGETS = NO
+GENERATE_LEGEND = YES
+DOT_CLEANUP = YES
Added: branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/idl/BasicDataType.idl
===================================================================
--- branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/idl/BasicDataType.idl (rev 0)
+++ branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/idl/BasicDataType.idl 2014-03-18 02:46:05 UTC (rev 133)
@@ -0,0 +1,189 @@
+// -*- IDL -*-
+/*!
+ * @file DataType.idl
+ * @brief Basic Data Type definition
+ * @date $Date: 2007-01-09 15:36:29 $
+ * @author Noriaki Ando <n-ando at aist.go.jp>
+ *
+ * Copyright (C) 2003-2006
+ * Task-intelligence Research Group,
+ * Intelligent Systems Research Institute,
+ * National Institute of
+ * Advanced Industrial Science and Technology (AIST), Japan
+ * All rights reserved.
+ *
+ * $Id: BasicDataType.idl 1580 2009-12-07 08:54:10Z kurihara $
+ *
+ */
+
+#ifndef BasicDataType_idl
+#define BasicDataType_idl
+
+module RTC {
+ //------------------------------------------------------------
+ // Basic data type definition
+ //------------------------------------------------------------
+ struct Time
+ {
+ unsigned long sec; // sec
+ unsigned long nsec; // nano sec
+ };
+
+ struct TimedState
+ {
+ Time tm;
+ short data;
+ };
+
+ struct TimedShort
+ {
+ Time tm;
+ short data;
+ };
+
+ struct TimedLong
+ {
+ Time tm;
+ long data;
+ };
+
+ struct TimedUShort
+ {
+ Time tm;
+ unsigned short data;
+ };
+
+ struct TimedULong
+ {
+ Time tm;
+ unsigned long data;
+ };
+
+ struct TimedFloat
+ {
+ Time tm;
+ float data;
+ };
+
+ struct TimedDouble
+ {
+ Time tm;
+ double data;
+ };
+
+ struct TimedChar
+ {
+ Time tm;
+ char data;
+ };
+
+ struct TimedWChar
+ {
+ Time tm;
+ wchar data;
+ };
+
+ struct TimedBoolean
+ {
+ Time tm;
+ boolean data;
+ };
+
+ struct TimedOctet
+ {
+ Time tm;
+ octet data;
+ };
+
+ struct TimedString
+ {
+ Time tm;
+ string data;
+ };
+
+
+ struct TimedWString
+ {
+ Time tm;
+ wstring data;
+ };
+
+
+ /*!
+ * Sequence data type
+ */
+ struct TimedShortSeq
+ {
+ Time tm;
+ sequence<short> data;
+ };
+
+ struct TimedLongSeq
+ {
+ Time tm;
+ sequence<long> data;
+ };
+
+ struct TimedUShortSeq
+ {
+ Time tm;
+ sequence<unsigned short> data;
+ };
+
+ struct TimedULongSeq
+ {
+ Time tm;
+ sequence<unsigned long> data;
+ };
+
+ struct TimedFloatSeq
+ {
+ Time tm;
+ sequence<float> data;
+ };
+
+ struct TimedDoubleSeq
+ {
+ Time tm;
+ sequence<double> data;
+ };
+
+ struct TimedCharSeq
+ {
+ Time tm;
+ sequence<char> data;
+ };
+
+ struct TimedWCharSeq
+ {
+ Time tm;
+ sequence<wchar> data;
+ };
+
+ struct TimedBooleanSeq
+ {
+ Time tm;
+ sequence<boolean> data;
+ };
+
+ struct TimedOctetSeq
+ {
+ Time tm;
+ sequence<octet> data;
+ };
+
+ struct TimedStringSeq
+ {
+ Time tm;
+ sequence<string> data;
+ };
+
+ struct TimedWStringSeq
+ {
+ Time tm;
+ sequence<wstring> data;
+ };
+
+};
+
+#endif // end of BasicDataType_idl
Added: branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/idl/CMakeLists.txt
===================================================================
--- branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/idl/CMakeLists.txt (rev 0)
+++ branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/idl/CMakeLists.txt 2014-03-18 02:46:05 UTC (rev 133)
@@ -0,0 +1,56 @@
+set(idls ${CMAKE_CURRENT_SOURCE_DIR}/CalibrationService.idl ${CMAKE_CURRENT_SOURCE_DIR}/InterfaceDataTypes.idl ${CMAKE_CURRENT_SOURCE_DIR}/BasicDataType.idl ${CMAKE_CURRENT_SOURCE_DIR}/ExtendedDataTypes.idl )
+
+install(FILES ${idls} DESTINATION ${INC_INSTALL_DIR}/idl
+ COMPONENT idl)
+
+macro(_IDL_OUTPUTS _idl _dir _result)
+ set(${_result} ${_dir}/${_idl}SK.cc ${_dir}/${_idl}.hh
+ ${_dir}/${_idl}DynSK.cc)
+endmacro(_IDL_OUTPUTS)
+
+macro(_COMPILE_IDL _idl_file)
+ if(NOT WIN32)
+ execute_process(COMMAND rtm-config --prefix OUTPUT_VARIABLE OPENRTM_DIR
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ execute_process(COMMAND rtm-config --idlflags OUTPUT_VARIABLE OPENRTM_IDLFLAGS
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ separate_arguments(OPENRTM_IDLFLAGS)
+ execute_process(COMMAND rtm-config --idlc OUTPUT_VARIABLE OPENRTM_IDLC
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ set(_rtm_skelwrapper_command "rtm-skelwrapper")
+ else(NOT WIN32)
+ set(_rtm_skelwrapper_command "rtm-skelwrapper.py")
+ endif(NOT WIN32)
+ get_filename_component(_idl ${_idl_file} NAME_WE)
+ set(_idl_srcs_var ${_idl}_SRCS)
+ _IDL_OUTPUTS(${_idl} ${CMAKE_CURRENT_BINARY_DIR} ${_idl_srcs_var})
+
+ add_custom_command(OUTPUT ${${_idl_srcs_var}}
+ COMMAND python ${OPENRTM_DIR}/bin/${_rtm_skelwrapper_command} --include-dir= --skel-suffix=Skel --stub-suffix=Stub --idl-file=${_idl}.idl
+ COMMAND ${OPENRTM_IDLC} ${OPENRTM_IDLFLAGS} ${_idl_file}
+ WORKING_DIRECTORY ${CURRENT_BINARY_DIR}
+ DEPENDS ${_idl_file}
+ COMMENT "Compiling ${_idl_file}" VERBATIM)
+ add_custom_target(${_idl}_TGT DEPENDS ${${_idl_srcs_var}})
+ set(ALL_IDL_SRCS ${ALL_IDL_SRCS} ${${_idl_srcs_var}})
+ if(NOT TARGET ALL_IDL_TGT)
+ add_custom_target(ALL_IDL_TGT)
+ endif(NOT TARGET ALL_IDL_TGT)
+ add_dependencies(ALL_IDL_TGT ${_idl}_TGT)
+endmacro(_COMPILE_IDL)
+
+# Module exposed to the user
+macro(OPENRTM_COMPILE_IDL_FILES)
+ foreach(idl ${ARGN})
+ _COMPILE_IDL(${idl})
+ endforeach(idl)
+endmacro(OPENRTM_COMPILE_IDL_FILES)
+
+
+OPENRTM_COMPILE_IDL_FILES(${idls})
+set(ALL_IDL_SRCS ${ALL_IDL_SRCS} PARENT_SCOPE)
+FILTER_LIST(ALL_IDL_SRCS "hh$" idl_headers)
+install(FILES ${idl_headers}
+ DESTINATION ${INC_INSTALL_DIR}/${PROJECT_NAME_LOWER}/idl
+ COMPONENT headers)
+
Added: branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/idl/CalibrationService.idl
===================================================================
--- branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/idl/CalibrationService.idl (rev 0)
+++ branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/idl/CalibrationService.idl 2014-03-18 02:46:05 UTC (rev 133)
@@ -0,0 +1,22 @@
+#ifndef CALIBRATION_SERVICE_IDL
+#define CALIBRATION_SERVICE_IDL
+
+#include "InterfaceDataTypes.idl"
+
+module ImageCalibService
+{
+ typedef sequence<RTC::CameraImage> ImageList;
+ interface CalibrationService
+ {
+ void setImageNumber(in short num);
+ short getImageNumber();
+ RTC::CameraImage captureCalibImage(in short num);
+ RTC::CameraImage getCalibImage(in short num);
+ ImageList getCalibImages();
+ boolean removeCalibImage(in short num);
+ RTC::CameraInfo getCalibParameter();
+ };
+};
+
+#endif /* CALIBRATION_SERVICE_IDL */
+
Added: branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/idl/ExtendedDataTypes.idl
===================================================================
--- branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/idl/ExtendedDataTypes.idl (rev 0)
+++ branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/idl/ExtendedDataTypes.idl 2014-03-18 02:46:05 UTC (rev 133)
@@ -0,0 +1,699 @@
+// -*- IDL -*-
+/*!
+ * @file ExtendedDataTypes.idl
+ * @brief Extended data types for robotics applications.
+ * @date $Date: $
+ * @author Geoffrey Biggs <geoffrey.biggs at aist.go.jp>
+ *
+ * Copyright (C) 2009
+ * RT Synthesis Research Group
+ * Intelligent Systems Research Institute,
+ * National Institute of
+ * Advanced Industrial Science and Technology (AIST), Japan
+ * All rights reserved.
+ *
+ */
+
+#ifndef ExtendedDataTypes_idl
+#define ExtendedDataTypes_idl
+
+#include "BasicDataType.idl"
+
+module RTC {
+ /*!
+ * @struct RGBColour
+ * @brief Red/green/blue colour specification, with values between 0.0 for
+ * none and 1.0 for full.
+ */
+ struct RGBColour
+ {
+ double r;
+ double g;
+ double b;
+ };
+
+ //------------------------------------------------------------
+ // 2D data types
+ //------------------------------------------------------------
+
+ /*!
+ * @struct Point2D
+ * @brief Point in 2D cartesian space.
+ */
+ struct Point2D
+ {
+ /// X coordinate in metres.
+ double x;
+ /// Y coordinate in metres.
+ double y;
+ };
+
+ /*!
+ * @struct Vector2D
+ * @brief Vector in 2D cartesian space.
+ */
+ struct Vector2D
+ {
+ /// X value in metres.
+ double x;
+ /// Y value in metres.
+ double y;
+ };
+
+ /*!
+ * @struct Pose2D
+ * @brief Pose in 2D cartesian space.
+ */
+ struct Pose2D
+ {
+ /// 2D position.
+ Point2D position;
+ /// Heading in radians.
+ double heading;
+ };
+
+ /*!
+ * @struct Velocity2D
+ * @brief Velocities in 2D cartesian space.
+ */
+ struct Velocity2D
+ {
+ /// Velocity along the x axis in metres per second.
+ double vx;
+ /// Velocity along the y axis in metres per second.
+ double vy;
+ /// Yaw velocity in radians per second.
+ double va;
+ };
+
+ /*!
+ * @struct Acceleration2D
+ * @brief Accelerations in 2D cartesian space.
+ */
+ struct Acceleration2D
+ {
+ /// Acceleration along the x axis, in metres per second per second.
+ double ax;
+ /// Acceleration along the y axis, in metres per second per second.
+ double ay;
+ };
+
+ /*!
+ * @struct PoseVel2D
+ * @brief Pose and velocity in 2D cartesian space.
+ */
+ struct PoseVel2D
+ {
+ Pose2D pose;
+ Velocity2D velocities;
+ };
+
+ /*!
+ * @struct Size2D
+ * @brief Size in 2D cartesian space.
+ */
+ struct Size2D
+ {
+ /// Length in metres.
+ double l;
+ /// Width in metres.
+ double w;
+ };
+
+ /*!
+ * @struct Geometry2D
+ * @brief Geometry information for a device in 2D cartesian space.
+ */
+ struct Geometry2D
+ {
+ /// Pose of the device's base point in its parent device's (e.g. the robot's)
+ /// coordinate space.
+ Pose2D pose;
+ /// Size of the device, taken with the origin at its base point.
+ Size2D size;
+ };
+
+ /*!
+ * @struct Covariance2D
+ * @brief Covariance matrix for a 2D pose.
+ */
+ struct Covariance2D
+ {
+ /// (0, 0) value of the covariance matrix.
+ double xx;
+ /// (0, 1) value of the covariance matrix.
+ double xy;
+ /// (0, 2) value of the covariance matrix.
+ double xt;
+ /// (1, 1) value of the covariance matrix.
+ double yy;
+ /// (1, 2) value of the covariance matrix.
+ double yt;
+ /// (2, 2) value of the covariance matrix.
+ double tt;
+ };
+
+ /*!
+ * @struct PointCovariance2D
+ * @brief Covariance matrix for a 2D point.
+ */
+ struct PointCovariance2D
+ {
+ /// (0, 0) value of the covariance matrix.
+ double xx;
+ /// (0, 1) value of the covariance matrix.
+ double xy;
+ /// (1, 1) value of the covariance matrix.
+ double yy;
+ };
+
+ /*!
+ * @struct Carlike
+ * @brief Control specification for a car-like robot.
+ */
+ struct Carlike
+ {
+ /// Speed in metres per second.
+ double speed;
+ /// Steering angle in radians.
+ double steeringAngle;
+ };
+
+ /*!
+ * @struct SpeedHeading2D
+ * @brief Control specification for a robot capable of moving in a given direction in 2D space.
+ */
+ struct SpeedHeading2D
+ {
+ /// Speed in metres per second.
+ double speed;
+ /// Direction of travel in radians from the x axis.
+ double heading;
+ };
+
+ //------------------------------------------------------------
+ // 3D data types
+ //------------------------------------------------------------
+
+ /*!
+ * @struct Point3D
+ * @brief Point in 3D cartesian space.
+ */
+ struct Point3D
+ {
+ /// X coordinate in metres.
+ double x;
+ /// Y coordinate in metres.
+ double y;
+ /// Z coordinate in metres.
+ double z;
+ };
+
+ /*!
+ * @struct Vector3D
+ * @brief Vector in 3D cartesian space.
+ */
+ struct Vector3D
+ {
+ /// X value in metres.
+ double x;
+ /// Y value in metres.
+ double y;
+ /// Z value in metres.
+ double z;
+ };
+
+ /*!
+ * @struct Orientation3D
+ * @brief Orientation in 3D cartesian space.
+ */
+ struct Orientation3D
+ {
+ /// Roll angle in radians.
+ double r;
+ /// Pitch angle in radians.
+ double p;
+ /// Yaw angle in radians.
+ double y;
+ };
+
+ /*!
+ * @struct Pose3D
+ * @brief Pose in 3D cartesian space.
+ */
+ struct Pose3D
+ {
+ /// 3D position.
+ Point3D position;
+ /// 3D orientation.
+ Orientation3D orientation;
+ };
+
+ /*!
+ * @struct Velocity3D
+ * @brief Velocities in 3D cartesian space.
+ */
+ struct Velocity3D
+ {
+ /// Velocity along the x axis in metres per second.
+ double vx;
+ /// Velocity along the y axis in metres per second.
+ double vy;
+ /// Velocity along the z axis in metres per second.
+ double vz;
+ /// Roll velocity in radians per second.
+ double vr;
+ /// Pitch velocity in radians per second.
+ double vp;
+ /// Yaw velocity in radians per second.
+ double va;
+ };
+
+ /*!
+ * @struct AngularVelocity3D
+ * @brief Angular velocities in 3D cartesian space.
+ */
+ struct AngularVelocity3D
+ {
+ /// Velocity around the x axis, in radians per second.
+ double avx;
+ /// Velocity around the y axis, in radians per second.
+ double avy;
+ /// Velocity around the z axis, in radians per second.
+ double avz;
+ };
+
+ /*!
+ * @struct Acceleration3D
+ * @brief Accelerations in 3D cartesian space.
+ */
+ struct Acceleration3D
+ {
+ /// Acceleration along the x axis, in metres per second per second.
+ double ax;
+ /// Acceleration along the y axis, in metres per second per second.
+ double ay;
+ /// Acceleration along the z axis, in metres per second per second.
+ double az;
+ };
+
+ /*!
+ * @struct AngularAcceleration3D
+ * @brief Angular accelerations in 3D cartesian space.
+ */
+ struct AngularAcceleration3D
+ {
+ /// Acceleration around the x axis, in radians per second per second.
+ double aax;
+ /// Acceleration around the y axis, in radians per second per second.
+ double aay;
+ /// Acceleration around the z axis, in radians per second per second.
+ double aaz;
+ };
+
+ /*!
+ * @struct PoseVel3D
+ * @brief Pose and velocity in 3D cartesian space.
+ */
+ struct PoseVel3D
+ {
+ Pose3D pose;
+ Velocity3D velocities;
+ };
+
+ /*!
+ * @struct Size3D
+ * @brief Size in 3D cartesian space.
+ */
+ struct Size3D
+ {
+ /// Length in metres.
+ double l;
+ /// Width in metres.
+ double w;
+ /// Height in metres.
+ double h;
+ };
+
+ /*!
+ * @struct Geoemtry3D
+ * @brief Geometry information for a device in 3D cartesian space.
+ */
+ struct Geometry3D
+ {
+ /// Pose of the device's base point in its parent device's (e.g. the robot's)
+ /// coordinate space.
+ Pose3D pose;
+ /// Size of the device, taken with the origin at its base point.
+ Size3D size;
+ };
+
+ /*!
+ * @struct Covariance3D
+ * @brief Covariance matrix for a 3D pose.
+ */
+ struct Covariance3D
+ {
+ /// (0, 0) value of the covariance matrix.
+ double xx;
+ /// (0, 1) value of the covariance matrix.
+ double xy;
+ /// (0, 2) value of the covariance matrix.
+ double xz;
+ /// (0, 3) value of the covariance matrix.
+ double xr;
+ /// (0, 4) value of the covariance matrix.
+ double xp;
+ /// (0, 5) value of the covariance matrix.
+ double xa;
+ /// (1, 1) value of the covariance matrix.
+ double yy;
+ /// (1, 2) value of the covariance matrix.
+ double yz;
+ /// (1, 3) value of the covariance matrix.
+ double yr;
+ /// (1, 4) value of the covariance matrix.
+ double yp;
+ /// (1, 5) value of the covariance matrix.
+ double ya;
+ /// (2, 2) value of the covariance matrix.
+ double zz;
+ /// (2, 3) value of the covariance matrix.
+ double zr;
+ /// (2, 4) value of the covariance matrix.
+ double zp;
+ /// (2, 5) value of the covariance matrix.
+ double za;
+ /// (3, 3) value of the covariance matrix.
+ double rr;
+ /// (3, 4) value of the covariance matrix.
+ double rp;
+ /// (3, 5) value of the covariance matrix.
+ double ra;
+ /// (4, 4) value of the covariance matrix.
+ double pp;
+ /// (4, 5) value of the covariance matrix.
+ double pa;
+ /// (5, 5) value of the covariance matrix.
+ double aa;
+ };
+
+ /*!
+ * @struct SpeedHeading3D
+ * @brief Control specification for a robot capable of moving in a given direction in 3D space.
+ */
+ struct SpeedHeading3D
+ {
+ /// Speed in metres per second.
+ double speed;
+ /// Direction of travel.
+ Orientation3D direction;
+ };
+
+ /*!
+ * @struct OAP
+ * @brief Orientation, approach and position vectors.
+ */
+ struct OAP
+ {
+ Vector3D orientation;
+ Vector3D approach;
+ Vector3D position;
+ };
+
+ //------------------------------------------------------------
+ // Timed data types
+ //------------------------------------------------------------
+
+ /*!
+ * @struct TimedRGBColour
+ * @brief Time-stamped version of RGBColour.
+ */
+ struct TimedRGBColour
+ {
+ Time tm;
+ RGBColour data;
+ };
+
+ /*!
+ * @struct TimedPoint2D
+ * @brief Time-stamped version of Point2D.
+ */
+ struct TimedPoint2D
+ {
+ Time tm;
+ Point2D data;
+ };
+
+ /*!
+ * @struct TimedVector2D
+ * @brief Time-stamped version of Vector2D.
+ */
+ struct TimedVector2D
+ {
+ Time tm;
+ Vector2D data;
+ };
+
+ /*!
+ * @struct TimedPose2D
+ * @brief Time-stamped version of Pose2D.
+ */
+ struct TimedPose2D
+ {
+ Time tm;
+ Pose2D data;
+ };
+
+ /*!
+ * @struct TimedVelocity2D
+ * @brief Time-stamped version of Velocity2D.
+ */
+ struct TimedVelocity2D
+ {
+ Time tm;
+ Velocity2D data;
+ };
+
+ /*!
+ * @struct TimedAcceleration2D
+ * @brief Time-stamped version of Acceleration2D.
+ */
+ struct TimedAcceleration2D
+ {
+ Time tm;
+ Acceleration2D data;
+ };
+
+ /*!
+ * @struct TimedPoseVel2D
+ * @brief Time-stamped version of PoseVel2D.
+ */
+ struct TimedPoseVel2D
+ {
+ Time tm;
+ PoseVel2D data;
+ };
+
+ /*!
+ * @struct TimedSize2D
+ * @brief Time-stamped version of Size2D.
+ */
+ struct TimedSize2D
+ {
+ Time tm;
+ Size2D data;
+ };
+
+ /*!
+ * @struct TimedGeometry2D
+ * @brief Time-stamped version of Geometry2D.
+ */
+ struct TimedGeometry2D
+ {
+ Time tm;
+ Geometry2D data;
+ };
+
+ /*!
+ * @struct TimedCovariance2D
+ * @brief Time-stamped version of Covariance2D.
+ */
+ struct TimedCovariance2D
+ {
+ Time tm;
+ Covariance2D data;
+ };
+
+ /*!
+ * @struct TimedPointCovariance2D
+ * @brief Time-stamped version of PointCovariance2D.
+ */
+ struct TimedPointCovariance2D
+ {
+ Time tm;
+ PointCovariance2D data;
+ };
+
+ /*!
+ * @struct TimedCarlike
+ * @brief Time-stamped version of Carlike.
+ */
+ struct TimedCarlike
+ {
+ Time tm;
+ Carlike data;
+ };
+
+ /*!
+ * @struct TimedSpeedHeading2D
+ * @brief Time-stamped version of SpeedHeading2D.
+ */
+ struct TimedSpeedHeading2D
+ {
+ Time tm;
+ SpeedHeading2D data;
+ };
+
+ /*!
+ * @struct TimedPoint3D
+ * @brief Time-stamped version of Point3D.
+ */
+ struct TimedPoint3D
+ {
+ Time tm;
+ Point3D data;
+ };
+
+ /*!
+ * @struct TimedVector3D
+ * @brief Time-stamped version of Vector3D.
+ */
+ struct TimedVector3D
+ {
+ Time tm;
+ Vector3D data;
+ };
+
+ /*!
+ * @struct TimedOrientation3D
+ * @brief Time-stamped version of Orientation3D.
+ */
+ struct TimedOrientation3D
+ {
+ Time tm;
+ Orientation3D data;
+ };
+
+ /*!
+ * @struct TimedPose3D
+ * @brief Time-stamped version of Pose3D.
+ */
+ struct TimedPose3D
+ {
+ Time tm;
+ Pose3D data;
+ };
+
+ /*!
+ * @struct TimedVelocity3D
+ * @brief Time-stamped version of Velocity3D.
+ */
+ struct TimedVelocity3D
+ {
+ Time tm;
+ Velocity3D data;
+ };
+
+ /*!
+ * @struct TimedAngularVelocity3D
+ * @brief Time-stamped version of AngularVelocity3D.
+ */
+ struct TimedAngularVelocity3D
+ {
+ Time tm;
+ AngularVelocity3D data;
+ };
+
+ /*!
+ * @struct TimedAcceleration3D
+ * @brief Time-stamped version of Acceleration3D.
+ */
+ struct TimedAcceleration3D
+ {
+ Time tm;
+ Acceleration3D data;
+ };
+
+ /*!
+ * @struct TimedAngularAcceleration3D
+ * @brief Time-stamped version of AngularAcceleration3D.
+ */
+ struct TimedAngularAcceleration3D
+ {
+ Time tm;
+ AngularAcceleration3D data;
+ };
+
+ /*!
+ * @struct TimedPoseVel3D
+ * @brief Time-stamped version of PoseVel3D.
+ */
+ struct TimedPoseVel3D
+ {
+ Time tm;
+ PoseVel3D data;
+ };
+
+ /*!
+ * @struct TimedSize3D
+ * @brief Time-stamped version of Size3D.
+ */
+ struct TimedSize3D
+ {
+ Time tm;
+ Size3D data;
+ };
+
+ /*!
+ * @struct TimedGeometry3D
+ * @brief Time-stamped version of Geometry3D.
+ */
+ struct TimedGeometry3D
+ {
+ Time tm;
+ Geometry3D data;
+ };
+
+ /*!
+ * @struct TimedCovariance3D
+ * @brief Time-stamped version of Covariance3D.
+ */
+ struct TimedCovariance3D
+ {
+ Time tm;
+ Covariance3D data;
+ };
+
+ /*!
+ * @struct TimedSpeedHeading3D
+ * @brief Time-stamped version of SpeedHeading3D.
+ */
+ struct TimedSpeedHeading3D
+ {
+ Time tm;
+ SpeedHeading3D data;
+ };
+
+ /*!
+ * @struct TimedOAP
+ * @brief Time-stamped version of OAP.
+ */
+ struct TimedOAP
+ {
+ Time tm;
+ OAP data;
+ };
+};
+
+#endif // ExtendedDataTypes_idl
Added: branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/idl/InterfaceDataTypes.idl
===================================================================
--- branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/idl/InterfaceDataTypes.idl (rev 0)
+++ branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/idl/InterfaceDataTypes.idl 2014-03-18 02:46:05 UTC (rev 133)
@@ -0,0 +1,923 @@
+// -*- IDL -*-
+/*!
+ * @file InterfaceDataTypes.idl
+ * @brief Interface-specific data types for robot device interfaces.
+ * @date $Date: $
+ * @author Geoffrey Biggs <geoffrey.biggs at aist.go.jp>
+ *
+ * Copyright (C) 2009
+ * RT Synthesis Research Group
+ * Intelligent Systems Research Institute,
+ * National Institute of
+ * Advanced Industrial Science and Technology (AIST), Japan
+ * All rights reserved.
+ *
+ */
+
+#ifndef InterfaceDataTypes_idl
+#define InterfaceDataTypes_idl
+
+#include "BasicDataType.idl"
+#include "ExtendedDataTypes.idl"
+
+module RTC {
+ //------------------------------------------------------------
+ // ActArray
+ //------------------------------------------------------------
+
+ /*!
+ * @struct ActArrayActuatorPos
+ * @brief Stores the position of a single actuator.
+ */
+ struct ActArrayActuatorPos
+ {
+ /// Time stamp.
+ Time tm;
+ /// Zero-based index of the actuator.
+ unsigned short index;
+ /// Position of the actuator in metres or radians.
+ double position;
+ };
+
+ /*!
+ * @struct ActArrayActuatorSpeed
+ * @brief Stores the speed of a single actuator.
+ */
+ struct ActArrayActuatorSpeed
+ {
+ /// Time stamp.
+ Time tm;
+ /// Zero-based index of the actuator.
+ unsigned short index;
+ /// Speed of the actuator in metres per second or radians per second.
+ double speed;
+ };
+
+ /*!
+ * @struct ActArrayActuatorCurrent
+ * @brief Stores the current draw of a single actuator.
+ */
+ struct ActArrayActuatorCurrent
+ {
+ /// Time stamp.
+ Time tm;
+ /// Zero-based index of the actuator.
+ unsigned short index;
+ /// Current of the actuator in amps.
+ double current;
+ };
+
+ /*!
+ * @enum ActArrayActuatorStatus
+ * @brief Describes the status of an actuator.
+ */
+ enum ActArrayActuatorStatus {ACTUATOR_STATUS_IDLE,
+ ACTUATOR_STATUS_MOVING,
+ ACTUATOR_STATUS_BRAKED,
+ ACTUATOR_STATUS_STALLED};
+
+ /*!
+ * @struct Actuator
+ * @brief State information of a single actuator.
+ */
+ struct Actuator
+ {
+ /// Current position of the actuator, in metres (for linear actuators) or radians (for
+ /// rotary actuators).
+ double position;
+ /// Current speed of the actuator, in metres per second or radians per second.
+ double speed;
+ /// Current acceleration of the actuator, in metres per second or radians per second.
+ double accel;
+ /// Current draw of the actuator, in amps.
+ double current;
+ /// Status of the actuator.
+ ActArrayActuatorStatus status;
+ };
+
+ /*!
+ * @typedef ActuatorList
+ * @brief List of Actuator elements.
+ */
+ typedef sequence<Actuator> ActuatorList;
+ /*!
+ * @struct ActArrayState
+ * @brief State of all actuators in an array.
+ */
+ struct ActArrayState
+ {
+ /// Time stamp.
+ Time tm;
+ /// Sequence of actuator states, one for each actuator.
+ ActuatorList actuators;
+ };
+
+ /*!
+ * @enum ActArrayActuatorType
+ * @brief Describes the type of an actuator.
+ */
+ enum ActArrayActuatorType {ACTARRAY_ACTUATORTYPE_LINEAR,
+ ACTARRAY_ACTUATORTYPE_ROTARY};
+
+ /*!
+ * @struct ActArrayActuatorGeometry
+ * @brief Describes the geometry of an individual actuator.
+ */
+ struct ActArrayActuatorGeometry
+ {
+ /// Type of the actuator.
+ ActArrayActuatorType type;
+ /// Lenght of the actuator's link to the next actuator. For linear actuators, this is the
+ /// length when at 0 position.
+ double length;
+ /// Orientation of the actuator when it is in its rest position. When combined with the
+ /// length of the actuator's link, this will give the position in space of the next actuator
+ /// in the array in the coordinate space of this actuator (i.e. it is the direction to the
+ /// next actuator).
+ Orientation3D orientation;
+ /// The axis of rotation for this actuator if it is rotary, or axis along which it moves if it is linear.
+ Vector3D axis;
+ /// Minimum range of motion of the actuator, in metres or radians.
+ double minRange;
+ /// Centre point of the actuator's range of motion, in metres or radians.
+ double centre;
+ /// Maximum range of motion of the actuator, in metres or radians.
+ double maxRange;
+ /// Home position of the actuator, in metres or radians.
+ double homePosition;
+ /// True if the actuator has brakes.
+ boolean hasBrakes;
+ };
+
+ /*!
+ * @typedef ActArrayActuatorGeometryList
+ * @brief List of ActArrayActuatorGeometry elements.
+ */
+ typedef sequence<ActArrayActuatorGeometry> ActArrayActuatorGeometryList;
+
+ /*!
+ * @struct ActArrayGeometry
+ * @brief Geometry of an actuator array.
+ */
+ struct ActArrayGeometry
+ {
+ /// Geometry of the overall array.
+ Geometry3D arrayGeometry;
+ /// Geometry of the individual actuators.
+ ActArrayActuatorGeometryList actuatorGeometry;
+ };
+
+ //------------------------------------------------------------
+ // Bumper
+ //------------------------------------------------------------
+
+ /*!
+ * @struct BumperGeometry
+ * @brief Geometry of a single bumper.
+ */
+ struct BumperGeometry
+ {
+ /// Pose of the bumper's base point in the array's coordinate space.
+ Pose3D pose;
+ /// Size of the bumper.
+ Size3D size;
+ /// Radius of curvature of the bump sensor in metres. Zero if the bumper is a straight line.
+ double roc;
+ };
+
+ /*!
+ * @typedef BumperGeometryList
+ */
+ typedef sequence<BumperGeometry> BumperGeometryList;
+
+ /*!
+ * @struct BumperArrayGeometry
+ * @brief Geometry of an array of bump sensors.
+ */
+ struct BumperArrayGeometry
+ {
+ /// Geometry of the entire array.
+ Geometry3D arrayGeometry;
+ /// Geometry of each individual bumper.
+ BumperGeometryList bumperGeometry;
+ };
+
+ //------------------------------------------------------------
+ // Camera
+ //------------------------------------------------------------
+
+ /*!
+ * @struct CameraImage
+ * @brief Stores an image from a camera or camera-like device.
+ */
+ struct CameraImage
+ {
+ /// Time stamp.
+ Time tm;
+ /// Image pixel width.
+ unsigned short width;
+ /// Image pixel height.
+ unsigned short height;
+ /// Bits per pixel.
+ unsigned short bpp;
+ /// Image format (e.g. bitmap, jpeg, etc.).
+ string format;
+ /// Scale factor for images, such as disparity maps, where the integer pixel value should be divided by this factor to get the real pixel value.
+ double fDiv;
+ /// Raw pixel data.
+ sequence<octet> pixels;
+ };
+
+ /*!
+ * @struct CameraInfo
+ * @brief Information about an image-producing device.
+ */
+ struct CameraInfo
+ {
+ /// Focal length (x, y) in metres.
+ Vector2D focalLength;
+ /// Principal point of the camera.
+ Point2D principalPoint;
+ /// Radial distortion coefficient 1.
+ double k1;
+ /// Radial distortion coefficient 2.
+ double k2;
+ /// Tangential distortion coefficient 1.
+ double p1;
+ /// Tangential distortion coefficient 2.
+ double p2;
+ };
+
+ //------------------------------------------------------------
+ // Fiducial
+ //------------------------------------------------------------
+
+ /*!
+ * @struct FiducialInfo
+ * @brief Information about a single fiducial.
+ */
+ struct FiducialInfo
+ {
+ /// Identification number.
+ unsigned long id;
+ /// Detected pose.
+ Pose3D pose;
+ /// Uncertainty in the pose.
+ Pose3D poseUncertainty;
+ /// Detected size.
+ Size3D size;
+ /// Uncertainty in the size.
+ Size3D sizeUncertainty;
+ };
+
+ /*!
+ * @typedef FiducialInfoList
+ */
+ typedef sequence<FiducialInfo> FiducialInfoList;
+
+ /*!
+ * @struct Fiducials
+ * @brief Time-stamped list of detected fiducials.
+ */
+ struct Fiducials
+ {
+ /// Time stamp.
+ Time tm;
+ /// List of detected fiducials.
+ FiducialInfoList fiducialsList;
+ };
+
+ /*!
+ * @struct FiducialFOV
+ * @brief Field of view of a fiducial tracker.
+ */
+ struct FiducialFOV
+ {
+ /// Minimum range in metres at which fiducials can be detected.
+ double minRange;
+ /// Maximum range in metres at which fiducials can be detected.
+ double maxRange;
+ /// Receptive angle in radians of the sensor (centred about the forward direction).
+ double viewAngle;
+ };
+
+ //------------------------------------------------------------
+ // GPS
+ //------------------------------------------------------------
+
+ /*!
+ * @struct GPSTime
+ * @brief Time since epoch as reported by a GPS device.
+ */
+ struct GPSTime
+ {
+ /// Seconds value.
+ unsigned long sec;
+ /// Microseconds value.
+ unsigned long msec;
+ };
+
+ /*!
+ * @enum GPSFixType
+ */
+ enum GPSFixType {GPS_FIX_NONE,
+ GPS_FIX_NORMAL,
+ GPS_FIX_DGPS};
+
+ /*!
+ * @struct GPSData
+ * @brief Data as returned by a common GPS device.
+ */
+ struct GPSData
+ {
+ /// Time stamp.
+ Time tm;
+ /// GPS time, according to the device.
+ GPSTime timeFromGPS;
+ /// Latitude in degrees.
+ double latitude;
+ /// Longitude in degrees.
+ double longitude;
+ /// Altitude above the ellisoid in metres.
+ double altitude;
+ /// One standard deviation in the horizontal position error, in metres.
+ double horizontalError;
+ /// One standard deviation in the vertical position error, in metres.
+ double verticalError;
+ /// Estimated heading from true north in radians.
+ double heading;
+ /// Estimated horizontal speed in metres per second.
+ double horizontalSpeed;
+ /// Estimated vertical speed in metres per second.
+ double verticalSpeed;
+ /// Number of satellites in view.
+ unsigned short numSatellites;
+ /// The type of position fix this is.
+ GPSFixType fixType;
+ };
+
+ //------------------------------------------------------------
+ // Gripper
+ //------------------------------------------------------------
+
+ /*!
+ * @enum GripperStatus
+ * @brief Describes the status of a gripper.
+ */
+ enum GripperStatus {GRIPPER_STATE_OPEN,
+ GRIPPER_STATE_CLOSED,
+ GRIPPER_STATE_MOVING,
+ GRIPPER_STATE_UNKNOWN};
+
+ /*!
+ * @struct GripperState
+ * @brief State of a gripper.
+ */
+ struct GripperState
+ {
+ /// Time stamp.
+ Time tm;
+ /// Status of the gripper.
+ GripperStatus status;
+ };
+
+ /*!
+ * @struct GripperGeometry
+ * @brief Geometry of a gripper, including both the outside and inside sizes.
+ */
+ struct GripperGeometry
+ {
+ /// Geometry of the exterior of the gripper when open, in parent coordinate space.
+ Geometry3D exterior;
+ /// Geometry of the interior of the gripper when open, in gripper coordinate space.
+ Geometry3D interior;
+ };
+
+ //------------------------------------------------------------
+ // INS
+ //------------------------------------------------------------
+
+ /*!
+ * @struct INSData
+ * @brief Data returned by an inertial navigation system.
+ */
+ struct INSData
+ {
+ /// Time stamp.
+ Time tm;
+ /// Latitude in degrees.
+ double latitude;
+ /// Longitude in degrees.
+ double longitude;
+ /// Altitude in metres.
+ double altitude;
+ /// Height above mean sea level in metres.
+ double heightAMSL;
+ /// Velocity east/north/up.
+ Velocity3D velocityENU;
+ /// Orientation, where east is 0.
+ Orientation3D orientation;
+ };
+
+ //------------------------------------------------------------
+ // Limb
+ //------------------------------------------------------------
+
+ /*!
+ * @enum LimbStatus
+ */
+ enum LimbStatus {LIMB_STATUS_IDLE,
+ LIMB_STATUS_BRAKED,
+ LIMB_STATUS_MOVING,
+ LIMB_STATUS_OOR,
+ LIMB_STATUS_COLLISION};
+
+ /*!
+ * @struct LimbState
+ * @brief Time-stamped state of a limb.
+ */
+ struct LimbState
+ {
+ /// Time stamp.
+ Time tm;
+ /// Orientation, approach and position of the end-effector.
+ OAP oapMatrix;
+ /// Current status of the limb.
+ LimbStatus status;
+ };
+
+ //------------------------------------------------------------
+ // Localise
+ //------------------------------------------------------------
+
+ /*!
+ * @struct Hypothesis2D
+ * @brief A pose hypothesis in 2D space.
+ */
+ struct Hypothesis2D
+ {
+ /// Mean of the localisation hypothesis.
+ Pose2D mean;
+ /// Covariance matrix of the mean pose.
+ Covariance2D covariance;
+ /// Weight of this hypothesis for mixing.
+ double weight;
+ };
+
+ /*!
+ * @typedef Hypothesis2DList
+ */
+ typedef sequence<Hypothesis2D> Hypothesis2DList;
+
+ /*!
+ * @struct Hypotheses2D
+ * @brief Time-stamped list of localisation hypotheses in 2D space.
+ */
+ struct Hypotheses2D
+ {
+ /// Time stamp.
+ Time tm;
+ /// List of hypotheses.
+ Hypothesis2DList hypotheses;
+ };
+
+ /*!
+ * @struct Hypothesis3D
+ * @brief A pose hypothesis in 3D space.
+ */
+ struct Hypothesis3D
+ {
+ /// Mean of the localisation hypothesis.
+ Pose3D mean;
+ /// Covariance matrix of the mean pose.
+ Covariance3D covariance;
+ /// Weight of this hypothesis for mixing.
+ double weight;
+ };
+
+ /*!
+ * @typedef Hypothesis3DList
+ */
+ typedef sequence<Hypothesis3D> Hypothesis3DList;
+
+ /*!
+ * @struct Hypotheses3D
+ * @brief Time-stamped list of localisation hypotheses in 3D space.
+ */
+ struct Hypotheses3D
+ {
+ /// Time stamp.
+ Time tm;
+ /// List of hypotheses.
+ Hypothesis3DList hypotheses;
+ };
+
+ //------------------------------------------------------------
+ // Map
+ //------------------------------------------------------------
+
+ /*!
+ * @struct OGMapConfig
+ * @brief Configuration of a occupancy-grip map.
+ */
+ struct OGMapConfig
+ {
+ /// Scale on the x axis (metres per cell).
+ double xScale;
+ /// Scale on the y axis (metres per cell).
+ double yScale;
+ /// Number of cells along the x axis.
+ unsigned long width;
+ /// Number of cells along the y axis.
+ unsigned long height;
+ /// Pose of the cell at (0, 0) in the real world.
+ Pose2D origin;
+ };
+
+ /*!
+ * @typedef OGMapCells
+ */
+ typedef sequence<octet> OGMapCells;
+
+ /*!
+ * @struct OGMapTile
+ * @brief A tile from an occupancy-grid map.
+ */
+ struct OGMapTile
+ {
+ /// X coordinate of the (0, 0) cell of this tile in the whole map.
+ unsigned long column;
+ /// Y coordinate of the (0, 0) cell of this tile in the whole map.
+ unsigned long row;
+ /// Number of cells along the x axis in this tile;
+ unsigned long width;
+ /// Number of cells along the y axis in this tile;
+ unsigned long height;
+ /// Tile cells in (row, column) order.
+ OGMapCells cells;
+ };
+
+ /*!
+ * @struct PointFeature
+ * @brief A size-less point feature.
+ */
+ struct PointFeature
+ {
+ /// Probability of the feature.
+ double probability;
+ /// Position of the feature.
+ Point2D position;
+ /// Covariance matrix of the position.
+ PointCovariance2D covariance;
+ };
+ /*!
+ * @typedef PointFeatureList
+ */
+ typedef sequence<PointFeature> PointFeatureList;
+
+ /*!
+ * @struct PoseFeature
+ * @brief A size-less point feature with orientation.
+ */
+ struct PoseFeature
+ {
+ /// Probability of the feature.
+ double probability;
+ /// Pose of the feature.
+ Pose2D position;
+ /// Covariance matrix of the pose.
+ Covariance2D covariance;
+ };
+ /*!
+ * @typedef PoseFeatureList
+ */
+ typedef sequence<PoseFeature> PoseFeatureList;
+
+ /*!
+ * @struct LineFeature
+ * @brief A line feature.
+ */
+ struct LineFeature
+ {
+ /// Probability of the feature.
+ double probability;
+ /// Length of the line vector in metres.
+ double rho;
+ /// Angle of the line vector from the x axis in radians.
+ double alpha;
+ /// Covariance matrix of rho and alpha.
+ PointCovariance2D covariance;
+ /// Start point of the line segment.
+ Point2D start;
+ /// End point of the line segment.
+ Point2D end;
+ /// True if the start point of the line has been sighted (i.e. it is inside seen space).
+ boolean startSighted;
+ /// True if the end point of the line has been sighted (i.e. it is inside seen space).
+ boolean endSighted;
+ };
+ /*!
+ * @typedef LineFeatureList
+ */
+ typedef sequence<LineFeature> LineFeatureList;
+
+ /*!
+ * @struct Features
+ * Set of features in a map.
+ */
+ struct Features
+ {
+ /// Time stamp.
+ Time tm;
+ /// Point features.
+ PointFeatureList pointFeatures;
+ /// Pose features.
+ PoseFeatureList poseFeatures;
+ /// Line features.
+ LineFeatureList lineFeatures;
+ };
+
+ //------------------------------------------------------------
+ // Multicamera
+ //------------------------------------------------------------
+
+ /*!
+ * @typedef MulticameraImageList
+ */
+ typedef sequence<CameraImage> MulticameraImageList;
+ /*!
+ * @struct MulticameraImages
+ * @brief Images from a set of cameras.
+ */
+ struct MultiCameraImages
+ {
+ /// Time stamp.
+ Time tm;
+ /// Image list.
+ MulticameraImageList images;
+ };
+
+ /*!
+ * @typedef MulticameraInfoList
+ */
+ typedef sequence<CameraInfo> MulticameraInfoList;
+
+ /*!
+ * @typedef MulticameraGeometryList
+ */
+ typedef sequence<Geometry3D> MulticameraGeometryList;
+
+ /*!
+ * @struct MulticameraGeometry
+ * @brief Geometry of a multi-camera system, such as a stereo camera.
+ */
+ struct MulticameraGeometry
+ {
+ /// Overall geometry of the camera system.
+ Geometry3D geometry;
+ /// Geometry of each camera.
+ MulticameraGeometryList cameraGeometries;
+ };
+
+ //------------------------------------------------------------
+ // Paths
+ //------------------------------------------------------------
+
+ /*!
+ * @struct Waypoint2D
+ * @brief A waypoint in 2D space, including constraints.
+ */
+ struct Waypoint2D
+ {
+ /// Location of the waypoint.
+ Pose2D target;
+ /// How far away from the waypoint is considered success (radius in metres).
+ double distanceTolerance;
+ /// How much off the target heading is considered success (in radians).
+ double headingTolerance;
+ /// Target time to arrive at the waypoint by.
+ Time timeLimit;
+ /// Maximum sped to travel at while heading to the waypoint.
+ Velocity2D maxSpeed;
+ };
+
+ /*!
+ * @typedef Waypoint2DList
+ */
+ typedef sequence<Waypoint2D> Waypoint2DList;
+
+ /*!
+ * @struct Path2D
+ * @brief A time-stamped path in 2D space.
+ */
+ struct Path2D
+ {
+ /// Time stamp.
+ Time tm;
+ /// The sequence of waypoints that make up the path.
+ Waypoint2DList waypoints;
+ };
+
+ /*!
+ * @struct Waypoint3D
+ * @brief A waypoint in 3D space, including constraints.
+ */
+ struct Waypoint3D
+ {
+ /// Location of the waypoint.
+ Pose3D target;
+ /// How far away from the waypoint is considered success (radius in metres).
+ double distanceTolerance;
+ /// How much off the target heading is considered success (in radians).
+ double headingTolerance;
+ /// Target time to arrive at the waypoint by.
+ Time timeLimit;
+ /// Maximum sped to travel at while heading to the waypoint.
+ Velocity3D maxSpeed;
+ };
+
+ /*!
+ * @typedef Waypoint3DList
+ */
+ typedef sequence<Waypoint3D> Waypoint3DList;
+
+ /*!
+ * @struct Path3D
+ * @brief A time-stamped path in 3D space.
+ */
+ struct Path3D
+ {
+ /// Time stamp.
+ Time tm;
+ /// The sequence of waypoints that make up the path.
+ Waypoint3DList waypoints;
+ };
+
+ //------------------------------------------------------------
+ // PointCloud
+ //------------------------------------------------------------
+
+ /*!
+ * @struct PointCloudPoint
+ * @brief A point in a point cloud.
+ */
+ struct PointCloudPoint
+ {
+ /// The position of the point.
+ Point3D point;
+ /// The colour of the point, if any.
+ RGBColour colour;
+ };
+
+ /*!
+ * @typedef PointCloudPointList
+ */
+ typedef sequence<PointCloudPoint> PointCloudPointList;
+
+ /*!
+ * @struct PointCloud
+ * @brief A cloud of points in 3D space.
+ */
+ struct PointCloud
+ {
+ /// Time stamp.
+ Time tm;
+ /// The points in the cloud.
+ PointCloudPointList points;
+ };
+
+ //------------------------------------------------------------
+ // PanTilt
+ //------------------------------------------------------------
+
+ /*!
+ * @struct PanTiltAngles
+ * @brief Pan and tilt values of a pan-tilt unit.
+ */
+ struct PanTiltAngles
+ {
+ /// Time stamp.
+ Time tm;
+ /// Pan value in radians.
+ double pan;
+ /// Tilt value in radians.
+ double tilt;
+ };
+
+ /*!
+ * @struct PanTiltState
+ * @brief Status of a pan-tilt unit.
+ */
+ struct PanTiltState
+ {
+ /// Time stamp.
+ Time tm;
+ /// Pan and tilt angles.
+ PanTiltAngles angles;
+ /// Speed at which the pan-tilt unit is changing its pan angle in radians per second.
+ double panSpeed;
+ /// Speed at which the pan-tilt unit is changing its tilt angle in radians per second.
+ double tiltSpeed;
+ };
+
+ //------------------------------------------------------------
+ // Ranger
+ //------------------------------------------------------------
+
+ /*!
+ * @typedef ElementGeometryList
+ */
+ typedef sequence<Geometry3D> ElementGeometryList;
+
+ /*!
+ * @struct RangerGeometry
+ * @brief Geometry of a ranger device. A range sensor may be a single device returning multiple
+ * ranges (such as a laser scanner), or an array of sensing elements each returning a single
+ * range value (such as an array of sonar sensors). If there is only one sensing element in the
+ * device, the device should be considered a laser scanner type. If there are multiple
+ * elements, the device should be considered an array of single-range-value sensors.
+ */
+ struct RangerGeometry
+ {
+ /// Overall geometry of the ranger device, such as the centroid of an array of sonar sensors.
+ Geometry3D geometry;
+ /// Geometry of each individual sensing element. The range values should be considered
+ /// measured from each of these.
+ ElementGeometryList elementGeometries;
+ };
+
+ /*!
+ * @struct RangerConfig
+ * @brief The configuration of a ranger device.
+ */
+ struct RangerConfig
+ {
+ /// Minimum scannable angle in radians.
+ double minAngle;
+ /// Maximum scannable angle in radians.
+ double maxAngle;
+ /// Angular resolution in radians.
+ double angularRes;
+ /// Minimum scannable range in metres.
+ double minRange;
+ /// Maximum scannable range in metres.
+ double maxRange;
+ /// Range resolution in metres.
+ double rangeRes;
+ /// Scanning frequency in Hertz.
+ double frequency;
+ };
+
+ /*!
+ * @typedef RangeList
+ */
+ typedef sequence<double> RangeList;
+
+ /*!
+ * @struct RangeData
+ * @brief Range readings from a range sensor.
+ */
+ struct RangeData
+ {
+ /// Time stamp.
+ Time tm;
+ /// Range values in metres.
+ RangeList ranges;
+ /// Geometry of the ranger at the time the scan data was measured.
+ RangerGeometry geometry;
+ /// Configuration of the ranger at the time the scan data was measured.
+ RangerConfig config;
+ };
+
+ /*!
+ * @typedef IntensityList
+ */
+ typedef sequence<double> IntensityList;
+
+ /*!
+ * @struct IntensityData
+ * @brief Intensity readings from a range sensor.
+ */
+ struct IntensityData
+ {
+ /// Time stamp.
+ Time tm;
+ /// Intensity values normalised to between 0 and 1.
+ IntensityList intensities;
+ /// Geometry of the ranger at the time the scan data was measured.
+ RangerGeometry geometry;
+ /// Configuration of the ranger at the time the scan data was measured.
+ RangerConfig config;
+ };
+
+ //------------------------------------------------------------
+ // RFID
+ //------------------------------------------------------------
+
+ /*!
+ * @typedef RFIDTagData
+ */
+ typedef sequence<octet> RFIDTagData;
+};
+
+#endif // InterfaceDataTypes_idl
Added: branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/idlcompile.bat
===================================================================
--- branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/idlcompile.bat (rev 0)
+++ branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/idlcompile.bat 2014-03-18 02:46:05 UTC (rev 133)
@@ -0,0 +1,10 @@
+echo off
+setlocal
+for %%I in (python.exe) do if exist %%~$path:I set f=%%~$path:I
+if exist %f% do (
+ %f:python.exe=%omniidl.exe -bpython -I"%RTM_ROOT%rtm\idl" -I"/usr/include/openrtm-1.1/rtm/idl" idl/CalibrationService.idl
+) else do (
+ echo "python.exe" can not be found.
+ echo Please modify PATH environmental variable for python command.
+)
+endlocal
Added: branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/idlcompile.sh
===================================================================
--- branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/idlcompile.sh (rev 0)
+++ branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/idlcompile.sh 2014-03-18 02:46:05 UTC (rev 133)
@@ -0,0 +1,2 @@
+#!/bin/sh
+omniidl -bpython -I"%RTM_ROOT%rtm\idl" -I"/usr/include/openrtm-1.1/rtm/idl" idl/CalibrationService.idl
Added: branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/include/CMakeLists.txt
===================================================================
--- branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/include/CMakeLists.txt (rev 0)
+++ branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/include/CMakeLists.txt 2014-03-18 02:46:05 UTC (rev 133)
@@ -0,0 +1,4 @@
+add_subdirectory(TkCalibGUI)
+
+MAP_ADD_STR(hdrs "${PROJECT_NAME}/" headers)
+set(headers ${headers} PARENT_SCOPE)
Added: branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/include/TkCalibGUI/CMakeLists.txt
===================================================================
--- branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/include/TkCalibGUI/CMakeLists.txt (rev 0)
+++ branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/include/TkCalibGUI/CMakeLists.txt 2014-03-18 02:46:05 UTC (rev 133)
@@ -0,0 +1,7 @@
+set(hdrs TkCalibGUI.h
+ PARENT_SCOPE
+ )
+
+install(FILES ${hdrs} DESTINATION ${INC_INSTALL_DIR}/${PROJECT_NAME_LOWER}
+ COMPONENT library)
+
Added: branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/rtc.conf
===================================================================
--- branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/rtc.conf (rev 0)
+++ branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/rtc.conf 2014-03-18 02:46:05 UTC (rev 133)
@@ -0,0 +1,437 @@
+#------------------------------------------------------------
+# RT-Component manager configuration
+#
+# See details in the following reference manual or web page.
+# http://www.openrtm.org/openrtm/en/content/configuration
+# http://www.openrtm.org/openrtm/ja/content/rtcconf%E8%A8%AD%E5%AE%9A%E9%A0%85%E7%9B%AE%E4%B8%80%E8%A6%A7
+# http://www.openrtm.org/openrtm/ko/content/rtcconf-%EC%84%A4%EC%A0%95-%ED%95%AD%EB%AA%A9-%EC%9D%BC%EB%9E%8C
+#
+
+#------------------------------------------------------------
+# Typically used configuration parameters
+#
+# corba.name_servers: localhost, 192.168.0.1
+# corba.endpoints: <interface addess>, <interface addess>
+# logger.enable: YES
+# logger.file_name: ./rtc%p.log
+# logger.log_level: NORMAL
+#
+# The following properties should be specified in component specific
+# configuration files.
+# exec_cxt.periodic.type: PeriodicExecutionContext
+# exec_cxt.periodic.rate: 1000
+
+# Component specific configruation files:
+# If you want to load component specific configuration file, please
+# uncomment the following line.
+#
+# Category.TkCalibGUI.config_file: TkCalibGUI.conf
+# or
+# Category.TkCalibGUI0.config_file: TkCalibGUI0.conf
+# Category.TkCalibGUI1.config_file: TkCalibGUI1.conf
+# Category.TkCalibGUI2.config_file: TkCalibGUI2.conf
+#
+#------------------------------------------------------------
+
+Category.TkCalibGUI.config_file: TkCalibGUI.conf
+
+#
+# Please delete the following part if you are familiar with OpenRTM's
+# configuration parameters.
+#
+##----------------------------------------------------------------------
+##
+## RT-Component manager configurations
+##
+##----------------------------------------------------------------------
+
+##------------------------------------------------------------
+## Configuration version (optional)
+##
+# config.version: 1.0
+
+##------------------------------------------------------------
+## OpenRTM-aist version (optional)
+##
+# openrtm.version: 1.0.0
+
+##------------------------------------------------------------
+## The name of manager (default = manager)
+##
+# manager.name: manager
+
+##------------------------------------------------------------
+## Master manager
+## - manager.is_master: YES/NO, This process made a master or not.
+## - manager.corba_servant: YES/NO, create manager's corba service or not
+## - corba.master_manager: <host_name>:<port>, master manager's location
+# manager.is_master: YES
+# manager.corba_servant: YES
+# corba.master_manager: localhost:2810
+
+##------------------------------------------------------------
+## Manager auto shutdown options
+## - manager.shutdown_on_nortcs: YES/NO,
+## process will be shutdown in case no rtc exists when rtc is deleted.
+## - manager.shutdown_auto:
+## process will be shutdown in case no rtc exists on periodic check.
+# manager.shutdown_on_nortcs: YES
+# manager.shutdown_auto: YES
+# manager.auto_shutdown_duration: 10.0
+
+##============================================================
+## CORBA configuration
+##============================================================
+##
+## CORBA ORB's arguments
+##
+## ORB specific command line options given to ORB_init().
+## See your ORB documentation.
+##
+## Example:
+## corba.args: -ORBInitialHost myhost -ORBInitialPort 8888
+##
+##
+# corba.args:
+
+##
+## ORB endpoint
+##
+## If you have two or more network interfaces, ORB endpoint address and/or
+## port have to be specified. If hostname or port number is abbreviated,
+## default interface or port number is used. At least one colon ':'
+## is needed when you specify this option.
+##
+## Examples:
+## corba.endpoint: myhost: (use myhost and default port)
+## corba.endpoint: :9876 (use default addr and port 9876)
+## corba.endpoint: myhost:9876 (use myhost and port 9876)
+##
+# corba.endpoint:
+
+##
+## Multiple endpoint options (experimental)
+##
+## Multiple endpoint addresses and ports can be specified using this option.
+##
+## Example:
+## corba.endpoints: 192.168.1.10:1111, 192.168.10.11:2222
+## corba.endpoints: 192.168.1.10, 192.168.10.11
+## corba.endpoints: all
+##
+# corba.endpoints:
+
+
+##
+## CORBA name server setting
+##
+## Multiple name servers can be specified separating by comma.
+## If port number is abbreviated, default port number is used.
+## The default port number is depend on ORB implementation.
+##
+## Examples:
+## corba.nameservers: openrtm.aist.go.jp:9876
+## corba.nameservers: rtm0.aist.go.jp, rtm1.aist.go.jp, rtm2.aist.go.jp
+##
+# corba.nameservers: localhost
+
+##
+## IOR host address replacement by guessed endpoint from routing (experimental)
+##
+## This option replaces a host address with an endpoint that is guessed
+## by route information to nameserver's address. This option may be
+## effective for CORBA implementation that does not supports IOR's
+## multiple profile or alternate IIOP address. However, since other
+## object references that are obtained from RT-Components or other are
+## not modified by this rule, other RTCs that are connected to this RTC
+## have to also support IOR multiple profile feature. When this option
+## is used, corba.endpoints option should also be specified with
+## multiple endpoints.
+##
+# corba.nameservice.replace_endpoint: NO
+
+##
+## IOR alternate IIOP addresses
+##
+## This option adds alternate IIOP addresses into the IOR Profiles.
+## IOR can include additional endpoints for a servant. It is almost
+## same as "corba.endpoints" option, but this option does not create
+## actual endpoint on the ORB. (corba.endpoints try to create actual
+## endpoint, and if it cannot be created, error will be returned.)
+## This option just add alternate IIOP endpoint address information to
+## an IOR.
+##
+## This option can be used when RTCs are located inside of NAT or
+## router. Generally speaking, RTCs in a private network cannot
+## connect to RTCs in the global network, because global client cannot
+## reach to private servants. However, if route (or NAT) is properly
+## configured for port forwarding, global RTCs can reach to RTCs in
+## private network.
+##
+## A setting example is as follows.
+## 1) Configure your router properly for port-forwarding.
+## ex. global 2810 port is forwarded to private 2810
+## 2) Set the following options in rtc.conf
+## corba.nameservers: my.global.nameserver.com <- name server in global network
+## corba.endpoints: :2810 <- actual port number
+## corba.additional_ior_addresses: w.x.y.z:2810 <- routers global IP addr/port
+## 3) Launch global RTCs and private RTC, and connect them.
+##
+# corba.alternate_iiop_addresses: addr:port
+
+##============================================================
+## Naming configurations
+##============================================================
+##
+## Enable/Disable naming functions
+##
+# naming.enable: YES
+
+##
+## Naming Types
+##
+## Now only "corba" is supported.
+##
+# naming.type: corba
+
+##
+## Naming format
+##
+## The name format of components that is bound to naming services.
+## The delimiter between names is "/".
+## The delimiter between name and kind is ".".
+##
+## example: (OpenRTM-aist-0.2.0 style)
+## %h.host_cxt/%M.mgr_cxt/%c.cat_cxt/%m.mod_cxt/%n.rtc
+## This is formatted according to the following replacement rules.
+##
+## %n: The instance name of the component.
+## %t: The type name of the component.
+## %m: The module name of the component.
+## %v: The version of the component.
+## %V: The component vendor.
+## %c: The category of the component.
+## %h: The hostname.
+## %M: The manager name.
+## %p: PID of the manager.
+##
+# naming.formats: %h.host/%n.rtc
+
+##
+## Auto update to Naming Server
+##
+# naming.update.enable: YES
+##
+## Update interval [s] for auto update
+##
+# naming.update.interval: 10.0
+##
+## Rebind references in auto update
+##
+# naming.update.rebind: NO
+
+## End of Naming configuration section
+##------------------------------------------------------------
+
+##============================================================
+## Module management
+##============================================================
+##
+## Loadable module search path list
+##
+## Manager searches loadable modules from the specified search path list.
+## Path list elements should be separated by comma.
+## Path delimiter is '/' on UNIX, and '\\' on Windows
+## Valid path examples:
+## manager.modules.load_path: C:/Program Files/OpenRTM-aist, \
+## C:\\Program Files\\OpenRTM-aist
+## manager.modules.load_path: /usr/lib, /usr/local/lib, \
+## /usr/local/lib/OpenRTM-aist/libs
+##
+# manager.modules.load_path: ./
+
+##
+## Preload module list
+##
+## Manager can load loadable modules before starting up.
+## Loadable modules, which is specified only as its file name, is searched
+## in each module load path specified in the "manager.modules.load_path".
+## If the "manager.modules.abs_path_allowed" option is YES, loadable file
+## can be specified as full-path name,
+##
+## Valid settings:
+## manager.modules.preload: ConsoleIn.dll, ConsoleOut.dll
+## manager.modules.preload: ConsoleIn.so, ConsoleOut.so
+## manager.modules.abs_path_allowed: YES
+## manager.modules.preload: /usr/lib/OpenRTM-aist/ConsoleIn.so
+##
+# manager.modules.preload:
+
+##
+## Permission flag of absolute module path
+##
+## If this option is "YES", absolute path specification for module is allowed.
+##
+# manager.modules.abs_path_allowed: YES
+
+##
+## The following options are not implemented yet.
+##
+## manager.modules.config_ext:
+## manager.modules.config_path:
+## manager.modules.detect_loadable:
+## manager.modules.init_func_suffix:
+## manager.modules.init_func_prefix:
+## manager.modules.download_allowed:
+## manager.modules.download_dir:
+## manager.modules.download_cleanup:
+##
+
+##
+## Advance component creation
+##
+## This option specifies components' names (module name) creating in advance
+## before starting the manager's event-loop. The components' factories should
+## be registered by manager.module.preload option or statically linked to the
+## manager.
+##
+## Example:
+## manager.components.precreate: ConsoleIn, ConsoleOut, SeqIn, SeqOut
+##
+# manager.components.precreate:
+
+
+##============================================================
+## Logger configurations
+##============================================================
+##
+## Enable/Disable logger [YES/NO]
+# logger.enable: YES
+
+##
+## Log file name (default = ./rtc%p.log)
+##
+## %p: PID
+##
+# logger.file_name: ./rtc%p.log
+
+##
+## Log date format (default = %b %d %H:%M:%S)
+##
+## The following strftime(3) like format expression is available.
+## If no prefix is needed, use "No" or "Disable".
+##
+## %a abbreviated weekday name
+## %A full weekday name
+## %b abbreviated month name
+## %B full month name
+## %c the standard date and time string
+## %d day of the month, as a number (1-31)
+## %H hour, 24 hour format (0-23)
+## %I hour, 12 hour format (1-12)
+## %j day of the year, as a number (1-366)
+## %m month as a number (1-12).
+## Note: some versions of Microsoft Visual C++ may use values that range
+## from 0-11.
+## %M minute as a number (0-59)
+## %p locale's equivalent of AM or PM
+## %Q millisecond as a number (0-999) from ver 1.1
+## %q microsecond as a number (0-999) from ver 1.1
+## %S second as a number (0-59)
+## %U week of the year, sunday as the first day
+## %w weekday as a decimal (0-6, sunday=0)
+## %W week of the year, monday as the first day
+## %x standard date string
+## %X standard time string
+## %y year in decimal, without the century (0-99)
+## %Y year in decimal, with the century
+## %Z time zone name
+## %% a percent sign
+##
+##
+## logger.date_format: No
+## logger.date_format: Disable
+## logger.date_format: [%Y-%m-%dT%H.%M.%S%Z] // W3C standard format
+## logger.date_format: [%b %d %H:%M:%S] // Syslog format
+## logger.date_format: [%a %b %d %Y %H:%M:%S %Z] // RFC2822 format
+## logger.date_format: [%a %b %d %H:%M:%S %Z %Y] // data command format
+## logger.date_format: [%Y-%m-%d %H.%M.%S]
+##
+# logger.date_format: %b %d %H:%M:%S
+
+##
+## Log level (default = NORMAL)
+##
+## The following LogLevels are allowed.
+## SILENT, ERROR, WARN, NORMAL, INFO, DEBUG, TRACE, VERBOSE, PARANOID
+##
+##
+## SILENT : completely silent
+## ERROR : includes (ERROR)
+## WARN : includes (ERROR, WARN)
+## INFO : includes (ERROR, WARN, INFO)
+## NORMAL : includes (ERROR, WARN, INFO, NORMAL)
+## DEBUG : includes (ERROR, WARN, INFO, NORMAL, DEBUG)
+## TRACE : includes (ERROR, WARN, INFO, NORMAL, DEBUG, TRACE)
+## VERBOSE : includes (ERROR, WARN, INFO, NORMAL, DEBUG, TRACE, VERBOSE)
+## PARANOID: includes (ERROR, WARN, INFO, NORMAL, DEBUG, TRACE, VERBOSE, PARA)
+##
+## Warning!!!
+## "TRACE", "VERBOSE", "PARANOID" logging level will create a huge log file!!
+## "PARANOID" log level will tangle the log file.
+##
+# logger.log_level: NORMAL
+
+##============================================================
+## Timer configuration
+##============================================================
+##
+## Enable/disable timer function
+##
+# timer.enable: YES
+
+##
+## Timer clock tick setting [s]
+##
+# timer.tick: 0.1
+
+##============================================================
+## Execution context settings
+##============================================================
+##
+## Periodic type ExecutionContext
+##
+## Other availabilities in OpenRTM-aist
+##
+## - ExtTrigExecutionContext: External triggered EC. It is embedded in
+## OpenRTM library.
+## - OpenHRPExecutionContext: External triggred paralell execution
+## EC. It is embedded in OpenRTM
+## library. This is usually used with
+## OpenHRP3.
+## - RTPreemptEC: Real-time execution context for Linux
+## RT-preemptive pathed kernel.
+## - ArtExecutionContext: Real-time execution context for ARTLinux
+## (http://sourceforge.net/projects/art-linux/)
+##
+# exec_cxt.periodic.type: PeriodicExecutionContext
+
+##
+## The execution cycle of ExecutionContext
+##
+# exec_cxt.periodic.rate: 1000
+
+##============================================================
+## SDO service settings
+##============================================================
+##
+## SDO service provider settings
+##
+# sdo.service.provider.available_services: [read only]
+# sdo.service.provider.enabled_services: ALL
+# sdo.service.provider.providing_services: [read only]
+##
+## SDO service consumer settings
+##
+# sdo.service.consumer.available_services: [read only]
+# sdo.service.consumer.enabled_services: ALL
Added: branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/src/CMakeLists.txt
===================================================================
--- branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/src/CMakeLists.txt (rev 0)
+++ branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/src/CMakeLists.txt 2014-03-18 02:46:05 UTC (rev 133)
@@ -0,0 +1,57 @@
+set(comp_srcs TkCalibGUI.cpp )
+set(standalone_srcs TkCalibGUIComp.cpp)
+
+if (DEFINED OPENRTM_INCLUDE_DIRS)
+ string(REGEX REPLACE "-I" ";"
+ OPENRTM_INCLUDE_DIRS "${OPENRTM_INCLUDE_DIRS}")
+ string(REGEX REPLACE " ;" ";"
+ OPENRTM_INCLUDE_DIRS "${OPENRTM_INCLUDE_DIRS}")
+endif (DEFINED OPENRTM_INCLUDE_DIRS)
+
+if (DEFINED OPENRTM_LIBRARY_DIRS)
+ string(REGEX REPLACE "-L" ";"
+ OPENRTM_LIBRARY_DIRS "${OPENRTM_LIBRARY_DIRS}")
+ string(REGEX REPLACE " ;" ";"
+ OPENRTM_LIBRARY_DIRS "${OPENRTM_LIBRARY_DIRS}")
+endif (DEFINED OPENRTM_LIBRARY_DIRS)
+
+if (DEFINED OPENRTM_LIBRARIES)
+ string(REGEX REPLACE "-l" ";"
+ OPENRTM_LIBRARIES "${OPENRTM_LIBRARIES}")
+ string(REGEX REPLACE " ;" ";"
+ OPENRTM_LIBRARIES "${OPENRTM_LIBRARIES}")
+endif (DEFINED OPENRTM_LIBRARIES)
+
+include_directories(${PROJECT_SOURCE_DIR}/include)
+include_directories(${PROJECT_SOURCE_DIR}/include/${PROJECT_NAME})
+include_directories(${PROJECT_BINARY_DIR})
+include_directories(${PROJECT_BINARY_DIR}/idl)
+include_directories(${OPENRTM_INCLUDE_DIRS})
+include_directories(${OMNIORB_INCLUDE_DIRS})
+add_definitions(${OPENRTM_CFLAGS})
+add_definitions(${OMNIORB_CFLAGS})
+
+MAP_ADD_STR(comp_hdrs "../" comp_headers)
+
+link_directories(${OPENRTM_LIBRARY_DIRS})
+link_directories(${OMNIORB_LIBRARY_DIRS})
+
+add_library(${PROJECT_NAME} ${LIB_TYPE} ${comp_srcs}
+ ${comp_headers} ${ALL_IDL_SRCS})
+set_target_properties(${PROJECT_NAME} PROPERTIES PREFIX "")
+set_source_files_properties(${ALL_IDL_SRCS} PROPERTIES GENERATED 1)
+add_dependencies(${PROJECT_NAME} ALL_IDL_TGT)
+target_link_libraries(${PROJECT_NAME} ${OPENRTM_LIBRARIES})
+
+add_executable(${PROJECT_NAME}Comp ${standalone_srcs}
+ ${comp_srcs} ${comp_headers} ${ALL_IDL_SRCS})
+target_link_libraries(${PROJECT_NAME}Comp ${OPENRTM_LIBRARIES})
+
+install(TARGETS ${PROJECT_NAME} ${PROJECT_NAME}Comp
+ EXPORT ${PROJECT_NAME}
+ RUNTIME DESTINATION ${BIN_INSTALL_DIR} COMPONENT component
+ LIBRARY DESTINATION ${LIB_INSTALL_DIR} COMPONENT component
+ ARCHIVE DESTINATION ${LIB_INSTALL_DIR} COMPONENT component)
+install(EXPORT ${PROJECT_NAME}
+ DESTINATION ${LIB_INSTALL_DIR}/${PROJECT_NAME}
+ FILE ${PROJECT_NAME}Depends.cmake)
Added: branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/tkcalibgui.py
===================================================================
--- branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/tkcalibgui.py (rev 0)
+++ branches/newCMakeForVC2010/ImageProcessing/opencv/components/TkCalibGUI/tkcalibgui.py 2014-03-18 02:46:05 UTC (rev 133)
@@ -0,0 +1,1358 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+# -*- Python -*-
+
+"""
+ @file tkcalibgui.py
+ @brief calibration gui
+ @date $Date$
+
+
+"""
+from Tkinter import *
+import ttk
+from PIL import Image, ImageTk
+import time
+import sys
+import os.path
+from cv2.cv import *
+from io import BytesIO
+from StringIO import StringIO
+from rtshell import rtcat, rtcon
+from threading import Thread
+
+WIN_DEFAULT_CAMERA = {
+ "DirectShowCamComp" : ":m_FIN_OUTPORT",
+ "OpenCVCameraComp" : ":out",
+ "PGRCameraComp" : ":outputImage"
+ }
+LINUX_DEFAULT_CAMERA = {
+ "OpenCVCameraComp" : ":out",
+ "PGRCameraComp" : ":outputImage"
+ }
+GUI_COMP = "TkCalibGUI"
+CALIB_COMP = "ImageCalibration"
+
+class TkCalibGUI(Frame):
+ def __init__(self, width=640, height=480, master=None):
+ Frame.__init__(self, master)
+ self.img_w = width
+ self.img_h = height
+ self.window_w = 1050
+ self.window_h = 550
+ self.frame_w = self.window_w - self.img_w - 50
+ self.prev_time = 0.0
+ self.curr_time = 0.0
+ self.fps = 0.0
+ self.pic_num = 5 # 保存画像枚数
+ self.buttons = [] # 保存・確認・取消ボタン
+ self.save_btn_state = [] # 保存ボタンの状態保存用
+ self.view_flg = True # カメラ画像を表示する
+ self.comp_all_found = False
+
+ self.result_mes = StringVar()
+ self.result_mes.set("")
+
+ # for image processing
+ self.flip_tb = False # Flip the image vertically (top to bottom).
+ self.flip_lr = False # Flip image horizontally (left to right).
+ self.invert = False # Invert (negate) the image.
+ self.print_fps = True
+
+ self.option_add('*font', '* 11')
+ self.option_add('*LabelFrame.font', '* 11')
+ self.option_add('*Button.font', '* 11')
+
+ self.init(master)
+
+ def init(self, master):
+ self.check_lang()
+ self.check_camera_comp()
+ # Top level frame
+ self.master.minsize(self.window_w, self.window_h)
+ self.master.title(self.msg1)
+ self.fr = Frame(master, width=self.frame_w).pack()
+ self.set_top_message()
+ # left pane
+ self.create_left()
+ # right top pane
+ self.create_right()
+ return
+
+ def check_lang(self):
+ import locale
+ loc = locale.setlocale(locale.LC_ALL, "")
+ if "ja_JP" or "Japanese_Japan" in loc:
+ self.msg1 = "カメラキャリブレーション"
+ self.msg2 = "*チェッカーパターンを異なる姿勢で{0}枚撮影(保存ボタン押下)して下さい" .format(self.pic_num)
+ self.msg3 = "保存"
+ self.msg4 = "確認"
+ self.msg5 = "取消し"
+ self.msg6 = "カメラ映像表示"
+ self.msg7 = "結果表示"
+ self.msg8 = "結果保存"
+ self.msg9 = "枚目"
+ self.msg10 = "カメラコンポーネント"
+ self.msg11 = "RTSystemEditorで手動にてコンポーネントを接続して下さい"
+ self.err_msg1 = "保存画像のいずれかが不鮮明で、結果を算出できません"
+ self.err_msg2 = u"コンポーネントが見つかりません"
+ self.err_msg3 = "自動接続できませんでした"
+ else:
+ self.msg1 = "Camera Calibration"
+ self.msg2 = "* Please press the save button in {0} different poses the checkered pattern." .format(self.pic_num)
+ self.msg3 = "Save"
+ self.msg4 = "Check"
+ self.msg5 = "Cancel"
+ self.msg6 = "View Camera Image"
+ self.msg7 = "View Results"
+ self.msg8 = "Save Results"
+ self.msg9 = "piece"
+ self.msg10 = "Camera component"
+ self.msg11 = "Connect the component manually in RTSystemEditor."
+ self.err_msg1 = "One of the stored image is blurry, you can not calculate the result."
+ self.err_msg2 = "Component not found."
+ self.err_msg3 = "Could not automatically connect."
+ return
+
+ # check build camera component
+ def check_camera_comp(self):
+ camera_list = self.get_avail_camera_list()
+ self.select_camera_list = self.get_comp_path(camera_list)
+
+ def get_comp_path(self, comp_name):
+ import platform
+ os_name = platform.system()
+ path_list = self.get_search_path()
+ comp_path = {}
+ for i in range(len(comp_name)):
+ for j in range(len(path_list)):
+ path = path_list[j] + comp_name[i]
+ if os_name == "Windows":
+ path += ".exe"
+ if os.path.isfile(path):
+ print "find path = {0}".format(path)
+ base, ext = os.path.splitext(comp_name[i])
+ # basename : path
+ comp_path[base] = path_list[j]
+ break
+ if len(comp_path) == 0:
+ comp_path[self.err_msg2] = ""
+ return comp_path
+
+ def create_left(self):
+ self.frameL_base = Frame(self.fr, width=self.frame_w)
+ self.frameL_base.pack(side = LEFT, padx=3, fill=Y)
+ logo = Image.open(BytesIO(RTMLogo().get_image()))
+ self.cam_img = ImageTk.PhotoImage(logo)
+ self.cam_img_label = Label(self.frameL_base, image=self.cam_img)
+ self.cam_img_label.pack(side = TOP)
+ self.create_flip_button(self.frameL_base)
+
+ def create_right(self):
+ self.frameR_base = Frame(self.fr, width=self.frame_w)
+ self.frameR_base.pack(side = LEFT, padx=3, fill=Y)
+ self.create_camera_combo(self.frameR_base)
+
+ # left pane
+ def create_flip_button(self, frame):
+ fr = LabelFrame(frame, text="Flip image",
+ relief=GROOVE, bd=2)
+ fr.pack(fill=Y, pady=3, ipadx=3, ipady=3)
+ b0 = Button(fr, text="Flip (top to bottom)",
+ state = DISABLED, width=20,
+ command = self.flip_top_bottom)
+ b0.grid(column=1, row=1, padx=3)
+ b1 = Button(fr, text="Flip (left to right)",
+ state = DISABLED, width=20,
+ command = self.flip_left_right)
+ b1.grid(column=2, row=1, padx=3)
+ self.flip_button = {'tb': b0, 'lr': b1}
+
+ def flip_top_bottom(self):
+ tmp = self.flip_tb
+ self.flip_tb = not tmp
+
+ def flip_left_right(self):
+ tmp = self.flip_lr
+ self.flip_lr = not tmp
+
+ # right pane (1)
+ def create_camera_combo(self, frame):
+ self.fix1 = LabelFrame(frame, text="Select Camera",
+ relief=GROOVE, bd=2)
+ self.fix1.pack(fill=X, ipadx=3, ipady=3)
+ lb = Label(self.fix1, text=self.msg10)
+ lb.grid(column=0, row=0, padx=3)
+ self.box = ttk.Combobox(self.fix1, values=self.select_camera_list.keys(), state='readonly',
+ width=30, height=2)
+ self.box.grid(column=1, row=0, padx=3, pady=3)
+ self.box.bind("<<ComboboxSelected>>", self.change_camera)
+ self.comp_btn = Button(self.fix1, text="OK", state = DISABLED,
+ command = self.camera_selected)
+ self.comp_btn.grid(column = 2, row = 0)
+
+ # [callback] camera select button
+ def camera_selected(self):
+ self.comp_btn.config(state = DISABLED)
+ if self.comp_all_found:
+ # automatically connect the components
+ ret = self.connect_components_auto()
+ if not ret:
+ self.connect_components_manually()
+ self.comp_all_found = False
+ else:
+ # manually connect the components
+ self.connect_components_manually()
+
+ # right pane (2)
+ fr = Frame(self.frameR_base, width=self.frame_w)
+ fr.pack(ipadx=3, ipady=3, fill=X)
+ self.create_state_transition_button(fr)
+ # right pane (3)
+ self.frameR_var = Frame(self.frameR_base, width=self.frame_w)
+ self.frameR_var.pack(fill=X)
+ self.create_capture_button(self.frameR_var)
+ # right pane (4)
+ self.create_result_view(self.frameR_var)
+ self.on_update(self.tree)
+
+ # right top pane (2)
+ def create_state_transition_button(self, frame):
+ import platform
+ os_name = platform.system()
+
+ fr = LabelFrame(frame, text="Component", labelanchor=NW,
+ relief=GROOVE, bd=2)
+ fr.pack(fill=X, ipadx=3, ipady=3)
+
+ if self.comp_all_found:
+ # all
+ act_state = "All Activate"
+ deact_state = "All Deactivate"
+ exit_state = "All Exit"
+ act_button = NORMAL
+ else:
+ # myself
+ act_state = "Activate"
+ deact_state = "Deactivate"
+ exit_state = "Exit"
+ act_button = DISABLED
+
+ if os_name == "Windows":
+ btn_w = 16
+ else:
+ btn_w = 13
+ b0 = Button(fr, text=act_state,
+ state = act_button, width=btn_w,
+ command = self.activate_comp)
+ b0.grid(column=1, row=1, padx=3)
+ b1 = Button(fr, text=deact_state,
+ state = DISABLED, width=btn_w,
+ command = self.deactivate_comp)
+ b1.grid(column=2, row=1, padx=3)
+ b2 = Button(fr, text=exit_state,
+ state = NORMAL, width=btn_w,
+ command = self.exit_comp)
+ b2.grid(column=3, row=1, padx=3)
+ self.comp_button = {'activate': b0,
+ 'deactivate': b1, 'exit': b2}
+
+ # right top pane (3)
+ def create_capture_button(self, frame):
+ import platform
+ os_name = platform.system()
+ self.fr_cap = LabelFrame(frame, text="Capture", labelanchor=NW,
+ relief=GROOVE, bd=2)
+ self.fr_cap.pack(fill=X, ipady=3)
+
+ if os_name == "Windows":
+ btn_w = 10
+ else:
+ btn_w = 9
+ for i in range(self.pic_num):
+ l0 = Label(self.fr_cap, padx = 25,
+ text="{0:d} {1}: ".format(i+1, self.msg9))
+ l0.grid(column = 0, row = i)
+ b0 = Button(self.fr_cap, text=self.msg3,
+ state = DISABLED, width = btn_w,
+ command = self.save_cmd(i))
+ b0.grid(column=1, row=i, padx=2)
+ b1 = Button(self.fr_cap, text=self.msg4,
+ state = DISABLED, width = btn_w,
+ command = self.check_cmd(i))
+ b1.grid(column=2, row=i, padx=2)
+ b2 = Button(self.fr_cap, text=self.msg5,
+ state = DISABLED, width = btn_w,
+ command = self.cancel_cmd(i))
+ b2.grid(column=3, row=i, padx=2)
+ self.buttons.append({'label': l0, 'save': b0,
+ 'check': b1, 'cancel': b2})
+
+ # After saving all the images, enable "View Results" button.
+ self.save_btn_state.append(0)
+
+ self.view_cam_btn = Button(self.fr_cap, text=self.msg6, state = DISABLED,
+ width=34, command=self.camera_on)
+ self.view_cam_btn.grid(column = 1, row = self.pic_num+1, columnspan = 3)
+
+ # right top pane (4)
+ def create_result_view(self, frame):
+ self.fr_result = LabelFrame(frame, text=self.msg7,
+ relief=GROOVE, bd=2, width=self.frame_w)
+ self.fr_result.pack(padx=3, ipadx=3, ipady=3, fill=X)
+ l = Label(self.fr_result, width=50, height=10, relief=SUNKEN, anchor=NW,
+ bg="white", textvariable = self.result_mes, justify=LEFT)
+ l.pack() # width/height 文字数・行数指定
+ self.result_btn = Button(self.fr_result, text=self.msg7,
+ width=8, state = DISABLED,
+ command=self.get_result)
+ self.result_btn.pack(pady = 3)
+
+ def set_top_message(self):
+ self.variable_mes = StringVar()
+ Label(self.fr, textvariable=self.variable_mes, fg="blue", font=20).pack(pady=10)
+ self.variable_mes.set(self.msg2)
+
+ def get_avail_camera_list(self):
+ import platform
+ os_name = platform.system()
+ if os_name == "Windows":
+ self.default_camera = WIN_DEFAULT_CAMERA
+ else:
+ self.default_camera = LINUX_DEFAULT_CAMERA
+ camera_list = self.default_camera.keys()
+ return camera_list
+
+ def get_search_path(self):
+ import platform
+ os_name = platform.system()
+ ret_path = []
+ curdir = os.getcwd() + "/"
+ ret_path.append(curdir)
+ if os_name == "Windows":
+ env = os.environ.get("RTM_ROOT")
+ if env != None:
+ path = env + "examples\\C++\\opencv-rtcs\\"
+ ret_path.append(path.replace('\\', '/'))
+ else:
+ tmp = (
+ "/usr/share/openrtm-1.1/components/c++/opencv-rtcs/",
+ "/usr/bin/", "/usr/X11R6/bin/",
+ "/usr/local/bin/", "/bin/",
+ "/opt/bin/", "/opt/local/bin/",
+ "/sbin/", "/usr/sbin/")
+ for e in tmp:
+ ret_path.append(e)
+ return ret_path
+
+ def camera_on(self):
+ self.CameraEnable(True)
+
+ def CameraEnable(self, enable):
+ if enable:
+ self.view_flg = True
+ else:
+ self.view_flg = False
+
+ # [callback] camera select combobox
+ def change_camera(self, event):
+ camera = event.widget.get()
+ if camera.find("Comp") != -1:
+ self.camera_comp = camera
+ self.comp_all_found = True
+ else:
+ # camera not found
+ self.set_warning_msg()
+ self.comp_btn.config(state = NORMAL)
+
+ def set_warning_msg(self):
+ Label(self.fix1, text=self.msg11, fg="red").grid(column = 0, row = 1, columnspan = 3)
+
+ def set_calib_not_found_msg(self):
+ Label(self.fix1, text=CALIB_COMP+self.err_msg2, fg="red").grid(column = 0, row = 2, columnspan = 3)
+
+ def connect_components_auto(self):
+ import platform
+ import subprocess
+ os_name = platform.system()
+ # Remove the last four characters of "Comp".
+ camera_comp = self.camera_comp[:-4]
+ camera_rtc = self.rt_dir + camera_comp + "0.rtc"
+ camera_path = self.select_camera_list[self.camera_comp]
+
+ calib_rtc = self.rt_dir + CALIB_COMP + "0.rtc"
+ tk_rtc = self.rt_dir + GUI_COMP + "0.rtc"
+
+ # External components start
+ name = []
+ if os_name == "Windows":
+ # camera
+ comp_name = camera_path + self.camera_comp + ".exe"
+ print "windows: comp_name = {0}".format(comp_name)
+ subprocess.Popen([comp_name, "-o", self.comp_option])
+ camera_outport = self.default_camera[self.camera_comp]
+
+ # ImageCalibration
+ comp_name = "{0}Comp".format(CALIB_COMP)
+ name.append(comp_name)
+ lists = self.get_comp_path(name)
+ if len(lists) == 0:
+ self.set_warning_msg()
+ self.set_calib_not_found_msg()
+ return False
+ else:
+ # Environment variable exists
+ val = lists.get(comp_name, "")
+ if val == "":
+ self.set_warning_msg()
+ self.set_calib_not_found_msg()
+ return False
+ else:
+ calib_path = val
+ comp_name = calib_path + comp_name
+ subprocess.Popen([comp_name, "-o", self.comp_option])
+ else:
+ # camera
+ comp_name = camera_path + self.camera_comp
+ subprocess.Popen([comp_name, "-o", self.comp_option])
+ camera_outport = self.default_camera[self.camera_comp]
+
+ # ImageCalibration
+ comp_name = "{0}Comp".format(CALIB_COMP)
+ name.append(comp_name)
+ lists = self.get_comp_path(name)
+ val = lists.get(comp_name, "")
+ if val == "":
+ self.set_warning_msg()
+ self.set_calib_not_found_msg()
+ return False
+ else:
+ calib_path = val
+ comp_name = calib_path + comp_name
+ subprocess.Popen([comp_name, "-o", self.comp_option])
+
+ # Component startup check
+ self.comp_startup_check(tk_rtc)
+ self.comp_startup_check(camera_rtc)
+ tree = self.comp_startup_check(calib_rtc)
+
+ ret1 = rtcon.main([str(camera_rtc)+str(camera_outport), str(calib_rtc)+":original_image"], tree)
+ ret2 = rtcon.main([str(calib_rtc)+":checker_image", str(tk_rtc)+":checker_image"], tree)
+ ret3 = rtcon.main([str(calib_rtc)+":CameraCalibrationService", str(tk_rtc)+":CameraCalibrationService"], tree)
+ if ret1==1 or ret2==1 or ret3==1:
+ Label(self.fix1, text=self.err_msg3, fg="red").grid(column = 0, row = 1, columnspan = 3)
+ Label(self.fix1, text=self.msg11, fg="red").grid(column = 0, row = 2, columnspan = 3)
+ return False
+
+ self.set_comp_name(camera_rtc, calib_rtc, tk_rtc, tree)
+ return True
+
+ def connect_components_manually(self):
+ tk_rtc = self.rt_dir + GUI_COMP + "0.rtc"
+ self.tree = self.comp_startup_check(tk_rtc)
+ self.rtc_list = [tk_rtc]
+
+ def comp_startup_check(self, name):
+ import rtctree.tree
+ import rtctree.path
+ judge = " not found."
+ # generate rtctree
+ path, port = rtctree.path.parse_path(name)
+ path = path[:-1]
+ filter = [path]
+ for cnt in range(0, 10):
+ tree = rtctree.tree.RTCTree(paths=path, orb=self.orb, filter=filter)
+ ret, result = rtcat.main([str(name)], tree)
+ if ret == 0:
+ judge = " found."
+ break
+ time.sleep(1)
+ print name + judge
+ return tree
+
+ # [callback] activate button
+ def activate_comp(self):
+ self.comp_button['activate'].config(state = DISABLED)
+ self.comp_button['deactivate'].config(state = DISABLED)
+ self.comp_button['exit'].config(state = DISABLED)
+ self.flip_button['tb'].config(state = NORMAL)
+ self.flip_button['lr'].config(state = NORMAL)
+ self.CameraEnable(True)
+
+ # Start a thread to observe the transition state of the component.
+ self.comp_transition_thread = CompTransitionThread('Activate a component.', self.rtc_list, self.tree)
+ self.comp_transition_thread.start()
+ self.check_activate()
+
+ def check_activate(self):
+ if not self.comp_transition_thread.running:
+ self.comp_button['deactivate'].config(state = NORMAL)
+ self.comp_button['exit'].config(state = NORMAL)
+ else:
+ self.master.after(100, self.check_activate)
+
+ # [callback] deactivate button
+ def deactivate_comp(self):
+ self.comp_button['activate'].config(state = DISABLED)
+ self.comp_button['deactivate'].config(state = DISABLED)
+ self.comp_button['exit'].config(state = DISABLED)
+ self.flip_button['tb'].config(state = DISABLED)
+ self.flip_button['lr'].config(state = DISABLED)
+ self.CameraEnable(False)
+
+ # Start a thread to observe the transition state of the component.
+ self.comp_transition_thread = CompTransitionThread('Deactivate a component.', self.rtc_list, self.tree)
+ self.comp_transition_thread.start()
+ self.check_deactivate()
+
+ def check_deactivate(self):
+ if not self.comp_transition_thread.running:
+ self.comp_button['activate'].config(state = NORMAL)
+ self.comp_button['exit'].config(state = NORMAL)
+ else:
+ self.master.after(100, self.check_deactivate)
+
+ # [callback] exit button
+ def exit_comp(self):
+ self.comp_button['activate'].config(state = DISABLED)
+ self.comp_button['deactivate'].config(state = DISABLED)
+ self.comp_button['exit'].config(state = DISABLED)
+
+ # Start a thread to observe the transition state of the component.
+ self.comp_transition_thread = CompTransitionThread('Exit', self.rtc_list, self.tree)
+ self.comp_transition_thread.start()
+ self.exit_state = True
+ self.check_exit()
+
+ def check_exit(self):
+ if not self.comp_transition_thread.running:
+ self.exit_state = False
+ else:
+ self.master.after(10, self.check_exit)
+
+ # [callback] save button
+ def save_cmd(self, n):
+ return lambda : self.save_img(n)
+
+ def save_img(self, num):
+ self.buttons[num]['save'].config(state = DISABLED)
+ self.buttons[num]['check'].config(state = NORMAL)
+ self.buttons[num]['cancel'].config(state = NORMAL)
+ self.consumer.captureCalibImage(num)
+ self.save_btn_state[num] = 1
+ if not 0 in self.save_btn_state:
+ self.result_btn.config(state = NORMAL)
+
+ # [callback] check button
+ def check_cmd(self, n):
+ return lambda : self.check_img(n)
+
+ def check_img(self, num):
+ cameraImage = self.consumer.getCalibImage(num)
+ width = cameraImage.width
+ height = cameraImage.height
+ image = cameraImage.pixels
+ pilImage = Image.frombuffer("L", (width, height), image, "raw", "L", 0, 1)
+ self.cam_img.paste(pilImage)
+ self.view_cam_btn.config(state = NORMAL)
+ self.CameraEnable(False)
+
+ # [callback] cancel button
+ def cancel_cmd(self, n):
+ return lambda : self.cancel_img(n)
+
+ def cancel_img(self, num):
+ cameraImage = self.consumer.removeCalibImage(num)
+ self.buttons[num]['save'].config(state = NORMAL)
+ self.buttons[num]['check'].config(state = DISABLED)
+ self.buttons[num]['cancel'].config(state = DISABLED)
+ self.save_btn_state[num] = 0
+ self.result_mes.set("")
+ self.result_btn.config(state = DISABLED)
+ self.CameraEnable(True)
+
+ # [callback] get result button
+ def get_result(self):
+ self.cameraInfo = self.consumer.getCalibParameter()
+ if self.cameraInfo.focalLength.x == 0.0:
+ self.result_mes.set(self.err_msg1)
+ return
+
+ param_str = []
+ param_str.append("cameraInfo\n")
+ param_str.append("focalLength.x = %f\n" % self.cameraInfo.focalLength.x)
+ param_str.append("focalLength.y = %f\n" % self.cameraInfo.focalLength.y)
+ param_str.append("principalPoint.x = %f\n" % self.cameraInfo.principalPoint.x)
+ param_str.append("principalPoint.y = %f\n" % self.cameraInfo.principalPoint.y)
+ param_str.append("Radial distortion(k1) = %f\n" % self.cameraInfo.k1)
+ param_str.append("Radial distortion(k2) = %f\n" % self.cameraInfo.k2)
+ param_str.append("Tangential distortion(p1) = %f\n" % self.cameraInfo.p1)
+ param_str.append("Tangential distortion(p2) = %f" % self.cameraInfo.p2)
+ mes_str = param_str[0]
+ for i in range(1, len(param_str)):
+ mes_str += param_str[i]
+ self.result_mes.set(mes_str)
+ self.result_btn.config(state = DISABLED)
+
+ def calc_fps(self):
+ self.prev_time = self.curr_time
+ self.curr_time = time.time()
+ self.fps = (self.fps * 0.9) + (0.1 / (self.curr_time - self.prev_time))
+ return self.fps
+
+ def set_comp_name(self, camera, calib, gui, tree):
+ self.camera_rtc = camera
+ self.calib_rtc = calib
+ self.tk_rtc = gui
+ self.tree = tree
+ self.rtc_list = [self.camera_rtc, self.calib_rtc, self.tk_rtc]
+
+ def redraw_frameR(self):
+ self.fr_cap.destroy()
+ self.fr_result.destroy()
+ self.buttons = []
+ self.create_capture_button(self.frameR_var)
+ self.create_result_view(self.frameR_var)
+
+#------------------------------------------------------------
+# public function
+
+ def setConsumerPointer(self, consumer):
+ self.consumer = consumer
+
+ def set_image(self, image, width, height):
+ if self.view_flg:
+ self.flip_button['tb'].config(state = NORMAL)
+ self.flip_button['lr'].config(state = NORMAL)
+ else:
+ self.flip_button['tb'].config(state = DISABLED)
+ self.flip_button['lr'].config(state = DISABLED)
+ return
+ import ImageOps
+ import ImageDraw
+ # Getting PIL image from buffer, converting RGB->BGR
+ self.pilImage = Image.frombuffer("RGB", (width, height), image, "raw", "BGR")
+ # Resize if size is different
+ if self.img_w != width or self.img_h != height:
+ self.pilImage = ImageOps.fit(self.pilImage, (self.img_w, self.img_h))
+ # Flip if the flag is True
+ if self.flip_tb:
+ self.pilImage = ImageOps.flip(self.pilImage)
+ if self.flip_lr:
+ self.pilImage = ImageOps.mirror(self.pilImage)
+ # Invert color
+ if self.invert:
+ self.pilImage = ImageOps.invert(self.pilImage)
+ # Print FPS
+ if self.print_fps:
+ draw = ImageDraw.Draw(self.pilImage)
+ fps_str = "%2.2f [fps]" % self.calc_fps()
+ draw.text((self.img_w - 70, self.img_h - 12), fps_str)
+ # Finally paste image to the label
+ self.cam_img.paste(self.pilImage)
+
+ def redraw_gui(self, num):
+ if self.pic_num != num:
+ # Remove all saved images
+ self.consumer.removeCalibImage(-1)
+ self.pic_num = num
+ print "tkcalibgui.py : redraw_gui : pic_num changed = %d" % self.pic_num
+ self.check_lang()
+ self.variable_mes.set(self.msg2)
+ self.redraw_frameR()
+ self.result_mes.set("")
+
+ # Save button enable
+ for i in range(self.pic_num):
+ self.buttons[i]['save'].config(state = NORMAL)
+
+ def set_options(self, orb, rt_dir, comp_option):
+ self.orb = orb
+ self.rt_dir = rt_dir
+ self.comp_option = comp_option
+
+ def set_on_update(self, func):
+ self.on_update = func
+
+#============================================================
+# Thread class
+from rtshell import rtact, rtdeact, rtdis, rtexit, state_control_base
+
+class CompTransitionThread(Thread):
+ def __init__(self, msg, rtc_list, tree):
+ Thread.__init__(self)
+ self.msg = msg
+ self.rtc_list = rtc_list
+ self.tree = tree
+ self.running = False
+
+ if self.msg.find("Activate") != -1:
+ # Activate
+ self.action = rtact.activate_action
+ self.cmd = "rtact"
+ else:
+ # Deactivate or Exit
+ self.action = rtdeact.deactivate_action
+ self.cmd = "rtdeact"
+
+ def run(self):
+ comp_cnt = len(self.rtc_list)
+ self.running = True
+ for i in range(comp_cnt):
+ self.check_comp(self.cmd, self.rtc_list[i], self.msg, self.action)
+
+ if self.msg == "Exit":
+ for i in range(comp_cnt):
+ # rtdis
+ self.check_comp('rtdis', self.rtc_list[i], None, None)
+
+ for i in range(comp_cnt):
+ # rtexit
+ self.check_comp('rtexit', self.rtc_list[i], None, None)
+ self.running = False
+
+ def check_comp(self, cmd, rtc, msg, action):
+ for cnt in range(0, 10):
+ if cmd == "rtdis":
+ ret = rtdis.main([str(rtc)], self.tree)
+ elif cmd == "rtexit":
+ ret = rtexit.main([str(rtc)], self.tree)
+ else:
+ # activate, deactivate
+ ret = state_control_base.base_main(msg, action, [str(rtc)], self.tree)
+ if ret == 0:
+ print "{0}:{1} OK!".format(cmd, str(rtc))
+ break
+ else:
+ print "{0}:{1} NG!".format(cmd, str(rtc))
+ return ret
+
+class RTMLogo:
+ logo = """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
+W4ULU9uOWfrNuQiel7CpTp95VFPzz4WuTce1XBvvOfz44489v75ZzeYanAInPMbG
+rGue5zgp8rlnc1e2AA6CQDcyspyYfuVrRYqP25Zx3tnzt+q3raa3tPlnJgiSZUWW
+YWmKq63pv/ifdy1aPI+mWLqEdSa+72laS0NDun+/radMuqvIcx+2VIbm19U3Njan
+DSPbOjs9z1XV5vrGzLBd/m/scdcUyXLTVO+e+0ladZtbGguUobdzamNz1jL0jB8E
+XRDAkhivqe7Xv++O/fvtaOLc5LO3//PUAQ8suCBEIUUykhinKabEu14Q+Jqebmhs
+qa3tff7Uh9tV8aBjeF6uSvXu22f7/PH36Ln15Kk7XHbNSJIggzBQ5CqaZtvV8DXN
+nKa7d8/9pHsu/vE8J6dmhu92wPhx13Zm5LX7cF07p2YP3G/00UdNK/5IYdnG3Jvf
+bMk5zS0NHXs8MsxcU0tjWvPm3fFp8dIftmNOPOXWnXbcU9Uy+cn2kTac8FVVvc89
+88EAhUXaYbZtzLxxSRigpubmyNtIB4RhoBuZxqZmikY3XPNO8R3MwjAwzRyByCsv
+fTVAfmNTs25kwjD474dk6uvXMjTb1s35oZ49+jQ0tmh62u9ogWvHsSzb0TGybVyk
+K8BxLcsx/m+PsX+/4+PDDjl7fXMum2v4/VJDbOkt6QYNI5JicNSmHVsAon+vTpVr
+2SAIgphSfe/cr01smrjgj0UgQhAUUZSuuu7AH9d8UcpYheNahpE7eez1fug/+/wM
+SUqW0sPj+96ggcNuueG1XM4KQg9jPSw8b00UY0SIqquk0SfWEQTa6PM9zx0+7OhL
+pj2s65brObZtFvoogiBkKRkGgaIIR48VpFYL+FzXPvSgsyZPmGGY2HGsIo3psiAQ
+CglizCk9eQZRJOI4hkAEL8gkQbZ35zWEUBD4vXttc+etS7I5Kwj8LugUEnj5zPMG
+NzQ2EiQiEBJFNvB9SUoQJNmx+XeGkX3hSQtbtm5kKno9h4aRs22DIMjJ5w3r999r
+0POcEbuNumDqfMPULMsocsZ2Dde1DTPLs+JTz9347gePJtpf2sl17YP2nXjGhNkm
+ztm2WeT7kAQpy0kUIse1JpzZQ2z/jFbDzC1eiLM5myRDvWgEEojgeUkUlFvvGPef
+L98s1BEdBH7vXkPuvPXDUk54giAkMY5CVFUljBlfF7a6jXRAGAY0wz+94Od02gpR
+UOS++vvDEIUYgchUih87oZ/nWgghlhOfnL+6ucVEKCxURx39dnOWSZJOxPkLLtnn
+53VfUx2a1mRZ+o3XvjtowJ883zGxVmT+PPFbK4tnGEHg2aefnfnMopkbhiqwpd8x
+c1ld7UA/8E0zF7ndclfCWDWMbE1N/7Gn9OzRo7osY17lDGDDzNq2a9pt3DYIhAQW
+cRwjiSVtpBWGoeNavucgAtEUV2IpUd/3TFOzHQfbKGxrzjiBEIGQJCCWZSUx0TqA
+saViy7OdUj9KFhHL8pEBjC0NW77tIlSumexFD0biEcsyohAnCIQQkdexTwsC3zBV
+2y7pJy0LgUEcR0lijCAotOHoO3FfM4ysZduGVelkQwgh9Nyj61zbGj950O8DGGPV
+tHzb7RZHiBDad89DzvvLQ48+ecW77z8aj9e29+2ua2NLxTiwvba/EYEQmb92OKFj
+AWzbloFLOjkJhHgGCQIt8LEiAdyuEz5/7YsC4qJuIx0QhoFh5mzbMa12XHG/HQaP
+OI7N34JK/5D8ewUOcSwrSkqHAxhbBsYov8SulN8NIcTRSBBInld+H8C2bRgm8kv7
+nC4w75b3hmyzx5FjuNramrJMmilbAKP2Tw/LR0J7P7nk07qDLZzWn9/hplIZP6qT
+yjQrpDKHX/p50qZu04sV6kbWtt3HHm46+fSa6qrfrsFuc3i/MbF60P5nTJowe/6j
+f33jrQeKlGQqpIzXTiX+r47/Qco1D6uTp0T+MDr2IR2+7spyzJ3/nLLDWG3KWi8/
+kz31jCpFTpVlFnA5AxgAUKIwDHG+M5AgOtDa6xquaxtmznNDmiEkMd7e8pAAbGFM
+U803xQUhVp6l3hDAAAAAQNfbDJZ+AgAAAFseCGAAAACgAiCAAQAAgAqAAAYAAAAq
+AAIYAAAAqAAIYAAAAKACIIABAACACoAABgAAACoAAhgAAACoAAhgAAAAoAIggAEA
+AIAKgAAGAAAAKgACGAAAAKgACGAAAACgAiCAAQAAgAqAAAYAAAAqAAIYAAAAqAAI
+YAAAAKACIIABAACACoAABgAAACoAAhgAAACoAAhgAAAAoAIggAEAAIAKgAAGAAAA
+KgACGAAAAKgACGAAAACgAiCAAQAAgAqAAAYAAAAqAAIYAAAAqAAIYAAAAKACIIAB
+AACACoAABgAAACoAAhgAAACoAAhgAAAAoAIggAEAAIAKgAAGAAAAKgACGAAAAKgA
+CGAAAACgAiCAAQAAgAqAAAYAAAAqAAIYAAAAqAAIYAAAAKACIIABAACACoAABgAA
+ACoAAhgAAACoAAhgAAAAoAIggAEAAIAKgAAGAAAAKgACGAAAAKgACGAAAACgAiCA
+AQAAgAqAAAYAAAAqAAIYAAAAqAAIYAAAAKACIIABAACACoAABgAAACoAAhgAAACo
+AAhgAAAAoAIggAEAAIAKgAAGAAAAKgACGAAAAKgACGAAAACgAiCAAQAAgAqAAAYA
+AAAqAAIYAAAAqAAIYAAAAKACIIABAACACoAABgAAACoAAhgAAACoAAhgAAAAoAIg
+gAEAAIAKgAAGAAAAKgACGAAAAKiA/wdXr6Z02sdfbwAAAABJRU5ErkJggg=="""
+ def __init__(self):
+ import binascii
+ self.buff = ''
+ for l in self.logo.split("\n"):
+ self.buff += binascii.a2b_base64(l)
+ def get_image(self):
+ return self.buff
+
+
+
+if __name__ == "__main__":
+ RTMLogo()
+# f = TkCalibGUI()
+# f.mainloop()
More information about the openrtm-commit
mailing list