From 7a5a4e6344d708001cf166038371d52ebf0f6ad6 Mon Sep 17 00:00:00 2001 From: "Patricio A. Vela" Date: Fri, 25 Oct 2024 09:08:56 -0400 Subject: [PATCH] Puzzle Solver doxygen mostly pass. --- docs/adjacent_8py.html | 4 +- docs/annotated.html | 38 +-- docs/arrangement_8py.html | 4 +- docs/board_8py.html | 4 +- docs/byColor_8py.html | 5 +- docs/byShape_8py.html | 2 + ...etector_1_1Configuration_1_1AlgConfig.html | 2 +- docs/classdetector_1_1base_1_1Base.html | 2 +- ...tector_1_1base_1_1Base__inherit__graph.map | 2 +- ...tector_1_1base_1_1Base__inherit__graph.md5 | 2 +- docs/classdetector_1_1inImage_1_1inImage.html | 2 +- ..._1_1inImage_1_1inImage__inherit__graph.map | 2 +- ..._1_1inImage_1_1inImage__inherit__graph.md5 | 2 +- docs/classpuzzle_1_1board_1_1Board.html | 4 +- ...zzle_1_1board_1_1Board__inherit__graph.map | 4 +- ...zzle_1_1board_1_1Board__inherit__graph.md5 | 2 +- ...le_1_1builder_1_1adjacent_1_1Adjacent.html | 4 +- ...builder_1_1arrangement_1_1Arrangement.html | 4 +- ...zzle_1_1builder_1_1gridded_1_1Gridded.html | 4 +- ...er_1_1interlocking_1_1CfgInterlocking.html | 2 +- ...ilder_1_1interlocking_1_1Interlocking.html | 4 +- ...zle_1_1clusters_1_1byColor_1_1ByColor.html | 15 +- ...ers_1_1byColor_1_1ByColor__coll__graph.map | 2 +- ...ers_1_1byColor_1_1ByColor__coll__graph.md5 | 2 +- ..._1_1byColor_1_1ByColor__inherit__graph.map | 2 +- ..._1_1byColor_1_1ByColor__inherit__graph.md5 | 2 +- ...sters_1_1byColor_1_1ParamColorCluster.html | 4 +- ...zle_1_1clusters_1_1byShape_1_1ByShape.html | 28 ++- ...ers_1_1byShape_1_1ByShape__coll__graph.map | 2 +- ...ers_1_1byShape_1_1ByShape__coll__graph.md5 | 2 +- ..._1_1byShape_1_1ByShape__inherit__graph.map | 2 +- ..._1_1byShape_1_1ByShape__inherit__graph.md5 | 2 +- ...le_1_1parse_1_1fromLayer_1_1FromLayer.html | 29 +-- ...1_1fromLayer_1_1FromLayer__coll__graph.map | 2 +- ...1_1fromLayer_1_1FromLayer__coll__graph.md5 | 2 +- ...fromLayer_1_1FromLayer__inherit__graph.map | 2 +- ...fromLayer_1_1FromLayer__inherit__graph.md5 | 2 +- ..._1_1parse_1_1fromSketch_1_1FromSketch.html | 31 +-- ...1fromSketch_1_1FromSketch__coll__graph.map | 2 +- ...1fromSketch_1_1FromSketch__coll__graph.md5 | 2 +- ...omSketch_1_1FromSketch__inherit__graph.map | 2 +- ...omSketch_1_1FromSketch__inherit__graph.md5 | 2 +- ...lasspuzzle_1_1parser_1_1boardPerceive.html | 2 +- docs/classpuzzle_1_1piece_1_1Piece.html | 2 +- docs/classpuzzle_1_1piece_1_1Regular.html | 2 +- docs/classpuzzle_1_1piece_1_1Template.html | 4 +- ...classpuzzle_1_1pieces_1_1edge_1_1Edge.html | 2 +- ...e_1_1pieces_1_1matchSimilar_1_1SIFTCV.html | 2 +- ...ter_1_1centroidMulti_1_1centroidMulti.html | 2 +- ...Multi_1_1centroidMulti__inherit__graph.map | 2 +- ...Multi_1_1centroidMulti__inherit__graph.md5 | 2 +- ...strackpointer_1_1centroid_1_1centroid.html | 2 +- ..._1centroid_1_1centroid__inherit__graph.map | 2 +- ..._1centroid_1_1centroid__inherit__graph.md5 | 2 +- docs/edge_8py.html | 1 + docs/fromLayer_8py.html | 5 +- docs/fromSketch_8py.html | 4 + docs/gridded_8py.html | 4 +- docs/group__PuzzleSolver.html | 20 +- docs/group__Puzzle__Clusters.html | 23 ++ docs/group__Puzzle__Tracking.html | 22 +- docs/group__Puzzle__Types.html | 20 +- docs/hierarchy.html | 10 +- docs/inherit_graph_26.map | 4 +- docs/inherit_graph_26.md5 | 2 +- docs/inherit_graph_7.map | 4 +- docs/inherit_graph_7.md5 | 2 +- docs/inherits.html | 8 +- docs/interlocking_8py.html | 4 +- docs/manager_8py.html | 4 +- docs/matchDifferent_8py.html | 1 + docs/matchSimilar_8py.html | 4 +- docs/matcher_8py.html | 4 +- docs/namespacearrangement.html | 91 +++++++ docs/namespacepuzzle.html | 4 + docs/namespacepuzzle_1_1board.html | 22 +- docs/namespacepuzzle_1_1builder.html | 4 + ...amespacepuzzle_1_1builder_1_1adjacent.html | 15 +- ...spacepuzzle_1_1builder_1_1arrangement.html | 18 +- ...namespacepuzzle_1_1builder_1_1gridded.html | 19 +- ...pacepuzzle_1_1builder_1_1interlocking.html | 15 +- docs/namespacepuzzle_1_1clusters.html | 2 + ...amespacepuzzle_1_1clusters_1_1byColor.html | 17 +- ...amespacepuzzle_1_1clusters_1_1byShape.html | 12 +- docs/namespacepuzzle_1_1manager.html | 21 +- ...namespacepuzzle_1_1parse_1_1fromLayer.html | 2 +- ...amespacepuzzle_1_1parse_1_1fromSketch.html | 1 + docs/namespacepuzzle_1_1parser.html | 31 ++- ...amespacepuzzle_1_1parser_1_1fromLayer.html | 92 +++++++ ...mespacepuzzle_1_1parser_1_1fromSketch.html | 89 +++++++ docs/namespacepuzzle_1_1piece.html | 17 +- docs/namespacepuzzle_1_1pieces.html | 4 + docs/namespacepuzzle_1_1pieces_1_1edge.html | 11 +- ...acepuzzle_1_1pieces_1_1matchDifferent.html | 16 +- ...spacepuzzle_1_1pieces_1_1matchSimilar.html | 10 +- .../namespacepuzzle_1_1pieces_1_1matcher.html | 18 +- ...mespacepuzzle_1_1pieces_1_1similarity.html | 87 +++++++ docs/namespaces.html | 72 +++--- docs/parser_8py.html | 4 +- docs/piece_8py.html | 4 +- docs/search/all_10.js | 140 +++++------ docs/search/all_11.js | 228 +++++++++--------- docs/search/all_12.js | 168 ++++++------- docs/search/all_13.js | 26 +- docs/search/all_14.js | 36 +-- docs/search/all_15.js | 36 +-- docs/search/all_16.js | 2 +- docs/search/all_17.js | 2 +- docs/search/all_18.js | 2 +- docs/search/all_f.js | 58 ++--- docs/search/classes_0.js | 16 +- docs/search/classes_1.js | 42 ++-- docs/search/classes_10.js | 8 +- docs/search/classes_2.js | 102 ++++---- docs/search/classes_3.js | 16 +- docs/search/classes_4.js | 10 +- docs/search/classes_5.js | 22 +- docs/search/classes_6.js | 8 +- docs/search/classes_7.js | 8 +- docs/search/classes_8.js | 20 +- docs/search/classes_9.js | 20 +- docs/search/classes_a.js | 6 +- docs/search/classes_b.js | 48 ++-- docs/search/classes_c.js | 24 +- docs/search/classes_d.js | 20 +- docs/search/classes_e.js | 28 +-- docs/search/classes_f.js | 4 +- docs/search/files_0.js | 2 +- docs/search/files_1.js | 10 +- docs/search/files_10.js | 2 +- docs/search/files_11.js | 8 +- docs/search/files_12.js | 4 +- docs/search/files_2.js | 16 +- docs/search/files_3.js | 14 +- docs/search/files_4.js | 24 +- docs/search/files_5.js | 2 +- docs/search/files_6.js | 8 +- docs/search/files_7.js | 6 +- docs/search/files_8.js | 6 +- docs/search/files_9.js | 10 +- docs/search/files_a.js | 16 +- docs/search/files_b.js | 6 +- docs/search/files_c.js | 24 +- docs/search/files_d.js | 22 +- docs/search/files_e.js | 18 +- docs/search/files_f.js | 18 +- docs/search/functions_0.js | 10 +- docs/search/functions_1.js | 38 +-- docs/search/functions_10.js | 62 ++--- docs/search/functions_11.js | 96 ++++---- docs/search/functions_12.js | 40 +-- docs/search/functions_13.js | 16 +- docs/search/functions_14.js | 2 +- docs/search/functions_15.js | 10 +- docs/search/functions_2.js | 104 ++++---- docs/search/functions_3.js | 106 ++++---- docs/search/functions_4.js | 58 ++--- docs/search/functions_5.js | 26 +- docs/search/functions_6.js | 14 +- docs/search/functions_7.js | 76 +++--- docs/search/functions_8.js | 2 +- docs/search/functions_9.js | 16 +- docs/search/functions_a.js | 4 +- docs/search/functions_b.js | 12 +- docs/search/functions_c.js | 24 +- docs/search/functions_d.js | 4 +- docs/search/functions_e.js | 8 +- docs/search/functions_f.js | 70 +++--- docs/search/groups_0.js | 2 +- docs/search/groups_1.js | 10 +- docs/search/groups_2.js | 4 +- docs/search/groups_3.js | 10 +- docs/search/groups_4.js | 2 +- docs/search/namespaces_0.js | 4 +- docs/search/namespaces_1.js | 40 +-- docs/search/namespaces_2.js | 38 +-- docs/search/namespaces_3.js | 2 +- docs/search/namespaces_4.js | 2 +- docs/search/namespaces_5.js | 16 +- docs/search/namespaces_6.js | 2 +- docs/search/namespaces_7.js | 124 +++++----- docs/search/namespaces_8.js | 16 +- docs/search/namespaces_9.js | 14 +- docs/search/namespaces_a.js | 2 +- docs/search/namespaces_b.js | 2 +- docs/search/pages_0.js | 4 +- docs/search/pages_1.js | 2 +- docs/search/pages_2.js | 6 +- docs/search/pages_3.js | 6 +- docs/search/pages_4.js | 2 +- docs/search/pages_5.js | 4 +- docs/search/variables_0.js | 42 ++-- docs/search/variables_1.js | 52 ++-- docs/search/variables_10.js | 76 +++--- docs/search/variables_11.js | 66 ++--- docs/search/variables_12.js | 8 +- docs/search/variables_13.js | 20 +- docs/search/variables_14.js | 14 +- docs/search/variables_15.js | 2 +- docs/search/variables_16.js | 2 +- docs/search/variables_17.js | 2 +- docs/search/variables_2.js | 76 +++--- docs/search/variables_3.js | 64 ++--- docs/search/variables_4.js | 14 +- docs/search/variables_5.js | 62 ++--- docs/search/variables_6.js | 12 +- docs/search/variables_7.js | 26 +- docs/search/variables_8.js | 54 ++--- docs/search/variables_9.js | 6 +- docs/search/variables_a.js | 30 +-- docs/search/variables_b.js | 44 ++-- docs/search/variables_c.js | 20 +- docs/search/variables_d.js | 14 +- docs/search/variables_e.js | 72 +++--- docs/search/variables_f.js | 34 +-- docs/todo.html | 18 +- 216 files changed, 2470 insertions(+), 1896 deletions(-) create mode 100644 docs/namespacearrangement.html create mode 100644 docs/namespacepuzzle_1_1parser_1_1fromLayer.html create mode 100644 docs/namespacepuzzle_1_1parser_1_1fromSketch.html create mode 100644 docs/namespacepuzzle_1_1pieces_1_1similarity.html diff --git a/docs/adjacent_8py.html b/docs/adjacent_8py.html index 5c504d1b..378f440d 100644 --- a/docs/adjacent_8py.html +++ b/docs/adjacent_8py.html @@ -86,9 +86,7 @@

Namespaces

 puzzle.builder.adjacent -  -  PuzzleAdjacent - This type of puzzle is simply a set of shapes arranged at specific locations with adjacency permitted. Touching or very close proximity should hold for most or all pieces.
+ This type of puzzle is simply a set of shapes arranged at specific locations with adjacency permitted. Touching or very close proximity should hold for most or all pieces.
  diff --git a/docs/annotated.html b/docs/annotated.html index 2c8d620f..21422d4d 100644 --- a/docs/annotated.html +++ b/docs/annotated.html @@ -256,32 +256,32 @@  CEditorEditor class manages multiple reporters and curates information going to the output channel based on reporter commentary  CReporterBase/abstract reporter class  Npuzzle - Nboard + NboardA base representation for a puzzle board, which is basically a collection of pieces. Gets used in many different ways  CBoardClass description for a board, which is a locality sensitive bag  CCfgCorrespondencesConfiguration setting specifier for Correspondences class  CCorrespondenceParms  CCorrespondencesClass that compares two boards and generates correspondences across them  Nbuilder - Nadjacent + NadjacentThis type of puzzle is simply a set of shapes arranged at specific locations with adjacency permitted. Touching or very close proximity should hold for most or all pieces  CAdjacentPuzzle whose pieces will be touching as part of the solution  CCfgAdjacentConfiguration setting specifier for Arrangement - Narrangement + NarrangementThis type of puzzle is simply a set of shapes arranged at specific locations in the image with no occlusion or overlap. Touching is not necessary (typically not the case)  CArrangementA puzzle that simply needs to arrange pieces on a workspace  CCfgArrangementConfiguration setting specifier for centroidMulti - Ngridded + NgriddedAn interlocking puzzle for which the pieces are arranged in a nice gridded manner with a rectangular shape when complete  CCfgGriddedConfiguration setting specifier for gridded puzzle  CGriddedPuzzle type that is a set of interlocking puzzle pieces that get put together in a grid structure. All rows/columns have same number of pieces - Ninterlocking + NinterlockingThis type of puzzle is simply a set of shapes arranged at specific locations that should actually interlock. Placement for them is less forgiving. In principle, they need to fit together  CCfgInterlockingConfiguration setting specifier for centroidMulti  CInterlockingPuzzle with interlocking pieces  Nclusters - NbyColor - CByColorA puzzle piece clustering method based on color - CParamColorClusterConfiguration parameter struct for byColor clustering - NbyShape - CByShape + NbyColorExtract color features for all the pieces in a given puzzle board + CByColorA puzzle piece clustering method based on color. The feature extractor should be based on color + CParamColorClusterConfiguration parameter struct for byColor clustering + NbyShapeExtract shape features for all the pieces in a given puzzle board + CByShapeClustering by shape  CParamShapeCluster - Nmanager + NmanagerManage the tracking of puzzle pieces  CManagerA class for associating puzzle pieces across boards. It "manages" the puzzle interpretation process over time, where each sensing cycle generates a new board instance  CManagerParms  Nold_board @@ -292,17 +292,17 @@  CTemplate  Nparse  NfromLayer - CFromLayerA basic detector class that processes a layered image (or mask and image) detection output + CFromLayerA basic detector class that processes a layered image (or mask and image) detection output. Converts all isolated regions into their own puzzle piece instances  CParamPuzzle  NfromSketch - CFromSketch + CFromSketchWhat is FromSketch??  Nsimple  CSimple - Nparser + NparserA basic tracking class that processes a layered image (or mask and image) detection output and generates a model of the puzzle pieces in the scene. Converts all accepted, isolated regions into their own puzzle piece instances  CboardMeasurePuzzle piece board measurement class, based on puzzle piece layer parsing  CboardPerceiveA simple perceiver for recovering puzzle pieces from a layer mask and an image. If desired, can do piece association  CCfgBoardMeasureConfiguration setting specifier for centroidMulti - Npiece + NpieceClasses for puzzle piece specification or description encapsulation  CEdgeDes  CEdgeDirectionEdgeDirection used to keep track of the direction of edges  CEdgeTypeEdgeType used to keep track of the type of edges @@ -312,9 +312,9 @@  CRegularA puzzle has Regular pieces when they are all of a consistent sizing such that their edge structure can be compared in a standard North, South, East, West approach  CTemplateStores and encapsulates a template instance of a visual puzzle piece  Npieces - Nedge + NedgeUses edge features to establish similarity  CEdgePuzzle piece edge based comparison - NmatchDifferent + NmatchDifferentSub-classes of this derived class branch use difference scores for determining whether two puzzle pieces match  CCfgDistanceConfiguration setting specifier for distance matcher class  CCfgHistogramCVConfiguration setting specifier for Histogram puzzle comparator class  CCfgMomentsConfiguration setting specifier for Moments class @@ -323,14 +323,14 @@  CHistogramCVOpenCV Histogram puzzle comparator class  CMomentsUses shape moments to establish similarity  CPCAUses pca to calculate rotation - Nmatcher + NmatcherClasses for comparing puzzle pieces in support of puzzle solving and puzzle piece association. The base-type class and most of its member functions will do nothing. They require overloading. The ones that don't should be for some generic functionality  CCfgDifferentConfiguration setting specifier for difference matcher class  CCfgMatcherConfiguration setting specifier for puzzle piece matcher class  CCfgSimilarConfiguration setting specifier for similar matcher class  CMatchDifferentThe puzzle piece matching scores are based on differences. Lower is better  CMatcherGeneric puzzle piece matching class. Actual instances should use similarity of difference matching sub-classes  CMatchSimilarSimilarity matching - NmatchSimilar + NmatchSimilarSub-classes of this derived class branch use similarity scores for determining wheter two puzzle pieces match  CCfgSIFTCVConfiguration setting specifier for OpenCV SIFT matcher class  CSIFTCVUses sift features to establish similarity  Nsift diff --git a/docs/arrangement_8py.html b/docs/arrangement_8py.html index 8a8ceb93..2d5dfbea 100644 --- a/docs/arrangement_8py.html +++ b/docs/arrangement_8py.html @@ -86,9 +86,7 @@

Namespaces

 puzzle.builder.arrangement -  -  PuzzleArrangement - This type of puzzle is simply a set of shapes arranged at specific locations in the image with no occlusion or overlap. Touching is not necessary (typically not the case)
+ This type of puzzle is simply a set of shapes arranged at specific locations in the image with no occlusion or overlap. Touching is not necessary (typically not the case)
  diff --git a/docs/board_8py.html b/docs/board_8py.html index bc83f8d7..c426b077 100644 --- a/docs/board_8py.html +++ b/docs/board_8py.html @@ -92,9 +92,7 @@

Namespaces

 puzzle.board -  -  PuzzleBoard - A base representation for a puzzle board, which is basically a collection of pieces. Gets used in many different ways.
+ A base representation for a puzzle board, which is basically a collection of pieces. Gets used in many different ways.
  - + - +

diff --git a/docs/byColor_8py.html b/docs/byColor_8py.html index 3e2453b0..e621b9cc 100644 --- a/docs/byColor_8py.html +++ b/docs/byColor_8py.html @@ -77,15 +77,16 @@

Classes

class  ByColor
 A puzzle piece clustering method based on color. More...
 A puzzle piece clustering method based on color. The feature extractor should be based on color. More...
 
class  ParamColorCluster
 Configuration parameter struct for byColor clustering. More...
 Configuration parameter struct for byColor clustering. More...
 
+

Namespaces

 puzzle.clusters.byColor
 Extract color features for all the pieces in a given puzzle board.
 
diff --git a/docs/byShape_8py.html b/docs/byShape_8py.html index a6d3b335..832b0b40 100644 --- a/docs/byShape_8py.html +++ b/docs/byShape_8py.html @@ -77,6 +77,7 @@

Classes

class  ByShape + Clustering by shape. More...
  class  ParamShapeCluster   @@ -84,6 +85,7 @@

Namespaces

 puzzle.clusters.byShape + Extract shape features for all the pieces in a given puzzle board.
  diff --git a/docs/classdetector_1_1Configuration_1_1AlgConfig.html b/docs/classdetector_1_1Configuration_1_1AlgConfig.html index af47536f..2c8b66f9 100644 --- a/docs/classdetector_1_1Configuration_1_1AlgConfig.html +++ b/docs/classdetector_1_1Configuration_1_1AlgConfig.html @@ -161,7 +161,7 @@

-

Reimplemented in CfgCorrespondences, CfgPCA, CfgMoments, CfgSimilar, CfgInCorner, CfgDifferent, CfgHistogramCV, CfgSGCone, CfgGMM_cv, CfgBoardMeasure, CfgSIFTCV, CfgCentroind, CfgCentMulti, CfgMatcher, CfgArrangement, CfgGridded, CfgAdjacent, CfgMoving, CfgSGM, CfgInterlocking, CfgDistance, and CfgOnWS.

+

Reimplemented in CfgCorrespondences, CfgPCA, CfgMoments, CfgSimilar, CfgInCorner, CfgDifferent, CfgHistogramCV, CfgSGCone, CfgGMM_cv, CfgBoardMeasure, CfgSIFTCV, CfgCentroind, CfgCentMulti, CfgArrangement, CfgGridded, CfgMatcher, CfgMoving, CfgAdjacent, CfgDistance, CfgSGM, CfgInterlocking, and CfgOnWS.

diff --git a/docs/classdetector_1_1base_1_1Base.html b/docs/classdetector_1_1base_1_1Base.html index ea85c51a..e002faaf 100644 --- a/docs/classdetector_1_1base_1_1Base.html +++ b/docs/classdetector_1_1base_1_1Base.html @@ -93,7 +93,7 @@ - + diff --git a/docs/classdetector_1_1base_1_1Base__inherit__graph.map b/docs/classdetector_1_1base_1_1Base__inherit__graph.map index 4b346972..a9f7c3ee 100644 --- a/docs/classdetector_1_1base_1_1Base__inherit__graph.map +++ b/docs/classdetector_1_1base_1_1Base__inherit__graph.map @@ -9,7 +9,7 @@ - + diff --git a/docs/classdetector_1_1base_1_1Base__inherit__graph.md5 b/docs/classdetector_1_1base_1_1Base__inherit__graph.md5 index 3767317d..dc38d113 100644 --- a/docs/classdetector_1_1base_1_1Base__inherit__graph.md5 +++ b/docs/classdetector_1_1base_1_1Base__inherit__graph.md5 @@ -1 +1 @@ -58f0a5413d2f90b07058a5334cd80512 \ No newline at end of file +c9bfad6ce30aa33b9ae79aa74184a2e2 \ No newline at end of file diff --git a/docs/classdetector_1_1inImage_1_1inImage.html b/docs/classdetector_1_1inImage_1_1inImage.html index a94afa5c..513f98b4 100644 --- a/docs/classdetector_1_1inImage_1_1inImage.html +++ b/docs/classdetector_1_1inImage_1_1inImage.html @@ -87,7 +87,7 @@ - + diff --git a/docs/classdetector_1_1inImage_1_1inImage__inherit__graph.map b/docs/classdetector_1_1inImage_1_1inImage__inherit__graph.map index 4df02d3b..59044429 100644 --- a/docs/classdetector_1_1inImage_1_1inImage__inherit__graph.map +++ b/docs/classdetector_1_1inImage_1_1inImage__inherit__graph.map @@ -4,7 +4,7 @@ - + diff --git a/docs/classdetector_1_1inImage_1_1inImage__inherit__graph.md5 b/docs/classdetector_1_1inImage_1_1inImage__inherit__graph.md5 index c4137116..14b65f99 100644 --- a/docs/classdetector_1_1inImage_1_1inImage__inherit__graph.md5 +++ b/docs/classdetector_1_1inImage_1_1inImage__inherit__graph.md5 @@ -1 +1 @@ -91c036a650744c1d4992c38d17d00d63 \ No newline at end of file +7d031d7ca571548acf016ec50e224889 \ No newline at end of file diff --git a/docs/classpuzzle_1_1board_1_1Board.html b/docs/classpuzzle_1_1board_1_1Board.html index de2f3e67..05683091 100644 --- a/docs/classpuzzle_1_1board_1_1Board.html +++ b/docs/classpuzzle_1_1board_1_1Board.html @@ -84,8 +84,8 @@ - - + + diff --git a/docs/classpuzzle_1_1board_1_1Board__inherit__graph.map b/docs/classpuzzle_1_1board_1_1Board__inherit__graph.map index c8cb608a..a395e76c 100644 --- a/docs/classpuzzle_1_1board_1_1Board__inherit__graph.map +++ b/docs/classpuzzle_1_1board_1_1Board__inherit__graph.map @@ -1,8 +1,8 @@ - - + + diff --git a/docs/classpuzzle_1_1board_1_1Board__inherit__graph.md5 b/docs/classpuzzle_1_1board_1_1Board__inherit__graph.md5 index 97eeca52..5e73dded 100644 --- a/docs/classpuzzle_1_1board_1_1Board__inherit__graph.md5 +++ b/docs/classpuzzle_1_1board_1_1Board__inherit__graph.md5 @@ -1 +1 @@ -2081170c6daad0d901646a6d670c8d44 \ No newline at end of file +d89d7a6480a951b2c0c553469b59ea7c \ No newline at end of file diff --git a/docs/classpuzzle_1_1builder_1_1adjacent_1_1Adjacent.html b/docs/classpuzzle_1_1builder_1_1adjacent_1_1Adjacent.html index f3434284..2a1e580f 100644 --- a/docs/classpuzzle_1_1builder_1_1adjacent_1_1Adjacent.html +++ b/docs/classpuzzle_1_1builder_1_1adjacent_1_1Adjacent.html @@ -104,7 +104,7 @@

Public Member Functions

def __init__ (self, theBoard=[], theParams=CfgAdjacent) - Constructor for the puzzle.builder.adjacent class. More...
+ Constructor for the puzzle.builder.adjacent class. More...
  def processAdjacency (self)  Process the solution board and determine what pieces are adjacent or "close enough." It will determine the adjacency matrix. More...
@@ -245,7 +245,7 @@

-

Constructor for the puzzle.builder.adjacent class.

+

Constructor for the puzzle.builder.adjacent class.

Args: theBoard: The input board instance. theParams: The params.

Reimplemented from Arrangement.

diff --git a/docs/classpuzzle_1_1builder_1_1arrangement_1_1Arrangement.html b/docs/classpuzzle_1_1builder_1_1arrangement_1_1Arrangement.html index 057df367..4b199416 100644 --- a/docs/classpuzzle_1_1builder_1_1arrangement_1_1Arrangement.html +++ b/docs/classpuzzle_1_1builder_1_1arrangement_1_1Arrangement.html @@ -103,7 +103,7 @@

Public Member Functions

def __init__ (self, theBoard=[], theParams=CfgArrangement) - Constructor for the puzzle.builder.arrangement class. More...
+ Constructor for the puzzle.builder.arrangement class. More...
  def corrections (self, pLoc)  Given an array of locations that correspond to the puzzle board (e.g., in the same order as puzzle board list), provide the correction vector that would move them to the calibrated locations. More...
@@ -235,7 +235,7 @@

-

Constructor for the puzzle.builder.arrangement class.

+

Constructor for the puzzle.builder.arrangement class.

Args: theBoard: A board instance. theParams: The parameters.

Reimplemented in Interlocking, Gridded, and Adjacent.

diff --git a/docs/classpuzzle_1_1builder_1_1gridded_1_1Gridded.html b/docs/classpuzzle_1_1builder_1_1gridded_1_1Gridded.html index 6ea7e1b0..da726d18 100644 --- a/docs/classpuzzle_1_1builder_1_1gridded_1_1Gridded.html +++ b/docs/classpuzzle_1_1builder_1_1gridded_1_1Gridded.html @@ -106,7 +106,7 @@

Public Member Functions

def __init__ (self, theBoard=[], theParams=CfgGridded) - Constructor for the puzzle.builder.adjacent class. More...
+ Constructor for the puzzle.builder.adjacent class. More...
  def assert_gc (self, verbose=False)  Assert the assigned grid coordinates are correct. More...
@@ -271,7 +271,7 @@

-

Constructor for the puzzle.builder.adjacent class.

+

Constructor for the puzzle.builder.adjacent class.

Parameters
diff --git a/docs/classpuzzle_1_1builder_1_1interlocking_1_1CfgInterlocking.html b/docs/classpuzzle_1_1builder_1_1interlocking_1_1CfgInterlocking.html index 510e5a0c..5e47bb35 100644 --- a/docs/classpuzzle_1_1builder_1_1interlocking_1_1CfgInterlocking.html +++ b/docs/classpuzzle_1_1builder_1_1interlocking_1_1CfgInterlocking.html @@ -71,7 +71,7 @@ Static Public Member Functions | List of all members
-
CfgInterlocking Class Reference
+
CfgInterlocking Class Reference
diff --git a/docs/classpuzzle_1_1builder_1_1interlocking_1_1Interlocking.html b/docs/classpuzzle_1_1builder_1_1interlocking_1_1Interlocking.html index 8dc73af9..d285be40 100644 --- a/docs/classpuzzle_1_1builder_1_1interlocking_1_1Interlocking.html +++ b/docs/classpuzzle_1_1builder_1_1interlocking_1_1Interlocking.html @@ -105,7 +105,7 @@
- + @@ -252,7 +252,7 @@

-

Constructor for the puzzle.builder.adjacent class.

+

Constructor for the puzzle.builder.adjacent class.

Args: theBoard: The input board instance. theParams: The params.

Reimplemented from Adjacent.

diff --git a/docs/classpuzzle_1_1clusters_1_1byColor_1_1ByColor.html b/docs/classpuzzle_1_1clusters_1_1byColor_1_1ByColor.html index 91fc9045..eede1bd0 100644 --- a/docs/classpuzzle_1_1clusters_1_1byColor_1_1ByColor.html +++ b/docs/classpuzzle_1_1clusters_1_1byColor_1_1ByColor.html @@ -71,18 +71,18 @@ Public Attributes | List of all members
-
ByColor Class Reference
+
ByColor Class Reference
-

A puzzle piece clustering method based on color. +

A puzzle piece clustering method based on color. The feature extractor should be based on color. More...

Inheritance diagram for ByColor:
Inheritance graph
- +
[legend]
@@ -91,7 +91,7 @@
Collaboration graph
- +
[legend]
@@ -99,7 +99,7 @@

- + @@ -176,8 +176,7 @@
[in]theBoardInput board instance.

Public Member Functions

def __init__ (self, theBoard=[], theParams=CfgInterlocking)
 Constructor for the puzzle.builder.adjacent class. More...
 Constructor for the puzzle.builder.adjacent class. More...
 
def processInterlocking (self)
 Process the solution board and determine what pieces are interlocking or adjacent. More...

Public Member Functions

def __init__ (self, thePuzzle, extractor=Histogram(), theParams=ParamColorCluster)
 Constructor for the byColor class. More...
 Constructor for the byColor class. More...
 
def process (self)
 Extract color features from the data. More...
 

Detailed Description

-

A puzzle piece clustering method based on color.

-

The feature extractor should be based on color.

+

A puzzle piece clustering method based on color. The feature extractor should be based on color.

Constructor & Destructor Documentation

◆ __init__()

@@ -217,7 +216,7 @@

-

Constructor for the byColor class.

+

Constructor for the byColor class.

Args: thePuzzle: The input puzzle board. extractor: A matcher instance. theParams: The param for threshold.

diff --git a/docs/classpuzzle_1_1clusters_1_1byColor_1_1ByColor__coll__graph.map b/docs/classpuzzle_1_1clusters_1_1byColor_1_1ByColor__coll__graph.map index dfbcf4bc..02854a6f 100644 --- a/docs/classpuzzle_1_1clusters_1_1byColor_1_1ByColor__coll__graph.map +++ b/docs/classpuzzle_1_1clusters_1_1byColor_1_1ByColor__coll__graph.map @@ -1,4 +1,4 @@ - + diff --git a/docs/classpuzzle_1_1clusters_1_1byColor_1_1ByColor__coll__graph.md5 b/docs/classpuzzle_1_1clusters_1_1byColor_1_1ByColor__coll__graph.md5 index f407bef4..fe260441 100644 --- a/docs/classpuzzle_1_1clusters_1_1byColor_1_1ByColor__coll__graph.md5 +++ b/docs/classpuzzle_1_1clusters_1_1byColor_1_1ByColor__coll__graph.md5 @@ -1 +1 @@ -c55251cb2588a677ff40d125fe1701c2 \ No newline at end of file +57fba594a0cdf78a51b3c22f9e942469 \ No newline at end of file diff --git a/docs/classpuzzle_1_1clusters_1_1byColor_1_1ByColor__inherit__graph.map b/docs/classpuzzle_1_1clusters_1_1byColor_1_1ByColor__inherit__graph.map index dfbcf4bc..02854a6f 100644 --- a/docs/classpuzzle_1_1clusters_1_1byColor_1_1ByColor__inherit__graph.map +++ b/docs/classpuzzle_1_1clusters_1_1byColor_1_1ByColor__inherit__graph.map @@ -1,4 +1,4 @@ - + diff --git a/docs/classpuzzle_1_1clusters_1_1byColor_1_1ByColor__inherit__graph.md5 b/docs/classpuzzle_1_1clusters_1_1byColor_1_1ByColor__inherit__graph.md5 index f407bef4..fe260441 100644 --- a/docs/classpuzzle_1_1clusters_1_1byColor_1_1ByColor__inherit__graph.md5 +++ b/docs/classpuzzle_1_1clusters_1_1byColor_1_1ByColor__inherit__graph.md5 @@ -1 +1 @@ -c55251cb2588a677ff40d125fe1701c2 \ No newline at end of file +57fba594a0cdf78a51b3c22f9e942469 \ No newline at end of file diff --git a/docs/classpuzzle_1_1clusters_1_1byColor_1_1ParamColorCluster.html b/docs/classpuzzle_1_1clusters_1_1byColor_1_1ParamColorCluster.html index ef78b7ef..b0dc364b 100644 --- a/docs/classpuzzle_1_1clusters_1_1byColor_1_1ParamColorCluster.html +++ b/docs/classpuzzle_1_1clusters_1_1byColor_1_1ParamColorCluster.html @@ -74,7 +74,7 @@
-

Configuration parameter struct for byColor clustering. +

Configuration parameter struct for byColor clustering. More...

@@ -87,7 +87,7 @@

 

Detailed Description

-

Configuration parameter struct for byColor clustering.

+

Configuration parameter struct for byColor clustering.

There are two basic clustering approaches implemented. One is an agglomerative clustering method based on a distance threshold. The other is based on a target quantity of clusters or groupings. These are mutually exclusing implementations.

Member Data Documentation

diff --git a/docs/classpuzzle_1_1clusters_1_1byShape_1_1ByShape.html b/docs/classpuzzle_1_1clusters_1_1byShape_1_1ByShape.html index 6d759949..49dc9674 100644 --- a/docs/classpuzzle_1_1clusters_1_1byShape_1_1ByShape.html +++ b/docs/classpuzzle_1_1clusters_1_1byShape_1_1ByShape.html @@ -71,15 +71,18 @@ Public Attributes | List of all members
-
ByShape Class Reference
+
ByShape Class Reference
+ +

Clustering by shape. + More...

Inheritance diagram for ByShape:
Inheritance graph
- +
[legend]
@@ -88,7 +91,7 @@
Collaboration graph
- +
[legend]
@@ -96,8 +99,10 @@

Public Member Functions

def __init__ (self, thePuzzle, extractor=Moments(), theParams=ParamShapeCluster) + Constructor for the byShape class. More...
  def process (self) + @ brief Extract shape features from the data. More...
  - Public Member Functions inherited from Board def __init__ (self, *argv) @@ -163,7 +168,9 @@  pieces   -

Constructor & Destructor Documentation

+

Detailed Description

+

Clustering by shape.

+

Constructor & Destructor Documentation

◆ __init__()

@@ -201,12 +208,10 @@

-
@brief  Constructor for the byShape class.
 
-Args:
-    thePuzzle: The input puzzle board.
-    extractor: A matcher instance.
-
+

Constructor for the byShape class.

+

Args: thePuzzle: The input puzzle board. extractor: A matcher instance.

+

Member Function Documentation

@@ -225,8 +230,9 @@

-
@ brief Extract shape features from the data.
-
+ +

@ brief Extract shape features from the data.

+

Member Data Documentation

diff --git a/docs/classpuzzle_1_1clusters_1_1byShape_1_1ByShape__coll__graph.map b/docs/classpuzzle_1_1clusters_1_1byShape_1_1ByShape__coll__graph.map index d6c02882..072ec2b2 100644 --- a/docs/classpuzzle_1_1clusters_1_1byShape_1_1ByShape__coll__graph.map +++ b/docs/classpuzzle_1_1clusters_1_1byShape_1_1ByShape__coll__graph.map @@ -1,4 +1,4 @@ - + diff --git a/docs/classpuzzle_1_1clusters_1_1byShape_1_1ByShape__coll__graph.md5 b/docs/classpuzzle_1_1clusters_1_1byShape_1_1ByShape__coll__graph.md5 index 9abba297..fa24b7c2 100644 --- a/docs/classpuzzle_1_1clusters_1_1byShape_1_1ByShape__coll__graph.md5 +++ b/docs/classpuzzle_1_1clusters_1_1byShape_1_1ByShape__coll__graph.md5 @@ -1 +1 @@ -c3917e64e746fa1fca65382a85d3aadb \ No newline at end of file +662f585b5cb92cab5631afa6473149cb \ No newline at end of file diff --git a/docs/classpuzzle_1_1clusters_1_1byShape_1_1ByShape__inherit__graph.map b/docs/classpuzzle_1_1clusters_1_1byShape_1_1ByShape__inherit__graph.map index d6c02882..072ec2b2 100644 --- a/docs/classpuzzle_1_1clusters_1_1byShape_1_1ByShape__inherit__graph.map +++ b/docs/classpuzzle_1_1clusters_1_1byShape_1_1ByShape__inherit__graph.map @@ -1,4 +1,4 @@ - + diff --git a/docs/classpuzzle_1_1clusters_1_1byShape_1_1ByShape__inherit__graph.md5 b/docs/classpuzzle_1_1clusters_1_1byShape_1_1ByShape__inherit__graph.md5 index 9abba297..fa24b7c2 100644 --- a/docs/classpuzzle_1_1clusters_1_1byShape_1_1ByShape__inherit__graph.md5 +++ b/docs/classpuzzle_1_1clusters_1_1byShape_1_1ByShape__inherit__graph.md5 @@ -1 +1 @@ -c3917e64e746fa1fca65382a85d3aadb \ No newline at end of file +662f585b5cb92cab5631afa6473149cb \ No newline at end of file diff --git a/docs/classpuzzle_1_1parse_1_1fromLayer_1_1FromLayer.html b/docs/classpuzzle_1_1parse_1_1fromLayer_1_1FromLayer.html index fd02930a..8684ab17 100644 --- a/docs/classpuzzle_1_1parse_1_1fromLayer_1_1FromLayer.html +++ b/docs/classpuzzle_1_1parse_1_1fromLayer_1_1FromLayer.html @@ -71,18 +71,18 @@
Public Attributes | List of all members
-
FromLayer Class Reference
+
FromLayer Class Reference
-

A basic detector class that processes a layered image (or mask and image) detection output. +

A basic detector class that processes a layered image (or mask and image) detection output. Converts all isolated regions into their own puzzle piece instances. More...

Inheritance diagram for FromLayer:
Inheritance graph
- + @@ -93,7 +93,7 @@
Collaboration graph
- + @@ -103,8 +103,10 @@

Public Member Functions

def __init__ (self, theParams=ParamPuzzle) + Constructor for the puzzle piece layer parsing class. More...
  def findCorrectedContours (self, mask, FILTER=True) + Find the right contours given a binary mask image. More...
  def getState (self)   @@ -183,8 +185,7 @@  

Detailed Description

-

A basic detector class that processes a layered image (or mask and image) detection output.

-

Converts all isolated regions into their own puzzle piece instances.

+

A basic detector class that processes a layered image (or mask and image) detection output. Converts all isolated regions into their own puzzle piece instances.

Constructor & Destructor Documentation

◆ __init__()

@@ -211,11 +212,10 @@

-
@brief  Constructor for the puzzle piece layer parsing class.
 
-Args:
-    theParams: The parameters.
-
+

Constructor for the puzzle piece layer parsing class.

+

Args: theParams: The parameters.

+

Member Function Documentation

@@ -250,14 +250,11 @@

-
@brief Find the right contours given a binary mask image.
 
-Args:
-    mask: The input binary mask image.
+

Find the right contours given a binary mask image.

+

Args: mask: The input binary mask image.

+

Returns: desired_cnts: Contour list.

-Returns: - desired_cnts: Contour list. -

diff --git a/docs/classpuzzle_1_1parse_1_1fromLayer_1_1FromLayer__coll__graph.map b/docs/classpuzzle_1_1parse_1_1fromLayer_1_1FromLayer__coll__graph.map index f9b6d7c0..9afd249f 100644 --- a/docs/classpuzzle_1_1parse_1_1fromLayer_1_1FromLayer__coll__graph.map +++ b/docs/classpuzzle_1_1parse_1_1fromLayer_1_1FromLayer__coll__graph.map @@ -1,5 +1,5 @@ - + diff --git a/docs/classpuzzle_1_1parse_1_1fromLayer_1_1FromLayer__coll__graph.md5 b/docs/classpuzzle_1_1parse_1_1fromLayer_1_1FromLayer__coll__graph.md5 index 81105dcf..43eb95b8 100644 --- a/docs/classpuzzle_1_1parse_1_1fromLayer_1_1FromLayer__coll__graph.md5 +++ b/docs/classpuzzle_1_1parse_1_1fromLayer_1_1FromLayer__coll__graph.md5 @@ -1 +1 @@ -ba221a6497046c6c44dc86398a0faaed \ No newline at end of file +5aba73c5aa9e7644841bde04b062e8aa \ No newline at end of file diff --git a/docs/classpuzzle_1_1parse_1_1fromLayer_1_1FromLayer__inherit__graph.map b/docs/classpuzzle_1_1parse_1_1fromLayer_1_1FromLayer__inherit__graph.map index f9b6d7c0..9afd249f 100644 --- a/docs/classpuzzle_1_1parse_1_1fromLayer_1_1FromLayer__inherit__graph.map +++ b/docs/classpuzzle_1_1parse_1_1fromLayer_1_1FromLayer__inherit__graph.map @@ -1,5 +1,5 @@ - + diff --git a/docs/classpuzzle_1_1parse_1_1fromLayer_1_1FromLayer__inherit__graph.md5 b/docs/classpuzzle_1_1parse_1_1fromLayer_1_1FromLayer__inherit__graph.md5 index 81105dcf..43eb95b8 100644 --- a/docs/classpuzzle_1_1parse_1_1fromLayer_1_1FromLayer__inherit__graph.md5 +++ b/docs/classpuzzle_1_1parse_1_1fromLayer_1_1FromLayer__inherit__graph.md5 @@ -1 +1 @@ -ba221a6497046c6c44dc86398a0faaed \ No newline at end of file +5aba73c5aa9e7644841bde04b062e8aa \ No newline at end of file diff --git a/docs/classpuzzle_1_1parse_1_1fromSketch_1_1FromSketch.html b/docs/classpuzzle_1_1parse_1_1fromSketch_1_1FromSketch.html index d8c910da..9785048d 100644 --- a/docs/classpuzzle_1_1parse_1_1fromSketch_1_1FromSketch.html +++ b/docs/classpuzzle_1_1parse_1_1fromSketch_1_1FromSketch.html @@ -71,15 +71,18 @@ Public Attributes | List of all members
-
FromSketch Class Reference
+
FromSketch Class Reference
+ +

What is FromSketch?? + More...

Inheritance diagram for FromSketch:
Inheritance graph
- + @@ -90,7 +93,7 @@
Collaboration graph
- + @@ -102,11 +105,13 @@ def __init__ (self, processor=None)   def measure (self, I, M=None) + Process the passed imagery to get the mask. More...
  def predict (self)  Predict next state from current state. More...
  def process (self, I, M=None) + Process the passed imagery. More...
  - Public Member Functions inherited from inImage def info (self) @@ -174,7 +179,9 @@  Empty method for loading internal information from HDF5 file. More...
  -

Constructor & Destructor Documentation

+

Detailed Description

+

What is FromSketch??

+

Constructor & Destructor Documentation

◆ __init__()

@@ -237,12 +244,10 @@

-
@brief Process the passed imagery to get the mask.
 
-Args:
-    I:  RGB image.
-    M:  Mask image.
-
+

Process the passed imagery to get the mask.

+

Args: I: RGB image. M: Mask image.

+

@@ -300,12 +305,10 @@

-
@brief Process the passed imagery.
 
-Args:
-    I:  RGB image.
-    M:  Mask image.
-
+

Process the passed imagery.

+

Args: I: RGB image. M: Mask image.

+

Member Data Documentation

diff --git a/docs/classpuzzle_1_1parse_1_1fromSketch_1_1FromSketch__coll__graph.map b/docs/classpuzzle_1_1parse_1_1fromSketch_1_1FromSketch__coll__graph.map index 4d1777b9..ba812e61 100644 --- a/docs/classpuzzle_1_1parse_1_1fromSketch_1_1FromSketch__coll__graph.map +++ b/docs/classpuzzle_1_1parse_1_1fromSketch_1_1FromSketch__coll__graph.map @@ -1,5 +1,5 @@ - + diff --git a/docs/classpuzzle_1_1parse_1_1fromSketch_1_1FromSketch__coll__graph.md5 b/docs/classpuzzle_1_1parse_1_1fromSketch_1_1FromSketch__coll__graph.md5 index b5700f8e..3d2aa1b5 100644 --- a/docs/classpuzzle_1_1parse_1_1fromSketch_1_1FromSketch__coll__graph.md5 +++ b/docs/classpuzzle_1_1parse_1_1fromSketch_1_1FromSketch__coll__graph.md5 @@ -1 +1 @@ -ebb6a7901aea65b5de90ed15523eb296 \ No newline at end of file +170065b8e68adaa1bc906ec6b2c701cf \ No newline at end of file diff --git a/docs/classpuzzle_1_1parse_1_1fromSketch_1_1FromSketch__inherit__graph.map b/docs/classpuzzle_1_1parse_1_1fromSketch_1_1FromSketch__inherit__graph.map index 4d1777b9..ba812e61 100644 --- a/docs/classpuzzle_1_1parse_1_1fromSketch_1_1FromSketch__inherit__graph.map +++ b/docs/classpuzzle_1_1parse_1_1fromSketch_1_1FromSketch__inherit__graph.map @@ -1,5 +1,5 @@ - + diff --git a/docs/classpuzzle_1_1parse_1_1fromSketch_1_1FromSketch__inherit__graph.md5 b/docs/classpuzzle_1_1parse_1_1fromSketch_1_1FromSketch__inherit__graph.md5 index b5700f8e..3d2aa1b5 100644 --- a/docs/classpuzzle_1_1parse_1_1fromSketch_1_1FromSketch__inherit__graph.md5 +++ b/docs/classpuzzle_1_1parse_1_1fromSketch_1_1FromSketch__inherit__graph.md5 @@ -1 +1 @@ -ebb6a7901aea65b5de90ed15523eb296 \ No newline at end of file +170065b8e68adaa1bc906ec6b2c701cf \ No newline at end of file diff --git a/docs/classpuzzle_1_1parser_1_1boardPerceive.html b/docs/classpuzzle_1_1parser_1_1boardPerceive.html index d5d442a0..a96fa296 100644 --- a/docs/classpuzzle_1_1parser_1_1boardPerceive.html +++ b/docs/classpuzzle_1_1parser_1_1boardPerceive.html @@ -128,7 +128,7 @@

Detailed Description

A simple perceiver for recovering puzzle pieces from a layer mask and an image. If desired, can do piece association.

Being a perceiver, there is flexibility in the implementation. There will be many ways to instantiate a simple puzzle perceiver.

-
Todo:
Create complete implementation with track filter.
+
Todo:
Create complete implementation with track filter.

Constructor & Destructor Documentation

◆ __init__()

diff --git a/docs/classpuzzle_1_1piece_1_1Piece.html b/docs/classpuzzle_1_1piece_1_1Piece.html index cfb1c39b..a2415d99 100644 --- a/docs/classpuzzle_1_1piece_1_1Piece.html +++ b/docs/classpuzzle_1_1piece_1_1Piece.html @@ -85,7 +85,7 @@

Detailed Description

Bad code here.

Created a dummy Piece class rather than use the Template class for defining the static method getBuilderFromString.

-
Todo:
When have time, need to integrate into Template or have be generic function available through the Piece package. Piece.getBuilderFromString. or Piece.Template, Piece.Regular, etc. For now leaving until have time to make correction and ensure code + unit tests work.
+
Todo:
When have time, need to integrate into Template or have be generic function available through the Piece package. Piece.getBuilderFromString. or Piece.Template, Piece.Regular, etc. For now leaving until have time to make correction and ensure code + unit tests work.

Member Function Documentation

◆ getBuilderFromString()

diff --git a/docs/classpuzzle_1_1piece_1_1Regular.html b/docs/classpuzzle_1_1piece_1_1Regular.html index df3dff1f..4346e956 100644 --- a/docs/classpuzzle_1_1piece_1_1Regular.html +++ b/docs/classpuzzle_1_1piece_1_1Regular.html @@ -430,7 +430,7 @@

Todo:
Shouldn't this be a private or protected member function?

+
Todo:
Shouldn't this be a private or protected member function?
diff --git a/docs/classpuzzle_1_1piece_1_1Template.html b/docs/classpuzzle_1_1piece_1_1Template.html index a26fc2e0..5d17b509 100644 --- a/docs/classpuzzle_1_1piece_1_1Template.html +++ b/docs/classpuzzle_1_1piece_1_1Template.html @@ -167,7 +167,7 @@

Detailed Description

Stores and encapsulates a template instance of a visual puzzle piece.

-

The language here is general, but the fact that it lives in the puzzle.piece namespace indicates that this class is strictly associated to puzzle pieces. As the base class, it probably implements the simplest, no frills version of a template puzzle piece.

+

The language here is general, but the fact that it lives in the puzzle.piece namespace indicates that this class is strictly associated to puzzle pieces. As the base class, it probably implements the simplest, no frills version of a template puzzle piece.

Constructor & Destructor Documentation

◆ __init__()

@@ -295,7 +295,7 @@

Todo:
Include option to have cropped mask but full image and use cLoc.
+
Todo:
Include option to have cropped mask but full image and use cLoc.

Reimplemented in Regular.

diff --git a/docs/classpuzzle_1_1pieces_1_1edge_1_1Edge.html b/docs/classpuzzle_1_1pieces_1_1edge_1_1Edge.html index d0c0ce6d..974c7edd 100644 --- a/docs/classpuzzle_1_1pieces_1_1edge_1_1Edge.html +++ b/docs/classpuzzle_1_1pieces_1_1edge_1_1Edge.html @@ -142,7 +142,7 @@

Detailed Description

Puzzle piece edge based comparison.

Note
Not sure if properly integrated into current code-base. [2024/10/20 - PAV]
-
Todo:
Need to confirm that works. [2024/10/20 - PAV]
+
Todo:
Need to confirm that works. [2024/10/20 - PAV]

Constructor & Destructor Documentation

◆ __init__()

diff --git a/docs/classpuzzle_1_1pieces_1_1matchSimilar_1_1SIFTCV.html b/docs/classpuzzle_1_1pieces_1_1matchSimilar_1_1SIFTCV.html index 195388e5..0e2855f9 100644 --- a/docs/classpuzzle_1_1pieces_1_1matchSimilar_1_1SIFTCV.html +++ b/docs/classpuzzle_1_1pieces_1_1matchSimilar_1_1SIFTCV.html @@ -190,7 +190,7 @@

https://opencv24-python-tutorials.readthedocs.io/en/latest/py_tutorials/py_feature2d/py_matcher/py_matcher.html and https://scikit-image.org/docs/dev/auto_examples/transform/plot_matching.html

-
Todo:

Establish whether the registration code should be here or elsewhere. The reason for being here is that it takes advantage of matching computations made to prevent additional computations.

+
Todo:

Establish whether the registration code should be here or elsewhere. The reason for being here is that it takes advantage of matching computations made to prevent additional computations.

Yet, these are done whether it is a match or not. Better to not bother if not even a match. Going to go with that by rearranging the code [2023/11/03]. Delete note if acceptable.

Parameters
diff --git a/docs/classtrackpointer_1_1centroidMulti_1_1centroidMulti.html b/docs/classtrackpointer_1_1centroidMulti_1_1centroidMulti.html index 0756e523..50e1df86 100644 --- a/docs/classtrackpointer_1_1centroidMulti_1_1centroidMulti.html +++ b/docs/classtrackpointer_1_1centroidMulti_1_1centroidMulti.html @@ -80,7 +80,7 @@
Inheritance graph
- + diff --git a/docs/classtrackpointer_1_1centroidMulti_1_1centroidMulti__inherit__graph.map b/docs/classtrackpointer_1_1centroidMulti_1_1centroidMulti__inherit__graph.map index fd067bd9..92674517 100644 --- a/docs/classtrackpointer_1_1centroidMulti_1_1centroidMulti__inherit__graph.map +++ b/docs/classtrackpointer_1_1centroidMulti_1_1centroidMulti__inherit__graph.map @@ -1,6 +1,6 @@ - + diff --git a/docs/classtrackpointer_1_1centroidMulti_1_1centroidMulti__inherit__graph.md5 b/docs/classtrackpointer_1_1centroidMulti_1_1centroidMulti__inherit__graph.md5 index 39e8fbf5..9e6c3658 100644 --- a/docs/classtrackpointer_1_1centroidMulti_1_1centroidMulti__inherit__graph.md5 +++ b/docs/classtrackpointer_1_1centroidMulti_1_1centroidMulti__inherit__graph.md5 @@ -1 +1 @@ -f24e9cd31b2e8d1a01969e6ccc65feea \ No newline at end of file +bbe9f517f185b39d23de20ab7fa4ceae \ No newline at end of file diff --git a/docs/classtrackpointer_1_1centroid_1_1centroid.html b/docs/classtrackpointer_1_1centroid_1_1centroid.html index 755abfc2..a3394432 100644 --- a/docs/classtrackpointer_1_1centroid_1_1centroid.html +++ b/docs/classtrackpointer_1_1centroid_1_1centroid.html @@ -82,7 +82,7 @@ - +
[legend]
diff --git a/docs/classtrackpointer_1_1centroid_1_1centroid__inherit__graph.map b/docs/classtrackpointer_1_1centroid_1_1centroid__inherit__graph.map index 35010d58..6b6162e4 100644 --- a/docs/classtrackpointer_1_1centroid_1_1centroid__inherit__graph.map +++ b/docs/classtrackpointer_1_1centroid_1_1centroid__inherit__graph.map @@ -2,6 +2,6 @@ - +
diff --git a/docs/classtrackpointer_1_1centroid_1_1centroid__inherit__graph.md5 b/docs/classtrackpointer_1_1centroid_1_1centroid__inherit__graph.md5 index 86142843..0b2ae9ed 100644 --- a/docs/classtrackpointer_1_1centroid_1_1centroid__inherit__graph.md5 +++ b/docs/classtrackpointer_1_1centroid_1_1centroid__inherit__graph.md5 @@ -1 +1 @@ -23cf32c08648620f0d08231a9e6b8b64 \ No newline at end of file +e043d8ea2c2d5fb4a85cc5ee8c4fc180 \ No newline at end of file diff --git a/docs/edge_8py.html b/docs/edge_8py.html index 90e37f74..70555f62 100644 --- a/docs/edge_8py.html +++ b/docs/edge_8py.html @@ -83,6 +83,7 @@

Namespaces

 puzzle.pieces.edge + Uses edge features to establish similarity.
  diff --git a/docs/fromLayer_8py.html b/docs/fromLayer_8py.html index 8f181c9a..7eb77519 100644 --- a/docs/fromLayer_8py.html +++ b/docs/fromLayer_8py.html @@ -77,7 +77,7 @@

Classes

class  FromLayer - A basic detector class that processes a layered image (or mask and image) detection output. More...
+ A basic detector class that processes a layered image (or mask and image) detection output. Converts all isolated regions into their own puzzle piece instances. More...
  class  ParamPuzzle   @@ -86,6 +86,9 @@ Namespaces

 puzzle.parse.fromLayer   +  puzzle.parser.fromLayer + A basic detector class that processes a layered image (or mask and image) detection output. Converts all isolated regions into their own puzzle piece instances.
diff --git a/docs/fromSketch_8py.html b/docs/fromSketch_8py.html index 268acc02..75f7cb11 100644 --- a/docs/fromSketch_8py.html +++ b/docs/fromSketch_8py.html @@ -77,12 +77,16 @@

Classes

class  FromSketch + What is FromSketch?? More...
  + + +

Namespaces

 puzzle.parse.fromSketch
 
 puzzle.parser.fromSketch
 A derived detector class that can process an image & mask image to create a binary mask.
 
diff --git a/docs/gridded_8py.html b/docs/gridded_8py.html index 3300be1f..c8db9500 100644 --- a/docs/gridded_8py.html +++ b/docs/gridded_8py.html @@ -86,9 +86,7 @@

Namespaces

 puzzle.builder.gridded -  -  PuzzleGridded - An interlocking puzzle for which the pieces are arranged in a nice gridded manner with a rectangular shape when complete.
+ An interlocking puzzle for which the pieces are arranged in a nice gridded manner with a rectangular shape when complete.
  diff --git a/docs/group__PuzzleSolver.html b/docs/group__PuzzleSolver.html index 57b5970f..2bdba856 100644 --- a/docs/group__PuzzleSolver.html +++ b/docs/group__PuzzleSolver.html @@ -99,11 +99,17 @@ - - + + - - + + + + + + + +

Namespaces

 PuzzleBoard
 A base representation for a puzzle board, which is basically a collection of pieces. Gets used in many different ways.
 puzzle.board
 A base representation for a puzzle board, which is basically a collection of pieces. Gets used in many different ways.
 
 PuzzlePiece
 Classes for puzzle piece specification or description encapsulation.
 puzzle.parser.fromLayer
 A basic detector class that processes a layered image (or mask and image) detection output. Converts all isolated regions into their own puzzle piece instances.
 
 puzzle.parser.fromSketch
 A derived detector class that can process an image & mask image to create a binary mask.
 
 puzzle.piece
 Classes for puzzle piece specification or description encapsulation.
 
+ + + + + + diff --git a/docs/group__Puzzle__Clusters.html b/docs/group__Puzzle__Clusters.html index 7605ea76..a8f96c2c 100644 --- a/docs/group__Puzzle__Clusters.html +++ b/docs/group__Puzzle__Clusters.html @@ -62,6 +62,9 @@
+
Puzzle Clustering
@@ -78,6 +81,26 @@ +

@@ -111,6 +117,12 @@

class  Board
 Class description for a board, which is a locality sensitive bag. More...
 
class  FromLayer
 A basic detector class that processes a layered image (or mask and image) detection output. Converts all isolated regions into their own puzzle piece instances. More...
 
class  FromSketch
 What is FromSketch?? More...
 
class  PieceStatus
 PieceStatus used to keep track of the status of pieces. More...
 
+ + + + + + + +

+Namespaces

 puzzle.clusters.byColor
 Extract color features for all the pieces in a given puzzle board.
 
 puzzle.clusters.byShape
 Extract shape features for all the pieces in a given puzzle board.
 
+ + + + + + + +

+Classes

class  ByColor
 A puzzle piece clustering method based on color. The feature extractor should be based on color. More...
 
class  ByShape
 Clustering by shape. More...
 
+

Detailed Description

Interfaces for clustering puzzle pieces.

diff --git a/docs/group__Puzzle__Tracking.html b/docs/group__Puzzle__Tracking.html index a9d342b5..114eedd0 100644 --- a/docs/group__Puzzle__Tracking.html +++ b/docs/group__Puzzle__Tracking.html @@ -84,17 +84,23 @@ - - + + - - + + - - + + - - + + + + + + + +

Namespaces

 PuzzleManager
 Manage the tracking of puzzle pieces.
 puzzle.manager
 Manage the tracking of puzzle pieces.
 
 PuzzleParser
 A basic tracking class that processes a layered image (or mask and image) detection output and generates a model of the puzzle pieces in the scene. Converts all accepted, isolated regions into their own puzzle piece instances.
 puzzle.parser
 A basic tracking class that processes a layered image (or mask and image) detection output and generates a model of the puzzle pieces in the scene. Converts all accepted, isolated regions into their own puzzle piece instances.
 
 PuzzlePieceMatcher
 Classes for comparing puzzle pieces in support of puzzle solving and puzzle piece association. The base-type class and most of its member functions will do nothing. They require overloading. The ones that don't should be for some generic functionality.
 puzzle.pieces.edge
 Uses edge features to establish similarity.
 
 PuzzlePieceSimilarity
 Sub-classes of this derived class branch use similarity scores for determining wheter two puzzle pieces match.
 puzzle.pieces.matchDifferent
 Sub-classes of this derived class branch use difference scores for determining whether two puzzle pieces match.
 
 puzzle.pieces.matcher
 Classes for comparing puzzle pieces in support of puzzle solving and puzzle piece association. The base-type class and most of its member functions will do nothing. They require overloading. The ones that don't should be for some generic functionality.
 
 puzzle.pieces.matchSimilar
 Sub-classes of this derived class branch use similarity scores for determining wheter two puzzle pieces match.
 
- - + + @@ -177,7 +177,7 @@ - + @@ -191,14 +191,14 @@ - + - + diff --git a/docs/inherit_graph_26.map b/docs/inherit_graph_26.map index 89a7b079..50306c29 100644 --- a/docs/inherit_graph_26.map +++ b/docs/inherit_graph_26.map @@ -24,7 +24,7 @@ - + @@ -42,6 +42,6 @@ - + diff --git a/docs/inherit_graph_26.md5 b/docs/inherit_graph_26.md5 index 88068071..25497c0f 100644 --- a/docs/inherit_graph_26.md5 +++ b/docs/inherit_graph_26.md5 @@ -1 +1 @@ -6c2aed2f41034fa8f9cbd859e6e9ea78 \ No newline at end of file +174453f9db42ab1c6ee67a1f42b7595f \ No newline at end of file diff --git a/docs/inherit_graph_7.map b/docs/inherit_graph_7.map index 5ad1d75d..5c47fa19 100644 --- a/docs/inherit_graph_7.map +++ b/docs/inherit_graph_7.map @@ -1,8 +1,8 @@ - - + + diff --git a/docs/inherit_graph_7.md5 b/docs/inherit_graph_7.md5 index 380256ce..f5b7d06e 100644 --- a/docs/inherit_graph_7.md5 +++ b/docs/inherit_graph_7.md5 @@ -1 +1 @@ -58176d87d945b92c7f2175f89daef6ac \ No newline at end of file +8d37807fb8dad4b411d0f9b25c272359 \ No newline at end of file diff --git a/docs/inherits.html b/docs/inherits.html index 02833c90..80d36eb9 100644 --- a/docs/inherits.html +++ b/docs/inherits.html @@ -124,8 +124,8 @@ - - + + @@ -306,7 +306,7 @@ - + @@ -324,7 +324,7 @@ - + diff --git a/docs/interlocking_8py.html b/docs/interlocking_8py.html index 819fc3c9..3e3aa0bb 100644 --- a/docs/interlocking_8py.html +++ b/docs/interlocking_8py.html @@ -86,9 +86,7 @@ - - - +

diff --git a/docs/group__Puzzle__Types.html b/docs/group__Puzzle__Types.html index bc972841..f3300391 100644 --- a/docs/group__Puzzle__Types.html +++ b/docs/group__Puzzle__Types.html @@ -84,17 +84,17 @@ - - + + - - + + - - + + - - + +

Namespaces

 PuzzleAdjacent
 This type of puzzle is simply a set of shapes arranged at specific locations with adjacency permitted. Touching or very close proximity should hold for most or all pieces.
 puzzle.builder.adjacent
 This type of puzzle is simply a set of shapes arranged at specific locations with adjacency permitted. Touching or very close proximity should hold for most or all pieces.
 
 PuzzleArrangement
 This type of puzzle is simply a set of shapes arranged at specific locations in the image with no occlusion or overlap. Touching is not necessary (typically not the case)
 puzzle.builder.arrangement
 This type of puzzle is simply a set of shapes arranged at specific locations in the image with no occlusion or overlap. Touching is not necessary (typically not the case)
 
 PuzzleGridded
 An interlocking puzzle for which the pieces are arranged in a nice gridded manner with a rectangular shape when complete.
 puzzle.builder.gridded
 An interlocking puzzle for which the pieces are arranged in a nice gridded manner with a rectangular shape when complete.
 
 PuzzleInterlocking
 This type of puzzle is simply a set of shapes arranged at specific locations that should actually interlock. Placement for them is less forgiving. In principle, they need to fit together.
 puzzle.builder.interlocking
 This type of puzzle is simply a set of shapes arranged at specific locations that should actually interlock. Placement for them is less forgiving. In principle, they need to fit together.
 
+ + + @@ -123,6 +126,7 @@

@@ -114,6 +114,9 @@

class  CfgGridded
 Configuration setting specifier for gridded puzzle. More...
 
class  CfgInterlocking
 Configuration setting specifier for centroidMulti. More...
 
class  Gridded
 Puzzle type that is a set of interlocking puzzle pieces that get put together in a grid structure. All rows/columns have same number of pieces. More...
 

Detailed Description

Classes that abstract different puzzle (arrangement) types.

+

While the documentation refers to this set of classes as Puzzle Types, the actual naming convention used in the python code is that of builder in the sense that puzzle.builder will be the import prefix for the described classes. The naming choice has to do with the fact that there is code to build and interpret a puzzle based on its arrangement properties.

 CBoard
 Ccentroid
 CParamBasic
 CParamColorClusterConfiguration parameter struct for byColor clustering
 CParamColorClusterConfiguration parameter struct for byColor clustering
 CParamHand
 CParamPuzzle
 CParams

Namespaces

 puzzle.builder.interlocking
 
 PuzzleInterlocking
 This type of puzzle is simply a set of shapes arranged at specific locations that should actually interlock. Placement for them is less forgiving. In principle, they need to fit together.
 This type of puzzle is simply a set of shapes arranged at specific locations that should actually interlock. Placement for them is less forgiving. In principle, they need to fit together.
 
diff --git a/docs/manager_8py.html b/docs/manager_8py.html index 71090476..3176789d 100644 --- a/docs/manager_8py.html +++ b/docs/manager_8py.html @@ -86,9 +86,7 @@

Namespaces

 puzzle.manager -  -  PuzzleManager - Manage the tracking of puzzle pieces.
+ Manage the tracking of puzzle pieces.
  +

diff --git a/docs/matchDifferent_8py.html b/docs/matchDifferent_8py.html index 111df61c..88c42cf8 100644 --- a/docs/matchDifferent_8py.html +++ b/docs/matchDifferent_8py.html @@ -104,6 +104,7 @@

Namespaces

 puzzle.pieces.matchDifferent
 Sub-classes of this derived class branch use difference scores for determining whether two puzzle pieces match.
 
diff --git a/docs/matchSimilar_8py.html b/docs/matchSimilar_8py.html index b0c49c7e..21eaf7d3 100644 --- a/docs/matchSimilar_8py.html +++ b/docs/matchSimilar_8py.html @@ -86,9 +86,7 @@

Namespaces

 puzzle.pieces.matchSimilar -  -  PuzzlePieceSimilarity - Sub-classes of this derived class branch use similarity scores for determining wheter two puzzle pieces match.
+ Sub-classes of this derived class branch use similarity scores for determining wheter two puzzle pieces match.
 

Detailed Description

diff --git a/docs/matcher_8py.html b/docs/matcher_8py.html index a639f913..43daedc0 100644 --- a/docs/matcher_8py.html +++ b/docs/matcher_8py.html @@ -98,9 +98,7 @@

Namespaces

 puzzle.pieces.matcher -  -  PuzzlePieceMatcher - Classes for comparing puzzle pieces in support of puzzle solving and puzzle piece association. The base-type class and most of its member functions will do nothing. They require overloading. The ones that don't should be for some generic functionality.
+ Classes for comparing puzzle pieces in support of puzzle solving and puzzle piece association. The base-type class and most of its member functions will do nothing. They require overloading. The ones that don't should be for some generic functionality.
  diff --git a/docs/namespacearrangement.html b/docs/namespacearrangement.html new file mode 100644 index 00000000..964b9b2a --- /dev/null +++ b/docs/namespacearrangement.html @@ -0,0 +1,91 @@ + + + + + + + +IVALab Python Libraries: arrangement Namespace Reference + + + + + + + + + +
+
+ + + + + + +
+
IVALab Python Libraries +
+
Collection of code for computer vision and robotics with specific API.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
+
arrangement Namespace Reference
+
+
+ +

This type of puzzle is simply a set of shapes arranged at specific locations in the image with no occlusion or overlap. Touching is not necessary (typically not the case) +More...

+

Detailed Description

+

This type of puzzle is simply a set of shapes arranged at specific locations in the image with no occlusion or overlap. Touching is not necessary (typically not the case)

+
Author
Patricio A. Vela, pvela.nosp@m.@gat.nosp@m.ech.e.nosp@m.du
+
+Yunzhi Lin, yunzh.nosp@m.i.li.nosp@m.n@gat.nosp@m.ech..nosp@m.edu
+
Date
2021/08/05 [modified]
+
+2021/07/30 [created]
+
Todo:

May need more work to align with current revisions.

+

Some of the test scripts may have bad Cfg parameter names.

+
+
+ + + + diff --git a/docs/namespacepuzzle.html b/docs/namespacepuzzle.html index bfd1e6f9..12e798b6 100644 --- a/docs/namespacepuzzle.html +++ b/docs/namespacepuzzle.html @@ -72,6 +72,7 @@

Namespaces

 board + A base representation for a puzzle board, which is basically a collection of pieces. Gets used in many different ways.
   builder   @@ -80,6 +81,7 @@  defaults    manager + Manage the tracking of puzzle pieces.
   old_board   @@ -88,8 +90,10 @@  parse    parser + A basic tracking class that processes a layered image (or mask and image) detection output and generates a model of the puzzle pieces in the scene. Converts all accepted, isolated regions into their own puzzle piece instances.
   piece + Classes for puzzle piece specification or description encapsulation.
   pieces   diff --git a/docs/namespacepuzzle_1_1board.html b/docs/namespacepuzzle_1_1board.html index 1b16c549..a6c1d4b3 100644 --- a/docs/namespacepuzzle_1_1board.html +++ b/docs/namespacepuzzle_1_1board.html @@ -70,9 +70,12 @@ Classes | Variables
-
puzzle.board Namespace Reference
+
puzzle.board Namespace Reference
+ +

A base representation for a puzzle board, which is basically a collection of pieces. Gets used in many different ways. +More...

@@ -95,7 +98,22 @@

Classes

int SCORE_SIMILAR = 1
 
-

Variable Documentation

+

Detailed Description

+

A base representation for a puzzle board, which is basically a collection of pieces. Gets used in many different ways.

+

A puzzle board consists of a collection of puzzle pieces and their locations. There is no assumption on where the pieces are located. A board just keeps track of a candidate jigsaw puzzle state, or possibly the state of a subset of a given jigsaw puzzle. Think of it as a bag class for puzzle pieces, just that they also have locality.

+
Author
Patricio A. Vela, pvela.nosp@m.@gat.nosp@m.ech.e.nosp@m.du
+
+Yunzhi Lin, yunzh.nosp@m.i.li.nosp@m.n@gat.nosp@m.ech..nosp@m.edu
+
+Yiye Chen, yyche.nosp@m.n201.nosp@m.9@gat.nosp@m.ech..nosp@m.edu
+
Date
2021/07/28 [created]
+
+2021/08/01 [modified]
+
+2022/07/03 [modified]
+
+2024/10/20 [refactored and merged]
+

Variable Documentation

◆ SCORE_DIFFERENCE

diff --git a/docs/namespacepuzzle_1_1builder.html b/docs/namespacepuzzle_1_1builder.html index d6eb898b..18f0c93a 100644 --- a/docs/namespacepuzzle_1_1builder.html +++ b/docs/namespacepuzzle_1_1builder.html @@ -76,12 +76,16 @@

Namespaces

 adjacent + This type of puzzle is simply a set of shapes arranged at specific locations with adjacency permitted. Touching or very close proximity should hold for most or all pieces.
   arrangement + This type of puzzle is simply a set of shapes arranged at specific locations in the image with no occlusion or overlap. Touching is not necessary (typically not the case)
   gridded + An interlocking puzzle for which the pieces are arranged in a nice gridded manner with a rectangular shape when complete.
   interlocking + This type of puzzle is simply a set of shapes arranged at specific locations that should actually interlock. Placement for them is less forgiving. In principle, they need to fit together.
 
diff --git a/docs/namespacepuzzle_1_1builder_1_1adjacent.html b/docs/namespacepuzzle_1_1builder_1_1adjacent.html index 34a8b808..3cce99c7 100644 --- a/docs/namespacepuzzle_1_1builder_1_1adjacent.html +++ b/docs/namespacepuzzle_1_1builder_1_1adjacent.html @@ -69,9 +69,12 @@
-
puzzle.builder.adjacent Namespace Reference
+
puzzle.builder.adjacent Namespace Reference
+ +

This type of puzzle is simply a set of shapes arranged at specific locations with adjacency permitted. Touching or very close proximity should hold for most or all pieces. +More...

@@ -82,7 +85,15 @@

Classes

 Configuration setting specifier for Arrangement. More...
 
-
+

Detailed Description

+

This type of puzzle is simply a set of shapes arranged at specific locations with adjacency permitted. Touching or very close proximity should hold for most or all pieces.

+
Author
Patricio A. Vela, pvela.nosp@m.@gat.nosp@m.ech.e.nosp@m.du
+
+Yunzhi Lin, yunzh.nosp@m.i.li.nosp@m.n@gat.nosp@m.ech..nosp@m.edu
+
Date
2021/08/05 [modified]
+
+2021/08/04 [created]
+