Commit a2024897 authored by Andrey Kamaev's avatar Andrey Kamaev

Documentation: fixed class/struc members documentation; added warning on…

Documentation: fixed class/struc members documentation; added warning on incorrectly documented member
parent aaf043e7
...@@ -1301,6 +1301,9 @@ class OCVMemberObject(OCVObject): ...@@ -1301,6 +1301,9 @@ class OCVMemberObject(OCVObject):
return '' return ''
def parse_definition(self, parser): def parse_definition(self, parser):
parent_class = self.env.temp_data.get('ocv:parent')
if parent_class is None:
parser.fail("missing parent structure/class")
return parser.parse_member_object() return parser.parse_member_object()
def describe_signature(self, signode, obj): def describe_signature(self, signode, obj):
......
...@@ -10,7 +10,7 @@ CvMemStorage ...@@ -10,7 +10,7 @@ CvMemStorage
.. ocv:struct:: CvMemStorage .. ocv:struct:: CvMemStorage
A storage for various OpenCV dynamic data structures, such as ``CvSeq``, ``CvSet`` etc. A storage for various OpenCV dynamic data structures, such as ``CvSeq``, ``CvSet`` etc.
.. ocv:member:: CvMemBlock* bottom .. ocv:member:: CvMemBlock* bottom
...@@ -64,7 +64,7 @@ CvSeq ...@@ -64,7 +64,7 @@ CvSeq
.. ocv:struct:: CvSeq .. ocv:struct:: CvSeq
Dynamically growing sequence. Dynamically growing sequence.
.. ocv:member:: int flags .. ocv:member:: int flags
......
...@@ -10,7 +10,7 @@ CvPoint ...@@ -10,7 +10,7 @@ CvPoint
.. ocv:struct:: CvPoint .. ocv:struct:: CvPoint
2D point with integer coordinates (usually zero-based). 2D point with integer coordinates (usually zero-based).
.. ocv:member:: int x .. ocv:member:: int x
...@@ -35,7 +35,7 @@ CvPoint2D32f ...@@ -35,7 +35,7 @@ CvPoint2D32f
.. ocv:struct:: CvPoint2D32f .. ocv:struct:: CvPoint2D32f
2D point with floating-point coordinates. 2D point with floating-point coordinates.
.. ocv:member:: float x .. ocv:member:: float x
...@@ -60,7 +60,7 @@ CvPoint3D32f ...@@ -60,7 +60,7 @@ CvPoint3D32f
.. ocv:struct:: CvPoint3D32f .. ocv:struct:: CvPoint3D32f
3D point with floating-point coordinates 3D point with floating-point coordinates
.. ocv:member:: float x .. ocv:member:: float x
...@@ -85,7 +85,7 @@ CvPoint2D64f ...@@ -85,7 +85,7 @@ CvPoint2D64f
.. ocv:struct:: CvPoint2D64f .. ocv:struct:: CvPoint2D64f
2D point with double-precision floating-point coordinates. 2D point with double-precision floating-point coordinates.
.. ocv:member:: double x .. ocv:member:: double x
...@@ -106,7 +106,7 @@ CvPoint3D64f ...@@ -106,7 +106,7 @@ CvPoint3D64f
.. ocv:struct:: CvPoint3D64f .. ocv:struct:: CvPoint3D64f
3D point with double-precision floating-point coordinates. 3D point with double-precision floating-point coordinates.
.. ocv:member:: double x .. ocv:member:: double x
...@@ -129,7 +129,7 @@ CvSize ...@@ -129,7 +129,7 @@ CvSize
.. ocv:struct:: CvSize .. ocv:struct:: CvSize
Size of a rectangle or an image. Size of a rectangle or an image.
.. ocv:member:: int width .. ocv:member:: int width
...@@ -150,7 +150,7 @@ CvSize2D32f ...@@ -150,7 +150,7 @@ CvSize2D32f
.. ocv:struct:: CvSize2D32f .. ocv:struct:: CvSize2D32f
Sub-pixel accurate size of a rectangle. Sub-pixel accurate size of a rectangle.
.. ocv:member:: float width .. ocv:member:: float width
...@@ -171,7 +171,7 @@ CvRect ...@@ -171,7 +171,7 @@ CvRect
.. ocv:struct:: CvRect .. ocv:struct:: CvRect
Stores coordinates of a rectangle. Stores coordinates of a rectangle.
.. ocv:member:: int x .. ocv:member:: int x
...@@ -201,7 +201,7 @@ CvBox2D ...@@ -201,7 +201,7 @@ CvBox2D
.. ocv:struct:: CvBox2D .. ocv:struct:: CvBox2D
Stores coordinates of a rotated rectangle. Stores coordinates of a rotated rectangle.
.. ocv:member:: CvPoint2D32f center .. ocv:member:: CvPoint2D32f center
...@@ -223,7 +223,7 @@ CvScalar ...@@ -223,7 +223,7 @@ CvScalar
.. ocv:struct:: CvScalar .. ocv:struct:: CvScalar
A container for 1-,2-,3- or 4-tuples of doubles. A container for 1-,2-,3- or 4-tuples of doubles.
.. ocv:member:: double[4] val .. ocv:member:: double[4] val
...@@ -246,7 +246,7 @@ CvTermCriteria ...@@ -246,7 +246,7 @@ CvTermCriteria
.. ocv:struct:: CvTermCriteria .. ocv:struct:: CvTermCriteria
Termination criteria for iterative algorithms. Termination criteria for iterative algorithms.
.. ocv:member:: int type .. ocv:member:: int type
...@@ -273,7 +273,7 @@ CvMat ...@@ -273,7 +273,7 @@ CvMat
.. ocv:struct:: CvMat .. ocv:struct:: CvMat
A multi-channel dense matrix. A multi-channel dense matrix.
.. ocv:member:: int type .. ocv:member:: int type
...@@ -323,7 +323,7 @@ CvMatND ...@@ -323,7 +323,7 @@ CvMatND
.. ocv:struct:: CvMatND .. ocv:struct:: CvMatND
Multi-dimensional dense multi-channel array. Multi-dimensional dense multi-channel array.
.. ocv:member:: int type .. ocv:member:: int type
...@@ -363,7 +363,7 @@ CvSparseMat ...@@ -363,7 +363,7 @@ CvSparseMat
.. ocv:struct:: CvSparseMat .. ocv:struct:: CvSparseMat
Multi-dimensional sparse multi-channel array. Multi-dimensional sparse multi-channel array.
.. ocv:member:: int type .. ocv:member:: int type
...@@ -398,7 +398,7 @@ IplImage ...@@ -398,7 +398,7 @@ IplImage
.. ocv:struct:: IplImage .. ocv:struct:: IplImage
IPL image header IPL image header
.. ocv:member:: int nSize .. ocv:member:: int nSize
......
...@@ -48,7 +48,7 @@ CvFileNode ...@@ -48,7 +48,7 @@ CvFileNode
.. ocv:struct:: CvFileNode .. ocv:struct:: CvFileNode
File storage node. When XML/YAML file is read, it is first parsed and stored in the memory as a hierarchical collection of nodes. Each node can be a "leaf", that is, contain a single number or a string, or be a collection of other nodes. Collections are also referenced to as "structures" in the data writing functions. There can be named collections (mappings), where each element has a name and is accessed by a name, and ordered collections (sequences), where elements do not have names, but rather accessed by index. File storage node. When XML/YAML file is read, it is first parsed and stored in the memory as a hierarchical collection of nodes. Each node can be a "leaf", that is, contain a single number or a string, or be a collection of other nodes. Collections are also referenced to as "structures" in the data writing functions. There can be named collections (mappings), where each element has a name and is accessed by a name, and ordered collections (sequences), where elements do not have names, but rather accessed by index.
.. ocv:member:: int tag .. ocv:member:: int tag
......
...@@ -258,7 +258,7 @@ Creates a descriptor matcher of a given type with the default parameters (using ...@@ -258,7 +258,7 @@ Creates a descriptor matcher of a given type with the default parameters (using
BFMatcher BFMatcher
----------------- -----------------
.. ocv:class::BFMatcher : public DescriptorMatcher .. ocv:class:: BFMatcher : public DescriptorMatcher
Brute-force descriptor matcher. For each descriptor in the first set, this matcher finds the closest descriptor in the second set by trying each one. This descriptor matcher supports masking permissible matches of descriptor sets. Brute-force descriptor matcher. For each descriptor in the first set, this matcher finds the closest descriptor in the second set by trying each one. This descriptor matcher supports masking permissible matches of descriptor sets.
......
...@@ -12,7 +12,7 @@ KeyPoint ...@@ -12,7 +12,7 @@ KeyPoint
-------- --------
.. ocv:class:: KeyPoint .. ocv:class:: KeyPoint
Data structure for salient point detectors. Data structure for salient point detectors.
.. ocv:member:: Point2f pt .. ocv:member:: Point2f pt
......
...@@ -282,7 +282,7 @@ Computes a convolution (or cross-correlation) of two images. ...@@ -282,7 +282,7 @@ Computes a convolution (or cross-correlation) of two images.
:param ccorr: Flags to evaluate cross-correlation instead of convolution. :param ccorr: Flags to evaluate cross-correlation instead of convolution.
:param buf: Optional buffer to avoid extra memory allocations and to adjust some specific parameters. See :ocv:class:`gpu::ConvolveBuf`. :param buf: Optional buffer to avoid extra memory allocations and to adjust some specific parameters. See :ocv:struct:`gpu::ConvolveBuf`.
:param stream: Stream for the asynchronous version. :param stream: Stream for the asynchronous version.
...@@ -321,7 +321,7 @@ Computes a proximity map for a raster template and an image where the template i ...@@ -321,7 +321,7 @@ Computes a proximity map for a raster template and an image where the template i
:param method: Specifies the way to compare the template with the image. :param method: Specifies the way to compare the template with the image.
:param buf: Optional buffer to avoid extra memory allocations and to adjust some specific parameters. See :ocv:class:`gpu::MatchTemplateBuf`. :param buf: Optional buffer to avoid extra memory allocations and to adjust some specific parameters. See :ocv:struct:`gpu::MatchTemplateBuf`.
:param stream: Stream for the asynchronous version. :param stream: Stream for the asynchronous version.
......
...@@ -69,6 +69,17 @@ CvBoostParams ...@@ -69,6 +69,17 @@ CvBoostParams
Boosting training parameters. Boosting training parameters.
There is one structure member that you can set directly:
.. ocv:member:: int split_criteria
Splitting criteria used to choose optimal splits during a weak tree construction. Possible values are:
* **CvBoost::DEFAULT** Use the default for the particular boosting method, see below.
* **CvBoost::GINI** Use Gini index. This is default option for Real AdaBoost; may be also used for Discrete AdaBoost.
* **CvBoost::MISCLASS** Use misclassification rate. This is default option for Discrete AdaBoost; may be also used for Real AdaBoost.
* **CvBoost::SQERR** Use least squares criteria. This is default and the only option for LogitBoost and Gentle AdaBoost.
The structure is derived from :ocv:class:`CvDTreeParams` but not all of the decision tree parameters are supported. In particular, cross-validation is not supported. The structure is derived from :ocv:class:`CvDTreeParams` but not all of the decision tree parameters are supported. In particular, cross-validation is not supported.
All parameters are public. You can initialize them by a constructor and then override some of them directly if you want. All parameters are public. You can initialize them by a constructor and then override some of them directly if you want.
...@@ -96,17 +107,6 @@ The constructors. ...@@ -96,17 +107,6 @@ The constructors.
See :ocv:func:`CvDTreeParams::CvDTreeParams` for description of other parameters. See :ocv:func:`CvDTreeParams::CvDTreeParams` for description of other parameters.
Also there is one structure member that you can set directly:
.. ocv:member:: int split_criteria
Splitting criteria used to choose optimal splits during a weak tree construction. Possible values are:
* **CvBoost::DEFAULT** Use the default for the particular boosting method, see below.
* **CvBoost::GINI** Use Gini index. This is default option for Real AdaBoost; may be also used for Discrete AdaBoost.
* **CvBoost::MISCLASS** Use misclassification rate. This is default option for Discrete AdaBoost; may be also used for Real AdaBoost.
* **CvBoost::SQERR** Use least squares criteria. This is default and the only option for LogitBoost and Gentle AdaBoost.
Default parameters are: Default parameters are:
:: ::
......
...@@ -60,25 +60,25 @@ CvDTreeSplit ...@@ -60,25 +60,25 @@ CvDTreeSplit
.. ocv:struct:: CvDTreeSplit .. ocv:struct:: CvDTreeSplit
The structure represents a possible decision tree node split. It has public members: The structure represents a possible decision tree node split. It has public members:
.. ocv:member:: int var_idx .. ocv:member:: int var_idx
Index of variable on which the split is created. Index of variable on which the split is created.
.. ocv:member:: int inversed .. ocv:member:: int inversed
If it is not null then inverse split rule is used that is left and right branches are exchanged in the rule expressions below. If it is not null then inverse split rule is used that is left and right branches are exchanged in the rule expressions below.
.. ocv:member:: float quality .. ocv:member:: float quality
The split quality, a positive number. It is used to choose the best primary split, then to choose and sort the surrogate splits. After the tree is constructed, it is also used to compute variable importance. The split quality, a positive number. It is used to choose the best primary split, then to choose and sort the surrogate splits. After the tree is constructed, it is also used to compute variable importance.
.. ocv:member:: CvDTreeSplit* next .. ocv:member:: CvDTreeSplit* next
Pointer to the next split in the node list of splits. Pointer to the next split in the node list of splits.
.. ocv:member:: int[] subset .. ocv:member:: int[] subset
Bit array indicating the value subset in case of split on a categorical variable. The rule is: :: Bit array indicating the value subset in case of split on a categorical variable. The rule is: ::
...@@ -86,7 +86,7 @@ The structure represents a possible decision tree node split. It has public memb ...@@ -86,7 +86,7 @@ The structure represents a possible decision tree node split. It has public memb
then next_node <- left then next_node <- left
else next_node <- right else next_node <- right
.. ocv:member:: float ord::c .. ocv:member:: float ord::c
The threshold value in case of split on an ordered variable. The rule is: :: The threshold value in case of split on an ordered variable. The rule is: ::
...@@ -94,7 +94,7 @@ The structure represents a possible decision tree node split. It has public memb ...@@ -94,7 +94,7 @@ The structure represents a possible decision tree node split. It has public memb
then next_node<-left then next_node<-left
else next_node<-right else next_node<-right
.. ocv:member:: int ord::split_point .. ocv:member:: int ord::split_point
Used internally by the training algorithm. Used internally by the training algorithm.
...@@ -103,41 +103,41 @@ CvDTreeNode ...@@ -103,41 +103,41 @@ CvDTreeNode
.. ocv:struct:: CvDTreeNode .. ocv:struct:: CvDTreeNode
The structure represents a node in a decision tree. It has public members: The structure represents a node in a decision tree. It has public members:
.. ocv:member:: int class_idx .. ocv:member:: int class_idx
Class index normalized to 0..class_count-1 range and assigned to the node. It is used internally in classification trees and tree ensembles. Class index normalized to 0..class_count-1 range and assigned to the node. It is used internally in classification trees and tree ensembles.
.. ocv:member:: int Tn .. ocv:member:: int Tn
Tree index in a ordered sequence of pruned trees. The indices are used during and after the pruning procedure. The root node has the maximum value ``Tn`` of the whole tree, child nodes have ``Tn`` less than or equal to the parent's ``Tn``, and nodes with :math:`Tn \leq CvDTree::pruned\_tree\_idx` are not used at prediction stage (the corresponding branches are considered as cut-off), even if they have not been physically deleted from the tree at the pruning stage. Tree index in a ordered sequence of pruned trees. The indices are used during and after the pruning procedure. The root node has the maximum value ``Tn`` of the whole tree, child nodes have ``Tn`` less than or equal to the parent's ``Tn``, and nodes with :math:`Tn \leq CvDTree::pruned\_tree\_idx` are not used at prediction stage (the corresponding branches are considered as cut-off), even if they have not been physically deleted from the tree at the pruning stage.
.. ocv:member:: double value .. ocv:member:: double value
Value at the node: a class label in case of classification or estimated function value in case of regression. Value at the node: a class label in case of classification or estimated function value in case of regression.
.. ocv:member:: CvDTreeNode* parent .. ocv:member:: CvDTreeNode* parent
Pointer to the parent node. Pointer to the parent node.
.. ocv:member:: CvDTreeNode* left .. ocv:member:: CvDTreeNode* left
Pointer to the left child node. Pointer to the left child node.
.. ocv:member:: CvDTreeNode* right .. ocv:member:: CvDTreeNode* right
Pointer to the right child node. Pointer to the right child node.
.. ocv:member:: CvDTreeSplit* split .. ocv:member:: CvDTreeSplit* split
Pointer to the first (primary) split in the node list of splits. Pointer to the first (primary) split in the node list of splits.
.. ocv:member:: int sample_count .. ocv:member:: int sample_count
The number of samples that fall into the node at the training stage. It is used to resolve the difficult cases - when the variable for the primary split is missing and all the variables for other surrogate splits are missing too. In this case the sample is directed to the left if ``left->sample_count > right->sample_count`` and to the right otherwise. The number of samples that fall into the node at the training stage. It is used to resolve the difficult cases - when the variable for the primary split is missing and all the variables for other surrogate splits are missing too. In this case the sample is directed to the left if ``left->sample_count > right->sample_count`` and to the right otherwise.
.. ocv:member:: int depth .. ocv:member:: int depth
Depth of the node. The root node depth is 0, the child nodes depth is the parent's depth + 1. Depth of the node. The root node depth is 0, the child nodes depth is the parent's depth + 1.
......
...@@ -12,4 +12,4 @@ CvERTrees ...@@ -12,4 +12,4 @@ CvERTrees
---------- ----------
.. ocv:class:: CvERTrees : public CvRTrees .. ocv:class:: CvERTrees : public CvRTrees
The class implements the Extremely randomized trees algorithm. ``CvERTrees`` is inherited from :ocv:class:`CvRTrees` and has the same interface, so see description of :ocv:class:`CvRTrees` class to get details. To set the training parameters of Extremely randomized trees the same class :ocv:class:`CvRTParams` is used. The class implements the Extremely randomized trees algorithm. ``CvERTrees`` is inherited from :ocv:class:`CvRTrees` and has the same interface, so see description of :ocv:class:`CvRTrees` class to get details. To set the training parameters of Extremely randomized trees the same class :ocv:struct:`CvRTParams` is used.
...@@ -99,37 +99,37 @@ CvANN_MLP_TrainParams ...@@ -99,37 +99,37 @@ CvANN_MLP_TrainParams
--------------------- ---------------------
.. ocv:struct:: CvANN_MLP_TrainParams .. ocv:struct:: CvANN_MLP_TrainParams
Parameters of the MLP training algorithm. You can initialize the structure by a constructor or the individual parameters can be adjusted after the structure is created. Parameters of the MLP training algorithm. You can initialize the structure by a constructor or the individual parameters can be adjusted after the structure is created.
The back-propagation algorithm parameters: The back-propagation algorithm parameters:
.. ocv:member:: double bp_dw_scale .. ocv:member:: double bp_dw_scale
Strength of the weight gradient term. The recommended value is about 0.1. Strength of the weight gradient term. The recommended value is about 0.1.
.. ocv:member:: double bp_moment_scale .. ocv:member:: double bp_moment_scale
Strength of the momentum term (the difference between weights on the 2 previous iterations). This parameter provides some inertia to smooth the random fluctuations of the weights. It can vary from 0 (the feature is disabled) to 1 and beyond. The value 0.1 or so is good enough Strength of the momentum term (the difference between weights on the 2 previous iterations). This parameter provides some inertia to smooth the random fluctuations of the weights. It can vary from 0 (the feature is disabled) to 1 and beyond. The value 0.1 or so is good enough
The RPROP algorithm parameters (see [RPROP93]_ for details): The RPROP algorithm parameters (see [RPROP93]_ for details):
.. ocv:member:: double rp_dw0 .. ocv:member:: double rp_dw0
Initial value :math:`\Delta_0` of update-values :math:`\Delta_{ij}`. Initial value :math:`\Delta_0` of update-values :math:`\Delta_{ij}`.
.. ocv:member:: double rp_dw_plus .. ocv:member:: double rp_dw_plus
Increase factor :math:`\eta^+`. It must be >1. Increase factor :math:`\eta^+`. It must be >1.
.. ocv:member:: double rp_dw_minus .. ocv:member:: double rp_dw_minus
Decrease factor :math:`\eta^-`. It must be <1. Decrease factor :math:`\eta^-`. It must be <1.
.. ocv:member:: double rp_dw_min .. ocv:member:: double rp_dw_min
Update-values lower limit :math:`\Delta_{min}`. It must be positive. Update-values lower limit :math:`\Delta_{min}`. It must be positive.
.. ocv:member:: double rp_dw_max .. ocv:member:: double rp_dw_max
Update-values upper limit :math:`\Delta_{max}`. It must be >1. Update-values upper limit :math:`\Delta_{max}`. It must be >1.
......
...@@ -18,17 +18,17 @@ CvParamGrid ...@@ -18,17 +18,17 @@ CvParamGrid
----------- -----------
.. ocv:struct:: CvParamGrid .. ocv:struct:: CvParamGrid
The structure represents the logarithmic grid range of statmodel parameters. It is used for optimizing statmodel accuracy by varying model parameters, the accuracy estimate being computed by cross-validation. The structure represents the logarithmic grid range of statmodel parameters. It is used for optimizing statmodel accuracy by varying model parameters, the accuracy estimate being computed by cross-validation.
.. ocv:member:: double CvParamGrid::min_val .. ocv:member:: double CvParamGrid::min_val
Minimum value of the statmodel parameter. Minimum value of the statmodel parameter.
.. ocv:member:: double CvParamGrid::max_val .. ocv:member:: double CvParamGrid::max_val
Maximum value of the statmodel parameter. Maximum value of the statmodel parameter.
.. ocv:member:: double CvParamGrid::step .. ocv:member:: double CvParamGrid::step
Logarithmic step for iterating the statmodel parameter. Logarithmic step for iterating the statmodel parameter.
......
...@@ -48,7 +48,7 @@ SURF ...@@ -48,7 +48,7 @@ SURF
---- ----
.. ocv:class:: SURF : public Feature2D .. ocv:class:: SURF : public Feature2D
Class for extracting Speeded Up Robust Features from an image [Bay06]_. The class is derived from ``CvSURFParams`` structure, which specifies the algorithm parameters: Class for extracting Speeded Up Robust Features from an image [Bay06]_. The class is derived from ``CvSURFParams`` structure, which specifies the algorithm parameters:
.. ocv:member:: int extended .. ocv:member:: int extended
......
...@@ -45,7 +45,7 @@ CvLSVMFilterPosition ...@@ -45,7 +45,7 @@ CvLSVMFilterPosition
-------------------- --------------------
.. ocv:struct:: CvLSVMFilterPosition .. ocv:struct:: CvLSVMFilterPosition
Structure describes the position of the filter in the feature pyramid. Structure describes the position of the filter in the feature pyramid.
.. ocv:member:: unsigned int l .. ocv:member:: unsigned int l
...@@ -64,7 +64,7 @@ CvLSVMFilterObject ...@@ -64,7 +64,7 @@ CvLSVMFilterObject
------------------ ------------------
.. ocv:struct:: CvLSVMFilterObject .. ocv:struct:: CvLSVMFilterObject
Description of the filter, which corresponds to the part of the object. Description of the filter, which corresponds to the part of the object.
.. ocv:member:: CvLSVMFilterPosition V .. ocv:member:: CvLSVMFilterPosition V
...@@ -96,7 +96,7 @@ CvLatentSvmDetector ...@@ -96,7 +96,7 @@ CvLatentSvmDetector
------------------- -------------------
.. ocv:struct:: CvLatentSvmDetector .. ocv:struct:: CvLatentSvmDetector
Structure contains internal representation of trained Latent SVM detector. Structure contains internal representation of trained Latent SVM detector.
.. ocv:member:: int num_filters .. ocv:member:: int num_filters
...@@ -127,7 +127,7 @@ CvObjectDetection ...@@ -127,7 +127,7 @@ CvObjectDetection
----------------- -----------------
.. ocv:struct:: CvObjectDetection .. ocv:struct:: CvObjectDetection
Structure contains the bounding box and confidence level for detected object. Structure contains the bounding box and confidence level for detected object.
.. ocv:member:: CvRect rect .. ocv:member:: CvRect rect
...@@ -183,7 +183,7 @@ LatentSvmDetector::ObjectDetection ...@@ -183,7 +183,7 @@ LatentSvmDetector::ObjectDetection
---------------------------------- ----------------------------------
.. ocv:struct:: LatentSvmDetector::ObjectDetection .. ocv:struct:: LatentSvmDetector::ObjectDetection
Structure contains the detection information. Structure contains the detection information.
.. ocv:member:: Rect rect .. ocv:member:: Rect rect
......
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