object Check(object oq0, object oq1, object odq0, object odq1, dReal timeelapsed, IntervalType interval=IT_Closed, uint32_t options=0xffff, bool filterreturn=false)//, ConstraintFilterReturnPtr filterreturn = ConstraintFilterReturnPtr()) { std::vector<dReal> q0 = ExtractArray<dReal>(oq0); std::vector<dReal> q1 = ExtractArray<dReal>(oq1); std::vector<dReal> dq0 = ExtractArray<dReal>(odq0); std::vector<dReal> dq1 = ExtractArray<dReal>(odq1); if( filterreturn ) { ConstraintFilterReturnPtr pfilterreturn(new ConstraintFilterReturn()); _pconstraints->Check(q0, q1, dq0, dq1, timeelapsed, interval, options, pfilterreturn); boost::python::dict ofilterreturn; ofilterreturn["configurations"] = toPyArray(pfilterreturn->_configurations); ofilterreturn["configurationtimes"] = toPyArray(pfilterreturn->_configurationtimes); ofilterreturn["invalidvalues"] = toPyArray(pfilterreturn->_invalidvalues); ofilterreturn["invalidvelocities"] = toPyArray(pfilterreturn->_invalidvelocities); ofilterreturn["fTimeWhenInvalid"] = pfilterreturn->_fTimeWhenInvalid; ofilterreturn["returncode"] = pfilterreturn->_returncode; ofilterreturn["reportstr"] = pfilterreturn->_report.__str__(); return ofilterreturn; } else { return object(_pconstraints->Check(q0, q1, dq0, dq1, timeelapsed, interval, options)); } }
object GetCameraImage(int width, int height, object extrinsic, object oKK) { vector<float> vKK = ExtractArray<float>(oKK); if( vKK.size() != 4 ) { throw openrave_exception("KK needs to be of size 4"); } SensorBase::CameraIntrinsics KK(vKK[0],vKK[1],vKK[2],vKK[3]); vector<uint8_t> memory; if( !_pviewer->GetCameraImage(memory, width,height,RaveTransform<float>(ExtractTransform(extrinsic)), KK) ) { throw openrave_exception("failed to get camera image"); } std::vector<npy_intp> dims(3); dims[0] = height; dims[1] = width; dims[2] = 3; return toPyArray(memory,dims); }