public DesignPlane(ref Scene scene, XYZPlanes axis, int s = 240) { mScene = scene; size = s; type = axis; mesh_m = new Material.SingleColorMaterial(0, 0, 0, 0.0f); switch (type) { //Rhino space case XYZPlanes.YZ: // Platform-space x-axis, yz-plane ((Material.SingleColorMaterial)mesh_m).mColor.R = .5f; break; case XYZPlanes.XZ: // Platform-space y-axis, xz-plane ((Material.SingleColorMaterial)mesh_m).mColor.G = .5f; break; case XYZPlanes.XY: // Platform-space z-axis, xy-plane ((Material.SingleColorMaterial)mesh_m).mColor.B = .5f; break; } origin = new Point3d(0, 0, 0); createPlaneBrep(); }
public SceneNode(string _name) { name = _name; geometry = null; material = null; guid = Guid.NewGuid(); mRenderLate = false; }
public SceneNode(string _name, ref Geometry.Geometry g, ref Material.Material m, bool renderLate = false) { name = _name; geometry = g; material = m; guid = Guid.NewGuid(); mRenderLate = renderLate; }
public bool init() { // Set up HMD EVRInitError eError = EVRInitError.None; mHMD = OpenVR.Init(ref eError, EVRApplicationType.VRApplication_Scene); if (eError == EVRInitError.None) { Rhino.RhinoApp.WriteLine("Booted VR System"); renderPoseArray = new TrackedDevicePose_t[Valve.VR.OpenVR.k_unMaxTrackedDeviceCount]; gamePoseArray = new TrackedDevicePose_t[Valve.VR.OpenVR.k_unMaxTrackedDeviceCount]; } else { Rhino.RhinoApp.WriteLine("Failed to boot"); mTitleBase = "SparrowHawk (No VR Detected)"; } // // THIS IS FOR UNCLIPPED // Width = 864; // Height = 820; // THIS IS FOR CLIPPED RECTANGLE Width = 691; Height = 692; // Window Setup Info mStrDriver = UtilOld.GetTrackedDeviceString(ref mHMD, OpenVR.k_unTrackedDeviceIndex_Hmd, ETrackedDeviceProperty.Prop_TrackingSystemName_String); mStrDisplay = UtilOld.GetTrackedDeviceString(ref mHMD, OpenVR.k_unTrackedDeviceIndex_Hmd, ETrackedDeviceProperty.Prop_SerialNumber_String); mTitleBase = "SparrowHawk - " + mStrDriver + " " + mStrDisplay; Title = mTitleBase; MakeCurrent(); setupScene(); if (eError == EVRInitError.None) { mRenderer = new VrRenderer(ref mHMD, ref mScene, mRenderWidth, mRenderHeight); } else { mRenderer = new VrRenderer(ref mHMD, ref mScene, mRenderWidth, mRenderHeight); } //use other 8 points for calibrartion robotCallibrationPointsTest.Add(new Vector3(22, 15, -100) / 1000); robotCallibrationPointsTest.Add(new Vector3(-10, 40, -153) / 1000); robotCallibrationPointsTest.Add(new Vector3(25, -25, -181) / 1000); foreach (Vector3 v in robotCallibrationPointsTest) { Vector4 v4 = new Vector4(v.X, v.Y, v.Z, 1); v4 = mScene.vrToRobot.Inverted() * v4; UtilOld.MarkPoint(ref mScene.staticGeometry, new Vector3(v4.X, v4.Y, v4.Z), 1, 1, 1); } robotCallibrationPointsTest.Clear(); //set default matrix if (mRenderer.ovrvision_controller != null) { mRenderer.ovrvision_controller.setDefaultMatrixHC(); } //detecting whether users in control or left Rhino.DocObjects.ObjectAttributes attr = new Rhino.DocObjects.ObjectAttributes(); attr.Name = "user:out"; Point3d userP = new Point3d(0, 0, 0); uGuid = mScene.rhinoDoc.Objects.AddPoint(userP, attr); //testing - rotate rhino object as well /* * Transform transM = new Transform(); * for (int row = 0; row < 4; row++) * { * for (int col = 0; col < 4; col++) * { * transM[row, col] = mScene.platformRotation[row, col]; * } * } * Rhino.DocObjects.ObjectEnumeratorSettings settings = new Rhino.DocObjects.ObjectEnumeratorSettings(); * settings.ObjectTypeFilter = Rhino.DocObjects.ObjectType.Brep; * foreach (Rhino.DocObjects.RhinoObject rhObj in mScene.rhinoDoc.Objects.GetObjectList(settings)) * { * mDoc.Objects.Transform(rhObj.Id, transM, true); * } * mScene.rhinoDoc.Views.Redraw(); */ //testing visualize printStroke printStroke = new Geometry.RobotPrintStroke(ref mScene); printStroke_m = new Material.SingleColorMaterial(1, 1, 0, 1.0f); return(eError == EVRInitError.None); }