virtual Point<dim>
get_new_point_on_quad (const typename Triangulation<dim>::quad_iterator &quad) const;
+ /**
+ * Refer to the general
+ * documentation of this class
+ * and the documentation of the
+ * base class.
+ *
+ * Calls
+ * @p{get_intermediate_points_between_points}.
+ */
+ virtual void
+ get_intermediate_points_on_line (const typename Triangulation<dim>::line_iterator &line,
+ typename std::vector<Point<dim> > &points) const;
+
+ /**
+ * Refer to the general
+ * documentation of this class
+ * and the documentation of the
+ * base class.
+ *
+ * Only implemented for @p{dim=3}
+ * and for @p{points.size()==1}.
+ */
+ virtual void
+ get_intermediate_points_on_quad (const typename Triangulation<dim>::quad_iterator &quad,
+ typename std::vector<Point<dim> > &points) const;
+
/**
* Compute the normals to the
* boundary at the vertices of
+template <int dim>
+void
+HalfHyperShellBoundary<dim>::
+get_intermediate_points_on_line (const typename Triangulation<dim>::line_iterator &line,
+ typename std::vector<Point<dim> > &points) const
+{
+ // check whether center of object is
+ // at x==0, since then it belongs
+ // to the plane part of the
+ // boundary
+ const Point<dim> line_center = line->center();
+ if (line_center(0) == center(0))
+ return StraightBoundary<dim>::get_intermediate_points_on_line (line, points);
+ else
+ return HyperShellBoundary<dim>::get_intermediate_points_on_line (line, points);
+};
+
+
+
+template <int dim>
+void
+HalfHyperShellBoundary<dim>::
+get_intermediate_points_on_quad (const typename Triangulation<dim>::quad_iterator &quad,
+ typename std::vector<Point<dim> > &points) const
+{
+ // check whether center of object is
+ // at x==0, since then it belongs
+ // to the plane part of the
+ // boundary
+ const Point<dim> quad_center = quad->center();
+ if (quad_center(0) == center(0))
+ StraightBoundary<dim>::get_intermediate_points_on_quad (quad, points);
+ else
+ HyperShellBoundary<dim>::get_intermediate_points_on_quad (quad, points);
+};
+
+
+
+#if deal_II_dimension == 1
+
+template <>
+void
+HalfHyperShellBoundary<1>::
+get_intermediate_points_on_quad (const Triangulation<1>::quad_iterator &,
+ std::vector<Point<1> > &) const
+{
+ Assert (false, ExcInternalError());
+};
+
+#endif
+
+
+
#if deal_II_dimension == 1
template <>