/// return true if cl.cc is within the radial range of cutter n /// for cutter n the valid radial distance from cl is /// between radiusvec[n-1] and radiusvec[n] //C++ TO C# CONVERTER WARNING: 'const' methods are not available in C#: //ORIGINAL LINE: bool ccValidRadius(uint n, CLPoint& cl) const protected bool ccValidRadius(int n, CLPoint cl) { if (cl.cc.type == CCType.NONE) { return(false); } double d = cl.xyDistance(cl.cc); double lolimit; double hilimit; if (n == 0) { lolimit = -1E-6; } else { lolimit = radiusvec[n - 1] - 1E-6; } hilimit = radiusvec[n] + 1e-6; // FIXME: really ugly solution this one... if (d < lolimit) { return(false); } else if (d > hilimit) { return(false); } else { return(true); } }
/// \brief drop cutter at (cl.x, cl.y) against the three vertices of Triangle t. /// calls this->height(r) on the subclass of MillingCutter we are using. /// if cl.z is too low, updates cl.z so that cutter does not cut any vertex. // general purpose vertex-drop which delegates to this->height(r) of subclass //C++ TO C# CONVERTER WARNING: 'const' methods are not available in C#: //ORIGINAL LINE: bool vertexDrop(CLPoint &cl, const Triangle &t) const public bool vertexDrop(CLPoint cl, Triangle t) { bool result = false; foreach (Point p in t.p) { // test each vertex of triangle double q = cl.xyDistance(p); // distance in XY-plane from cl to p if (q <= radius) { // p is inside the cutter CCPoint cc_tmp = new CCPoint(p, CCType.VERTEX); if (cl.liftZ(p.z - this.height(q), cc_tmp)) { result = true; } } } return(result); }