+
+const std::shared_ptr<GeomAPI_XYZ> GeomAPI_XYZ::multiplied(const double theArg)
+{
+ std::shared_ptr<GeomAPI_XYZ> aResult(new GeomAPI_XYZ(MY_XYZ->X() * theArg,
+ MY_XYZ->Y() * theArg, MY_XYZ->Z() * theArg));
+ return aResult;
+}
+
+double GeomAPI_XYZ::dot(const std::shared_ptr<GeomAPI_XYZ>& theArg) const
+{
+ return MY_XYZ->Dot(theArg->impl<gp_XYZ>());
+}
+
+const std::shared_ptr<GeomAPI_XYZ> GeomAPI_XYZ::cross(
+ const std::shared_ptr<GeomAPI_XYZ>& theArg) const
+{
+ gp_XYZ aResult = MY_XYZ->Crossed(theArg->impl<gp_XYZ>());
+ return std::shared_ptr<GeomAPI_XYZ>(new GeomAPI_XYZ(aResult.X(), aResult.Y(), aResult.Z()));
+}
+
+double GeomAPI_XYZ::distance(const std::shared_ptr<GeomAPI_XYZ>& theOther) const
+{
+ gp_XYZ aResult(theOther->x() - x(), theOther->y() - y(), theOther->z() - z());
+ return aResult.Modulus();
+}
+