v0.1.0: 初始工程骨架 — 7模块 40头文件 32源文件 17文档 Apache-2.0

This commit is contained in:
ViewDesignEngine
2026-07-23 05:27:51 +00:00
commit 02d0520aa5
133 changed files with 5350 additions and 0 deletions
+2
View File
@@ -0,0 +1,2 @@
add_vde_test(test_bezier)
add_vde_test(test_nurbs)
+18
View File
@@ -0,0 +1,18 @@
#include <gtest/gtest.h>
#include "vde/curves/bezier_curve.h"
using namespace vde::curves;
TEST(BezierTest, Linear_EvaluateAtMidpoint) {
BezierCurve curve({Point3D(0,0,0), Point3D(2,0,0)});
Point3D p = curve.evaluate(0.5);
EXPECT_NEAR(p.x(), 1.0, 1e-6);
}
TEST(BezierTest, Quadratic_EvaluateAtEndpoints) {
BezierCurve curve({Point3D(0,0,0), Point3D(1,1,0), Point3D(2,0,0)});
Point3D p0 = curve.evaluate(0.0);
Point3D p1 = curve.evaluate(1.0);
EXPECT_NEAR((p0 - Point3D(0,0,0)).norm(), 0.0, 1e-6);
EXPECT_NEAR((p1 - Point3D(2,0,0)).norm(), 0.0, 1e-6);
}
+16
View File
@@ -0,0 +1,16 @@
#include <gtest/gtest.h>
#include "vde/curves/nurbs_curve.h"
using namespace vde::curves;
TEST(NurbsTest, BSpline_UnitWeight) {
// 3 control points, degree 2, uniform knots
NurbsCurve curve(
{Point3D(0,0,0), Point3D(1,2,0), Point3D(2,0,0)},
{0,0,0,1,1,1},
{1,1,1},
2
);
auto p = curve.evaluate(0.5);
EXPECT_NEAR(p.y(), 1.0, 0.1); // Should peak near y=1
}