void update_grids() { if (grid_xy != null) { grid_xy.SafeUpdateLines((lines) => { lines.Segments.Clear(); generate_grid_lines(lines, Vector3f.AxisX, Vector3f.AxisY, axis_steps.x, axis_steps.y, step_size); }); } if (grid_yz != null) { grid_yz.SafeUpdateLines((lines) => { lines.Segments.Clear(); generate_grid_lines(lines, Vector3f.AxisY, Vector3f.AxisZ, axis_steps.y, axis_steps.z, step_size); }); } if (grid_xz != null) { grid_xz.SafeUpdateLines((lines) => { lines.Segments.Clear(); generate_grid_lines(lines, Vector3f.AxisX, Vector3f.AxisZ, axis_steps.x, axis_steps.z, step_size); }); } grids_valid = true; }
void update_circle_indicator(bool on_snap) { if (circle_indicator != null) { circle_indicator.SafeUpdateLines((lines) => { lines.Color.a = (on_snap) ? 1.0f : 0.5f; }); } }
void update_snap_indicator(float fAngle, bool on_snap) { Quaternionf planeRotation = new Quaternionf(Vector3f.AxisY, fAngle * MathUtil.Rad2Degf); Quaternionf alignAxisRotation = Quaternionf.FromTo(Vector3f.AxisY, Frame3f.Identity.GetAxis(nRotationAxis)); snap_indicator.SetLocalRotation(alignAxisRotation * planeRotation); snap_indicator.SafeUpdateLines((lines) => { lines.Color.a = (on_snap) ? 1.0f : 0.15f; }); }