public void ImportData(JSONObject json_data) { m_anchor_points = new List <BezierCurvePoint>(); BezierCurvePoint curve_point; JSONObject anchor_json; foreach (JSONValue anchor_data in json_data["ANCHORS_DATA"].Array) { anchor_json = anchor_data.Obj; curve_point = new BezierCurvePoint(); curve_point.m_anchor_point = anchor_json["m_anchor_point"].Obj.JSONtoVector3(); curve_point.m_handle_point = anchor_json["m_handle_point"].Obj.JSONtoVector3(); m_anchor_points.Add(curve_point); } }
void DrawCurvePoint(BezierCurvePoint curve_point, Vector3 position_offset, Vector3 scale, bool start_end_point, ref bool changed) { Vector3 handle_offset = curve_point.m_handle_point - curve_point.m_anchor_point; curve_point.m_anchor_point = Vector3.Scale(Handles.PositionHandle(Vector3.Scale(curve_point.m_anchor_point, scale) + position_offset, Quaternion.identity) - position_offset, new Vector3(1 / scale.x, 1 / scale.y, 1 / scale.z)); if (!changed && GUI.changed) { changed = true; curve_point.m_handle_point = curve_point.m_anchor_point + handle_offset; } curve_point.m_handle_point = Vector3.Scale(Handles.PositionHandle(Vector3.Scale(curve_point.m_handle_point, scale) + position_offset, Quaternion.identity) - position_offset, new Vector3(1 / scale.x, 1 / scale.y, 1 / scale.z)); Handles.color = Color.white; Handles.DrawLine(!start_end_point ? Vector3.Scale(curve_point.m_anchor_point, scale) + Vector3.Scale((curve_point.m_anchor_point - curve_point.m_handle_point), scale) + position_offset : Vector3.Scale(curve_point.m_anchor_point, scale) + position_offset, Vector3.Scale(curve_point.m_handle_point, scale) + position_offset); }
public void AddNewAnchor() { if (m_anchor_points == null || m_anchor_points.Count == 0) { m_anchor_points = new List <BezierCurvePoint>(); m_anchor_points.Add(new BezierCurvePoint() { m_anchor_point = new Vector3(-5, 0, 0), m_handle_point = new Vector3(-2.5f, 4f, 0) }); m_anchor_points.Add(new BezierCurvePoint() { m_anchor_point = new Vector3(5, 0, 0), m_handle_point = new Vector3(2.5f, 4f, 0) }); } else { BezierCurvePoint last_point = m_anchor_points[m_anchor_points.Count - 1]; m_anchor_points.Add(new BezierCurvePoint() { m_anchor_point = last_point.m_anchor_point + new Vector3(5, 0, 0), m_handle_point = last_point.m_handle_point + new Vector3(5, 0, 0) }); } }
private void DrawCurvePoint(BezierCurvePoint curve_point, Vector3 position_offset, Vector3 scale, bool start_end_point, ref bool changed) { var handle_offset = curve_point.m_handle_point - curve_point.m_anchor_point; curve_point.m_anchor_point = Vector3.Scale(Handles.PositionHandle(Vector3.Scale(curve_point.m_anchor_point, scale) + position_offset, Quaternion.identity) - position_offset, new Vector3(1 / scale.x, 1 / scale.y, 1 / scale.z)); if (!changed && GUI.changed) { changed = true; curve_point.m_handle_point = curve_point.m_anchor_point + handle_offset; } curve_point.m_handle_point = Vector3.Scale(Handles.PositionHandle(Vector3.Scale(curve_point.m_handle_point, scale) + position_offset, Quaternion.identity) - position_offset, new Vector3(1 / scale.x, 1 / scale.y, 1 / scale.z)); Handles.color = Color.white; Handles.DrawLine(!start_end_point ? Vector3.Scale(curve_point.m_anchor_point, scale) + Vector3.Scale((curve_point.m_anchor_point - curve_point.m_handle_point), scale) + position_offset : Vector3.Scale(curve_point.m_anchor_point, scale) + position_offset, Vector3.Scale(curve_point.m_handle_point, scale) + position_offset); }
public void ImportData(JSONObject json_data) { m_anchor_points = new List<BezierCurvePoint>(); BezierCurvePoint curve_point; JSONObject anchor_json; foreach (var anchor_data in json_data["ANCHORS_DATA"].Array) { anchor_json = anchor_data.Obj; curve_point = new BezierCurvePoint(); curve_point.m_anchor_point = anchor_json["m_anchor_point"].Obj.JSONtoVector3(); curve_point.m_handle_point = anchor_json["m_handle_point"].Obj.JSONtoVector3(); m_anchor_points.Add(curve_point); } }
public void SetBezierCurve(params Vector3[] curve_points) { m_progression_idx = CURVE_OPTION_INDEX; var bezier_curve = new TextFxBezierCurve(); bezier_curve.m_anchor_points = new List<BezierCurvePoint>(); BezierCurvePoint curve_point = null; var idx = 0; foreach (var point in curve_points) { if (idx % 2 == 0) { curve_point = new BezierCurvePoint(); curve_point.m_anchor_point = point; } else { curve_point.m_handle_point = point; bezier_curve.m_anchor_points.Add(curve_point); } idx++; } if (idx % 2 == 1) { curve_point.m_handle_point = curve_point.m_anchor_point; bezier_curve.m_anchor_points.Add(curve_point); } m_bezier_curve = bezier_curve; }