Size: px
Start display at page:

Download ""

Transcription

1 Springhead Users Manual Yuichi Tazaki and Springhead Development Team.

2

3 Getting Started SVN Springhead API Base Foundation

4 4 6 Collision Physics Physics SDK Graphics Graphics SDK FileIO FileIO SDK

5 5 10 HumanInterface HumanInterface SDK Spidar Creature Creature Framework Framework SDK Framework Framework Framework Python Python Springhead API

6

7 7 1 Springhead Springhead C++ Springhead

8

9 9 2 Getting Started Springhead 2.1 Springhead zip ( ) Subversion 2.2 SVN Springhead Subversion Springhead Subversion Springhead Windows, Max, Unix Windows Visual Studio ( )

10 10 2 Getting Started Fig. 2.1 Building the library Windows + Visual Studio Windows Visual Studio Windows XP/Vista/7, Visual Studio 2008/2010/2012/ Springhead C:\Springhead2 Springhead ( ) Visual Studio C:\Springhead2\src\Springhead12.0.sln Visual Studio Visual Studio 2010 Visual Studio 2013 Visual Studio Fig. 2.1 Springhead C:\Springhead2\lib\win32\ C: \Springhead2\lib\win64\ Table 2.1

11 Table 2.1 Build configurations Release multithread, DLL Springhead12.0##.lib Debug multithread, Debug, DLL Springhead12.0##D.lib Trace multithread, Debug, DLL Springhead12.0##T.lib ## Win32 x86 Trace Release Visual Studio 2008 Static Link Visual Studio 2010 Release / Debug Static Link, ReleaseDll / DebugDll / Trace DLL Visual Studio 2012 DLL Visual Studio Win32 Visual Studio 2010 ReleaseDll DebugDll.lib M MD 2.5 C:\Springhead2\src\Samples\All12.0.sln Physics/BoxStack Physics/Joints 2.6 Springhead Visual Studio 2013

12 12 2 Getting Started Fig. 2.2 Create new project Fig. 2.3 Project configuration Visual C++ Win32 C: \Experiments Springhead > > C++ (.cpp) main.cpp

13 Fig. 2.4 Create source file Fig. 2.5 Add include path main.cpp Table 2.2 Springhead ( ) 64 x64

14 14 2 Getting Started Table 2.2 Simplest program code #include <Springhead.h> #include <Framework/SprFWApp.h> using namespace Spr; class MyApp : public FWApp{ public: virtual void Init(int argc = 0, char* argv[] = 0){ FWApp::Init(argc, argv); PHSdkIf* phsdk = GetSdk()->GetPHSdk(); PHSceneIf* phscene = GetSdk()->GetScene()->GetPHScene(); CDBoxDesc bd; // PHSolidIf* floor = phscene->createsolid(); floor->setdynamical(false); bd.boxsize = Vec3f(5.0f, 1.0f, 5.0f); floor->addshape(phsdk->createshape(bd)); floor->setframeposition(vec3d(0, -1.0, 0)); // PHSolidIf* box = phscene->createsolid(); bd.boxsize = Vec3f(0.2f, 0.2f, 0.2f); box->addshape(phsdk->createshape(bd)); box->setframeposition(vec3d(0.0, 1.0, 0.0)); } } app; GetSdk()->SetDebugMode(true); int main(int argc, char* argv[]){ app.init(argc, argv); app.startmainloop(); return 0; } 2.4 C/C++ > > Fig. 2.5

15 Fig. 2.6 Add library path Fig. 2.7 Specify library file Springhead > > Fig. 2.6 Springhead (64 win32 win64 ) Debug C/C++ > > DLL (/MDd) > > Springhead12.0DWin32.lib Release DLL (/MD) Springhead12.0Win32.lib

16 16 2 Getting Started Fig. 2.8 Program running (F7) (F5) Fig. 2.8

17 17 3 Springhead 3.1 Springhead Fig Springhead Table 3.1 Table 3.2 Springhead Springhead 3.3 API Table 3.1 ( : Physics PHSolid Collision CDShape) ( : Foundation Object) API( ) API ( + ) PHSolid::SetMass GRSdk::CreateScene

18 18 3 Springhead Springhead bin doc lib ルートディレクトリ外部ツールドキュメントライブラリディレクトリ win32 Springhead**.lib ライブラリファイル include Springhead.h Base Foundation... インクルードディレクトリ インクルードファイル モジュール別インクルードディレクトリ src Base Foundation... ソースディレクトリ モジュール別ソースディレクトリ tests Samples テストプログラム サンプルプログラム Fig. 3.1 Directory tree of Springhead 3.4 Springhead Springhead Base Foundation Framework Springhead

19 Table 3.1 Springhead modules Base - Foundation UT Springhead Collision CD Physics PH Graphics GR FileIO FI HumanInterface HI Creature CR Framework FW Table 3.2 Module dependencies Base Foundation Collision Physics Graphics FileIO HumanInterface Creature Framework Physics PHSolid // given PHSolidIf* phscene, PHSolidDesc desc;

20 20 3 Springhead desc.mass = 1.0; PHSolidIf* solid = phscene->createsolid(desc); PHSolidDesc PHSolid mass CreateSolid CreateSolid PHScene PHScene PHSceneIf CreateSolid PHSolidIf solid->setmass(5.0); Get/Set Springhead delete Create Springhead

21 21 4 Base Base 4.1 Table 4.1 f d float double double 3 x Vec3d x; [] x[0]; // 0-th element Vec[2 3][f d].x,.y,.z float 10

22 22 4 Base Table 4.1 Matrix and vector classes Vec[2 3 4][f d] Matrix[2 3 4][f d] Quaternion[f d] Affine[f d] Pose[f d] 3 TVector<10, float> x; // 10-dimensional float vector VVector<float> x; x.resize(10); // can be resized at any time. VVector::resize Vec3d a, b, c; double k; c = a + b; a += b; c = a - b; a -= b; b = k * a; a *= k; k = x * y; x % y; // addition // subtraction // multiply vector by scalar // scalar product // vector product (3D vector only)

23 a.size(); a.norm(); a.square(); a.unitize(); b = a.unit(); // number of elements // norm // square of norm // normalize // normalized vector double 3 3 A Matrix3d A; [] x[0][1]; // element at 0-th row, 1-th column TMatrixCol<2, 3, float> M; // column-oriented 2x3 matrix TMatrixRow<2, 3, float> M; // row-oriented 2x3 matrix Matrix3d TMatrixCol<3,3,double> VMatrixCol<float> M; M.resize(10, 13); // column-oriented variable matrix

24 24 4 Base VMatrixCol VMatrixRow Matrix3d M; Vec3d a, b; b = M * a; // multiplication M.height(); M.width(); // number of rows // number of columns 2x2, 3x3 Matrix2d N; Matrix3d M; double theta; Vec3d axis; // methods common to Matrix2[f d] and Matrix3[f d] M = Matrix3d::Zero(); // zero matrix; same as M.clear() M = Matrix3d::Unit(); // identity matrix M = Matrix3d::Diag(x,y,z); // diagonal matrix N = Matrix2d::Rot(theta); // rotation in 2D M = Matrix3d::Rot(theta, x ); M = Matrix3d::Rot(theta, axis); // rotation w.r.t. x-axis // one can specify y and z too // rotation along arbitrary vector Affine[f d] 4x4

25 Affinef A; Matrix3f R; Vec3f p; R = A.Rot(); p = A.Trn(); // rotation part // translation part A = Affinef::Unit(); A = Affinef::Trn(x, y, z); A = Affinef::Rot(theta, x ); A = Affinef::Rot(theta, axis); A = Affinef::Scale(x, y, z); // identity transformation // translation // rotation w.r.t. x-axis // one can specify y and z too // rotation w.r.t. arbitrary axis // scaling 4 [] Quaterniond q; q.w; q.x; q.y; q.z; q.v(); // same as q[0] // same as q[1] // same as q[2] // same as q[3] // vector composed of x,y,z elements Quaterniond q, q0, q1; q0 = Quaterniond::Rot(Rad(30.0), x ); q1 = Quaterniond::Rot(Rad(-90.0), y ); // 30deg rotation along x-axis // -90deg rotationt along y-axis

26 26 4 Base q = q1 * q0; 3 Vec3d a(1, 0, 0); Vec3d b = q0 * a; Quaterniond[f d] Vec3d axis = q.axis(); double angle = q.theta(); // rotation axis // rotation angle q.conjugate(); Quaterniond y; y = q.conjugated(); y = q.inv(); // conjugate (reverse rotation) // return conjugated quaternion // return inverse (normalized conjugate) Conjugate Conjugated Inv Conjugated 1 1 Matrix3d R = Matrix3d::Rot(Rad(60.0), z ); q.frommatrix(r); // conversion from rotation matrix q.tomatrix(r); // conversion to rotation matrix

27 FromMatrix R q ToMatrix R q Vec3d angle; q.toeuler(angle); q.fromeuler(angle); // to Euler angle // from Euler angle 2 2 RotationArc Vec3d r0(1, 0, 0), r1(0, 1, 0); q.rotationarc(r0, r1); // rotation that maps r0 to r1 7 Pose[f d] Pos Ori 2 (Vec3[f d]) (Quaternion[f d]) Posed P; P.Pos() = Vec3d(1, 2, 3); P.Ori() = Quaterniond::Rot(Rad(45.0), x ); Vec3d p = P.Pos(); Quaterniond q = P.Ori(); Vec[2 3 4][f d] Matrix[2 3][f d] Affine[f d] Quaternion[f d]

28 28 4 Base delete UTRefCount Springhead UTRefCount UTRef class A : public UTRefCount{}; UTRef<A> a = new A(); // no need to delete a 4.3 UTString std::string UTTypeDesc Springhead UTTreeNode

29 29 5 Foundation Foundation Springhead Foundation 5.1 Springhead RTTI C++ dynamic cast RTTI IfInfo IfInfo Object 5.2 Springhead Object Springhead Foundation Object Fig. 5.1 Object

30 30 5 Foundation Object オブジェクト NamedObject 名前付きオブジェクト SceneObject シーンオブジェクト NameManager ネームマネジャ Scene シーン Fig. 5.1 Object class hierarchy ObjectIf size t NChildObject() ObjectIf* GetChildObject(size t pos) pos bool AddChildObject(ObjectIf* o) o true false bool DelChildObject(ObjectIf* o) o true false void Clear(); Springhead

31 ObjectIf void Print(std::ostream& os) const os Print Print Print NamedObject NamedObject NamedObjectIf const char* GetName() void SetName(const char* n) NameManagerIf* GetNameManager() (PHSolid, GRVisual ) SceneObjectIf SceneIf* GetScene() 5.3

32 32 5 Foundation NameManagerIf NamedObjectIf* FindObject(UTString name) name NULL Scene (PHScene, GRScene, FWScene ) Scene 5.4 Foundation UTTimer UTTimerIf* timer = UTTimerIf::Create(); UTTimer API [Get Set]Resolution [Get Set]Interval [Get Set]Mode [Get Set]Callback IsStarted IsRunning Start Stop Call SetMode MULTIEDIA THREAD FRAMEWORK IDLE Framework Framework Windows

33 Sleep FRAMEWORK IDLE FWApp CreateTimer FRAMEWORK GLUT IDLE GLUT Framework FWApp FWApp CreateTimer 5.5 Springhead ObjectStatesIf PHSceneIf* phscene; phscene UTRef<ObjectStatesIf> states; states = ObjectStatesIf::Create(); // ObjectStates states->allocatestate(phscene); // states->savestate(phscene); // phscene->step(); // states->loadstate(phscene); // states->releasestate(); // phscene->step(); // Springhead (PHScene CRScene) (PHEngine CREngine )

34 34 5 Foundation AllocateState(), SaveState(), LoadState() ObjectStatesIf::ReleaseState() ObjectIf::AddChildObject() API

35 35 6 Collision 6.1 Collision Collision Physics Collision Collision Fig. 6.1 CDShape // given PHSdkIf* phsdk CDBoxDesc desc; desc.boxsize = Vec3d(1.0, 1.0, 1.0);

36 36 6 Collision CDShape 凸形状 CDBox CDSphere CDCapsule CDRoundcone CDConvexMesh 直方体球カプセル丸コーン凸メッシュ Fig. 6.1 Class hierarchy of Collision module CDBoxIf* box = phsdk->createshape(desc)->cast(); Physics PHSdk CreateShape PHSdk 7 CDBox 1.0 CreateShape CDShape CDBox Cast // given PHSolidIf* solid solid->addshape(box); // first box PHSolid 7 1 AddShape SetShapePose

37 Fig. 6.2 Box geometry solid->addshape(box); solid->addshape(box); // second box // third box // move first shape 1.0 in x-direction solid->setshapepose(0, Posed(Vec3d(1.0, 0.0, 0.0), Quaterniond()); // rotate second shape 30 degrees along y-axis solid->setshapepose(1, Posed(Vec3d(), Quaterniond::Rot(Rad(30.0), y ))); SetShapePose 1 AddShape 0 AddShape 1 GetShapePose Springhead (Fig. 6.2) CDBox

38 38 6 Collision Fig. 6.3 Sphere geometry CDBoxDesc Vec3f boxsize CDBoxIf Vec3f GetBoxSize() void SetBoxSize(Vec3f) (Fig. 6.3) CDSphere CDSphereDesc float radius CDSphereIf float GetRadius() void SetRadius(float) (Fig. 6.4) CDCapsule

39 Fig. 6.4 Capsule geometry Fig. 6.5 Round cone geometry CDCapsuleDesc float radius float length CDCapsuleIf float GetRadius() void SetRadius(float) float GetLength() void SetLength(float)

40 40 6 Collision Fig. 6.6 Convex mesh geometry (Fig. 6.5) CDRoundCone CDRoundConeDesc Vec2f radius float length CDRoundConeIf Vec2f GetRadius() void SetRadius(Vec2f) float GetLength() void SetLength(float) void SetWidth(Vec2f) SetWidth (Fig. 6.6) CDConvexMesh

41 CDConvexMeshDesc vector<vec3f> vertices CDConvexMeshIf Vec3f* GetVertices() int NVertex() CDFaceIf* GetFace(int i) int NFace() i CDConvexMeshDesc::vertices CDFace CDFaceIf int* GetIndices() int NIndex() NIndex 3 4 // given CDConvexMeshIf* mesh CDFaceIf* face = mesh->getface(0); int* idx = face->getindices(); Vec3f v = mesh->getvertices()[idx[0]]; // get 0-th face // get 0-th vertex 6.3 CDShape CDShapeDesc PHMaterial material

42 42 6 Collision PHMaterial float density float mu0 float mu float e float reflexspring float reflexdamper float frictionspring float frictiondamper CDShapeIf CDShapeIf void SetDensity(float) float GetDensity() void SetStaticFriction(float) float GetStaticFriction() void SetDynamicFriction(float) float GetDynamicFriction() void SetElasticity(float) float GetElasticity() void SetReflexSpring(float) float GetReflexSpring() void SetReflexDamper(float) float GetReflexDamper() void SetFrictionSpring(float) float GetFrictionSpring() void SetFrictionDamper(float) float GetFrictionDamper()

43 CDShapeIf float CalcVolume() Vec3f CalcCenterOfMass() Matrix3f CalcMomentOfInertia() CalcVolume GetDensity CalcCenterOfMass CalcMomentOfInertia 1

44

45 45 7 Physics 7.1 Physics 7.2 Physics SDK Physics SDK PHSdk PHSdk PHSdk PHSdkIf* phsdk = PHSdkIf::CreateSdk(); Framework PHSdk PHSdk PHSdkIf CDShapeIf* CreateShape(const CDShapeDesc&) CDShapeIf* GetShape(int) int NShape()

46 46 7 Physics PHSdk PHScene PHScene PHSdk PHSdkIf PHSceneIf* CreateScene(const PHSceneDesc& desc) int NScene() PHSceneIf* GetScene(int i) void MergeScene(PHSceneIf* scene0, PHSceneIf* scene1) PHSceneIf* phscene = phsdk->createscene(); MergeScene scene1 scene0 scene1 PHSceneDesc double timestep unsigned count Vec3d gravity double airresistancerate int numiteration LCP

47 PHSceneIf double void unsigned void void Vec3d void double int void GetTimeStep() SetTimeStep(double) GetCount() SetCount(unsigned) SetGravity(const Vec3d&) GetGravity() SetAirResistanceRate(double) GetAirResistanceRate() GetNumIteration() SetNumIteration() timestep count count timestep gravity airresistancerate airregistancerate % numiteration 1 Step PHSceneIf void Step() 1 Step

48 48 7 Physics 7.4 PHSolid PHScene PHSceneIf PHSolidIf* CreateSolid(const PHSolidDesc&) int NSolids() PHSolidIf** GetSolids() PHSolidIf* solid = phscene->createsolid(); GetSolids 0 PHSolidIf* solid = phscene->getsolids()[0]; // get 0-th solid PHSolidDesc double mass Matrix3d inertia Vec3d center bool dynamical

49 PHSolidIf double double void Vec3d void Matrix3d Matrix3d void void void bool GetMass() GetMassInv() SetMass(double) GetCenterOfMass() SetCenterOfMass(const Vec3d&) GetInertia() GetInertiaInv() SetInertia(const Matrix3d&) CompInertia() SetDynamical(bool) IsDynamical() GetMassInv GetInertiaInv CompInertia dynamical dynamical true dynamical false PHSolidDesc Vec3d velocity Vec3d angvelocity Posed pose

50 50 7 Physics PHSolidIf Vec3d void Vec3d void Posed void Vec3d void Vec3d void Quaterniond void GetVelocity() SetVelocity(const Vec3d&) GetAngularVelocity() SetAngularVelocity(const Vec3d&) GetPose() SetPose(const Posed&) GetFramePosition() SetFramePosition(const Vec3d&) GetCenterPosition() SetCenterPosition(const Vec3d&) GetOrientation() SetOrientation(const Quaterniond&) velocity, angvelocity, pose [Get Set]FramePosition / [Get Set]CenterPosition / [Get Set]Orientation / 3

51 PHSolidIf void void void Vec3d Vec3d AddForce(Vec3d) AddTorque(Vec3d) AddForce(Vec3d, Vec3d) GetForce() GetTorque() AddForce solid->addforce(vec3d(0.0, -1.0, 0.0)); (0, 1, 0) solid->addtorque(vec3d(1.0, 0.0, 0.0)); (1, 0, 0) solid->addforce(vec3d(0.0, -1.0, 0.0), Vec3d(0.0, 0.0, 1.0)); (0, 1, 0) (0, 0, 1) AddForce AddTorque GetForce GetTorque AddForce 7.5 Fig. 7.1

52 52 7 Physics PHConstraint 拘束 PHJoint 関節 PHJoint1D 1 自由度関節 PHHingeJoint PHSliderJoint ヒンジスライダ PHPathJoint パスジョイント PHBallJoint ボールジョイント PHSpring バネ PHContactPoint 接触点 Fig. 7.1 Constraint class hierarchy PHSolidIf* solid0 = phscene->getsolids()[0]; PHSolidIf* solid1 = phscene->getsolids()[1]; PHHingeJointDesc desc; desc.posesocket.pos() = Vec3d( 1.0, 0.0, 0.0); desc.poseplug.pos() = Vec3d(-1.0, 0.0, 0.0); PHHingeJointIf* joint = phscene->createjoint(solid0, solid1, desc)->cast(); PHScene CreateJoint CreateJoint PHJointIf* Cast PHScene

53 (a) before connection (b) after connection Fig. 7.2 Socket and plug PHSceneIf PHJointIf* CreateJoint(PHSolidIf*, PHSolidIf*, const PHJointDesc&) int NJoint() PHJointIf* GetJoint(int i) NJoint GetJoint i Springhead CreateJoint 1 2 posesocket poseplug (1, 0, 0) ( 1, 0, 0) (Fig. 7.2(a)) Fig. 7.2(b) z z

54 54 7 Physics PHConstraintDesc Posed posesocket Posed poseplug PHConstraintIf PHSolidIf* GetSocketSolid() PHSolidIf* GetPlugSolid() void GetSocketPose(Posed&) void SetSocketPose(const Posed&) void GetPlugPose(Posed&) void SetPlugPose(const Posed&) void GetRelativePose(Posed&) void GetRelativeVelocity(Vec3d&, Vec3d&) void GetConstraintForce(Vec3d&, Vec3d&) GetRelativePose GetRelativeVelocity 1 2 GetConstraintForce ( 1 2 ) Springhead (PHHingeIf) (PHSliderIf) (PHPathJointIf) (PHBallJointIf) (PHSpringIf) 5

55 Fig. 7.3 Hinge joint 1 Fig 7.3 z y y (x ) API 1 (PH1DJointIf) y position PH1DJointIf double GetPosition() x socket z 1 Fig 7.4 z x y 1 T.B.D.

56 56 7 Physics Fig. 7.4 Slider joint y y range[0] x socket z x plug z range[1] (a) (b) z socket Fig. 7.5 Ball Joint limitswing[0] limitswing[1] Swing 3 Fig 7.5(a) y Swing-Twist (Fig 7.5(b)) z x x socket z Swing-Dir y position

57 (Swing) z x-y x (Swing-Dir) z (Twist) Swing-Twist 2 PHBallJoint Quaterniond GetPosition() Vec3d GetAngle() Swing-Twist Fig. 7.6 Spring y y z x socket x socket z

58 58 7 Physics PHSpringDesc Vec3d spring Vec3d damper double springori double damperori PHConstraintDesc bool benabled / PHConstraintIf void bool Enable(bool) IsEnabled() 1 PHJoint1DDesc double spring double damper double targetposition double targetvelocity double double offsetforce fmax PHJoint1DIf double GetPosition() double GetVelocity() void SetSpring(double)

59 double GetSpring() void SetDamper(double) double GetDamper() void SetTargetPosition(double) double GetTargetPosition() void SetTargetVelocity(double) double GetTargetVelocity() void SetOffsetForce(double) double GetOffsetForce() void SetTorqueMax(double) double GetTorqueMax() f f = K(p 0 p) + D(v 0 v) + f 0 p v GetPosition GetVelocity K D p 0 v 0 f 0 spring damper targetposition targetvelocity offsetforce PD K D p 0 v 0 K P D D p 0 v 0 f 0 ±fmax PD targetposition targetvelocity

60 60 7 Physics PHBallJointDesc double spring double damper Quaterniond targetposition Vec3d targetvelocity Vec3d offsetforce double fmax CreateLimit 1 Vec2d range range[0] range[1] range[0] < range[1] range[0] > range[1] spring damper tips spring damper 1 PH1DJointLimitDesc Vec2d range range[0] range[1] double spring double damper

61 PH1DJointLimitIf IsOnLimit() true true Fig 7.5(b) Swing-Twist 2 ConeLimit SplineLimit z ConeLimit (SplineLimit ) PHBallJointConeLimitDesc Vec2d limitswing ( ) limitswing[0] limitswing[1] limitswing API PHBallJointConeLimitIf::[Set Get]SwingRange(range) limitswing[0] > limitswing[1] limitswing[0] > limitswing[1] Vec2d limittwist limittwist[0] limittwist[1] limittwist API PHBallJointConeLimitIf::[Set Get]TwistRange(range) limittwist[0] > limittwist[1]

62 62 7 Physics limittwist[0] > limittwist[1] double spring double damper 1 PHBallJointConeLimitIf IsOnLimit() true (IK) Springhead IK 1 Springhead IK 3 IK IK

63 // given PHSceneIf* phscene // given PHSolidIf* solid1, solid2, solid3 // given PHHingeJointIf* joint1 (solid1 <-> solid2) // given PHHingeJointIf* joint2 (solid2 <-> solid3) PHIKHingeActuatorDesc descikactuator; PHIKHingeActuatorIf* ikactuator1 = phscene->createikactuator(descikactuator); ikactuator1.addchildobject(joint1); PHIKHingeActuatorIf* ikactuator2 = phscene->createikactuator(descikactuator); ikactuator1.addchildobject(joint2); PHIKHingeActuatorIf PHHingeJointIf ikactuator1.addchildobject(ikactuator2); IK PHIKEndEffectorDesc descendeffector; PHIKEndEffectorIf* ikendeffector1 = phscene->createikendeffector(descendeffector); ikendeffector1.addchildobject(solid3); ikactuator2.addchildobject(ikendeffector1); solid1 -(joint1)-> solid2 -(joint2)-> solid3

64 64 7 Physics solid3 joint2 ikactuator2 IK IK // solid3 goes to (2, 5, 0) ikendeffector1->settargetposition(vec3d(2, 5, 0)); phscene->getikengine()->enable(true);... phscene->step(); // IK is calculated in physics step... IK IK PHScene IK (PHIKEngine) IK phscene->getikengine()->enable(true); GetIKEngine() PHScene IK API Springhead IK θ

65 r J r = J θ J r = 1 // 20 iteration per 1 physics step phscene->getikengine()->setnumiter(20); PHSceneIf PHIKEngineIf* GetIKEngine() IK PHIKEngineIf Enable(bool b) IK true false SetNumIter(int n) IK 1 n Springhead IK IK IK IK IK IK

66 66 7 Physics IK PHIKHingeActuator PHHingeJoint 1 PHIKBallActuator PHBallJoint 3 ( ) 2 ( 2 1 ) // given PHSceneIf* phscene PHIKHingeActuatorDesc descikactuator; PHIKHingeActuatorIf* ikactuator = phscene->createikactuator(descactuator); PHSceneIf CreateIKActuator PHIKHingeActuatorDesc PHIKBallActuatorDesc // given PHHingeJointIf* joint ikactuator->addchildobject(joint);

67 IK Springhead // given PHIKActuator ikactuator1, ikactuator2 ikactuator1->addchildobject(ikactuator2); AddChildObject IK IK SetTargetVelocity damper damper IK IK IK Springhead IK // given PHIKActuator ikactuator1, ikactuator2 ikactuator1->setbias(2.0); ikactuator2->setbias(1.0);

68 68 7 Physics SetBias Bias 1.0 IK 1.0 IK PHSceneIf CreateIKEndEffector PHIKEndEffectorDesc // given PHSceneIf* phscene PHIKEndEffectorDesc descendeffector; PHIKEndEffectorIf* ikendeffector = phscene->createikendeffector(descendeffector); AddChildObject // given PHSolidIf* solid ikendeffector.addchildobject(solid); // given PHIKActuatorIf* ikactuatorparent ikactuatorparent.addchildobject(ikendeffector);

69 IK IK SetTargetPosition // solid3 goes to (2, 5, 0) ikendeffector->settargetposition(vec3d(2, 5, 0)); ikendeffector->settargetorientation( Quaterniond::Rot( x, rad(30)) ); ikendeffector->enableorientationcontrol(true); Quaterniond EnableOrientationControl EnablePositionControl EnableOrientationControl // ikendeffector->enablepositioncontrol(true); ikendeffector->enableorientationcontrol(false); // ikendeffector->enablepositioncontrol(false); ikendeffector->enableorientationcontrol(true); // ikendeffector->enablepositioncontrol(true);

70 70 7 Physics Fig. 7.7 Contact configuration ikendeffector->enableorientationcontrol(true); 7.7 Springhead 7.3 PHSceneIf::Step 1 Fig. 7.7 x y z x y v x < V th v x V th

71 v x x V th 1 v x e v x = e v x (7.1) d 1 1 d d = d γmax(d d tol, 0) (7.2) γ d tol x f x f x 0 y f y z f z µ 0 f x f y µ 0 f x if V f v y V f, µf x f y µf x otherwise µ 0 µ V f z CDShapeIf void SetElasticity(float e) float GetElasticity() void SetStaticFriction(float mu0) float GetStaticFriction() void SetDynamicFriction(float mu) float GetDynamicFriction()

72 72 7 Physics PHSceneIf void SetContactTolerance(double tol) double GetContactTolerance() void SetImpactThreshold(double vth) double GetImpactThreshold() void SetFrictionThreshold(double vf) double GetFrictionThreshold() y z y z Springhead // given PHSceneIf* scene // given PHSolidIf* solid Vec3d fsum; Vec3d tsum; //< sum of contact forces applied to "solid" //< sum of contact torques applied to "solid" int N = scene->ncontacts(); Vec3d f, t; Posed pose; for(int i = 0; i < N; i++){

73 PHContactPointIf* con = scene->getcontact(i); con->getconstraintforce(f, t); } if(con->getsocketsolid() == solid){ con->getsocketpose(pose); fsum -= pose.ori() * f; tsum -= pose.pos() % pose.ori() * f; } if(con->getplugsolid() == solid){ con->getplugpose(pose); fsum += pose.ori() * f; tsum += pose.pos() % pose.ori() * f; } PHSceneIf::NConstacts for i PHSceneIf::GetContact PHConstraintIf::GetConstraintForce f t 0 / / / Springhead PHSceneIf::SetContactMode PHSceneIf void void void void SetContactMode(PHSolidIf* lhs, PHSolidIf* rhs, int mode) SetContactMode(PHSolidIf** group, size t length, int mode) SetContactMode(PHSolidIf* solid, int mode) SetContactMode(int mode)

74 74 7 Physics lhs rhs [group, group + length) solid PHSceneDesc::ContactMode MODE NONE MODE LCP MODE PENALTY MODE LCP // given PHSolidIf* floor scene->setcontactmode(phscenedesc::mode_none); scene->setcontactmode(floor, PHSceneDesc::MODE_LCP); 7.8 T.B.D. 7.9 T.B.D.

75 PHConstraintEngineIf PHConstraintEngineIf PHConstraintEngineIf void SetVelCorrectionRate(double) double GetVelCorrectionRate() void SetContactCorrectionRate(double) double GetContactCorrectionRate() 1 [0, 1] PHSceneIf::SetNumIteration 7.3 PHSceneIf::SetContactTolerance PHConstraintEngineIf::SetContactCorrectionRate 7.10

76

77 77 8 Graphics 8.1 Graphics 3D 8.2 Graphics SDK Graphics SDK GRSdk GRSdk GRSdk GRSdkIf* grsdk = GRSdkIf::CreateSdk(); Framework GRSdk GRSdk GRRender Springhead OpenGL OpenGL GRDeviceGL GRSdk

78 78 8 Graphics GRSdkIf GRRenderIf* CreateRender() GRDeviceGLIf* CreateDeviceGL() OpenGL GRRenderIf void SetDevice(GRDeviceIf*) GRDeviceIf* GetDevice() Graphics GRRenderIf* render = grsdk->createrender(); GRDeviceIf* device = grsdk->createdevicegl(); device->init(); render->setdevice(device); GRRender SetDevice Framework 8.3 Graphics GRScene GRSceneIf* grscene = grsdk->createscene(); GRScene Fig. 8.1 GRSdk GRSdk

79 Graphics SDK (GRSdk) scene 0 (GRScene) world (GRFrame) array of scenes array of visuals light (GRLight) mesh (GRMesh) frame (GRFrame) mesh mesh frame frame (GRFrame) camera (GRCamera) scene 1 (GRScene) scene N (GRScene) Fig. 8.1 Graphics data structure GRSdkIf GRSceneIf* CreateScene() GRSceneIf* GetScene(size t) size t NScene() void MergeScene(GRSceneIf*, GRSceneIf*) FileIO GRScene

80 80 8 Graphics GRSceneIf GRFrameIf* GetWorld() GRCameraIf* GetCamera() void SetCamera(const GRCameraDesc&) GRVisualIf* CreateVisual(const GRVisualDesc&, GRFrameIf*) void Render(GRRenderIf*) Fig GetWorld GRScene (Fig. 8.1) SetCamera GetCamera 1 GLUT glutdisplayfunc Framework FWApp Display render->clearbuffer(); render->beginscene(); // clear back buffer // begin rendering grscene->render(render); // render scene render->endscene(); render->swapbuffers(); // end rendering // swap buffers ClearBuffer / GRRender GetClearColor SetClearColor render->setclearcolor(vec4f(1.0f, 0.0f, 0.0f, 1.0f));

81 GRVisual 描画アイテム GRFrame GRMesh GRCamera GRLight GRMaterial フレーム ポリゴンメッシュ カメラ ライト マテリアル Fig. 8.2 Class hierarchy of visual items render->clearbuffer(); // clear back buffer in red BeginScene EndScene SwapBuffers GRScene Render (GRCamera) Render (GRFrame) Render 8.4 GRVisual GRVisual Fig. 8.2 GRVisualIf void void void bool Render(GRRenderIf*) Rendered(GRRenderIf*) Enable(bool) IsEnabled() Render Rendered Enable / IsEnabled / GRScene CreateVisual

82 82 8 Graphics 8.5 GRFrame GRFrameDesc desc; GRFrameIf* frame = grscene->createvisual(desc, grscene->getworldframe())->cast(); CreateVisual CreateVisual(desc) GRFrame Render Render GRFrameIf GRFrameIf* void int GRVisualIf** GetParent() SetParent(GRFrameIf*) NChildren() GetChildren() GetParent SetParent NChildren GetChildren

83 (a) Perspective frustum size.x y camera frame center.y x center.x size.y (b) Front view of screen Fig. 8.3 (c) Top view of screen Camera parameters GRFrameIf Affinef Affinef void GetTransform() GetWorldTransform() SetTransform(const Affinef&) GetTransform SetTransform / frame->settransform(affinef::trn(1.0, 0.0, 0.0)); x 1.0

84 84 8 Graphics 8.6 GRCameraDesc Vec2f size Vec2f center float front float back Fig. 8.3(b),(c) GRCameraDesc desc; grscene->getcamera()->getdesc(&desc); desc.front = 3.0f; grscene->setcamera(desc); GetDesc front SetCamera GRCamera GRCameraIf GRFrameIf* void GetFrame() SetFrame(GRFrameIf*) GetFrame SetFrame / Fig. 8.3(a) 8.7 GRLight

85 GRLightDesc Vec4f ambient Vec4f diffuse Vec4f specular Vec4f position OpenGL position 4 position.w 0 (x,y,z) position.w 1 (x,y,z) 8.8 GRMaterial GRMaterial GRMaterialDesc Vec4f ambient Vec4f diffuse Vec4f specular Vec4f emissive float power UTString texname GRMaterialIf Render : GRRender GRRenderIf void SetMaterial(const GRMaterialDesc&) void SetMaterial(const GRMaterialIf*) void SetMaterial(int)

86 86 8 Graphics 3 // given GRRenderIf* render, GRSceneIf* scene GRMaterialDesc md; md.diffuse = Vec4f(1.0f, 0.0f, 0.0f, 1.0f); // 1. render->setmaterial(md); // 2. GRMaterialIf* mat = scene->createvisual(md)->cast(); mat->render(render); // 3. render->setmaterial(mat); // 4. render->setmaterial(grrenderbaseif::red); X11 web color SprGRRender.h GRRenderBaseIf 24 Table GRMesh FileIO Direct3D X 9 FWObjectIf::LoadMesh

87 GRMeshDesc vector<vec3f> vertices vector<grmeshface> faces vector<vec3f> normals vector<grmeshface> facenormals vector<vec4f> colors vector<vec2f> texcoords vector<int> materiallist vector C++ vertices faces GRMeshFace GRMeshFace int nvertices int indices[4] nvertices indices nvertices vertices[faces[i].indices[j]] i j GRMeshDesc vertices faces normals normals[i] vertices[i] normals normals facenormals normals[facenormals[i].indices[j]] i j colors colors[i] i texcoords UV

88 88 8 Graphics materiallist materiallist[i] i AddChildObject // given GRSceneIf* scene, GRFrameIf* frame GRMeshDesc meshdesc; //... setup discriptor here... // create mesh and attach it to frame GRMeshIf* mesh = scene->createvisual(meshdesc, frame)->cast(); GRMaterialDesc matdesc0, matdesc1; //... setup materials here... GRMaterialIf* mat0 = scene->createvisual(matdesc0, frame)->cast(); GRMaterialIf* mat1 = scene->createvisual(matdesc1, frame)->cast(); // attach materials to mesh mesh->addchildobject(mat0); mesh->addchildobject(mat1); //< material no.0 //< material no

89 GRRenderIf void GetClearColor(Vec4f&) void SetClearColor(const Vec4f&) void ClearBuffer() void BeginScene() void EndScene() void SwapBuffers() GRMesh GRRenderIf int StartList() void EndList() void DrawList(int) void ReleaseList(int) GRRenderIf void SetDepthWrite(bool) On/Off void SetDepthTest(bool) On/Off void SetDepthFunc(TDepthFunc) void SetAlphaTest(bool) On/Off void SetAlphaMode(TBlendFunc, TBlendFunc) void SetLighting(bool) On/Off

90 90 8 Graphics GRRenderIf int LoadTexture(UTString) void SetTextureImage(UTString, int, int, int, int, char*) GRRenderIf void InitShader() void SetShaderFormat(ShaderType) bool CreateShader(UTString, UTString, GRHandler&) GRHandler CreateShader() bool ReadShaderSource(GRHandler, UTString) void GetShaderLocation(GRHandler, void*) GRRenderIf void SetVertexFormat(const GRVertexElement*) void SetVertexShader(void*) void DrawDirect(TPrimitiveType, void*, size t, size t) void DrawIndexed(TPrimitiveType, size t*, void*, size t, size t) void DrawArrays(TPrimitiveType, GRVertexArray*, size t) void DrawArrays(TPrimitiveType, size t*, GRVertexArray*, size t)

91 GRRenderIf void DrawLine(Vec3f, Vec3f) void DrawArrow(Vec3f, Vec3f, float, float, float, int, bool) void DrawBox(float, float, float, bool) void DrawSphere(float, int, int, bool) void DrawCone(float, float, int, bool) void DrawCylinder(float, float, int, bool) void DrawCapsule(float, float, int, bool) void DrawRoundCone(float, float, float, int, bool) void DrawGrid(float, int, float) void SetFont(const GRFont&) void DrawFont(Vec2f, UTString) 2 void DrawFont(Vec3f, UTString) 3 void SetLineWidth(float) GRRenderIf void SetCamera(const GRCameraDesc&) const GRCameraDesc& GetCamera() GRRenderIf void PushLight(const GRLightDesc&) void PushLight(const GRLightIf*) void PopLight() int NLights()

92 92 8 Graphics GRRenderIf void Reshape(Vec2f, Vec2f) void SetViewport(Vec2f, Vec2f) Vec2f GetViewportPos() Vec2f GetViewportSize() Vec2f GetPixelSize() 1 Vec3f ScreenToCamera(int, int, float, bool) void EnterScreenCoordinate() void LeaveScreenCoordinate() GRRenderIf void SetViewMatrix(const Affinef&) void GetViewMatrix(Affinef&) void SetProjectionMatrix(const Affinef&) void GetProjectionMatrix(Affinef&) void SetModelMatrix(const Affinef&) void GetModelMatrix(Affinef&) void MultModelMatrix(const Affinef&) void PushModelMatrix() void PopModelMatrix() void ClearBlendMatrix() bool SetBlendMatrix(const Affinef&, int)

93 Table 8.1 Reserved colors INDIANRED ( ) LIGHTCORAL ( ) SALMON ( ) DARKSALMON ( ) LIGHTSALMON ( ) RED ( ) CRIMSON ( ) FIREBRICK ( ) DARKRED ( ) PINK ( ) LIGHTPINK ( ) HOTPINK ( ) DEEPPINK ( ) MEDIUMVIOLETRED ( ) PALEVIOLETRED ( ) CORAL ( ) TOMATO ( ) ORANGERED ( ) DARKORANGE ( ) ORANGE ( ) GOLD ( ) YELLOW ( ) LIGHTYELLOW ( ) LEMONCHIFFON ( ) LIGHTGOLDENRODYELLOW ( ) PAPAYAWHIP ( ) MOCCASIN ( ) PEACHPUFF ( ) PALEGOLDENROD ( ) KHAKI ( ) DARKKHAKI ( ) LAVENDAR ( ) THISTLE ( ) PLUM ( ) VIOLET ( ) ORCHILD ( ) FUCHSIA ( ) MAGENTA ( ) MEDIUMORCHILD ( ) MEDIUMPURPLE ( ) BLUEVIOLET ( ) DARKVIOLET ( ) DARKORCHILD ( ) DARKMAGENTA ( ) PURPLE ( ) INDIGO ( ) DARKSLATEBLUE ( ) SLATEBLUE ( ) MEDIUMSLATEBLUE ( ) GREENYELLOW ( ) CHARTREUSE ( ) LAWNGREEN ( ) LIME ( ) LIMEGREEN ( ) PALEGREEN ( ) LIGHTGREEN ( ) MEDIUMSPRINGGREEN ( ) SPRINGGREEN ( ) MEDIUMSEAGREEN ( ) SEAGREEN ( ) FORESTGREEN ( ) GREEN ( ) DARKGREEN ( ) YELLOWGREEN ( ) OLIVEDRAB ( ) OLIVE ( ) DARKOLIVEGREEN ( ) MEDIUMAQUAMARINE ( ) DARKSEAGREEN ( ) LIGHTSEAGREEN ( ) DARKCYAN ( ) TEAL ( ) AQUA ( ) CYAN ( ) LIGHTCYAN ( ) PALETURQUOISE ( ) AQUAMARINE ( ) TURQUOISE ( ) MEDIUMTURQUOISE ( ) DARKTURQUOISE ( ) CADETBLUE ( ) STEELBLUE ( ) LIGHTSTEELBLUE ( ) POWDERBLUE ( ) LIGHTBLUE ( ) SKYBLUE ( ) LIGHTSKYBLUE ( ) DEEPSKYBLUE ( ) DODGERBLUE ( ) CORNFLOWERBLUE ( ) ROYALBLUE ( ) BLUE ( ) MEDIUMBLUE ( ) DARKBLUE ( ) NAVY ( ) MIDNIGHTBLUE ( ) CORNSILK ( ) BLANCHEDALMOND ( ) BISQUE ( ) NAVAJOWHITE ( ) WHEAT ( ) BURLYWOOD ( ) TAN ( ) ROSYBROWN ( ) SANDYBROWN ( ) GOLDENROD ( ) DARKGOLDENROD ( ) PERU ( ) CHOCOLATE ( ) SADDLEBROWN ( ) SIENNA ( ) BROWN ( ) MAROON ( ) WHITE ( ) SNOW ( ) HONEYDEW ( ) MINTCREAM ( ) AZURE ( ) ALICEBLUE ( ) GHOSTWHITE ( ) WHITESMOKE ( ) SEASHELL ( ) BEIGE ( ) OLDLACE ( ) FLORALWHITE ( ) IVORY ( ) ANTIQUEWHITE ( ) LINEN ( ) LAVENDERBLUSH ( ) MISTYROSE ( ) GAINSBORO ( ) LIGHTGRAY ( ) SILVER ( ) DARKGRAY ( ) GRAY ( ) DIMGRAY ( ) LIGHTSLATEGRAY ( ) SLATEGRAY ( ) DARKSLATEGRAY ( ) BLACK (0 0 0)

94

95 95 9 FileIO 9.1 FileIO Framework 9.2 FileIO SDK FileIO SDK FISdk FISdk FISdk FISdkIf* fisdk = FISdkIf::CreateSdk(); Framework FISdk FISdk 2 FIFile (Fig??) FISdk

96 96 9 FileIO FIFile ファイル FIFileSpr FIFileBinary FIFileX FIFileVRML FIFileCollada Springhead 専用テキストフォーマット Springhead 専用バイナリフォーマット Direct X VRML COLLADA Fig. 9.1 Class hierarchy of file objects FISdkIf FIFileSprIf* FIFileBinaryIf* FIFileXIf* FIFileVRMLIf* FIFileCOLLADAIf* FIFileIf* CreateFileSpr() CreateFileBinary() CreateFileX() CreateFileVRML() CreateFileCOLLADA() CreateFileFromExt(UTString filename) CreateFileFromExt filename 9.3 Springhead spr.spr Springhead Springhead spr spr PHSdk{ CDSphere sphere{ material = { mu = 0.2 } #PHSdk # CDSphere # CDSphere material(phmaterial ) # mu 0.2

97 } radius = 0.5 # radius 0.5 } CDBox bigbox{ boxsize = } Spr?? ) PHSdk sphere(cdsphere ) CDSphereDesc desc; desc.material.mu = 0.2; desc.radius = 0.5; desc Spr BNF spr = node* node = node type, (node id)?, block block = { (node refer data)* } refer = * node id data = field id, =, (block right) right = [ value*, ] value value = bool int real str right right field X X Direct3D.x XSI 3D Springhead2 X Springhead2 Spr

98 98 9 FileIO X xof 0302txt 0064 # # # { } # PHScene scene1{ 0.01;0;; # ; 1;0;-9.8;0;; # PHSolid sofloor{ # ( ) } } # # // Springhead2?? SprPHScene.h struct PHSceneState{ double timestep; ///< unsigned count; ///< }; struct PHSceneDesc:PHSceneState{ /// enum ContactMode{ MODE_NONE, MODE_PENALTY, MODE_LCP}; Vec3f gravity; ///< (0.0f, -9.8f,0.0f) }; PHSceneDesc X

99 PHScene scene1{ 0.01; 0;; #PHSceneState::count ; PHSceneState 1; #PHSceneDesc::ContactMode 0;-9.8;0;;#PHSceneDesc::gravity ; PHSceneDesc } TBU: X Springhead2 X X Frame{ FrameTransfromMatrix{ 1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1; } } Sprinhead2 GRFrame PHFrame TBW (pagenodedeflist) 9.4 Fig 9.2

100 100 9 FileIO Fig. 9.2 Overview of file operation FIFileSpr FIFileX FIFile LoadImp() boost::spirit Init() FILoadContext fieldits SWIG??Sdk::RegisterSdk() FILoadContext::datas LoadImp() FIFile::Load(FILoadContext*) ( )

101 FILoadContext::CreateScene() SDK SDK FIFile::Load(ObjectIfs& objs, const char* fn) objs AddChildObject() AddChildObject() Framework virtual void FWMyApp::Init(int argc, char* argv[]){ UTRef<ImportIf> import = GetSdk()->GetFISdk()->CreateImport(); GetSdk()->LoadScene(fileName, import); // GetSdk()->SaveScene("save.spr", import);// FISdk int main(){ // SDK PHSdkIf::RegisterSdk(); GRSdkIf::RegisterSdk(); FWSdkIf::RegisterSdk(); // UTRef<FISdkIf> fisdk = FISdkIf::CreateSdk(); FIFileIf* file = fisdk->createfilefromext(".spr"); ObjectIfs objs; //

102 102 9 FileIO fwsdk = FWSdkIf::CreateSdk(); // FWSDK // fwsdk objs.push_back(fwsdk); // FWSDK if (! file->load(objs, "test.spr") ) { DSTR << "Error: Cannot open load file. " << std::endl; exit(-1); } // objs for(unsigned i=0; i<objs.size(); ++i){ objs[i]->print(dstr); } FIFile GetDescAddress() GetDesc() 2 2 FiFileSpr FiFile Framework virtual void FWMyApp::Save(const char* filename){ UTRef<ImportIf> import = GetSdk()->GetFISdk()->CreateImport(); GetSdk()->SaveScene(filename, import); // filename FISdk

103 void save(const char* filename, ImportIf* ex, ObjectIf* rootnode){ // UTRef<FISdkIf> fisdk = FISdkIf::CreateSdk(); FIFileIf* file = fisdk->createfilefromext(".spr"); ObjectIfs objs; // objs.push_back(rootnode); file->setimport(ex); file->save(*objs, filename); } 9.5 T.B.W. Import Import Import by )

104

105 HumanInterface 10.1 HumanInterface HumanInterface Framework 10.2 HumanInterface SDK HumanInterface SDK HISdk HISdk HISdk HISdkIf* hisdk = HISdkIf::CreateSdk(); Framework HISdk 10.3 HumanInterface Fig Win32 A/D

106 HumanInterface Sdk HISdk HumanInterface SDK NamedObject HIBase HIPose ヒューマンインタフェース 6 自由度操作インタフェース HIHaptic 力覚提示インタフェース HIDevice デバイス HIRealDevice HIVirtualDevice 実デバイス 仮想デバイス Fig HumanInterface class hierarchy HISdk HumanInterface SDK ヒューマンインタフェースプール HIBase ヒューマンインタフェース HIVirtualDevice 利用される仮想デバイス デバイスプール HIRealDevice 実デバイス HIVirtualDevice 提供される仮想デバイス Fig HumanInterface module data structure 1 A/D HumanInterface Fig HISdk

107 HISdk HISdkIf HIRealDeviceIf* HIRealDeviceIf* HIRealDeviceIf* AddRealDevice(const IfInfo* ii, const void* desc = NULL) FindRealDevice(const char* name) FindRealDevice(const IfInfo* ii) AddRealDevice ii desc FindRealDevice GLUT hisdk->findrealdevice(drkeymouseglutif::getifinfostatic()); HISdk HIRealDevice 2 HISdkIf HIVirtualDeviceIf* bool RentVirtualDevice(const IfInfo* ii, const char* name, int portno) ReturnVirtualDevice(HIVirtualDeviceIf* dev) RentVirtualDevice name portno ReturnVirtualDevice

108 HumanInterface HIRealDeviceIf HIVirtualDeviceIf* bool Rent(const IfInfo* ii, const char* name, int portno) Return(HIVirtualDeviceIf* dev) 10.4 Springhead DVKeyMouse Win32 API DRKeyMouseWin32 GLUT DRKeyMouseGLUT Ascii DVKeyCode

109 DVKeyCode ESC F1 - F12 LEFT UP RIGHT DOWN PAGE UP PAGE DOWN HOME END INSERT Page Up Page Down Home End Insert DVKeyMouse DVKeyMouseCallback DVKeyMouseCallback FWApp DVKeyMouseCallback virtual bool OnMouse(int button, int state, int x, int y) / virtual bool OnDoubleClick(int button, int x, int y) virtual bool / OnMouseMove(int button, int x, int y, int zdelta) virtual bool OnKey(int state, int key, int x, int y) /

110 HumanInterface OnMouse button DVButtonMask OR state DVButtonSt x y // inside your class definition... virtual bool OnMouse(int button, int state, int x, int y){ if(button & DVButtonMask::LBUTTON && state == DVButtonSt::DOWN){ // do something here } } OnDoubleClick OnMouse OnMouseMove button OnMouse x, y zdelta OnKey state DVKeySt key DVButtonMask LBUTTON RBUTTON MBUTTON SHIFT CONTROL ALT Shift Ctrl Alt DVButtonSt DOWN UP

111 DVKeySt PRESSED TOGGLE ON API DVKeyMouse DVKeyMouseIf void void int void AddCallback(DVKeyMouseCallback*) RemoveCallback(DVKeyMouseCallback*) GetKeyState(int key) GetMousePosition(int& x, int& y, int& time, int count=0) AddCallback RemoveCallback GetKeyState DVKeyCode DVKeySt GetMousePosition count count 0 63 x, y time OnMouseMove DRKeyMouseWin32 freeglut Springhead DRKeyMouseGLUT OnKey DRKeyMouseWin32 GetKeyState DRKeyMouseWin32 GetMousePosition DRKeyMouseWin32

112 HumanInterface Fig Trackball 10.6 DVJoyStick GLUT DRJoyStickGLUT T.B.D API API Fig. 10.3

113 HITrackballDesc Vec3f target float longitude [rad] float latitude [rad] float distance HITrackballIf Vec3f void void void float void GetTarget() SetTarget(Vec3f) GetAngle(float& lon, float& lat) SetAngle(float lon, float lat) GetDistance() SetDistance(float dist) HITrackballDesc Vec2f lonrange Vec2f latrange Vec2f distrange HITrackballIf void void void void void void GetLongitudeRange(float& rmin, float& rmax) SetLongitudeRange(float rmin, float rmax) GetLatitudeRange(float& rmin, float& rmax) SetLatitudeRange(float rmin, float rmax) GetDistanceRange(float& rmin, float& rmax) SetDistanceRange(float rmin, float rmax)

114 HumanInterface HITrackballIf DVKeyMouseIf* void void GetKeyMouse() SetKeyMouse(DVKeyMouseIf*) SetCallback(HITrackballCallback*) DVKeyMouse SetKeyMouse GetKeyMouse HITrackballCallback SetCallback HITrackballCallback HITrackballCallback virtual void OnUpdatePose(HITrackballIf* tb) OnUpdatePose tb HITrackball DVKeyMouseCallback SetKeyMouse DVKeyMouse OnMouseMove HITrackballDesc int rotmask int zoommask int trnmask

115 HITrackballIf void void void SetRotMask(int mask) SetZoomMask(int mask) SetTrnMask(int mask) rotmask, zoommask, trnmask OnMouseMove button button rotmask rotmask zoommask trnmask x trnmask y rotmask zoommask trnmask LBUTTON RBUTTON LBUTTON + ALT [ALT] + HITrackballDesc float rotgain [rad/pixel] float zoomgain [rad/pixel] float trngain

116 HumanInterface HITrackballIf float GetRotGain() void SetRotGain(float g) float GetZoomGain() void SetZoomGain(float g) float GetTrnGain() void SetTrnGain(float g) // given GRRenderIf* render render->setviewmatrix(trackball->getaffine().inv()); 10.8 Spidar Spidar 3 6 T.B.D.

117 Creature Creature Springhead IK Creature : 11.1 Creature Creature CRCreature +-- CRBody +-- CRBodyPart (CRObject) +-- CREngine +-- CRController CRCreature 1 CRBody

118 Creature CRBodyPart 2 IK 4 CREngine CRCreature Step 1 CRCreature CREngine Step CRController CREngine CRController

119 Framework 12.1 Framework Framework Fig FWApp FWApp FWApp (FWWin) Framework SDK (FWSdk) (FWGraphicsAdaptee) FWWin GUI FWSdk SDK Framework (FWScene)

120 Framework FWApp アプリケーションクラス FWGraphicsAdaptee GRDevice DRKeyMouse DRJoyStick FWWin GRRender FWScene DVKeyMouse DVJoyStick ウィンドウ グラフィクスデバイス キーボード マウスデバイス ジョイスティックデバイス ウィンドウに関連づけられたレンダラ ウィンドウに関連づけられたシーン 仮想キーボード マウス 仮想ジョイスティック FWSdk PHSdk GRSdk FISdk HISdk FWScene PHScene GRScene Framework SDK Physics SDK Graphics SDK FileIO SDK HumanInterface SDK Frameworkシーン Physicsシーン Graphicsシーン HITrackball HIDragger トラックボール ドラッガ Fig Framework data structure 12.2 Framework SDK Framework SDK FWSdk FWSdk FWSdk FWSdkIf* fwsdk = FWSdkIf::CreateSdk(); FWSdk PHSdk GRSdk FISdk HISdk SDK

121 12.3 Framework 121 Framework SDK (FWSdk) Physics SDK (PHSdk) Graphics SDK (GRSdk) scene (FWScene) object (FWObject) scene (PHScene) solid (PHSolid) scene (GRScene) world (GRFrame) frame (GRFrame) object (FWObject) solid (PHSolid) frame (GRFrame) Fig Data structure of Framework, Physics and Graphics modules FWSdkIf PHSdkIf* GetPHSdk() Physics SDK GRSdkIf* GetGRSdk() Graphics SDK FISdkIf* GetFISdk() FileIO SDK HISdkIf* GetHISdk() HumanInterface SDK 12.3 Framework Framework 1 Physics Graphics Fig SDK FWSdk FWScene FWObject Fig Physics Graphics

122 Framework Graphics FWSdk HITrackballIf FWSceneIf* CreateScene(const PHSceneDesc&, const GRSceneDesc&) int NScene() FWSceneIf* GetScene(int i) i void MergeScene(FWSceneIf* scene0, FWSceneIf* scene1) scene1 scene0 FWSceneIf* fwscene = fwsdk->createscene(); FWScene PHScene GRScene FWScene CreateScene NScene GetScene GetScene fwsdk->createscene(); fwsdk->createscene(); FWSceneIf *fwscene0, *fwscene1; fwscene0 = fwsdk->getscene(0); fwscene1 = fwsdk->getscene(1); // create two scenes // get 1st scene // get 2nd scene MergeScene 2 1

123 12.3 Framework 123 fwsdk->mergescene(fwscene0, fwscene1); scene1 FWObject scene0 PHScene GRScene MergeScene FWScene FWSceneIf void SetPHScene(PHSceneIf*) PHSceneIf* GetPHScene() void SetGRScene(GRSceneIf*) GRSceneIf* GetGRScene() FWObjectIf* CreateFWObject() int NObject()const FWObjectIf** GetObjects() void Sync(bool) Physics Physics Graphics Graphics [Set Get][PH GR]Scene PHScene GRScene CreateFWObject FWObject FWObject PHSolid GRFrame 1 FWObjectIf* fwobj = fwscene->createfwobject(); fwobj->setphsolid(fwscene->getphscene()->createsolid()); fwobj->setgrframe( fwscene->getgrscene()->createvisual(grframedesc())->cast); Sync PHScene GRScene fwscene->sync(true);

124 Framework PHScene GRScene FWObject fwscene->sync(false); 12.4 FileIO FWSdkIf bool LoadScene(UTString path, ImportIf* imp, const IfInfo* ii, ObjectIfs* objs) path imp Import NULL ii NULL objs true false FWSdk FWSdkIf bool SaveScene(UTString path, ImportIf* imp, const IfInfo* ii, ObjectIfs* objs)

125 12.5 Framework 125 LoadScene imp true false 12.5 Framework FWObject PHSolid GRFrame 12.6 Springhead FWApp 2.6 FWApp Springhead Create FWApp C++ FWApp FWApp Init FWApp virtual void Init(int argc, char* argv[]) Init void FWApp::Init(int argc, char* argv[]){ // create SDK CreateSdk(); // create a single scene GetSdk()->CreateScene(); // initialize window manager GRInit(argc, argv); // create main window

126 Framework } CreateWin(); // create timer CreateTimer(); CreateSdk(); SDK GRInit(argc, argv); GLUT GetSdk()->CreateScene(); FWScene 1 CreateWin(); CreateTimer(); virtual void Init(int argc = 0, char* argv[] = 0){ // select GLUI window manager SetGRAdaptee(TypeGLUI);

127 // call base Init FWApp::Init(argc, argv); // do extra initialization here } FWApp:Init Init Init MyApp app; int main(int argc, char* argv[]){ app.init(argc, argv); app.startmainloop(); return 0; } MyApp FWApp MyApp main Init StartMainLoop StartMainLoop CreateTimer CreateTimer Init

128 Framework FWApp UTTimerIf* CreateTimer(UTTimerIf::Mode mode) mode UTTimer SetMode 5.4 UTTimer 2 UTTimerIf *timersim, *timerdraw; timersim = CreateTimer(MULTIMEDIA); timersim->setinterval(10); timerdraw = CreateTimer(FRAMEWORK); timerdraw->setinterval(50); 10[ms] 50[ms] GLUT FWApp virtual void TimerFunc(int id) id TimerFunc Step PostRedisplay Display TimerFunc void TimerFunc(int id){ // proceed simulation of scene attached to current window if(id == timersim->getid()){ GetCurrentWin()->GetScene()->Step(); } // generate redisplay request else if(id == timerdraw->getid()){ PostRedisplay(); }

129 } 2 FWApp virtual void Display() Display PostRedisplay FWApp virtual void PostRedisplay() Display Display FWApp DVKeyMouse FWApp virtual bool OnMouse(int button, int state, int x, int y) virtual bool OnDoubleClick(int button, int x, int y) virtual bool OnMouseMove(int state, int x, int y, int zdelta) virtual bool OnKey(int state, int key, int x, int y) 10.5

130 Framework 12.7 GUI Framework FWApp 12.8 Framework Framework FWSdkIf void Step() FWSdk Step Step GetScene()->Step() FWScene Step PHScene Step GetPHScene()->Step() Framework 2 1 Graphics 1 Physics FWSdkIf void Draw() void SetDebugMode(bool) bool GetDebugMode() Draw Draw [Set Get]DebugMode (false) (true) Draw Sync(true) GRScene Render

131 PHScene FWScene DrawPHScene FWSceneIf void DrawPHScene(GRRenderIf* render) DrawPHScene GRScene GRScene Render GRScene 1 DrawPHScene

132 Framework FWSceneIf void DrawSolid(GRRenderIf*, PHSolidIf*, bool) void DrawShape(GRRenderIf*, CDShapeIf*, bool) void DrawConstraint(GRRenderIf*, PHConstraintIf*) void DrawContact(GRRenderIf*, PHContactPointIf*) void DrawIK(GRRenderIf*, PHIKEngineIf*) IK On/Off FWSceneIf void SetRenderMode(bool solid, bool wire) void EnableRender(ObjectIf* obj, bool enable) void EnableRenderAxis(bool world, bool solid, bool con) void EnableRenderForce(bool solid, bool con) void EnableRenderContact(bool enable) void EnableRenderGrid(bool x, bool y, bool z) void EnableRenderIK(bool enable) SetRenderMode On/Off EnableRender On/Off obj (PHSolidIf*) (PHConstraintIf*) EnableRenderAxis world solid con EnableRenderForce solid con EnableRenderGrid EnableRenderIK IK

133 FWSceneIf void SetSolidMaterial(int mat, PHSolidIf* solid) void SetWireMaterial (int mat, PHSolidIf* solid) void SetAxisMaterial(int matx, int maty, int matz) void SetAxisScale(float world, float solid, float con) void SetAxisStyle(int style) void SetForceMaterial(int matforce, int matmoment) void SetForceScale(float scaleforce, float scalemoment) void SetContactMaterial(int mat) void SetGridOption(char axis, float offset, float size, int slice) void SetGridMaterial(int matx, int maty, int matz) void SetIKMaterial(int mat) void SetIKScale(float scale) SetSolidMaterial mat 8.8 solid NULL SetWireMaterial SetAxisMaterial x, y, z SetAxisScale SetAxisStyle SetForceMaterial SetForceScale SetContactMaterial SetGridOption SetGridMaterial SetIKMaterial SetIKScale IK Springhead2 PHHapticEngine Framework

134 Framework FWApp Init // given PHSceneIf* phscene, phscene->gethapticengine()->enablehapticengine(true); phscene->gethapticengine()-> SetHapticEngineMode(PHHapticEngineDesc::MULTI_THREAD); SINGLE THREAD MULTI THREAD LOCAL DYNAMICS 3 MULTI THREAD MULTI THREAD LOCAL DYNAMICS

135 // given PHSceneIf* phscene, int physicstimerid, haptictimerid // ID // FWApp::TimerFunc void MyApp::TimerFunc(int id){ if(haptictimerid == id){ // phscene->stephapticloop(); }else{ // phscene->gethapticengine()->stepphysicssimulation(); PostRedisplay(); // } } PHHapticPointer PHHapticPointer PHScene PHHapticPointer PHSolid PHSolid Spidar-G6 // given PHSceneIf* phscene, // given HISpidarIf* spg, PHHapticPointerIf* pointer = phscene->createhapticpointer(); /* */ pointer->sethumaninterface(spg); PHHapticPointer

136 Framework PHHapticPointerIf void SetHumanInterface(HIBaseIf* interface) void SetDefaultPose(Posed pose) void SetPosScale(double scale) void SetReflexSpring(float s) void SetReflexDamper(float s) void EnableFriction(bool b) void EnableVibration(bool b) void SetLocalRange(float s) void SetHapticRenderMode(PHHapticPointerDesc::HapticRenderMode m ) SetHumanInterface SetDefaultPose SetPosScale SetReflexSpring SetReflexDamper EnableFriction EnableVibration SetLocalRange SetHapticRenderMode SetHapticRenderMode PENALTY CONSTRAINT PENALTY CONSTRAINT

137 Python EmbPython Python Python Springhead Springhead Python EmbPython Python Springhead API Python Springhead Python Springhead Python 13.1 C++ Springhead Python Springhead Python Python (Python DLL, pyd) Springhead Python Springhead EmbPython Python Springhead Fig 13.1

138 Python Fig Python EmbPython Springhead Python Springhead Python Springhead Python Python PythonSpr Python src\samples\embpython\pythonspr PythonSpr.exe PythonSpr Springhead Springhead Application Python Python Python Python Interpreter phsdk fwsdk Springhead Objects Python EmbPython EmbPython Springhead Python Python Springhead Objects Python Interpreter SPRPYTHONPATH Springhead DLL (Spr.pyd) Springheadアプリケーションに Pythonに bin\src\python32\lib Pythonを組み込む場合 Springheadを組み込む場合

139 Python3.2 c:\python32 C:\Python32\Lib PythonSpr.exe Springhead Python Springhead PythonSpr Python Springhead Python Springhead API 13.2 Python Springhead # >>> fwscene fwscene <Framework.FWScene object at 0x05250A40> >>> phscene = fwscene.getphscene() >>> desc = Spr.PHSolidDesc() >>> desc.mass = 2.0 >>> solid0 = phscene.createsolid(desc) solid0.addshape(box0)

140 Python # >>> phscene = fwscene.getphscene() >>> phsdk = phscene.getsdk() >>> descsolid = Spr.PHSolidDesc() >>> solid0 = phscene.createsolid(descsolid) >>> descbox = Spr.CDBoxDesc() >>> descbox.boxsize = Spr.Vec3f(1,2,3) >>> box0 = phsdk.createshape(spr.cdbox.getifinfostatic(), descbox) >>> solid0.addshape(box0) >>> phscene = fwscene.getphscene() >>> phsdk = phscene.getsdk() # >>> descsolid = Spr.PHSolidDesc() >>> solid0 = phscene.createsolid(descsolid) >>> descbox = Spr.CDBoxDesc() >>> descbox.boxsize = Spr.Vec3f(10,2,10) >>> boxifinfo = Spr.CDBox.GetIfInfoStatic() >>> solid0.addshape(phsdk.createshape(boxifinfo, descbox)) >>> solid0.setframeposition(spr.vec3d(0,-1,0)) >>> solid0.setdynamical(false) # >>> solid1 = phscene.createsolid(descsolid) >>> descbox.boxsize = Spr.Vec3f(1,1,1) >>> boxifinfo = Spr.CDBox.GetIfInfoStatic() >>> solid1.addshape(phsdk.createshape(boxifinfo, descbox)) >>> solid1.addforce(spr.vec3d(0,200,0)) Python For While

141 >>> import time >>> for i in range(0,100): >>> solid1.addforce(spr.vec3d(0,20,0)) >>> time.sleep(0.01) >>> import time >>> for i in range(0,500): >>> y = solid1.getpose().getpos().y >>> dy = solid1.getvelocity().y >>> kp = 20.0 >>> kd = 3.0 >>> solid1.addforce(spr.vec3d(0, (2.0 - y)*kp - dy*kd, 0)) >>> time.sleep(0.01) >>> phscene = fwscene.getphscene() >>> phsdk = phscene.getsdk() >>> descsolid = Spr.PHSolidDesc() >>> solid0 = phscene.createsolid(descsolid) >>> descbox = Spr.CDBoxDesc() >>> descbox.boxsize = Spr.Vec3f(1,1,1) >>> boxifinfo = Spr.CDBox.GetIfInfoStatic() >>> solid0.addshape(phsdk.createshape(boxifinfo, descbox)) >>> solid0.setdynamical(false) >>> solid1 = phscene.createsolid(descsolid) >>> solid1.addshape(phsdk.createshape(boxifinfo, descbox)) >>> descjoint = Spr.PHHingeJointDesc() >>> descjoint.posesocket = Spr.Posed(1,0,0,0, 0,-1,0) >>> descjoint.poseplug = Spr.Posed(1,0,0,0, 0, 1,0) >>> hingeifinfo = Spr.PHHingeJoint.GetIfInfoStatic() >>> joint = phscene.createjoint(solid0, solid1, hingeifinfo, descjoint) PythonSpr.exe python test.py

142 Python test.py C:\src\Samples\EmbPython\PythonSpr> Release\PythonSpr.exe test.py >>> Python PythonSpr Python tips Python Springhead Python C API Python/C API 1 * PythonSpr Python main.cpp Python EmbPython.h #include <EmbPython/EmbPython.h> Python Springhead Python virtual void OnStep(){ UTAutoLock critical(epcriticalsection);... } virtual void OnDraw(GRRenderIf* render) { UTAutoLock critical(epcriticalsection);... } virtual void OnAction(int menu, int id){ UTAutoLock critical(epcriticalsection);

143 }... EPCriticalSection EPCriticalSection Python Springhead EPCriticalSection OnStep Python Springhead *1 Python void EPLoopInit(void* arg) { PythonSprApp* app = (PythonSprApp*)arg; // Python PyRun_SimpleString("import Spr"); // Python C PyObject *m = PyImport_AddModule(" main "); PyObject *dict = PyModule_GetDict(m); // Python fwscene PyObject* pyobj = (PyObject*)newEPFWSceneIf(app->fwScene); Py_INCREF(pyObj); PyDict_SetItemString(dict, "fwscene", pyobj); // Python if (app->argc == 2) { ostringstream loadfile; loadfile << " mainfilename = "; loadfile << app->argv[1]; loadfile << " "; PyRun_SimpleString("import codecs"); PyRun_SimpleString(loadfile.str().c_str()); PyRun_SimpleString( " mainfile = codecs.open( mainfilename, r, utf-8 )"); PyRun_SimpleString( "exec(compile( mainfile.read(), mainfilename, exec )" ",globals()" ",locals())" ); PyRun_SimpleString(" mainfile.close()"); *1

144 Python } } Python Springhead C.py app->fwscene Python #define ACCESS_SPR_FROM_PY(cls, name, obj) \ { \ PyObject* pyobj = (PyObject*)newEP##cls((obj)); \ Py_INCREF(pyObj); \ PyDict_SetItemString(dict, #name, pyobj); \ } \ // : // ACCESS_SPR_FROM_PY(, Python, ) ACCESS_SPR_FROM_PY(FWSceneIf, fwscene, app->fwscene); PythonSpr Python void EPLoop(void* arg) { PyRun_InteractiveLoop(stdin,"SpringheadPython Console"); } main Python EPInterpreter int main(int argc, char *argv[]) { app.init(argc, argv); EPInterpreter* interpreter = EPInterpreter::Create(); interpreter->initialize();

145 } interpreter->eploopinit = EPLoopInit; interpreter->eploop = EPLoop; interpreter->run(&app); app.startmainloop(); return 0; Python Springhead Python DLL Springhead Python Springhead Spr.pyd DLL Spr.pyd bin\win32\spr.pyd bin\win64\spr.pyd Springhead src\embpython\sprpythondll.sln Spr.pyd Spr.pyd Python DLLs import Python [MSC v bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import Spr Springhead PHSdk PHScene PHSolid >>> phsdk = Spr.PHSdk.CreateSdk() >>> phscene = phsdk.createscene(spr.phscenedesc()) >>> solid0 = phscene.createsolid(spr.phsoliddesc()) >>> for i in range(0,10):... print(solid0.getpose().getpos())... phscene.step()

146 Python... Vec3d(0.000,0.000,0.000) Vec3d(0.000,-0.000,0.000) Vec3d(0.000,-0.001,0.000)...( )... Vec3d(0.000,-0.011,0.000) >>> API Springhead pyopengl Spr.pyd SprBlender SprBlender 3DCG Blender Springhead Springhead Blender UI Python Python API Blender Python Spr.pyd Blender CG Springhead Python SprBlender Web *2 *2

Springhead Users Manual Yuichi Tazaki

Springhead Users Manual Yuichi Tazaki Springhead Users Manual Yuichi Tazaki 3 1 7 2 Getting Started 9 2.1................................ 9 2.2 SVN............................. 9 2.3.................................. 9 2.4............................

More information

Springhead Users Manual Yuichi Tazaki and Springhead Development Team.

Springhead Users Manual Yuichi Tazaki and Springhead Development Team. Springhead Users Manual Yuichi Tazaki and Springhead Development Team. 3 1 7 2 Getting Started 9 2.1................................ 9 2.2 GitHub........................... 9 2.3..................................

More information

まずは以下の文章をテキストエディタで作成してみましょう テキストエディタの使用方法は別紙の テキストエディタ (gedit) の使用方法について を参考にしてください ホームページ作成の練習 ファイル名を index.html として保存ができましたら サーバーにアップロードします アップロード方法

まずは以下の文章をテキストエディタで作成してみましょう テキストエディタの使用方法は別紙の テキストエディタ (gedit) の使用方法について を参考にしてください ホームページ作成の練習 ファイル名を index.html として保存ができましたら サーバーにアップロードします アップロード方法 ホームページを作成しよう! 1. 最初に最近ですと 皆さんもインターネットを利用する機会も増えてきているかと思いますが 本日は情報を与える側の立場に立ってもらい ホームページを作成するための HTML 形式と呼ばれるファイルの作成方法を学んでもらおうと思います HTML とは タグと呼ばれるキーワードを文章中に入れることで 様々な文章スタイルを表現することができる言語です HTML ファイルを作成するときは

More information

untitled

untitled Web HTML(Hyper-Text Markup Language) Web HTML () Web / Web -1 Web -2 Web -3 Web -4 Web Web -5 White Black Red Green Blue Yellow Purple Aqua Maroon Navy Olive Teal Gray Silver Lime Fuchsia Snow Linen Bisque

More information

DiMP Users Manual Yuichi Tazaki

DiMP Users Manual Yuichi Tazaki DiMP Users Manual Yuichi Tazaki 3 1 5 2 7 2.1............................. 7 2.2........................... 7 3 DiMP 9 3.1............................... 9 3.2........................... 10 3.3...................................

More information

AJANコマンドリファレンス(GUIコマンド編)

AJANコマンドリファレンス(GUIコマンド編) AJAN GUI 4 5...5...5...7...8...10...11...12...13...13...13...14...15...16...17...18...19...21...22...23...24...25...26...27...27...28...29...30...30...31...32...32...33...33...35...36...37...38...40 Interface

More information

PYTHON 資料 電脳梁山泊烏賊塾 PYTHON 入門 GUI プログラミング Python/Tkinter(Tcl/Tk) の利用 全般 Tcl/Tk とは GUI(Graphical User Interface) 用のスクリプト言語で 此れを利用すると ウィジェット (widget) と呼ば

PYTHON 資料 電脳梁山泊烏賊塾 PYTHON 入門 GUI プログラミング Python/Tkinter(Tcl/Tk) の利用 全般 Tcl/Tk とは GUI(Graphical User Interface) 用のスクリプト言語で 此れを利用すると ウィジェット (widget) と呼ば PYTHON 入門 GUI プログラミング Python/Tkinter(Tcl/Tk) の利用 全般 Tcl/Tk とは GUI(Graphical User Interface) 用のスクリプト言語で 此れを利用すると ウィジェット (widget) と呼ばれる部品を使用して簡単に GUI アプリケーションを作成する事が出来る 其のツールキットで有る Tk を Python で使用出来る様にしたのが

More information

1. ホームページ概要 (1) ホームページとは現在インターネット上では 世界中で数億台以上のコンピュータが相互に接続されています このインターネットが爆発的に普及した最大の要因が ホームページ です ホームページ を作成 閲覧するためにパソコンを購入する方が増えてきています ホームページの最大の特

1. ホームページ概要 (1) ホームページとは現在インターネット上では 世界中で数億台以上のコンピュータが相互に接続されています このインターネットが爆発的に普及した最大の要因が ホームページ です ホームページ を作成 閲覧するためにパソコンを購入する方が増えてきています ホームページの最大の特 目次 1. ホームページ概要... 1 (1) ホームページとは... 1 (2) ホームページのサービス Web とは?... 1 (3) ホームページの住所 アドレスとは?... 1 (4) ホームページを公開するとは?... 1 (5)FTP とは?... 2 (6) 教員用 Web サーバ (c-faculty) について... 2 2. 準備するもの... 3 (1) ソフトウェア...

More information

Condition DAQ condition condition 2 3 XML key value

Condition DAQ condition condition 2 3 XML key value Condition DAQ condition 2009 6 10 2009 7 2 2009 7 3 2010 8 3 1 2 2 condition 2 3 XML key value 3 4 4 4.1............................. 5 4.2...................... 5 5 6 6 Makefile 7 7 9 7.1 Condition.h.............................

More information

programmingII2019-v01

programmingII2019-v01 II 2019 2Q A 6/11 6/18 6/25 7/2 7/9 7/16 7/23 B 6/12 6/19 6/24 7/3 7/10 7/17 7/24 x = 0 dv(t) dt = g Z t2 t 1 dv(t) dt dt = Z t2 t 1 gdt g v(t 2 ) = v(t 1 ) + g(t 2 t 1 ) v v(t) x g(t 2 t 1 ) t 1 t 2

More information

1. ホームページ 概 要 (1)ホームページとは 現 在 インターネット 上 では 世 界 中 で 数 億 台 以 上 のコンピュータが 相 互 に 接 続 されています このインターネットが 爆 発 的 に 普 及 した 最 大 の 要 因 が ホームページ です ホームページ を 作 成 閲

1. ホームページ 概 要 (1)ホームページとは 現 在 インターネット 上 では 世 界 中 で 数 億 台 以 上 のコンピュータが 相 互 に 接 続 されています このインターネットが 爆 発 的 に 普 及 した 最 大 の 要 因 が ホームページ です ホームページ を 作 成 閲 目 次 1. ホームページ 概 要... 1 (1) ホームページとは (2) ホームページのサービス Web とは? (3) ホームページの 住 所 アドレスとは? (4) ホームページを 公 開 するとは? (5) FTP とは? (6) 教 員 用 Web サーバ(c-faculty)について 2. 準 備 するもの... 3 (1) ソフトウェア (2) アカウント パスワード (3) ホームページデータ

More information

Introduction Purpose This training course demonstrates the use of the High-performance Embedded Workshop (HEW), a key tool for developing software for

Introduction Purpose This training course demonstrates the use of the High-performance Embedded Workshop (HEW), a key tool for developing software for Introduction Purpose This training course demonstrates the use of the High-performance Embedded Workshop (HEW), a key tool for developing software for embedded systems that use microcontrollers (MCUs)

More information

ProVisionaire Control V3.0セットアップガイド

ProVisionaire Control V3.0セットアップガイド ProVisionaire Control V3 1 Manual Development Group 2018 Yamaha Corporation JA 2 3 4 5 NOTE 6 7 8 9 q w e r t r t y u y q w u e 10 3. NOTE 1. 2. 11 4. NOTE 5. Tips 12 2. 1. 13 3. 4. Tips 14 5. 1. 2. 3.

More information

スライド タイトルなし

スライド タイトルなし LightCycler Software Ver.3.5 : 200206 1/30 Windows NT Windows NT Ctrl + Alt + Delete LightCycler 3 Front Screen 2/30 LightCycler3 Front RUN Data Analysis LightCycler Data Analysis Edit Graphics Defaults

More information

1 VisBAR edu H 2 O.....

1 VisBAR edu H 2 O..... VisBAR edu v1.03 ( ) 25 4 22 1 VisBAR edu 1 1.1....................................................... 1 1.2.................................................. 2 2 3 2.1 H 2 O.........................................

More information

HA8000シリーズ ユーザーズガイド ~BIOS編~ HA8000/RS110/TS10 2013年6月~モデル

HA8000シリーズ ユーザーズガイド ~BIOS編~ HA8000/RS110/TS10 2013年6月~モデル P1E1M01500-3 - - - LSI MegaRAID SAS-MFI BIOS Version x.xx.xx (Build xxxx xx, xxxx) Copyright (c) xxxx LSI Corporation HA -0 (Bus xx Dev

More information

/ SCHEDULE /06/07(Tue) / Basic of Programming /06/09(Thu) / Fundamental structures /06/14(Tue) / Memory Management /06/1

/ SCHEDULE /06/07(Tue) / Basic of Programming /06/09(Thu) / Fundamental structures /06/14(Tue) / Memory Management /06/1 I117 II I117 PROGRAMMING PRACTICE II 2 MEMORY MANAGEMENT 2 Research Center for Advanced Computing Infrastructure (RCACI) / Yasuhiro Ohara yasu@jaist.ac.jp / SCHEDULE 1. 2011/06/07(Tue) / Basic of Programming

More information

elem attr value = "..." Scenebuilder XML <elem attr="value"... /> XML XML Scenebuilder body hinge XML Scenebuilder 4 3 Scenebuilder XML C/C++ bool int

elem attr value = ... Scenebuilder XML <elem attr=value... /> XML XML Scenebuilder body hinge XML Scenebuilder 4 3 Scenebuilder XML C/C++ bool int Scenebuilder XML tazz 2013/9/4 1 Scenebuilder XML XML 2 XML XML XML ... 1 elem attr value = "..." Scenebuilder XML

More information

OpenCV IS Report No Report Medical Information System Labratry

OpenCV IS Report No Report Medical Information System Labratry OpenCV 2014 8 25 IS Report No. 2014090201 Report Medical Information System Labratry Abstract OpenCV OpenCV 1............................ 2 1.1 OpenCV.......................... 2 1.2......................

More information

2 1 Web Java Android Java 1.2 6) Java Java 7) 6) Java Java (Swing, JavaFX) (JDBC) 7) OS 1.3 Java Java

2 1 Web Java Android Java 1.2 6) Java Java 7) 6) Java Java (Swing, JavaFX) (JDBC) 7) OS 1.3 Java Java 1 Java Java 1.1 Java 1) 2) 3) Java OS Java 1.3 4) Java Web Start Web / 5) Java C C++ Java JSP(Java Server Pages) 1) OS 2) 3) 4) Java Write Once, Run Anywhere 5) Java Web Java 2 1 Web Java Android Java

More information

1

1 PalmGauss SC PGSC-5G Instruction Manual PalmGauss SC PGSC-5G Version 1.01 PalmGauss SC PGSC5G 1.... 3 2.... 3 3.... 3 3.1... 3 3.2... 3 3.3 PalmGauss... 4 3.4... 4 3.4.1 (Fig. 4)... 4 3.4.2 (Fig. 5)...

More information

C# ++ MASA C# ( ) XNA 1.1 C# ( ) VisualStuio XNA 4.0 VisualStuio XNA 3.1 * * *3 2.1 VisualStuio Windows ( TextGam

C# ++ MASA C# ( ) XNA 1.1 C# ( ) VisualStuio XNA 4.0 VisualStuio XNA 3.1 * * *3 2.1 VisualStuio Windows ( TextGam C# ++ MASA 2011 8 1 C# ( ) XNA 1.1 C# ( ) VisualStuio 2010 + XNA 4.0 VisualStuio 2008 + XNA 3.1 *1 1.2 1 *2 1.3 2 *3 2.1 VisualStuio Windows ( TextGame2 ) OK *1 XNA 3.1 4.0 *2 *3 1 TextGame2 ( Ship ) 32*32

More information

# let st1 = {name = "Taro Yamada"; id = };; val st1 : student = {name="taro Yamada"; id=123456} { 1 = 1 ;...; n = n } # let string_of_student {n

# let st1 = {name = Taro Yamada; id = };; val st1 : student = {name=taro Yamada; id=123456} { 1 = 1 ;...; n = n } # let string_of_student {n II 6 / : 2001 11 21 (OCaml ) 1 (field) name id type # type student = {name : string; id : int};; type student = { name : string; id : int; } student {} type = { 1 : 1 ;...; n : n } { 1 = 1 ;...; n = n

More information

JavaScript の使い方

JavaScript の使い方 JavaScript Release10.5 JavaScript NXJ JavaScript JavaScript JavaScript 2 JavaScript JavaScript JavaScript NXJ JavaScript 1: JavaScript 2: JavaScript 3: JavaScript 4: 1 1: JavaScript JavaScript NXJ Static

More information

r07.dvi

r07.dvi 19 7 ( ) 2019.4.20 1 1.1 (data structure ( (dynamic data structure 1 malloc C free C (garbage collection GC C GC(conservative GC 2 1.2 data next p 3 5 7 9 p 3 5 7 9 p 3 5 7 9 1 1: (single linked list 1

More information

WinDriver PCI Quick Start Guide

WinDriver PCI Quick Start Guide WinDriver PCI/PCI Express/PCMCIA 5! WinDriver (1) DriverWizard (2) DriverWizard WinDriver (1) Windows 98/Me/2000/XP/Server 2003/Vista Windows CE.NET Windows Embedded CE v6.00 Windows Mobile 5.0/6.0 Linux

More information

ohp07.dvi

ohp07.dvi 19 7 ( ) 2019.4.20 1 (data structure) ( ) (dynamic data structure) 1 malloc C free 1 (static data structure) 2 (2) C (garbage collection GC) C GC(conservative GC) 2 2 conservative GC 3 data next p 3 5

More information

2

2 L C -24K 9 L C -22K 9 2 3 4 5 6 7 8 9 10 11 12 11 03 AM 04 05 0 PM 1 06 1 PM 07 00 00 08 2 PM 00 4 PM 011 011 021 041 061 081 051 071 1 2 4 6 8 5 7 00 00 00 00 00 00 00 00 30 00 09 00 15 10 3 PM 45 00

More information

POV-Ray による CG 作成 秋田工業高等専門学校竹下大樹 引用元釧路工業高等専門学校技術室報告集第 9 号二谷聡志著 オープンソースソフトウェアによる CG 作成および動画作成

POV-Ray による CG 作成 秋田工業高等専門学校竹下大樹 引用元釧路工業高等専門学校技術室報告集第 9 号二谷聡志著 オープンソースソフトウェアによる CG 作成および動画作成 POV-Ray による CG 作成 秋田工業高等専門学校竹下大樹 引用元釧路工業高等専門学校技術室報告集第 9 号二谷聡志著 オープンソースソフトウェアによる CG 作成および動画作成 http://www.kushiro-ct.ac.jp/info/staff/futaya/groom2007-practice-report.pdf 1. はじめに POV-Rayというフリーのソフトウェアを使って3DCG

More information

TH-42PAS10 TH-37PAS10 TQBA0286

TH-42PAS10 TH-37PAS10 TQBA0286 TH-42PAS10 TH-37PAS10 TQBA0286 2 4 8 10 11 17 18 20 21 22 23 24 25 26 27 28 29 30 31 32 33 38 42 44 46 50 51 52 53 54 3 4 5 6 7 8 3 4 1 2 9 5 6 1 4 2 3 5 6 10 11 1 2 3 4 12 13 14 TH-42PAS10 TH-42PAS10

More information

1

1 DVC512/DVC512GOLD 日本語取扱説明書 1 3 3 3 USB/DMX 4 6 6 SETUP 7 8 9 9 10 11 11 12 12 12 13 13 14 15 AUTO/LTP/HTP 16 17 17 18 19 19 Scene Audio BPM Sync 20 Audio BPM Sync21 21 22 22 23 24 Tricks & Tips25 3 XLR

More information

Step 1 Feature Extraction Featuer Extraction Feature Extraction Featuer Extraction Image Analysis Start>Programs>Agilent-Life Sciences>Feature Extract

Step 1 Feature Extraction Featuer Extraction Feature Extraction Featuer Extraction Image Analysis Start>Programs>Agilent-Life Sciences>Feature Extract Agilent G2565AA Feature Extraction Step 1 Feature Extraction Step 2 Step 3 Step 4 ( ) Step 5 ( ) Step 6 Step 7 Step 8 Feature Extraction Step 9 Step 10 Feature Extraction Step 11 Feature Extraction Step

More information

HA8000-bdシリーズ RAID設定ガイド HA8000-bd/BD10X2

HA8000-bdシリーズ RAID設定ガイド HA8000-bd/BD10X2 HB102050A0-4 制限 補足 Esc Enter Esc Enter Esc Enter Main Advanced Server Security Boot Exit A SATA Configuration SATA Controller(s) SATA Mode Selection [Enabled] [RAID] Determines how

More information

Python Speed Learning

Python   Speed Learning Python Speed Learning 1 / 76 Python 2 1 $ python 1 >>> 1 + 2 2 3 2 / 76 print : 1 print : ( ) 3 / 76 print : 1 print 1 2 print hello 3 print 1+2 4 print 7/3 5 print abs(-5*4) 4 / 76 print : 1 print 1 2

More information

~~~~~~~~~~~~~~~~~~ wait Call CPU time 1, latch: library cache 7, latch: library cache lock 4, job scheduler co

~~~~~~~~~~~~~~~~~~ wait Call CPU time 1, latch: library cache 7, latch: library cache lock 4, job scheduler co 072 DB Magazine 2007 September ~~~~~~~~~~~~~~~~~~ wait Call CPU time 1,055 34.7 latch: library cache 7,278 750 103 24.7 latch: library cache lock 4,194 465 111 15.3 job scheduler coordinator slave wait

More information

HIS-CCBASEver2

HIS-CCBASEver2 Information Access Interface in the Immersive Virtual World Tetsuro Ogi, *1*2*3 Koji Yamamoto, *3*4 Tadashi Yamanouchi *3 and Michitaka Hirose *2 Abstract - In this study, in order to access database server

More information

ohp03.dvi

ohp03.dvi 19 3 ( ) 2019.4.20 CS 1 (comand line arguments) Unix./a.out aa bbb ccc ( ) C main void int main(int argc, char *argv[]) {... 2 (2) argc argv argc ( ) argv (C char ) ( 1) argc 4 argv NULL. / a. o u t \0

More information

Introduction Purpose This training course describes the configuration and session features of the High-performance Embedded Workshop (HEW), a key tool

Introduction Purpose This training course describes the configuration and session features of the High-performance Embedded Workshop (HEW), a key tool Introduction Purpose This training course describes the configuration and session features of the High-performance Embedded Workshop (HEW), a key tool for developing software for embedded systems that

More information

2 3 12 13 6 7

2 3 12 13 6 7 2 8 17 42ZH700046ZH700052ZH7000 28 43 54 63 74 89 2 3 12 13 6 7 3 4 11 21 34 63 65 8 17 4 11 4 55 12 12 10 77 56 12 43 43 13 30 43 43 43 43 10 45 14 25 9 23 74 23 19 24 43 8 26 8 9 9 4 8 30 42 82 18 43

More information

Complex Lab – Operating Systems - Graphical Console

Complex Lab – Operating Systems - Graphical Console Complex Lab Operating Systems Graphical Console Martin Küttler Last assignment Any questions? Any bug reports, whishes, etc.? 1 / 13 We are here Pong Server Paddle Client 1 Paddle Client 2 Memory Management

More information

~/WWW-local/compIID (WWW IID ) $ mkdir WWW-local $ cd WWW-local $ mkdir compiid 3. Emacs index.html n (a) $ cd ~/WWW/compIID

~/WWW-local/compIID (WWW IID ) $ mkdir WWW-local $ cd WWW-local $ mkdir compiid 3. Emacs index.html n (a) $ cd ~/WWW/compIID 10 10 10.1 1. 2. 3. HTML(HyperText Markup Language) Web [ ][ ] HTML Web HTML HTML Web HTML ~b08a001/www/ ( ) ~b08a001/www-local/ ( ) html ( ) 10.2 WWW WWW-local b08a001 ~b08a001/www/ ~b08a001/www-local/

More information

r08.dvi

r08.dvi 19 8 ( ) 019.4.0 1 1.1 (linked list) ( ) next ( 1) (head) (tail) ( ) top head tail head data next 1: NULL nil ( ) NULL ( NULL ) ( 1 ) (double linked list ) ( ) 1 next 1 prev 1 head cur tail head cur prev

More information

2008 DS T050049

2008 DS T050049 DS T050049. PSP DS DS DS RPG DS OS Windows XP DevkiPro OS DS CPU ARM devkitarm MSYS MinGW MSYS MinGW Unix OS C++ C++ make nds nds DS DS micro SD Card nds DS DS DS nds C Java C++ nds nds DS 2008 DS T050049

More information

Lab GPIO_35 GPIO

Lab GPIO_35 GPIO 6,GPIO, PSoC 3/5 GPIO HW Polling and Interrupt PSoC Experiment Lab PSoC 3/5 GPIO Experiment Course Material 6 V2.02 October 15th. 2012 GPIO_35.PPT (65 Slides) Renji Mikami Renji_Mikami@nifty.com Lab GPIO_35

More information

第3章 OpenGL の基礎

第3章 OpenGL の基礎 3 OpenGL April 11, 2017 1 / 28 3.1 ( ) OpenGL OpenGL 2 / 28 3.2 OpenGL OpenGL OpenGL (Open Graphics Library) Silicon Graphics, Inc. 2 3 API (Application Program Interface) [4] UNIX OS Windows Macintosh

More information

r03.dvi

r03.dvi 19 ( ) 019.4.0 CS 1 (comand line arguments) Unix./a.out aa bbb ccc ( ) C main void... argc argv argc ( ) argv (C char ) ( 1) argc 4 argv NULL. / a. o u t \0 a a \0 b b b \0 c c c \0 1: // argdemo1.c ---

More information

L C -6D Z3 L C -0D Z3 3 4 5 6 7 8 9 10 11 1 13 14 15 16 17 OIL CLINIC BAR 18 19 POWER TIMER SENSOR 0 3 1 3 1 POWER TIMER SENSOR 3 4 1 POWER TIMER SENSOR 5 11 00 6 7 1 3 4 5 8 9 30 1 3 31 1 3 1 011 1

More information

H8000操作編

H8000操作編 8 26 35 32H800037H800042H8000 49 55 60 72 2 3 4 48 7 72 32 28 7 8 9 5 7 9 22 43 20 8 8 8 8 73 8 13 7 7 7 55 10 49 49 13 37 49 49 49 49 49 49 12 50 11 76 8 24 26 24 24 6 1 2 3 18 42 72 72 20 26 32 80 34

More information

2

2 8 24 32C800037C800042C8000 32 40 45 54 2 3 24 40 10 11 54 4 7 54 30 26 7 9 8 5 6 7 9 8 18 7 7 7 40 10 13 12 24 22 22 8 55 8 8 8 8 1 2 3 18 11 54 54 19 24 30 69 31 40 57 23 23 22 23 22 57 8 9 30 12 12 56

More information

program.dvi

program.dvi 2001.06.19 1 programming semi ver.1.0 2001.06.19 1 GA SA 2 A 2.1 valuename = value value name = valuename # ; Fig. 1 #-----GA parameter popsize = 200 mutation rate = 0.01 crossover rate = 1.0 generation

More information

For_Beginners_CAPL.indd

For_Beginners_CAPL.indd CAPL Vector Japan Co., Ltd. 目次 1 CAPL 03 2 CAPL 03 3 CAPL 03 4 CAPL 04 4.1 CAPL 4.2 CAPL 4.3 07 5 CAPL 08 5.1 CANoe 5.2 CANalyzer 6 CAPL 10 7 CAPL 11 7.1 CAPL 7.2 CAPL 7.3 CAPL 7.4 CAPL 16 7.5 18 8 CAPL

More information

untitled

untitled 2004/12/21 2/2 (11/16) DT-MRI (11/30) /OpenGL 12/7 12/14 (12/21) 1/11 (1/18) OpenGL ~ ~ OpenGL Silicon Graphics, OpenGL ~ ~ OpenGL OpenGL Utility Library (GLU) OpenGL. OpenGL. OpenGL Utility Toolkit (GLUT)

More information

1,.,,,., RDBM, SQL. OSS,, SQL,,.

1,.,,,., RDBM, SQL. OSS,, SQL,,. 1,.,,,., RDBM, SQL. OSS,, SQL,,. 3 10 10 OSS RDBMS SQL 11 10.1 OSS RDBMS............................ 11 10.1.1 PostgreSQL................................. 11 10.1.2 MySQL...................................

More information

LC304_manual.ai

LC304_manual.ai Stick Type Electronic Calculator English INDEX Stick Type Electronic Calculator Instruction manual INDEX Disposal of Old Electrical & Electronic Equipment (Applicable in the European Union

More information

Z7000操作編_本文.indb

Z7000操作編_本文.indb 2 8 17 37Z700042Z7000 46Z7000 28 42 52 61 72 87 2 3 12 13 6 7 3 4 11 21 34 61 8 17 4 11 4 53 12 12 10 75 18 12 42 42 13 30 42 42 42 42 10 62 66 44 55 14 25 9 62 65 23 72 23 19 24 42 8 26 8 9 9 4 11 18

More information

SystemC言語概論

SystemC言語概論 SystemC CPU S/W 2004/01/29 4 SystemC 1 SystemC 2.0.1 CPU S/W 3 ISS SystemC Co-Simulation 2004/01/29 4 SystemC 2 ISS SystemC Co-Simulation GenericCPU_Base ( ) GenericCPU_ISS GenericCPU_Prog GenericCPU_CoSim

More information

3.1 stdio.h iostream List.2 using namespace std C printf ( ) %d %f %s %d C++ cout cout List.2 Hello World! cout << float a = 1.2f; int b = 3; cout <<

3.1 stdio.h iostream List.2 using namespace std C printf ( ) %d %f %s %d C++ cout cout List.2 Hello World! cout << float a = 1.2f; int b = 3; cout << C++ C C++ 1 C++ C++ C C++ C C++? C C++ C *.c *.cpp C cpp VC C++ 2 C++ C++ C++ [1], C++,,1999 [2],,,2001 [3], ( )( ),,2001 [4] B.W. /D.M.,, C,,1989 C Web [5], http://kumei.ne.jp/c_lang/ 3 Hello World Hello

More information

ohp08.dvi

ohp08.dvi 19 8 ( ) 2019.4.20 1 (linked list) ( ) next ( 1) (head) (tail) ( ) top head tail head data next 1: 2 (2) NULL nil ( ) NULL ( NULL ) ( 1 ) (double linked list ) ( 2) 3 (3) head cur tail head cur prev data

More information

double float

double float 2015 3 13 1 2 2 3 2.1.......................... 3 2.2............................. 3 3 4 3.1............................... 4 3.2 double float......................... 5 3.3 main.......................

More information

fx-9860G Manager PLUS_J

fx-9860G Manager PLUS_J fx-9860g J fx-9860g Manager PLUS http://edu.casio.jp k 1 k III 2 3 1. 2. 4 3. 4. 5 1. 2. 3. 4. 5. 1. 6 7 k 8 k 9 k 10 k 11 k k k 12 k k k 1 2 3 4 5 6 1 2 3 4 5 6 13 k 1 2 3 1 2 3 1 2 3 1 2 3 14 k a j.+-(),m1

More information

Nios® II HAL API を使用したソフトウェア・サンプル集 「Modular Scatter-Gather DMA Core」

Nios® II HAL API を使用したソフトウェア・サンプル集 「Modular Scatter-Gather DMA Core」 ALTIMA Company, MACNICA, Inc Nios II HAL API Modular Scatter-Gather DMA Core Ver.17.1 2018 8 Rev.1 Nios II HAL API Modular Scatter-Gather DMA Core...3...3...4... 4... 5 3-2-1. msgdma... 6 3-2-2. On-Chip

More information

1st-session key

1st-session key 1 2013/11/29 Project based Learning: Soccer Agent Program 1 2012/12/9 Project based Learning: Soccer Agent Program PBL Learning by doing Schedule 1,2 2013 11/29 Make 2013 12/6 2013 12/13 2013 12/20 2014

More information

フリーセルプロの使い方

フリーセルプロの使い方 FreeCell Pro 011 2 FreeCell Pro 2002 FCPRO.HLP FreeCell Pro6.4 6.5 FreeCell Pro 1000 http://solitairelaboratory.com/fcpro.html FreeCell Pro 2009 2 3 FreeCell Pro Microsoft FC 0 Windows 3.1 FreeCell Pr

More information

2

2 8 23 26A800032A8000 31 37 42 51 2 3 23 37 10 11 51 4 26 7 28 7 8 7 9 8 5 6 7 9 8 17 7 7 7 37 10 13 12 23 21 21 8 53 8 8 8 8 1 2 3 17 11 51 51 18 23 29 69 30 39 22 22 22 22 21 56 8 9 12 53 12 56 43 35 27

More information

2

2 8 22 19A800022A8000 30 37 42 49 2 3 22 37 10 11 49 4 24 27 7 49 7 8 7 9 8 5 6 7 9 8 16 7 7 7 37 10 11 20 22 20 20 8 51 8 8 9 17 1 2 3 16 11 49 49 17 22 28 48 29 33 21 21 21 21 20 8 10 9 28 9 53 37 36 25

More information

listings-ext

listings-ext (6) Python (2) ( ) ohsaki@kwansei.ac.jp 5 Python (2) 1 5.1 (statement)........................... 1 5.2 (scope)......................... 11 5.3 (subroutine).................... 14 5 Python (2) Python 5.1

More information

[ 1] 1 Hello World!! 1 #include <s t d i o. h> 2 3 int main ( ) { 4 5 p r i n t f ( H e l l o World!! \ n ) ; 6 7 return 0 ; 8 } 1:

[ 1] 1 Hello World!! 1 #include <s t d i o. h> 2 3 int main ( ) { 4 5 p r i n t f ( H e l l o World!! \ n ) ; 6 7 return 0 ; 8 } 1: 005 9 7 1 1.1 1 Hello World!! 5 p r i n t f ( H e l l o World!! \ n ) ; 7 return 0 ; 8 } 1: 1 [ ] Hello World!! from Akita National College of Technology. 1 : 5 p r i n t f ( H e l l o World!! \ n ) ;

More information

RHEA key

RHEA key 2 $ cd RHEA $ git pull zsh $ for i in {009..049}; do curl -O https://raw.githubusercontent.com/akiraokumura/rhea-slides/master/photons/lat_photon_weekly_w${i} _p302_v001_extracted.root; done bash $ for

More information

RX600 & RX200シリーズ アプリケーションノート RX用仮想EEPROM

RX600 & RX200シリーズ アプリケーションノート RX用仮想EEPROM R01AN0724JU0170 Rev.1.70 MCU EEPROM RX MCU 1 RX MCU EEPROM VEE VEE API MCU MCU API RX621 RX62N RX62T RX62G RX630 RX631 RX63N RX63T RX210 R01AN0724JU0170 Rev.1.70 Page 1 of 33 1.... 3 1.1... 3 1.2... 3

More information

2

2 8 23 32A950S 30 38 43 52 2 3 23 40 10 33 33 11 52 4 52 7 28 26 7 8 8 18 5 6 7 9 8 17 7 7 7 38 10 12 9 23 22 22 8 53 8 8 8 8 1 2 3 17 11 52 52 19 23 29 71 29 41 55 22 22 22 22 22 55 8 18 31 9 9 54 71 44

More information

第3章 OpenGL の基礎

第3章 OpenGL の基礎 3 OpenGL April 20, 2012 1 / 23 31 ( ) OpenGL OpenGL 2 / 23 32 OpenGL OpenGL OpenGL (Open Graphics Library) Silicon Graphics, Inc 2 3 API (Application Program Interface) [4] UNIX OS Windows Macintosh CAD

More information

HARK Designer Documentation 0.5.0 HARK support team 2013 08 13 Contents 1 3 2 5 2.1.......................................... 5 2.2.............................................. 5 2.3 1: HARK Designer.................................

More information

CudaWaveField

CudaWaveField CudaWaveField 2012 3 22 2 CudaWaveField Rel 1.0.0 Rel 1.0 CudaWaveField ( cwfl) / cwfl cwfl http://www.laser.ee.kansai-u.ac.jp/wavefieldtools Note Acrobat Reader 3 I CudaWaveField 9 1 11 1.1 CudaWaveField......................

More information

2

2 L C -60W 7 2 3 4 5 6 7 8 9 0 2 3 OIL CLINIC BAR 4 5 6 7 8 9 2 3 20 2 2 XXXX 2 2 22 23 2 3 4 5 2 2 24 2 2 25 2 3 26 2 3 6 0 2 3 4 5 6 7 8 9 2 3 0 2 02 4 04 6 06 8 08 5 05 2 3 4 27 2 3 4 28 2 3 4 5 2 2

More information

VDM-SL VDM VDM-SL Toolbox VDM++ Toolbox 1 VDM-SL VDM++ Web bool

VDM-SL VDM VDM-SL Toolbox VDM++ Toolbox 1 VDM-SL VDM++ Web bool VDM-SL VDM++ 23 6 28 VDM-SL Toolbox VDM++ Toolbox 1 VDM-SL VDM++ Web 2 1 3 1.1............................................... 3 1.1.1 bool......................................... 3 1.1.2 real rat int

More information

2 p.2 2 Java Hello0.class JVM Hello0 java > java Hello0.class Hello World! javac Java JVM java JVM : Java > javac 2> Q Foo.java Java : Q B

2 p.2 2 Java Hello0.class JVM Hello0 java > java Hello0.class Hello World! javac Java JVM java JVM : Java > javac 2> Q Foo.java Java : Q B 2 p.1 2 Java Java JDK Sun Microsystems JDK javac Java java JVM appletviewer IDESun Microsystems NetBeans, IBM 1 Eclipse 2 IDE GUI JDK Java 2.1 Hello World! 2.1.1 Java 2.1.1 Hello World Emacs Hello0.java

More information

第5回お試しアカウント付き並列プログラミング講習会

第5回お試しアカウント付き並列プログラミング講習会 qstat -l ID (qstat -f) qscript ID BATCH REQUEST: 253443.batch1 Name: test.sh Owner: uid=32637, gid=30123 Priority: 63 State: 1(RUNNING) Created at: Tue Jun 30 05:36:24 2009 Started at: Tue Jun 30 05:36:27

More information

ストラドプロシージャの呼び出し方

ストラドプロシージャの呼び出し方 Release10.5 Oracle DataServer Informix MS SQL NXJ SQL JDBC Java JDBC NXJ : NXJ JDBC / NXJ EXEC SQL [USING CONNECTION ] CALL [.][.] ([])

More information

10/ / /30 3. ( ) 11/ 6 4. UNIX + C socket 11/13 5. ( ) C 11/20 6. http, CGI Perl 11/27 7. ( ) Perl 12/ 4 8. Windows Winsock 12/11 9. JAV

10/ / /30 3. ( ) 11/ 6 4. UNIX + C socket 11/13 5. ( ) C 11/20 6. http, CGI Perl 11/27 7. ( ) Perl 12/ 4 8. Windows Winsock 12/11 9. JAV tutimura@mist.i.u-tokyo.ac.jp kaneko@ipl.t.u-tokyo.ac.jp http://www.misojiro.t.u-tokyo.ac.jp/ tutimura/sem3/ 2002 12 11 p.1/33 10/16 1. 10/23 2. 10/30 3. ( ) 11/ 6 4. UNIX + C socket 11/13 5. ( ) C 11/20

More information

ProVAL Recent Projects, ProVAL Online 3 Recent Projects ProVAL Online Show Online Content on the Start Page Page 13

ProVAL Recent Projects, ProVAL Online 3 Recent Projects ProVAL Online Show Online Content on the Start Page Page 13 ProVAL Unit System Enable Recording Log Preferred Language Default File Type Default Project Path ProVAL : Unit SystemUse SI Units SI SI USCS Enable Recording Log Language Default File Type Default Project

More information

2.2 Sage I 11 factor Sage Sage exit quit 1 sage : exit 2 Exiting Sage ( CPU time 0m0.06s, Wall time 2m8.71 s). 2.2 Sage Python Sage 1. Sage.sage 2. sa

2.2 Sage I 11 factor Sage Sage exit quit 1 sage : exit 2 Exiting Sage ( CPU time 0m0.06s, Wall time 2m8.71 s). 2.2 Sage Python Sage 1. Sage.sage 2. sa I 2017 11 1 SageMath SageMath( Sage ) Sage Python Sage Python Sage Maxima Maxima Sage Sage Sage Linux, Mac, Windows *1 2 Sage Sage 4 1. ( sage CUI) 2. Sage ( sage.sage ) 3. Sage ( notebook() ) 4. Sage

More information

Isogai, T., Building a dynamic correlation network for fat-tailed financial asset returns, Applied Network Science (7):-24, 206,

Isogai, T., Building a dynamic correlation network for fat-tailed financial asset returns, Applied Network Science (7):-24, 206, H28. (TMU) 206 8 29 / 34 2 3 4 5 6 Isogai, T., Building a dynamic correlation network for fat-tailed financial asset returns, Applied Network Science (7):-24, 206, http://link.springer.com/article/0.007/s409-06-0008-x

More information

6 4 45 7ZS 5 59 7 8 94 05 4 5 6 4 5 5 6 8 8 40 45 48 56 60 64 66 66 68 7 78 80 8 7 8 0 0 0 90 0 57 64 69 66 66 69 0 4 4 4 4 4 0 7 48 5 4 4 5 4 4 4 7 46 46 6 46 8 46 48 46 46 4 46 46 4 4 5 4 6 4 9 9 0

More information

(STL) STL 1 (deta structure) (algorithm) (deta structure) 2 STL STL (Standard Template Library) 2.1 STL STL ( ) vector<int> x; for(int i = 0; i < 10;

(STL) STL 1 (deta structure) (algorithm) (deta structure) 2 STL STL (Standard Template Library) 2.1 STL STL ( ) vector<int> x; for(int i = 0; i < 10; (STL) STL 1 (deta structure) (algorithm) (deta structure) 2 STL STL (Standard Template Library) 2.1 STL STL ( ) vector x; for(int i = 0; i < 10; ++i) x.push_back(i); vector STL x.push_back(i) STL

More information

AN 100: ISPを使用するためのガイドライン

AN 100: ISPを使用するためのガイドライン ISP AN 100: In-System Programmability Guidelines 1998 8 ver.1.01 Application Note 100 ISP Altera Corporation Page 1 A-AN-100-01.01/J VCCINT VCCINT VCCINT Page 2 Altera Corporation IEEE Std. 1149.1 TCK

More information

2

2 8 26 38 37Z800042Z800047Z8000 54 65 72 83 101 2 3 4 7 101 53 27 33 7 8 9 5 7 9 22 47 72 8 8 8 8 102 8 13 7 7 7 65 10 67 67 13 71 40 67 67 67 67 43 67 12 55 55 11 104 8 24 26 24 20 25 6 1 2 3 18 46 101

More information

1.3 ( ) ( ) C

1.3 ( ) ( ) C 1 1.1 (Data Base) (Container) C++ Java 1.2 1 1.3 ( ) ( ) 1. 2. 3. C++ 2 2.1 2.2 2.3 2 C Fortran C++ Java 3 3.1 (Vector) 1. 2. ( ) 3.2 3 3.3 C++ C++ STL C++ (Template) vector vector< > ; int arrayint vector

More information

19_22_26R9000操作編ブック.indb

19_22_26R9000操作編ブック.indb 8 19R900022R900026R9000 25 34 44 57 67 2 3 4 10 37 45 45 18 11 67 25 34 39 26 32 43 7 67 7 8 7 9 8 5 7 9 21 18 19 8 8 70 8 19 7 7 7 45 10 47 47 12 47 11 47 36 47 47 36 47 47 24 35 8 8 23 12 25 23 OPEN

More information

BW BW

BW BW Induced Sorting BW 11T2042B 2015 3 23 1 1 1.1................................ 1 1.2................................... 1 2 BW 1 2.1..................................... 2 2.2 BW.................................

More information

RR-US470 (RQCA1588).indd

RR-US470 (RQCA1588).indd RR-US470 Panasonic Corporation 2006 2 3 4 http://www.sense.panasonic.co.jp/ 1 2 3 ( ) ZOOM 5 6 7 8 9 10 4 2 1 3 4 2 3 1 3 11 12 1 4 2 5 3 1 2 13 14 q φ φ 1 2 3 4 3 1 2 3 4 2 3 15 16 1 2 3 [/]p/o 17 1 2

More information

fp.gby

fp.gby 1 1 2 2 3 2 4 5 6 7 8 9 10 11 Haskell 12 13 Haskell 14 15 ( ) 16 ) 30 17 static 18 (IORef) 19 20 OK NG 21 Haskell (+) :: Num a => a -> a -> a sort :: Ord a => [a] -> [a] delete :: Eq a => a -> [a] -> [a]

More information

ydkr_manu_v12.PDF

ydkr_manu_v12.PDF Yadokari-XG Ver. 1.2. 2002/02/22 4 Yadokari-XG c: ydkr elements.dat sg.dat sym.dat sym2.dat ydkr.exe ydkr.ini ysg.exe ortep3.exeortep-3 ntserver.exeortep-3 grfont.datortep-3 Yadokari-XG SHELX PATH c: windows

More information

5 30 B36B3 4 5 56 6 7 3 4 39 4 69 5 56 56 60 5 8 3 33 38 45 45 7 8 4 33 5 6 8 8 8 57 60 8 3 3 45 45 8 9 4 4 43 43 43 43 4 3 43 8 3 3 7 6 8 33 43 7 8 43 40 3 4 5 9 6 4 5 56 34 6 6 6 6 7 3 3 3 55 40 55

More information

LC-24_22_19K30.indb

LC-24_22_19K30.indb L C -24K 30 L C -22K 30 L C -19K 30 http://www.sharp.co.jp/support/aquos/ 2 3 4 5 6 7 8 LC-24K30 9 10 11 12 LC-24K30 8 10 PM 11 12 9 PM 13 10 PM 14 11 15 PM 16 0 17 AM 1 3 101 103 00 00 30 50 00 00 00

More information

6 2 s µ µµµ µµµµ µ µ h µs µ µµµµ µ µ µ s mµµµµµ µµµ µµ µ u m µmµµµµµ µµ µ µ µ µ µ µ µ µ s 1

6 2 s µ µµµ µµµµ µ µ h µs µ µµµµ µ µ µ s mµµµµµ µµµ µµ µ u m µmµµµµµ µµ µ µ µ µ µ µ µ µ s 1 6 1 6 (1) (2) HTML (3) PDF Copy&Paste 1 Web 1 Web Web 1 Web HTML 6 2 s µ µµµ µµµµ µ µ h µs µ µµµµ µ µ µ s mµµµµµ µµµ µµ µ u m µmµµµµµ µµ µ µ µ µ µ µ µ µ s 1 6 3 1.1 HTML Web HTML(Hyper Text Markup Language)

More information

WinHPC ppt

WinHPC ppt MPI.NET C# 2 2009 1 20 MPI.NET MPI.NET C# MPI.NET C# MPI MPI.NET 1 1 MPI.NET C# Hello World MPI.NET.NET Framework.NET C# API C# Microsoft.NET java.net (Visual Basic.NET Visual C++) C# class Helloworld

More information

XMPによる並列化実装2

XMPによる並列化実装2 2 3 C Fortran Exercise 1 Exercise 2 Serial init.c init.f90 XMP xmp_init.c xmp_init.f90 Serial laplace.c laplace.f90 XMP xmp_laplace.c xmp_laplace.f90 #include int a[10]; program init integer

More information

Introduction Purpose The course describes library configuration and usage in the High Performance Embedded Workshop (HEW), which speeds development of

Introduction Purpose The course describes library configuration and usage in the High Performance Embedded Workshop (HEW), which speeds development of Introduction Purpose The course describes library configuration and usage in the High Performance Embedded Workshop (HEW), which speeds development of software for embedded systems. Objectives Learn the

More information

10-C.._241_266_.Z

10-C.._241_266_.Z Windows 10 1 2 3 4 5 Visual Studio 2008LINQ MySchedule 242 Microsoft Visual C# 2008 10 Windows 243 1 LINQIEnumerableXML LINQ to Object q Form1.cs w RefreshListBox private void RefreshListBox() schedulelistbox.items.clear();

More information

. IDE JIVE[1][] Eclipse Java ( 1) Java Platform Debugger Architecture [5] 3. Eclipse GUI JIVE 3.1 Eclipse ( ) 1 JIVE Java [3] IDE c 016 Information Pr

. IDE JIVE[1][] Eclipse Java ( 1) Java Platform Debugger Architecture [5] 3. Eclipse GUI JIVE 3.1 Eclipse ( ) 1 JIVE Java [3] IDE c 016 Information Pr Eclipse 1,a) 1,b) 1,c) ( IDE) IDE Graphical User Interface( GUI) GUI GUI IDE View Eclipse Development of Eclipse Plug-in to present an Object Diagram to Debug Environment Kubota Yoshihiko 1,a) Yamazaki

More information