public double DistanceSquared(IfcCartesianPoint p) { double d = 0, dd; double x1, y1, z1, x2, y2, z2; XYZ(out x1, out y1, out z1); p.XYZ(out x2, out y2, out z2); dd = x1; dd -= x2; dd *= dd; d += dd; dd = y1; dd -= y2; dd *= dd; d += dd; dd = z1; dd -= z2; dd *= dd; d += dd; return(d); }
public override void Parse(int propIndex, IPropertyValue value, int[] nestedIndex) { switch (propIndex) { case 0: _location = (IfcCartesianPoint)(value.EntityVal); return; default: throw new XbimParserException(string.Format("Attribute index {0} is out of range for {1}", propIndex + 1, GetType().Name.ToUpper())); } }
public bool IsEqual(IfcCartesianPoint p, double tolerance) { return(DistanceSquared(p) <= (tolerance * tolerance)); }