// ---------------------------------------------------------------------
// $Id$
//
-// Copyright (C) 2001 - 2013 by the deal.II authors
+// Copyright (C) 2001 - 2014 by the deal.II authors
//
// This file is part of the deal.II library.
//
{
std::vector<Point<spacedim> > ps(2);
std::vector<double> ws(2, .5);
-
+
// if we only need the midpoint, then ask for it.
if (degree==2)
{
// get the boundary description and second compute the points on it
for (unsigned int line_no=0; line_no<GeometryInfo<dim>::lines_per_cell; ++line_no)
{
- const typename Triangulation<dim,spacedim>::line_iterator line = cell->line(line_no);
+ const typename Triangulation<dim,spacedim>::line_iterator
+ line = (dim == 1
+ ?
+ static_cast<typename Triangulation<dim,spacedim>::line_iterator>(cell)
+ :
+ cell->line(line_no));
ps[0] = line->vertex(0);
ps[1] = line->vertex(1);
line->get_manifold().get_intermediate_points (ps, line_points);
-
+
if (dim==3)
{
// in 3D, lines might be in wrong orientation. if so, reverse
// the vertices used to compute the
// intermediate points.
std::vector<Point<3> > vertices(4);
-
+
std::vector<Point<3> > quad_points ((degree-1)*(degree-1));
// used if only one line of face quad is at boundary
std::vector<Point<3> > b(4*degree);
std::vector<Point<3> > vertices(4);
for(unsigned int i=0; i<4; ++i)
vertices[i] = cell->vertex(i);
-
+
cell->get_manifold().get_intermediate_points (vertices, quad_points);
for (unsigned int i=0; i<quad_points.size(); ++i)
a.push_back(quad_points[i]);