Пример #1
0
	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));
 }