Changeset 20404
- Timestamp:
- 06/30/07 10:02:43 (1 year ago)
- Files:
-
- PyJuggler/trunk/ChangeLog (modified) (1 diff)
- PyJuggler/trunk/configure.ac (modified) (1 diff)
- PyJuggler/trunk/dist/__init__.py (modified) (1 diff)
- PyJuggler/trunk/src/vrj/_CameraProjection.cpp (modified) (3 diffs)
- PyJuggler/trunk/src/vrj/_Display.cpp (modified) (2 diffs)
- PyJuggler/trunk/src/vrj/_Frustum.cpp (modified) (3 diffs)
- PyJuggler/trunk/src/vrj/_Kernel.cpp (modified) (5 diffs)
- PyJuggler/trunk/src/vrj/_Projection.cpp (modified) (5 diffs)
- PyJuggler/trunk/src/vrj/_SimViewport.cpp (modified) (3 diffs)
- PyJuggler/trunk/src/vrj/_User.cpp (modified) (4 diffs)
- PyJuggler/trunk/src/vrj/_Viewport.cpp (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
PyJuggler/trunk/ChangeLog
r20403 r20404 1 1 DATE AUTHOR CHANGE 2 2 ----------- ----------- ------------------------------------------------------- 3 Jun-30-2007 patrick Updated for VR Juggler 2.3.4 and exposed 4 vrj::Kernel::init(). 5 NEW VERSION: 1.3.2 3 6 Jun-30-2007 patrick Updated for Gadgeteer 1.3.9. 4 7 NEW VERSION: 1.3.1 PyJuggler/trunk/configure.ac
r20403 r20404 416 416 GADGETEER_PATH([1.3.9], , 417 417 [AC_MSG_ERROR([*** Gadgeteer is required for PyJuggler ***])]) 418 VRJUGGLER_PATH([2. 1.21], ,418 VRJUGGLER_PATH([2.3.4], , 419 419 [AC_MSG_ERROR([*** VR Juggler is required for PyJuggler ***])]) 420 420 PyJuggler/trunk/dist/__init__.py
r20403 r20404 6 6 __all__ = ["vrj", "cluster", "gadget", "snx", "jccl", "vpr"] 7 7 __build__ = 1 8 __version__ = '1.3. 1.%d' % __build__8 __version__ = '1.3.2.%d' % __build__ 9 9 __date__ = string.join(string.split('$Date$')[1:3], ' ') 10 10 __author__ = 'Patrick Hartling <patrick@infiscape.com>' PyJuggler/trunk/src/vrj/_CameraProjection.cpp
r19730 r20404 21 21 , wrapper<vrj::CameraProjection> 22 22 { 23 vrj_CameraProjection_Wrapper(const vrj::CameraProjection& p0)24 : vrj::CameraProjection(p0)25 {26 /* Do nothing. */ ;27 }28 29 23 vrj_CameraProjection_Wrapper() 30 24 : vrj::CameraProjection() … … 69 63 void _Export_CameraProjection() 70 64 { 71 class_<pyj::vrj_CameraProjection_Wrapper, bases<vrj::Projection> > 65 class_<pyj::vrj_CameraProjection_Wrapper, vrj::CameraProjectionPtr, 66 bases<vrj::Projection>, boost::noncopyable> 72 67 ("CameraProjection", 73 68 "Projection class that simply takes a matrix for the camera position.", 74 init<>()69 no_init 75 70 ) 76 .def(init<const vrj::CameraProjection&>()) 71 .def("create", &vrj::CameraProjection::create, 72 "create() -> vrj.CameraProjection\n" 73 "Creates a vrj.CameraProjection instance." 74 ) 77 75 .def_readwrite("mVertFOV", &vrj::CameraProjection::mVertFOV) 78 76 .def("calcViewMatrix", &vrj::CameraProjection::calcViewMatrix, … … 88 86 "scaleFactor -- The scaling factor." 89 87 ) 88 .staticmethod("create") 90 89 ; 91 90 } PyJuggler/trunk/src/vrj/_Display.cpp
r19942 r20404 56 56 ) 57 57 .def("getName", &vrj::Display::getName, 58 return_value_policy<copy_const_reference>(), 58 59 "getName() -> string object\n" 59 60 "Gets the name of this display window." … … 77 78 ) 78 79 .def("getViewport", &vrj::Display::getViewport, 79 return_internal_reference<1>(),80 80 "getViewport(vpNum) -> vrj.Viewport object\n" 81 81 "Returns the requested viewprot from this display window.\n\n" PyJuggler/trunk/src/vrj/_Frustum.cpp
r19730 r20404 10 10 #include <vrj/Display/Frustum.h> 11 11 #include <vrj-helpers.h> 12 #include <container_conversions.h> 12 13 13 14 // Using ======================================================================= … … 31 32 .def("setNearFar", &vrj::Frustum::setNearFar) 32 33 .def("set", &vrj::Frustum::set) 34 .def("getValues", &vrj::Frustum::getValues, 35 return_value_policy<copy_const_reference>()) 33 36 .def("__getitem__", 34 ( float& (vrj::Frustum::*)(int)) &vrj::Frustum::operator[],35 return_value_policy<copy_ non_const_reference>())37 (const float& (vrj::Frustum::*)(unsigned int) const) &vrj::Frustum::operator[], 38 return_value_policy<copy_const_reference>()) 36 39 // .def(self_ns::str(self)) 37 40 ); … … 47 50 48 51 delete vrj_Frustum_scope; 52 53 pyj::copyable_to_python<std::vector<float>, tuple>(); 49 54 } PyJuggler/trunk/src/vrj/_Kernel.cpp
r19730 r20404 120 120 } 121 121 }; 122 123 void vrj_Kernel_init(vrj::Kernel* kernel, list pythonArgv) 124 { 125 const int orig_len = extract<int>(pythonArgv.attr("__len__")()); 126 int argc = orig_len; 127 std::vector<char*> argv(argc); 128 129 for ( int i = 0; i < argc; ++i ) 130 { 131 argv[i] = extract<char*>(pythonArgv[i]); 132 } 133 134 kernel->init(argc, &argv[0]); 135 136 // vrj::Kernel::init() may have removed items from argv by relocating them 137 // to the range [argc,orig_len) within argv. We need to remove each of 138 // those values from pythonArgv. 139 for ( int i = argc; argc < orig_len; ++i ) 140 { 141 pythonArgv.remove(argv[i]); 142 } 143 } 122 144 123 145 void vrj_Kernel_waitForKernelStop(vrj::Kernel* kernel) … … 153 175 "Inherited from jccl.ConfigElementHandler and not overridden." 154 176 ) 177 .def("init", &pyj::vrj_Kernel_init, 178 "init(list)\n" 179 "Parses command line arguments." 180 ) 155 181 .def("start", &vrj::Kernel::start, 156 182 "start()\n" … … 204 230 ) 205 231 .def("getUser", &vrj::Kernel::getUser, 206 return_internal_reference<1>(),207 232 "getUser(userName) -> vrj.User object\n" 208 233 "Gets the user associated with the given name.\n\n" … … 211 236 ) 212 237 .def("getUsers", &vrj::Kernel::getUsers, 238 return_value_policy<copy_const_reference>(), 213 239 "getUsers() -> vrj.UserVec object (indexable container)\n" 214 240 "Returns an indexable container of all the users." … … 222 248 ; 223 249 224 class_< std::vector<vrj::User *> >("UserVec",250 class_< std::vector<vrj::UserPtr> >("UserVec", 225 251 "An indexable container of vrj.User objects." 226 252 ) 227 .def(vector_indexing_suite< std::vector<vrj::User *> >())253 .def(vector_indexing_suite< std::vector<vrj::UserPtr> >()) 228 254 ; 229 255 } PyJuggler/trunk/src/vrj/_Projection.cpp
r19730 r20404 21 21 vrj_Projection_Wrapper() 22 22 : vrj::Projection() 23 {24 /* Do nothing. */ ;25 }26 27 vrj_Projection_Wrapper(const vrj::Projection& p0)28 : vrj::Projection(p0)29 23 { 30 24 /* Do nothing. */ ; … … 63 57 { 64 58 scope* vrj_Projection_scope = new scope( 65 class_<pyj::vrj_Projection_Wrapper, boost::noncopyable>59 class_<pyj::vrj_Projection_Wrapper, vrj::ProjectionPtr, boost::noncopyable> 66 60 ("Projection", 67 61 "Abstract base class for viewport definitions. This class is\n" … … 70 64 "for other classes that actually compute the projections." 71 65 , 72 init<>()66 no_init 73 67 ) 74 68 .def("calcViewMatrix", pure_virtual(&vrj::Projection::calcViewMatrix), … … 88 82 ) 89 83 .def("getViewport", &vrj::Projection::getViewport, 90 return_internal_reference<1>(),91 84 "getViewport() -> vrj.Viewport object\n" 92 85 "Returns the viewport associated with this projection." … … 119 112 ) 120 113 .def("getFrustum", &vrj::Projection::getFrustum, 114 return_value_policy<copy_const_reference>(), 121 115 "getFrustum() -> vrj.Frustum object\n" 122 116 "Returns a copy of this projection's frustum." PyJuggler/trunk/src/vrj/_SimViewport.cpp
r19942 r20404 23 23 vrj_SimViewport_Wrapper() 24 24 : vrj::SimViewport() 25 {26 /* Do nothing. */ ;27 }28 29 vrj_SimViewport_Wrapper(const vrj::SimViewport& p0)30 : vrj::SimViewport(p0)31 25 { 32 26 /* Do nothing. */ ; … … 77 71 void _Export_SimViewport() 78 72 { 79 class_<pyj::vrj_SimViewport_Wrapper, bases<vrj::Viewport> > 80 ("SimViewport", init<>()) 81 .def(init<const vrj::SimViewport&>()) 73 class_<pyj::vrj_SimViewport_Wrapper, vrj::SimViewportPtr, 74 bases<vrj::Viewport>, boost::noncopyable> 75 ("SimViewport", no_init) 76 .def("create", &vrj::SimViewport::create, 77 "create() -> vrj.SimViewport\n" 78 "Creates a SimViewport instance." 79 ) 82 80 .def("updateProjections", &vrj::SimViewport::updateProjections, 83 81 &pyj::vrj_SimViewport_Wrapper::default_updateProjections, … … 90 88 ) 91 89 .def("getDrawSimInterface", &vrj::SimViewport::getDrawSimInterface) 90 .staticmethod("create") 92 91 ; 93 92 } PyJuggler/trunk/src/vrj/_User.cpp
r19730 r20404 13 13 using namespace boost::python; 14 14 15 // Declarations ================================================================16 namespace pyj17 {18 19 struct vrj_User_Wrapper : vrj::User, wrapper<vrj::User>20 {21 vrj_User_Wrapper()22 : vrj::User()23 {24 /* Do nothing. */ ;25 }26 27 virtual ~vrj_User_Wrapper()28 {29 /* Do nothing. */ ;30 }31 };32 33 }// namespace34 35 15 36 16 // Module ====================================================================== 37 17 void _Export_User() 38 18 { 39 class_< pyj::vrj_User_Wrapper, boost::noncopyable>("User",19 class_<vrj::User, vrj::UserPtr, boost::noncopyable>("User", 40 20 "Representation for Juggler user in multi-user environments.\n\n" 41 21 "Each user has a system-assigned ID as well as a string name from\n" … … 47 27 "data such as navigation matrices or input devices." 48 28 , 49 init<>() 29 no_init 30 ) 31 .def("create", &vrj::User::create, 32 "create() -> vrj.User\n" 33 "Creates a vrj.User instance." 50 34 ) 51 35 .def("getId", &vrj::User::getId, … … 56 40 ) 57 41 .def("getName", &vrj::User::getName, 42 return_value_policy<copy_const_reference>(), 58 43 "getName() -> string object\n" 59 44 "Returns the name of thss user object." 45 ) 46 .def("getHeadPosProxy", &vrj::User::getHeadPosProxy 60 47 ) 61 48 .def("getHeadUpdateTime", &vrj::User::getHeadUpdateTime, … … 67 54 "Gets the eye separation." 68 55 ) 56 .staticmethod("create") 69 57 ; 70 58 } PyJuggler/trunk/src/vrj/_Viewport.cpp
r19942 r20404 24 24 vrj_Viewport_Wrapper() 25 25 : vrj::Viewport() 26 {27 /* Do nothing. */ ;28 }29 30 vrj_Viewport_Wrapper(const vrj::Viewport& p0)31 : vrj::Viewport(p0)32 26 { 33 27 /* Do nothing. */ ; … … 66 60 { 67 61 scope* vrj_Viewport_scope = new scope( 68 class_<pyj::vrj_Viewport_Wrapper, boost::noncopyable>62 class_<pyj::vrj_Viewport_Wrapper, vrj::ViewportPtr, boost::noncopyable> 69 63 ("Viewport", 70 64 "Base class for window viewports and all viewport data. This\n" 71 65 "stores projection data, viewport info, and relevant user." 72 66 , 73 init<>()67 no_init 74 68 ) 75 69 .def("updateProjections", … … 118 112 ) 119 113 .def("getUser", &vrj::Viewport::getUser, 120 return_internal_reference<1>(),121 114 "getUser() -> vrj.User object\n" 122 115 "Gets the user associated with this viewport." … … 127 120 ) 128 121 .def("getLeftProj", &vrj::Viewport::getLeftProj, 129 return_internal_reference<1>(),130 122 "getLeftProj() -> vrj.Projection object\n" 131 123 "Gets the left projection." 132 124 ) 133 125 .def("getRightProj", &vrj::Viewport::getRightProj, 134 return_internal_reference<1>(),135 126 "getRightProj() -> vrj.Projection object\n" 136 127 "Gets the right projection."
