/* TODO - Need to find a more compact, efficient way to * do this - shouldn't need 24 3d curves... */ ON_Brep * Cobb_Sphere(double UNUSED(radius), ON_3dPoint *UNUSED(origin)) { ON_Brep *b = ON_Brep::New(); // Patch 1 of 6 ON_BezierSurface *b1 = ON_CobbSphereFace(0, 0); ON_NurbsSurface *p1_nurb = ON_NurbsSurface::New(); b1->GetNurbForm(*p1_nurb); b->NewFace(*p1_nurb); // Patch 2 of 6 ON_BezierSurface *b2 = ON_CobbSphereFace(90, 0); ON_NurbsSurface *p2_nurb = ON_NurbsSurface::New(); b2->GetNurbForm(*p2_nurb); b->NewFace(*p2_nurb); // Patch 3 of 6 ON_BezierSurface *b3 = ON_CobbSphereFace(180, 0); ON_NurbsSurface *p3_nurb = ON_NurbsSurface::New(); b3->GetNurbForm(*p3_nurb); b->NewFace(*p3_nurb); // Patch 4 of 6 ON_BezierSurface *b4 = ON_CobbSphereFace(270, 0); ON_NurbsSurface *p4_nurb = ON_NurbsSurface::New(); b4->GetNurbForm(*p4_nurb); b->NewFace(*p4_nurb); // Patch 5 of 6 ON_BezierSurface *b5 = ON_CobbSphereFace(90, 90); ON_NurbsSurface *p5_nurb = ON_NurbsSurface::New(); b5->GetNurbForm(*p5_nurb); b->NewFace(*p5_nurb); // Patch 6 of 6 ON_BezierSurface *b6 = ON_CobbSphereFace(90, 270); ON_NurbsSurface *p6_nurb = ON_NurbsSurface::New(); b6->GetNurbForm(*p6_nurb); b->NewFace(*p6_nurb); b->Standardize(); b->Compact(); return b; }