python2*.dllを入れなくても,python-2.*.*.msiを本家からDLしてインストしたら動いた.
Tkinterをコンソールから使う際には,以下の2行が必要
import sys
sys.argv = ['']
*''はシングルクオート2つ
import maya.cmds as cmds
import Tkinter
import tkMessageBox
import tkFileDialog
root = Tkinter.Tk()
root.withdraw()
filename = tkFileDialog.asksaveasfilename(filetypes = [('Text file','*.txt')], defaultextension = '.txt')
f = open(filename, 'w')
pdict = {}
# 親ノードを取得
def getParent( object ):
temp= cmds.listRelatives( object , p=True, f=True )
if temp == [] or temp== None:
return False
if not temp:
return "|"
return temp[0]
# 子ノードを取得
def getChildren( object, useFullPath ):
childs = cmds.listRelatives( object, c=True, f=useFullPath, pa=(not useFullPath) )
if childs == [] or childs == None:
return '0'
return childs
def printJointNames( object ):
s = ''
if object.find('|') == -1:
s = "%s\tROOT\n" % (object)
pdict[object] = "ROOT"
else:
stree = object.split('|')
s = "%s\t%s\n" % (stree[len(stree)-1], stree[len(stree)-2])
pdict[stree[len(stree)-1]] = stree[len(stree)-2]
# f.write(s)
for ch in getChildren( object, True ):
if ch != '0' :
printJointNames(ch)
def printJointAttributes( object ):
s = object
s = "%s\t%s" % (s, pdict[object])
prm = object + ".translateX"
s = "%s\t%f" % (s, cmds.getAttr(prm))
prm = object + ".translateY"
s = "%s\t%f" % (s, cmds.getAttr(prm))
prm = object + ".translateZ"
s = "%s\t%f" % (s, cmds.getAttr(prm))
prm = object + ".rotateX"
s = "%s\t%f" % (s, cmds.getAttr(prm))
prm = object + ".rotateY"
s = "%s\t%f" % (s, cmds.getAttr(prm))
prm = object + ".rotateZ"
s = "%s\t%f" % (s, cmds.getAttr(prm))
f.write(s)
f.write('\n')
for ch in getChildren( object, False ):
if ch != '0' :
printJointAttributes(ch)
# end def
printJointNames(cmds.ls(long=False, selection=True, type='dagNode')[0])
f.write("name\tparent\ttx\tty\ttz\trx\try\trz\n")
printJointAttributes(cmds.ls(long=False, selection=True, type='dagNode')[0])
f.close()
Mayaディレクトリ内の"Python/lib/tcl"にある
"tcl8.5","tk8.5"ディレクトリを
"Python/lib"ディレクトリにコピー
"tcl8.5","tk8.5"ディレクトリを
"Python/lib"ディレクトリにコピー
■CMakeをインストール
■slnファイルの作成
・コマンドプロンプト
cd C:\~\OpenCV-2.2.0
cmake -G"Visual Studio 9 2008"
・CMakeCache.txtをひらき,
CMAKE_CXX_FLAGS_DEBUG,CMAKE_C_FLAGS_DEBUG,の/MDdを/MTdに,
CMAKE_CXX_FLAGS_RELEASE,CMAKE_C_FLAGS_RELEASE,の/MDを/MTに修正
・もいちどcmake
■slnファイルをひらく
・すべてのプロジェクトのプロパティについて,
構成の種類を「スタティックライブラリ」に,
コード生成>ランタイムライブラリを「マルチスレッド(MT)」に変更
・どっかの#pragmaなんとかがエラーおきたかも→コメントアウト
・リンカエラーが起きたら,
適宜,libcmt.libを加えたり,msvcrt.libをはずしたり
■ビルドできたら,
・"modules"ディレクトリのすべてのサブディレクトリにある
"*.lib"ファイルを
"OpenCV-2.2.0\lib\Release"ディレクトリにコピー
・"modules"ディレクトリのすべてのサブディレクトリにある
"include\opencv2"ディレクトリを
"OpenCV-2.2.0\include\opencv2"ディレクトリにコピー
・"3rdparty\lib\Release"ディレクトリのすべてのサブディレクトリにある
"*.lib"ファイルを
"OpenCV-2.2.0\lib\Release"ディレクトリにコピー
■自分のプロジェクトでは,
・"OpenCV-2.2.0\lib\Release"ディレクトリにあるすべての
"*.lib"ファイルを読み込む
・"vfw32.lib"も読み込む
以上(/TДT)/ヤッテラレルカ!!
■slnファイルの作成
・コマンドプロンプト
cd C:\~\OpenCV-2.2.0
cmake -G"Visual Studio 9 2008"
・CMakeCache.txtをひらき,
CMAKE_CXX_FLAGS_DEBUG,CMAKE_C_FLAGS_DEBUG,の/MDdを/MTdに,
CMAKE_CXX_FLAGS_RELEASE,CMAKE_C_FLAGS_RELEASE,の/MDを/MTに修正
・もいちどcmake
■slnファイルをひらく
・すべてのプロジェクトのプロパティについて,
構成の種類を「スタティックライブラリ」に,
コード生成>ランタイムライブラリを「マルチスレッド(MT)」に変更
・どっかの#pragmaなんとかがエラーおきたかも→コメントアウト
・リンカエラーが起きたら,
適宜,libcmt.libを加えたり,
■ビルドできたら,
・"modules"ディレクトリのすべてのサブディレクトリにある
"*.lib"ファイルを
"OpenCV-2.2.0\lib\Release"ディレクトリにコピー
・"modules"ディレクトリのすべてのサブディレクトリにある
"include\opencv2"ディレクトリを
"OpenCV-2.2.0\include\opencv2"ディレクトリにコピー
・"3rdparty\lib\Release"ディレクトリのすべてのサブディレクトリにある
"*.lib"ファイルを
"OpenCV-2.2.0\lib\Release"ディレクトリにコピー
■自分のプロジェクトでは,
・"OpenCV-2.2.0\lib\Release"ディレクトリにあるすべての
"*.lib"ファイルを読み込む
・"vfw32.lib"も読み込む
以上(/TДT)/ヤッテラレルカ!!
■CGAL
http://www.cgal.org/
■CGALダウンロード
https://gforge.inria.fr/frs/?group_id=52
・CGAL-3.9-Setup.exe
■Boostバイナリパッケージダウンロード
http://www.boostpro.com/download/
・BoostPro 1.47.0 Installer (205K .exe)
■CMAKEダウンロード
http://www.cmake.org/
・Windows (Win32 Installer) cmake-2.8.6-win32-x86.exe
■Boostインストール
・VS9,全タイプのライブラリ
・環境変数BOOST_ROOTチェック
C:\Program Files\boost\boost_1_47
■CMAKEインストール
■CGALインストール
・コマンドプロンプト
cd C:\~\CGAL-3.9
cmake -G"Visual Studio 9 2008"
・(もしBOOST_ROOT環境変数を設定するのを忘れてcmakeしちゃったら)
CMakeCache.txtを開く
Boost_INCLUDE_DIR:PATH=C:/Program Files/boost/boost_1_47
に修正
・できた.slnファイルを開き,
関連プロジェクト(CGAL,CGAL_Core,CGAL_ImageIO,CGAL_Qt4)の
プロパティ>コード生成からマルチスレッド(/MT)にして,
Releaseでリビルド
・環境変数CGALROOT,CGAL_DIRチェック
いずれもC:\Program Files\CGAL-3.9
■ライブラリ名を変える
・CGAL-vc90-mt.lib → CGAL-vc90-mt-s.lib ほか3つも
・libboost_thread-vc90-mt-1_47.lib → libboost-thread-vc90-mt-s-1_47.lib
ライブラリはCGALのヘッダから自動的にリンクされるので,ソース中で明示的に指定する必要はない.
ただし,libgmp-10.libだけはプロジェクトに加えること.
以上!
http://www.cgal.org/
■CGALダウンロード
https://gforge.inria.fr/frs/?group_id=52
・CGAL-3.9-Setup.exe
■Boostバイナリパッケージダウンロード
http://www.boostpro.com/download/
・BoostPro 1.47.0 Installer (205K .exe)
■CMAKEダウンロード
http://www.cmake.org/
・Windows (Win32 Installer) cmake-2.8.6-win32-x86.exe
■Boostインストール
・VS9,全タイプのライブラリ
・環境変数BOOST_ROOTチェック
C:\Program Files\boost\boost_1_47
■CMAKEインストール
■CGALインストール
・コマンドプロンプト
cd C:\~\CGAL-3.9
cmake -G"Visual Studio 9 2008"
・(もしBOOST_ROOT環境変数を設定するのを忘れてcmakeしちゃったら)
CMakeCache.txtを開く
Boost_INCLUDE_DIR:PATH=C:/Program Files/boost/boost_1_47
に修正
・できた.slnファイルを開き,
関連プロジェクト(CGAL,CGAL_Core,CGAL_ImageIO,CGAL_Qt4)の
プロパティ>コード生成からマルチスレッド(/MT)にして,
Releaseでリビルド
・環境変数CGALROOT,CGAL_DIRチェック
いずれもC:\Program Files\CGAL-3.9
■ライブラリ名を変える
・CGAL-vc90-mt.lib → CGAL-vc90-mt-s.lib ほか3つも
・libboost_thread-vc90-mt-1_47.lib → libboost-thread-vc90-mt-s-1_47.lib
ライブラリはCGALのヘッダから自動的にリンクされるので,ソース中で明示的に指定する必要はない.
ただし,libgmp-10.libだけはプロジェクトに加えること.
以上!
■こちらから
http://code.google.com/p/google-code-prettify/
■コードの記述タグ
<pre class="prettyprint">...</pre> または <code class="prettyprint">...</code>
■注意点
コード中で<~>を使うときは,あらかじめ<を<で置き換えておく.
<script type='text/javascript'>
function div_erase_class(class_name){
var divlists = document.getElementsByTagName('div');
for(var i=0;i<divlists.length;i++){
if(divlists[i].className==class_name){
var div_id = divlists[i];
div_id.innerHTML = '';
div_id.style.display='none';
div_id.parentNode.removeChild(div_id);
}
}}
function div_erase(id_name){
var div_id = document.getElementById(id_name);
if(div_id == null) return;
div_id.innerHTML = '';
div_id.style.display='none';
div_id.parentNode.removeChild(div_id);
}
function change_bgimage(src){
var div_id = document.getElementById('header');
div_id.style.backgroundImage = 'url(' + src + ')';
}
window.onload = function(){ //---id/class使用の広告消し
div_erase_class('gadBox');
div_erase_class('headerBnr');
div_erase_class('subAdBannerArea subModule');
div_erase_class('registArea subModule');
div_erase_class('subAdList skinFieldBlock');
div_erase_class('designSelectBtnArea');
div_erase_class('advertising2');
div_erase('headerBnrArea');
div_erase('defaultAd');
div_erase('advertising2');
div_erase('userNaviArea');
div_erase('footer_ad');
div_erase('footerArea');
div_erase('sideTextAd');
div_erase('resPointArea');
} //func()
</script>
#include <iostream>
#include <string>
#include <boost/bind.hpp>
#include <boost/signals2.hpp>
//using namespace boost;
class myClass
{
public:
//constructor
myClass(void){
//capsulate slots
val = boost::bind(&myClass::_val,this,_1);
}
//-- normal methods --------
void setVal(int value){
n = value;
}
//-- define slot methods ---
int _val(int a){
return n+a;
}
//-- define signals --------
boost::signals2::signal<int> getValue;
//-- capsulated slots ---------
boost::function<int> val;
private:
int n;
};
int main(int argc, char *argv[])
{
myClass a,b;
a.setVal(60);
b.setVal(100);
a.getValue.connect(b.val);
//Why pointer returns?
int v = *a.getValue(99);
printf("%d", v);
return 0;
}
