v0.1.0: 初始工程骨架 — 7模块 40头文件 32源文件 17文档 Apache-2.0
This commit is contained in:
@@ -0,0 +1,2 @@
|
||||
add_vde_test(test_bezier)
|
||||
add_vde_test(test_nurbs)
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
Reference in New Issue
Block a user