feat: Implement circle drawing tool
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
#include "SketchCircle.h"
|
||||
#include <QJsonArray>
|
||||
|
||||
namespace
|
||||
{
|
||||
void pointToJson(const gp_Pnt& p, QJsonArray& arr)
|
||||
{
|
||||
arr.append(p.X());
|
||||
arr.append(p.Y());
|
||||
arr.append(p.Z());
|
||||
}
|
||||
|
||||
gp_Pnt jsonToPoint(const QJsonArray& arr)
|
||||
{
|
||||
return gp_Pnt(arr[0].toDouble(), arr[1].toDouble(), arr[2].toDouble());
|
||||
}
|
||||
}
|
||||
|
||||
SketchCircle::SketchCircle() : m_radius(0.0)
|
||||
{
|
||||
}
|
||||
|
||||
SketchCircle::SketchCircle(const gp_Pnt& center, double radius)
|
||||
: m_center(center), m_radius(radius)
|
||||
{
|
||||
}
|
||||
|
||||
SketchObject::ObjectType SketchCircle::type() const
|
||||
{
|
||||
return ObjectType::Circle;
|
||||
}
|
||||
|
||||
void SketchCircle::read(const QJsonObject& json)
|
||||
{
|
||||
m_center = jsonToPoint(json["center"].toArray());
|
||||
m_radius = json["radius"].toDouble();
|
||||
}
|
||||
|
||||
void SketchCircle::write(QJsonObject& json) const
|
||||
{
|
||||
QJsonArray centerArr;
|
||||
pointToJson(m_center, centerArr);
|
||||
json["center"] = centerArr;
|
||||
json["radius"] = m_radius;
|
||||
json["type"] = "Circle";
|
||||
}
|
||||
|
||||
const gp_Pnt& SketchCircle::center() const
|
||||
{
|
||||
return m_center;
|
||||
}
|
||||
|
||||
double SketchCircle::radius() const
|
||||
{
|
||||
return m_radius;
|
||||
}
|
||||
Reference in New Issue
Block a user