Commit dad75658 authored by Andrey Kamaev's avatar Andrey Kamaev

Documentation: added support for multiple superclasses

parent bb69e03f
......@@ -704,9 +704,9 @@ class FuncDefExpr(NamedDefExpr):
class ClassDefExpr(NamedDefExpr):
def __init__(self, name, visibility, static, parent = None):
def __init__(self, name, visibility, static, parents = None):
NamedDefExpr.__init__(self, name, visibility, static)
self.parent = parent
self.parents = parents
def get_id(self):
return self.name.get_id()
......@@ -1098,15 +1098,19 @@ class DefinitionParser(object):
typename = self._parse_type()
parent = None
self.skip_ws()
parents = []
if self.skip_string(':'):
self.skip_ws()
classname_pos = self.pos
pvisibility, pstatic = self._parse_visibility_static()
if pstatic:
self.fail('unsepected static keyword, got %r' %
self.definition[self.classname_pos:])
parent = ClassDefExpr(self._parse_type(), pvisibility, pstatic)
return ClassDefExpr(typename, visibility, static, parent)
while not self.eof:
self.skip_ws()
classname_pos = self.pos
pvisibility, pstatic = self._parse_visibility_static()
if pstatic:
self.fail('unsepected static keyword, got %r' %
self.definition[self.classname_pos:])
parents.append(ClassDefExpr(self._parse_type(), pvisibility, pstatic))
if not self.skip_string(','):
break
return ClassDefExpr(typename, visibility, static, parents)
def read_rest(self):
rv = self.definition[self.pos:]
......@@ -1252,10 +1256,15 @@ class OCVClassObject(OCVObject):
self.attach_modifiers(signode, cls)
signode += addnodes.desc_annotation(self.__class__.object_annotation, self.__class__.object_annotation)
self.attach_name(signode, cls.name)
if cls.parent:
signode += nodes.Text(' : ')
self.attach_modifiers(signode, cls.parent, None)
self.attach_name(signode, cls.parent.name)
first_parent = True
for p in cls.parents:
if first_parent:
signode += nodes.Text(' : ')
first_parent = False
else:
signode += nodes.Text(', ')
self.attach_modifiers(signode, p, None)
self.attach_name(signode, p.name)
class OCVStructObject(OCVClassObject):
object_annotation = "struct "
......
......@@ -33,7 +33,7 @@ Estimates seams.
detail::NoSeamFinder
--------------------
.. ocv:class:: detail::NoSeamFinder : public SeamFinder
.. ocv:class:: detail::NoSeamFinder : public detail::SeamFinder
Stub seam estimator which does nothing. ::
......@@ -47,7 +47,7 @@ Stub seam estimator which does nothing. ::
detail::PairwiseSeamFinder
--------------------------
.. ocv:class:: detail::PairwiseSeamFinder : public SeamFinder
.. ocv:class:: detail::PairwiseSeamFinder : public detail::SeamFinder
Base class for all pairwise seam estimators. ::
......@@ -84,7 +84,7 @@ Resolves masks intersection of two specified images in the given ROI.
detail::VoronoiSeamFinder
-------------------------
.. ocv:class:: detail::VoronoiSeamFinder : public PairwiseSeamFinder
.. ocv:class:: detail::VoronoiSeamFinder : public detail::PairwiseSeamFinder
Voronoi diagram-based seam estimator. ::
......@@ -113,7 +113,7 @@ Base class for all minimum graph-cut-based seam estimators. ::
detail::GraphCutSeamFinder
--------------------------
.. ocv:class:: detail::GraphCutSeamFinder : public GraphCutSeamFinderBase, public SeamFinder
.. ocv:class:: detail::GraphCutSeamFinder : public detail::GraphCutSeamFinderBase, public detail::SeamFinder
Minimum graph cut-based seam estimator. See details in [V03]_. ::
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment