41 namespace NekMeshUtils
45 "oce", CADCurveOCE::create,
"CADCurveOCE");
47 void CADCurveOCE::Initialise(
int i, TopoDS_Shape in)
49 m_occEdge = TopoDS::Edge(in);
52 BRepGProp::LinearProperties(m_occEdge, System);
53 m_length = System.Mass() / 1000.0;
56 m_c = BRep_Tool::Curve(TopoDS::Edge(in), m_b[0], m_b[1]);
63 GeomAdaptor_Curve c(m_c);
64 GCPnts_AbscissaPoint ap(c, s * 1000.0, m_b[0]);
65 return ap.Parameter();
70 Handle(Geom_Curve) NewCurve =
new Geom_TrimmedCurve(m_c, ti, tf);
71 TopoDS_Edge NewEdge = BRepBuilderAPI_MakeEdge(NewCurve);
73 BRepGProp::LinearProperties(NewEdge, System);
74 return System.Mass() / 1000.0;
81 gp_Pnt
loc(xyz[0] * 1000.0, xyz[1] * 1000.0, xyz[2] * 1000.0);
83 ShapeAnalysis_Curve sac;
85 sac.Project(m_c, loc, Precision::Confusion(), p, t);
87 return p.Distance(loc) / 1000.0;
93 gp_Pnt
loc = m_c->Value(t);
95 location[0] = loc.X() / 1000.0;
96 location[1] = loc.Y() / 1000.0;
97 location[2] = loc.Z() / 1000.0;
104 gp_Pnt
loc = m_c->Value(t);
106 x = loc.X() / 1000.0;
107 y = loc.Y() / 1000.0;
108 z = loc.Z() / 1000.0;
116 m_c->D2(t, loc, d1, d2);
118 out[0] = loc.X() / 1000.0;
119 out[1] = loc.Y() / 1000.0;
120 out[2] = loc.Z() / 1000.0;
121 out[3] = d1.X() / 1000.0;
122 out[4] = d1.Y() / 1000.0;
123 out[5] = d1.Z() / 1000.0;
124 out[6] = d2.X() / 1000.0;
125 out[7] = d2.Y() / 1000.0;
126 out[8] = d2.Z() / 1000.0;
133 GeomLProp_CLProps d(m_c, 2, Precision::Confusion());
134 d.SetParameter(t + 1e-8);
137 if (d2.Magnitude() < 1e-8)
156 GeomLProp_CLProps d(m_c, 2, Precision::Confusion());
159 return d.Curvature() * 1000.0;
178 BRep_Tool::Pnt(TopExp::FirstVertex(m_occEdge, Standard_True));
179 gp_Pnt end = BRep_Tool::Pnt(TopExp::LastVertex(m_occEdge, Standard_True));
181 locs[0] = start.X() / 1000.0;
182 locs[1] = start.Y() / 1000.0;
183 locs[2] = start.Z() / 1000.0;
184 locs[3] = end.X() / 1000.0;
185 locs[4] = end.Y() / 1000.0;
186 locs[5] = end.Z() / 1000.0;
CADCurveFactory & GetCADCurveFactory()
tKey RegisterCreatorFunction(tKey idKey, CreatorFunction classCreator, std::string pDesc="")
Register a class with the factory.