void GizmoType::Draw() { std::for_each(operations[currentOperations].begin(), operations[currentOperations].end(), [&](GizmoOperation::Ptr op){ // Configure material // Set Colour material->diffuse = op->colour; // Set Transformation Properties if (material->Enable(ExtractTransform(op))) { // Draw if the last draw was ok // OR if the last draw of this mesh was not ok, but the material has been refreshed, so we can try again. if (mesh->DrawOk() || (!mesh->DrawOk() && material->HasRefreshed())) { mesh->Draw(); } } material->Disable(); op->MarkRendered(); //TODO: Draw Spheres using instancing }); // Done. }
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); }
void SetCamera(object transform, float focalDistance) { _pviewer->SetCamera(ExtractTransform(transform),focalDistance); }
void SetCamera(object transform) { _pviewer->SetCamera(ExtractTransform(transform)); }