fix: restore curve declaration after duplicate removal
This commit is contained in:
@@ -334,6 +334,7 @@ BrepModel fillet(const BrepModel& body, int edge_id, double radius) {
|
||||
}
|
||||
if (face_b < 0) return body; // No adjacent face found
|
||||
|
||||
const auto& curve = *edge.curve;
|
||||
// Compute face normals
|
||||
Vector3D n_a = compute_face_normal(body, face_a);
|
||||
Vector3D n_b = compute_face_normal(body, face_b);
|
||||
|
||||
@@ -393,26 +393,7 @@ static int to_ref(const StepValue& v) { return (v.type == StepValue::Type::Ref)
|
||||
|
||||
static bool is_omitted(const StepValue& v) { return v.type == StepValue::Type::Omitted; }
|
||||
|
||||
// ─────────────────────────────────────────────────────────────
|
||||
// AXIS2_PLACEMENT_3D → coordinate frame
|
||||
// ─────────────────────────────────────────────────────────────
|
||||
struct Placement3D {
|
||||
Point3D origin = Point3D(0, 0, 0);
|
||||
Vector3D axis = Vector3D(0, 0, 1); // Z-axis (primary)
|
||||
Vector3D ref_dir = Vector3D(1, 0, 0); // X-axis (secondary, optional)
|
||||
};
|
||||
|
||||
static Placement3D decode_axis2_placement_3d(const StepEntity& ent) {
|
||||
Placement3D p;
|
||||
// Args: name, location (CARTESIAN_POINT ref), axis (DIRECTION ref, optional), ref_direction (DIRECTION ref, optional)
|
||||
if (ent.args.size() >= 2) {
|
||||
p.origin = to_point({}); // will be resolved later via reference
|
||||
// Store refs for later resolution
|
||||
}
|
||||
return p;
|
||||
}
|
||||
|
||||
// For internal use: we store placement's refs
|
||||
// For internal use: we store placement's reference frame
|
||||
struct ResolvedPlacement {
|
||||
Point3D origin = Point3D(0, 0, 0);
|
||||
Vector3D z_axis = Vector3D(0, 0, 1);
|
||||
|
||||
Reference in New Issue
Block a user