From d5052f1c296dddf51b3e83d59bf3e3c1952cb2d0 Mon Sep 17 00:00:00 2001 From: cathook Date: Sun, 1 Jun 2014 13:56:57 +0800 Subject: big chnage --- !readme_footer.asciidoc | 38 + !readme_header.asciidoc | 14 + LaTex/!readme.asciidoc | 26 + LaTex/Makefile | 32 + LaTex/source.tex | 237 ++ Makefile | 35 +- README.asciidoc | 1349 +++++---- README.html | 2637 +++++------------- asciidoc/!readme.asciidoc | 18 + asciidoc/Makefile | 13 + asciidoc/example.txt | 74 + asciidoc/output.html | 834 ++++++ cppMakefile/!readme.asciidoc | 56 + cppMakefile/GNUmakefile | 79 + cppMakefile/GNUmakefile.dependency.sh | 24 + doc/html/BinaryIndexTree_8h.html | 94 + doc/html/BinaryIndexTree_8h_source.html | 126 + doc/html/Bitmap_8h.html | 100 + doc/html/Bitmap_8h_source.html | 309 +++ doc/html/Camera_8h.html | 98 + doc/html/Camera_8h_source.html | 520 ++++ doc/html/Color3__Space_8h.html | 96 + doc/html/Color3__Space_8h_source.html | 147 + doc/html/DisjointSet_8h.html | 94 + doc/html/DisjointSet_8h_source.html | 146 + doc/html/FeaturePoint_8h.html | 97 + doc/html/FeaturePoint_8h_source.html | 205 ++ doc/html/FeaturePointsDetector_8h.html | 94 + doc/html/FeaturePointsDetector_8h_source.html | 100 + doc/html/FeaturePointsDetector__Harris_8h.html | 116 + doc/html/FeaturePointsDetector__Harris_8h.js | 5 + .../FeaturePointsDetector__Harris_8h_source.html | 370 +++ doc/html/FeaturePointsMatch_8h.html | 103 + doc/html/FeaturePointsMatch_8h.js | 6 + doc/html/FeaturePointsMatch_8h_source.html | 137 + doc/html/FeaturePointsMatch__K__Match_8h.html | 114 + doc/html/FeaturePointsMatch__K__Match_8h.js | 5 + .../FeaturePointsMatch__K__Match_8h_source.html | 264 ++ doc/html/HSL__Space_8h.html | 119 + doc/html/HSL__Space_8h.js | 10 + doc/html/HSL__Space_8h_source.html | 237 ++ doc/html/HSV__Space_8h.html | 126 + doc/html/HSV__Space_8h.js | 12 + doc/html/HSV__Space_8h_source.html | 231 ++ doc/html/HashTable_8h.html | 93 + doc/html/HashTable_8h_source.html | 233 ++ doc/html/IdentityPoints_8h.html | 96 + doc/html/IdentityPoints_8h_source.html | 253 ++ doc/html/KD__Tree_8h.html | 97 + doc/html/KD__Tree_8h_source.html | 324 +++ doc/html/LinearTransformation_8h.html | 94 + doc/html/LinearTransformation_8h_source.html | 137 + doc/html/LinearTransformations_8h.html | 97 + doc/html/LinearTransformations_8h_source.html | 264 ++ doc/html/Matrix_8h.html | 96 + doc/html/Matrix_8h_source.html | 414 +++ doc/html/MergeableHeap_8h.html | 93 + doc/html/MergeableHeap_8h_source.html | 193 ++ doc/html/ObjArray_8h.html | 98 + doc/html/ObjArray_8h_source.html | 235 ++ doc/html/ObjBase_8h.html | 94 + doc/html/ObjBase_8h_source.html | 112 + doc/html/ObjDictionary_8h.html | 98 + doc/html/ObjDictionary_8h_source.html | 227 ++ doc/html/ObjProperties_8h.html | 93 + doc/html/ObjProperties_8h_source.html | 128 + doc/html/ObjSelector_8h.html | 104 + doc/html/ObjSelector_8h.js | 5 + doc/html/ObjSelector_8h_source.html | 245 ++ doc/html/ObjTypes_8h.html | 119 + doc/html/ObjTypes_8h.js | 12 + doc/html/ObjTypes_8h_source.html | 268 ++ doc/html/Photo_8h.html | 101 + doc/html/Photo_8h_source.html | 287 ++ doc/html/RGB__Space_8h.html | 108 + doc/html/RGB__Space_8h.js | 7 + doc/html/RGB__Space_8h_source.html | 222 ++ doc/html/SegmentTree_8h.html | 95 + doc/html/SegmentTree_8h_source.html | 214 ++ doc/html/Self_8h.html | 92 + doc/html/Self_8h_source.html | 191 ++ doc/html/SplayTree_8h.html | 103 + doc/html/SplayTree_8h_source.html | 941 +++++++ doc/html/Transformation_8h.html | 94 + doc/html/Transformation_8h_source.html | 185 ++ doc/html/Transformations_8h.html | 99 + doc/html/Transformations_8h_source.html | 317 +++ doc/html/Usage_8h.html | 98 + doc/html/Usage_8h_source.html | 412 +++ doc/html/VP__Tree_8h.html | 97 + doc/html/VP__Tree_8h_source.html | 343 +++ doc/html/Vector_8h.html | 96 + doc/html/Vector_8h_source.html | 252 ++ doc/html/Vectors_8h.html | 98 + doc/html/Vectors_8h_source.html | 493 ++++ doc/html/ViewPort_8h.html | 92 + doc/html/ViewPort_8h_source.html | 90 + doc/html/WatchBall_8h.html | 98 + doc/html/WatchBall_8h_source.html | 239 ++ doc/html/YUV__Space_8h.html | 112 + doc/html/YUV__Space_8h.js | 8 + doc/html/YUV__Space_8h_source.html | 186 ++ doc/html/annotated.html | 128 + doc/html/annotated.js | 4 + doc/html/bc_s.png | Bin 0 -> 666 bytes doc/html/bdwn.png | Bin 0 -> 144 bytes doc/html/classdouble.html | 74 + doc/html/classes.html | 116 + doc/html/classint.html | 74 + doc/html/classmeow_1_1BallProjection-members.html | 105 + doc/html/classmeow_1_1BallProjection.html | 745 +++++ doc/html/classmeow_1_1BallProjection.js | 18 + doc/html/classmeow_1_1BallProjection.png | Bin 0 -> 781 bytes doc/html/classmeow_1_1BinaryIndexTree-members.html | 82 + doc/html/classmeow_1_1BinaryIndexTree.html | 353 +++ doc/html/classmeow_1_1BinaryIndexTree.js | 9 + doc/html/classmeow_1_1Bitmap-members.html | 112 + doc/html/classmeow_1_1Bitmap.html | 1489 ++++++++++ doc/html/classmeow_1_1Bitmap.js | 35 + doc/html/classmeow_1_1Bitmap.png | Bin 0 -> 612 bytes doc/html/classmeow_1_1Camera-members.html | 106 + doc/html/classmeow_1_1Camera.html | 988 +++++++ doc/html/classmeow_1_1Camera.js | 29 + doc/html/classmeow_1_1Camera.png | Bin 0 -> 622 bytes doc/html/classmeow_1_1Color3__Space-members.html | 95 + doc/html/classmeow_1_1Color3__Space.html | 649 +++++ doc/html/classmeow_1_1Color3__Space.js | 22 + doc/html/classmeow_1_1DisjointSet-members.html | 83 + doc/html/classmeow_1_1DisjointSet.html | 352 +++ doc/html/classmeow_1_1DisjointSet.js | 10 + doc/html/classmeow_1_1FeaturePoint-members.html | 106 + doc/html/classmeow_1_1FeaturePoint.html | 942 +++++++ doc/html/classmeow_1_1FeaturePoint.js | 28 + doc/html/classmeow_1_1FeaturePoint.png | Bin 0 -> 789 bytes ...classmeow_1_1FeaturePointsDetector-members.html | 89 + doc/html/classmeow_1_1FeaturePointsDetector.html | 213 ++ doc/html/classmeow_1_1FeaturePointsDetector.js | 6 + doc/html/classmeow_1_1FeaturePointsDetector.png | Bin 0 -> 1247 bytes ...w_1_1FeaturePointsDetector__Harris-members.html | 112 + ...classmeow_1_1FeaturePointsDetector__Harris.html | 1088 ++++++++ .../classmeow_1_1FeaturePointsDetector__Harris.js | 33 + .../classmeow_1_1FeaturePointsDetector__Harris.png | Bin 0 -> 1245 bytes .../classmeow_1_1FeaturePointsMatch-members.html | 94 + doc/html/classmeow_1_1FeaturePointsMatch.html | 400 +++ doc/html/classmeow_1_1FeaturePointsMatch.js | 11 + doc/html/classmeow_1_1FeaturePointsMatch.png | Bin 0 -> 1606 bytes ...ow_1_1FeaturePointsMatch__K__Match-members.html | 103 + .../classmeow_1_1FeaturePointsMatch__K__Match.html | 800 ++++++ .../classmeow_1_1FeaturePointsMatch__K__Match.js | 24 + .../classmeow_1_1FeaturePointsMatch__K__Match.png | Bin 0 -> 1606 bytes doc/html/classmeow_1_1HSLf__Space-members.html | 126 + doc/html/classmeow_1_1HSLf__Space.html | 950 +++++++ doc/html/classmeow_1_1HSLf__Space.js | 34 + doc/html/classmeow_1_1HSLf__Space.png | Bin 0 -> 720 bytes doc/html/classmeow_1_1HSVf__Space-members.html | 126 + doc/html/classmeow_1_1HSVf__Space.html | 950 +++++++ doc/html/classmeow_1_1HSVf__Space.js | 34 + doc/html/classmeow_1_1HSVf__Space.png | Bin 0 -> 724 bytes doc/html/classmeow_1_1HashTableList-members.html | 95 + doc/html/classmeow_1_1HashTableList.html | 700 +++++ doc/html/classmeow_1_1HashTableList.js | 22 + doc/html/classmeow_1_1IdentityPoints-members.html | 111 + doc/html/classmeow_1_1IdentityPoints.html | 1123 ++++++++ doc/html/classmeow_1_1IdentityPoints.js | 34 + doc/html/classmeow_1_1IdentityPoints.png | Bin 0 -> 736 bytes doc/html/classmeow_1_1KD__Tree-members.html | 87 + doc/html/classmeow_1_1KD__Tree.html | 463 ++++ doc/html/classmeow_1_1KD__Tree.js | 14 + .../classmeow_1_1LinearTransformation-members.html | 104 + doc/html/classmeow_1_1LinearTransformation.html | 503 ++++ doc/html/classmeow_1_1LinearTransformation.js | 12 + doc/html/classmeow_1_1LinearTransformation.png | Bin 0 -> 1183 bytes doc/html/classmeow_1_1Matrix-members.html | 121 + doc/html/classmeow_1_1Matrix.html | 1733 ++++++++++++ doc/html/classmeow_1_1Matrix.js | 48 + doc/html/classmeow_1_1MergeableHeap-members.html | 89 + doc/html/classmeow_1_1MergeableHeap.html | 502 ++++ doc/html/classmeow_1_1MergeableHeap.js | 16 + doc/html/classmeow_1_1ObjArray-members.html | 105 + doc/html/classmeow_1_1ObjArray.html | 886 ++++++ doc/html/classmeow_1_1ObjArray.js | 28 + doc/html/classmeow_1_1ObjArray.png | Bin 0 -> 589 bytes doc/html/classmeow_1_1ObjBase-members.html | 86 + doc/html/classmeow_1_1ObjBase.html | 421 +++ doc/html/classmeow_1_1ObjBase.js | 13 + doc/html/classmeow_1_1ObjBase.png | Bin 0 -> 8925 bytes doc/html/classmeow_1_1ObjDictionary-members.html | 103 + doc/html/classmeow_1_1ObjDictionary.html | 811 ++++++ doc/html/classmeow_1_1ObjDictionary.js | 26 + doc/html/classmeow_1_1ObjDictionary.png | Bin 0 -> 753 bytes doc/html/classmeow_1_1ObjProperties-members.html | 98 + doc/html/classmeow_1_1ObjProperties.html | 586 ++++ doc/html/classmeow_1_1ObjProperties.js | 21 + doc/html/classmeow_1_1ObjProperties.png | Bin 0 -> 681 bytes doc/html/classmeow_1_1ObjSelector-members.html | 90 + doc/html/classmeow_1_1ObjSelector.html | 616 +++++ doc/html/classmeow_1_1ObjSelector.js | 17 + doc/html/classmeow_1_1ObjType-members.html | 97 + doc/html/classmeow_1_1ObjType.html | 641 +++++ doc/html/classmeow_1_1ObjType.js | 20 + doc/html/classmeow_1_1ObjType.png | Bin 0 -> 774 bytes doc/html/classmeow_1_1Photo-members.html | 114 + doc/html/classmeow_1_1Photo.html | 1421 ++++++++++ doc/html/classmeow_1_1Photo.js | 37 + doc/html/classmeow_1_1Photo.png | Bin 0 -> 567 bytes doc/html/classmeow_1_1PhotoProjection-members.html | 105 + doc/html/classmeow_1_1PhotoProjection.html | 725 +++++ doc/html/classmeow_1_1PhotoProjection.js | 18 + doc/html/classmeow_1_1PhotoProjection.png | Bin 0 -> 788 bytes doc/html/classmeow_1_1RGBf__Space-members.html | 126 + doc/html/classmeow_1_1RGBf__Space.html | 950 +++++++ doc/html/classmeow_1_1RGBf__Space.js | 34 + doc/html/classmeow_1_1RGBf__Space.png | Bin 0 -> 719 bytes doc/html/classmeow_1_1RGBi__Space-members.html | 126 + doc/html/classmeow_1_1RGBi__Space.html | 950 +++++++ doc/html/classmeow_1_1RGBi__Space.js | 34 + doc/html/classmeow_1_1RGBi__Space.png | Bin 0 -> 690 bytes .../classmeow_1_1ReaderWriter__double-members.html | 78 + doc/html/classmeow_1_1ReaderWriter__double.html | 183 ++ doc/html/classmeow_1_1ReaderWriter__double.js | 5 + .../classmeow_1_1ReaderWriter__int-members.html | 78 + doc/html/classmeow_1_1ReaderWriter__int.html | 183 ++ doc/html/classmeow_1_1ReaderWriter__int.js | 5 + ...classmeow_1_1ReaderWriter__size__t-members.html | 78 + doc/html/classmeow_1_1ReaderWriter__size__t.html | 183 ++ doc/html/classmeow_1_1ReaderWriter__size__t.js | 5 + .../classmeow_1_1ReaderWriter__string-members.html | 78 + doc/html/classmeow_1_1ReaderWriter__string.html | 183 ++ doc/html/classmeow_1_1ReaderWriter__string.js | 5 + doc/html/classmeow_1_1Rotation3D-members.html | 114 + doc/html/classmeow_1_1Rotation3D.html | 928 +++++++ doc/html/classmeow_1_1Rotation3D.js | 22 + doc/html/classmeow_1_1Rotation3D.png | Bin 0 -> 1177 bytes doc/html/classmeow_1_1SegmentTree-members.html | 86 + doc/html/classmeow_1_1SegmentTree.html | 485 ++++ doc/html/classmeow_1_1SegmentTree.js | 13 + doc/html/classmeow_1_1Self-members.html | 88 + doc/html/classmeow_1_1Self.html | 544 ++++ doc/html/classmeow_1_1Self.js | 15 + doc/html/classmeow_1_1SplayTree-members.html | 101 + doc/html/classmeow_1_1SplayTree.html | 918 ++++++ doc/html/classmeow_1_1SplayTree.js | 29 + .../classmeow_1_1SplayTree_1_1Element-members.html | 87 + doc/html/classmeow_1_1SplayTree_1_1Element.html | 422 +++ doc/html/classmeow_1_1SplayTree_1_1Element.js | 14 + .../classmeow_1_1SplayTree__Range-members.html | 105 + doc/html/classmeow_1_1SplayTree__Range.html | 1053 +++++++ doc/html/classmeow_1_1SplayTree__Range.js | 33 + ...eow_1_1SplayTree__Range_1_1Element-members.html | 87 + .../classmeow_1_1SplayTree__Range_1_1Element.html | 422 +++ .../classmeow_1_1SplayTree__Range_1_1Element.js | 14 + doc/html/classmeow_1_1Transformation-members.html | 95 + doc/html/classmeow_1_1Transformation.html | 862 ++++++ doc/html/classmeow_1_1Transformation.js | 22 + doc/html/classmeow_1_1Transformation.png | Bin 0 -> 2016 bytes doc/html/classmeow_1_1Usage-members.html | 94 + doc/html/classmeow_1_1Usage.html | 797 ++++++ doc/html/classmeow_1_1Usage.js | 21 + doc/html/classmeow_1_1VP__Tree-members.html | 90 + doc/html/classmeow_1_1VP__Tree.html | 554 ++++ doc/html/classmeow_1_1VP__Tree.js | 17 + doc/html/classmeow_1_1Vector-members.html | 113 + doc/html/classmeow_1_1Vector.html | 1359 +++++++++ doc/html/classmeow_1_1Vector.js | 40 + doc/html/classmeow_1_1Vector2D-members.html | 130 + doc/html/classmeow_1_1Vector2D.html | 1749 ++++++++++++ doc/html/classmeow_1_1Vector2D.js | 57 + doc/html/classmeow_1_1Vector3D-members.html | 132 + doc/html/classmeow_1_1Vector3D.html | 1852 +++++++++++++ doc/html/classmeow_1_1Vector3D.js | 59 + doc/html/classmeow_1_1ViewPort-members.html | 86 + doc/html/classmeow_1_1ViewPort.html | 122 + doc/html/classmeow_1_1ViewPort.png | Bin 0 -> 512 bytes doc/html/classmeow_1_1WatchBall-members.html | 105 + doc/html/classmeow_1_1WatchBall.html | 950 +++++++ doc/html/classmeow_1_1WatchBall.js | 28 + doc/html/classmeow_1_1WatchBall.png | Bin 0 -> 643 bytes doc/html/classmeow_1_1YUVf__Space-members.html | 126 + doc/html/classmeow_1_1YUVf__Space.html | 950 +++++++ doc/html/classmeow_1_1YUVf__Space.js | 34 + doc/html/classmeow_1_1YUVf__Space.png | Bin 0 -> 720 bytes doc/html/closed.png | Bin 0 -> 131 bytes doc/html/custom.css | 143 + doc/html/dir_115d3279a93b9c99d8f569a34543848f.html | 100 + doc/html/dir_115d3279a93b9c99d8f569a34543848f.js | 30 + doc/html/dir_540a4c8f2977878a343351220ffba92b.html | 90 + doc/html/dir_540a4c8f2977878a343351220ffba92b.js | 17 + doc/html/dir_77e0ab67466b1e7d76f50725a5ab9910.html | 94 + doc/html/dir_77e0ab67466b1e7d76f50725a5ab9910.js | 24 + doc/html/dir_92fecd8d02dd5e7a67429447fdf0f60f.html | 99 + doc/html/dir_92fecd8d02dd5e7a67429447fdf0f60f.js | 16 + doc/html/dir_a17ff8dcb3a1c1b842af541700214096.html | 94 + doc/html/dir_a17ff8dcb3a1c1b842af541700214096.js | 30 + doc/html/dir_a57e9e528cb28fd6752031b735908fb6.html | 80 + doc/html/dir_a57e9e528cb28fd6752031b735908fb6.js | 7 + doc/html/dir_f6840b2fecd08a3779df34f0add0e074.html | 88 + doc/html/dir_f6840b2fecd08a3779df34f0add0e074.js | 10 + doc/html/doxygen.png | Bin 0 -> 3814 bytes doc/html/dynsections.js | 97 + doc/html/files.html | 126 + doc/html/files.js | 4 + doc/html/form_0.png | Bin 0 -> 393 bytes doc/html/form_1.png | Bin 0 -> 435 bytes doc/html/form_10.png | Bin 0 -> 6044 bytes doc/html/form_11.png | Bin 0 -> 6041 bytes doc/html/form_12.png | Bin 0 -> 6088 bytes doc/html/form_13.png | Bin 0 -> 393 bytes doc/html/form_14.png | Bin 0 -> 300 bytes doc/html/form_15.png | Bin 0 -> 235 bytes doc/html/form_16.png | Bin 0 -> 241 bytes doc/html/form_17.png | Bin 0 -> 227 bytes doc/html/form_18.png | Bin 0 -> 253 bytes doc/html/form_19.png | Bin 0 -> 3198 bytes doc/html/form_2.png | Bin 0 -> 575 bytes doc/html/form_20.png | Bin 0 -> 763 bytes doc/html/form_21.png | Bin 0 -> 511 bytes doc/html/form_22.png | Bin 0 -> 212 bytes doc/html/form_23.png | Bin 0 -> 603 bytes doc/html/form_24.png | Bin 0 -> 203 bytes doc/html/form_25.png | Bin 0 -> 590 bytes doc/html/form_26.png | Bin 0 -> 235 bytes doc/html/form_27.png | Bin 0 -> 428 bytes doc/html/form_28.png | Bin 0 -> 241 bytes doc/html/form_29.png | Bin 0 -> 643 bytes doc/html/form_3.png | Bin 0 -> 5706 bytes doc/html/form_30.png | Bin 0 -> 1234 bytes doc/html/form_31.png | Bin 0 -> 320 bytes doc/html/form_32.png | Bin 0 -> 4845 bytes doc/html/form_33.png | Bin 0 -> 215 bytes doc/html/form_34.png | Bin 0 -> 227 bytes doc/html/form_35.png | Bin 0 -> 214 bytes doc/html/form_36.png | Bin 0 -> 359 bytes doc/html/form_37.png | Bin 0 -> 1349 bytes doc/html/form_38.png | Bin 0 -> 238 bytes doc/html/form_39.png | Bin 0 -> 2060 bytes doc/html/form_4.png | Bin 0 -> 234 bytes doc/html/form_40.png | Bin 0 -> 784 bytes doc/html/form_41.png | Bin 0 -> 218 bytes doc/html/form_42.png | Bin 0 -> 221 bytes doc/html/form_43.png | Bin 0 -> 2053 bytes doc/html/form_44.png | Bin 0 -> 341 bytes doc/html/form_45.png | Bin 0 -> 669 bytes doc/html/form_46.png | Bin 0 -> 3451 bytes doc/html/form_47.png | Bin 0 -> 930 bytes doc/html/form_48.png | Bin 0 -> 1817 bytes doc/html/form_49.png | Bin 0 -> 882 bytes doc/html/form_5.png | Bin 0 -> 236 bytes doc/html/form_6.png | Bin 0 -> 922 bytes doc/html/form_7.png | Bin 0 -> 226 bytes doc/html/form_8.png | Bin 0 -> 730 bytes doc/html/form_9.png | Bin 0 -> 5164 bytes doc/html/formula.repository | 50 + doc/html/ftv2blank.png | Bin 0 -> 86 bytes doc/html/ftv2cl.png | Bin 0 -> 447 bytes doc/html/ftv2doc.png | Bin 0 -> 811 bytes doc/html/ftv2folderclosed.png | Bin 0 -> 658 bytes doc/html/ftv2folderopen.png | Bin 0 -> 650 bytes doc/html/ftv2lastnode.png | Bin 0 -> 86 bytes doc/html/ftv2link.png | Bin 0 -> 811 bytes doc/html/ftv2mlastnode.png | Bin 0 -> 244 bytes doc/html/ftv2mnode.png | Bin 0 -> 244 bytes doc/html/ftv2mo.png | Bin 0 -> 408 bytes doc/html/ftv2node.png | Bin 0 -> 86 bytes doc/html/ftv2ns.png | Bin 0 -> 381 bytes doc/html/ftv2plastnode.png | Bin 0 -> 218 bytes doc/html/ftv2pnode.png | Bin 0 -> 218 bytes doc/html/ftv2splitbar.png | Bin 0 -> 307 bytes doc/html/ftv2vertline.png | Bin 0 -> 86 bytes doc/html/functions.html | 100 + doc/html/functions_0x62.html | 111 + doc/html/functions_0x63.html | 202 ++ doc/html/functions_0x64.html | 111 + doc/html/functions_0x65.html | 122 + doc/html/functions_0x66.html | 133 + doc/html/functions_0x67.html | 110 + doc/html/functions_0x68.html | 129 + doc/html/functions_0x69.html | 144 + doc/html/functions_0x6a.html | 87 + doc/html/functions_0x6b.html | 80 + doc/html/functions_0x6c.html | 106 + doc/html/functions_0x6d.html | 157 ++ doc/html/functions_0x6e.html | 95 + doc/html/functions_0x6f.html | 260 ++ doc/html/functions_0x70.html | 184 ++ doc/html/functions_0x71.html | 80 + doc/html/functions_0x72.html | 218 ++ doc/html/functions_0x73.html | 140 + doc/html/functions_0x74.html | 128 + doc/html/functions_0x75.html | 105 + doc/html/functions_0x76.html | 130 + doc/html/functions_0x77.html | 101 + doc/html/functions_0x78.html | 87 + doc/html/functions_0x79.html | 106 + doc/html/functions_0x7a.html | 79 + doc/html/functions_0x7e.html | 185 ++ doc/html/functions_dup.js | 30 + doc/html/functions_func.html | 100 + doc/html/functions_func.js | 30 + doc/html/functions_func_0x62.html | 111 + doc/html/functions_func_0x63.html | 200 ++ doc/html/functions_func_0x64.html | 111 + doc/html/functions_func_0x65.html | 122 + doc/html/functions_func_0x66.html | 118 + doc/html/functions_func_0x67.html | 110 + doc/html/functions_func_0x68.html | 129 + doc/html/functions_func_0x69.html | 133 + doc/html/functions_func_0x6a.html | 87 + doc/html/functions_func_0x6b.html | 80 + doc/html/functions_func_0x6c.html | 106 + doc/html/functions_func_0x6d.html | 145 + doc/html/functions_func_0x6e.html | 95 + doc/html/functions_func_0x6f.html | 260 ++ doc/html/functions_func_0x70.html | 184 ++ doc/html/functions_func_0x71.html | 80 + doc/html/functions_func_0x72.html | 218 ++ doc/html/functions_func_0x73.html | 140 + doc/html/functions_func_0x74.html | 125 + doc/html/functions_func_0x75.html | 105 + doc/html/functions_func_0x76.html | 123 + doc/html/functions_func_0x77.html | 101 + doc/html/functions_func_0x78.html | 87 + doc/html/functions_func_0x79.html | 106 + doc/html/functions_func_0x7a.html | 79 + doc/html/functions_func_0x7e.html | 185 ++ doc/html/functions_rela.html | 74 + doc/html/functions_type.html | 104 + doc/html/functions_vars.html | 86 + doc/html/globals.html | 80 + doc/html/globals_defs.html | 80 + doc/html/hierarchy.html | 148 + doc/html/hierarchy.js | 83 + doc/html/index.html | 89 + doc/html/jquery.js | 77 + doc/html/logo.png | Bin 0 -> 10627 bytes doc/html/math_2utility_8h.html | 139 + doc/html/math_2utility_8h.js | 14 + doc/html/math_2utility_8h_source.html | 182 ++ doc/html/methods_8h.html | 101 + doc/html/methods_8h.js | 5 + doc/html/methods_8h_source.html | 144 + doc/html/namespacemembers.html | 200 ++ doc/html/namespacemembers_func.html | 167 ++ doc/html/namespacemembers_type.html | 86 + doc/html/namespacemembers_vars.html | 77 + doc/html/namespacemeow.html | 2085 ++++++++++++++ doc/html/namespacemeow.js | 51 + doc/html/namespaces.html | 78 + doc/html/namespaces.js | 4 + doc/html/nav_f.png | Bin 0 -> 165 bytes doc/html/nav_g.png | Bin 0 -> 95 bytes doc/html/nav_h.png | Bin 0 -> 97 bytes doc/html/navtree.css | 143 + doc/html/navtree.js | 538 ++++ doc/html/navtreeindex0.js | 253 ++ doc/html/navtreeindex1.js | 253 ++ doc/html/navtreeindex2.js | 253 ++ doc/html/navtreeindex3.js | 253 ++ doc/html/navtreeindex4.js | 250 ++ doc/html/open.png | Bin 0 -> 117 bytes doc/html/resize.js | 93 + ...tructmeow_1_1FeaturePointIndexPair-members.html | 81 + doc/html/structmeow_1_1FeaturePointIndexPair.html | 220 ++ doc/html/structmeow_1_1FeaturePointIndexPair.js | 8 + doc/html/stylesheet.css | 1203 ++++++++ doc/html/sync_off.png | Bin 0 -> 848 bytes doc/html/sync_on.png | Bin 0 -> 831 bytes doc/html/tab_a.png | Bin 0 -> 135 bytes doc/html/tab_b.png | Bin 0 -> 175 bytes doc/html/tab_h.png | Bin 0 -> 176 bytes doc/html/tab_s.png | Bin 0 -> 185 bytes doc/html/tabs.css | 60 + doc/html/utility_8h.html | 149 + doc/html/utility_8h.js | 10 + doc/html/utility_8h_source.html | 185 ++ doc/latex/BinaryIndexTree_8h.tex | 16 + doc/latex/Bitmap_8h.tex | 22 + doc/latex/Camera_8h.tex | 20 + doc/latex/Color3__Space_8h.tex | 18 + doc/latex/DisjointSet_8h.tex | 16 + doc/latex/FeaturePoint_8h.tex | 19 + doc/latex/FeaturePointsDetector_8h.tex | 17 + doc/latex/FeaturePointsDetector__Harris_8h.tex | 30 + doc/latex/FeaturePointsMatch_8h.tex | 25 + doc/latex/FeaturePointsMatch__K__Match_8h.tex | 29 + doc/latex/HSL__Space_8h.tex | 34 + doc/latex/HSV__Space_8h.tex | 39 + doc/latex/HashTable_8h.tex | 15 + doc/latex/IdentityPoints_8h.tex | 18 + doc/latex/KD__Tree_8h.tex | 19 + doc/latex/LinearTransformation_8h.tex | 16 + doc/latex/LinearTransformations_8h.tex | 19 + doc/latex/Makefile | 19 + doc/latex/Matrix_8h.tex | 18 + doc/latex/MergeableHeap_8h.tex | 15 + doc/latex/ObjArray_8h.tex | 20 + doc/latex/ObjBase_8h.tex | 16 + doc/latex/ObjDictionary_8h.tex | 20 + doc/latex/ObjProperties_8h.tex | 15 + doc/latex/ObjSelector_8h.tex | 25 + doc/latex/ObjTypes_8h.tex | 40 + doc/latex/Photo_8h.tex | 23 + doc/latex/RGB__Space_8h.tex | 26 + doc/latex/SegmentTree_8h.tex | 17 + doc/latex/Self_8h.tex | 14 + doc/latex/SplayTree_8h.tex | 22 + doc/latex/Transformation_8h.tex | 16 + doc/latex/Transformations_8h.tex | 20 + doc/latex/Usage_8h.tex | 20 + doc/latex/VP__Tree_8h.tex | 19 + doc/latex/Vector_8h.tex | 18 + doc/latex/Vectors_8h.tex | 19 + doc/latex/ViewPort_8h.tex | 14 + doc/latex/WatchBall_8h.tex | 20 + doc/latex/YUV__Space_8h.tex | 29 + doc/latex/annotated.tex | 53 + doc/latex/classdouble.tex | 6 + doc/latex/classint.tex | 6 + doc/latex/classmeow_1_1BallProjection.eps | 197 ++ doc/latex/classmeow_1_1BallProjection.pdf | Bin 0 -> 5988 bytes doc/latex/classmeow_1_1BallProjection.tex | 342 +++ doc/latex/classmeow_1_1BinaryIndexTree.tex | 165 ++ doc/latex/classmeow_1_1Bitmap.eps | 197 ++ doc/latex/classmeow_1_1Bitmap.pdf | Bin 0 -> 5841 bytes doc/latex/classmeow_1_1Bitmap.tex | 693 +++++ doc/latex/classmeow_1_1Camera.eps | 197 ++ doc/latex/classmeow_1_1Camera.pdf | Bin 0 -> 5772 bytes doc/latex/classmeow_1_1Camera.tex | 452 +++ doc/latex/classmeow_1_1Color3__Space.tex | 207 ++ doc/latex/classmeow_1_1DisjointSet.tex | 184 ++ doc/latex/classmeow_1_1FeaturePoint.eps | 197 ++ doc/latex/classmeow_1_1FeaturePoint.pdf | Bin 0 -> 6524 bytes doc/latex/classmeow_1_1FeaturePoint.tex | 371 +++ doc/latex/classmeow_1_1FeaturePointsDetector.eps | 203 ++ doc/latex/classmeow_1_1FeaturePointsDetector.pdf | Bin 0 -> 6546 bytes doc/latex/classmeow_1_1FeaturePointsDetector.tex | 63 + .../classmeow_1_1FeaturePointsDetector__Harris.eps | 203 ++ .../classmeow_1_1FeaturePointsDetector__Harris.pdf | Bin 0 -> 6545 bytes .../classmeow_1_1FeaturePointsDetector__Harris.tex | 488 ++++ doc/latex/classmeow_1_1FeaturePointsMatch.eps | 203 ++ doc/latex/classmeow_1_1FeaturePointsMatch.pdf | Bin 0 -> 7047 bytes doc/latex/classmeow_1_1FeaturePointsMatch.tex | 127 + .../classmeow_1_1FeaturePointsMatch__K__Match.eps | 203 ++ .../classmeow_1_1FeaturePointsMatch__K__Match.pdf | Bin 0 -> 7048 bytes .../classmeow_1_1FeaturePointsMatch__K__Match.tex | 269 ++ doc/latex/classmeow_1_1HSLf__Space.eps | 197 ++ doc/latex/classmeow_1_1HSLf__Space.pdf | Bin 0 -> 5996 bytes doc/latex/classmeow_1_1HSLf__Space.tex | 323 +++ doc/latex/classmeow_1_1HSVf__Space.eps | 197 ++ doc/latex/classmeow_1_1HSVf__Space.pdf | Bin 0 -> 5998 bytes doc/latex/classmeow_1_1HSVf__Space.tex | 323 +++ doc/latex/classmeow_1_1HashTableList.tex | 285 ++ doc/latex/classmeow_1_1IdentityPoints.eps | 197 ++ doc/latex/classmeow_1_1IdentityPoints.pdf | Bin 0 -> 6540 bytes doc/latex/classmeow_1_1IdentityPoints.tex | 490 ++++ doc/latex/classmeow_1_1KD__Tree.tex | 202 ++ doc/latex/classmeow_1_1LinearTransformation.eps | 203 ++ doc/latex/classmeow_1_1LinearTransformation.pdf | Bin 0 -> 6176 bytes doc/latex/classmeow_1_1LinearTransformation.tex | 188 ++ doc/latex/classmeow_1_1Matrix.tex | 750 +++++ doc/latex/classmeow_1_1MergeableHeap.tex | 213 ++ doc/latex/classmeow_1_1ObjArray.eps | 197 ++ doc/latex/classmeow_1_1ObjArray.pdf | Bin 0 -> 5562 bytes doc/latex/classmeow_1_1ObjArray.tex | 299 ++ doc/latex/classmeow_1_1ObjBase.eps | 253 ++ doc/latex/classmeow_1_1ObjBase.pdf | Bin 0 -> 8863 bytes doc/latex/classmeow_1_1ObjBase.tex | 164 ++ doc/latex/classmeow_1_1ObjDictionary.eps | 197 ++ doc/latex/classmeow_1_1ObjDictionary.pdf | Bin 0 -> 6418 bytes doc/latex/classmeow_1_1ObjDictionary.tex | 281 ++ doc/latex/classmeow_1_1ObjProperties.eps | 197 ++ doc/latex/classmeow_1_1ObjProperties.pdf | Bin 0 -> 6014 bytes doc/latex/classmeow_1_1ObjProperties.tex | 230 ++ doc/latex/classmeow_1_1ObjSelector.tex | 229 ++ doc/latex/classmeow_1_1ObjType.eps | 197 ++ doc/latex/classmeow_1_1ObjType.pdf | Bin 0 -> 6304 bytes doc/latex/classmeow_1_1ObjType.tex | 236 ++ doc/latex/classmeow_1_1Photo.eps | 197 ++ doc/latex/classmeow_1_1Photo.pdf | Bin 0 -> 5822 bytes doc/latex/classmeow_1_1Photo.tex | 688 +++++ doc/latex/classmeow_1_1PhotoProjection.eps | 197 ++ doc/latex/classmeow_1_1PhotoProjection.pdf | Bin 0 -> 5933 bytes doc/latex/classmeow_1_1PhotoProjection.tex | 324 +++ doc/latex/classmeow_1_1RGBf__Space.eps | 197 ++ doc/latex/classmeow_1_1RGBf__Space.pdf | Bin 0 -> 6264 bytes doc/latex/classmeow_1_1RGBf__Space.tex | 323 +++ doc/latex/classmeow_1_1RGBi__Space.eps | 197 ++ doc/latex/classmeow_1_1RGBi__Space.pdf | Bin 0 -> 6121 bytes doc/latex/classmeow_1_1RGBi__Space.tex | 323 +++ doc/latex/classmeow_1_1ReaderWriter__double.tex | 42 + doc/latex/classmeow_1_1ReaderWriter__int.tex | 42 + doc/latex/classmeow_1_1ReaderWriter__size__t.tex | 42 + doc/latex/classmeow_1_1ReaderWriter__string.tex | 42 + doc/latex/classmeow_1_1Rotation3D.eps | 203 ++ doc/latex/classmeow_1_1Rotation3D.pdf | Bin 0 -> 6175 bytes doc/latex/classmeow_1_1Rotation3D.tex | 446 +++ doc/latex/classmeow_1_1SegmentTree.tex | 205 ++ doc/latex/classmeow_1_1Self.tex | 302 ++ doc/latex/classmeow_1_1SplayTree.tex | 384 +++ doc/latex/classmeow_1_1SplayTree_1_1Element.tex | 160 ++ doc/latex/classmeow_1_1SplayTree__Range.tex | 437 +++ .../classmeow_1_1SplayTree__Range_1_1Element.tex | 160 ++ doc/latex/classmeow_1_1Transformation.eps | 213 ++ doc/latex/classmeow_1_1Transformation.pdf | Bin 0 -> 6653 bytes doc/latex/classmeow_1_1Transformation.tex | 441 +++ doc/latex/classmeow_1_1Usage.tex | 403 +++ doc/latex/classmeow_1_1VP__Tree.tex | 238 ++ doc/latex/classmeow_1_1Vector.tex | 592 ++++ doc/latex/classmeow_1_1Vector2D.tex | 682 +++++ doc/latex/classmeow_1_1Vector3D.tex | 717 +++++ doc/latex/classmeow_1_1ViewPort.eps | 197 ++ doc/latex/classmeow_1_1ViewPort.pdf | Bin 0 -> 5499 bytes doc/latex/classmeow_1_1ViewPort.tex | 27 + doc/latex/classmeow_1_1WatchBall.eps | 197 ++ doc/latex/classmeow_1_1WatchBall.pdf | Bin 0 -> 6056 bytes doc/latex/classmeow_1_1WatchBall.tex | 426 +++ doc/latex/classmeow_1_1YUVf__Space.eps | 197 ++ doc/latex/classmeow_1_1YUVf__Space.pdf | Bin 0 -> 6136 bytes doc/latex/classmeow_1_1YUVf__Space.tex | 323 +++ doc/latex/dir_115d3279a93b9c99d8f569a34543848f.tex | 28 + doc/latex/dir_540a4c8f2977878a343351220ffba92b.tex | 18 + doc/latex/dir_77e0ab67466b1e7d76f50725a5ab9910.tex | 22 + doc/latex/dir_92fecd8d02dd5e7a67429447fdf0f60f.tex | 27 + doc/latex/dir_a17ff8dcb3a1c1b842af541700214096.tex | 22 + doc/latex/dir_a57e9e528cb28fd6752031b735908fb6.tex | 8 + doc/latex/dir_f6840b2fecd08a3779df34f0add0e074.tex | 16 + doc/latex/doxygen.sty | 484 ++++ doc/latex/files.tex | 45 + doc/latex/hierarchy.tex | 92 + doc/latex/math_2utility_8h.tex | 40 + doc/latex/methods_8h.tex | 20 + doc/latex/namespacemeow.tex | 854 ++++++ doc/latex/namespaces.tex | 4 + doc/latex/refman.tex | 175 ++ doc/latex/structmeow_1_1FeaturePointIndexPair.tex | 67 + doc/latex/utility_8h.tex | 66 + doxygen/!readme.asciidoc | 291 ++ doxygen/Makefile | 8 + doxygen/config | 327 +++ doxygen/custom.css | 143 + doxygen/footer.html | 21 + doxygen/footer.tex | 4 + doxygen/header.html | 55 + doxygen/header.tex | 67 + doxygen/logo.png | Bin 0 -> 10627 bytes doxygen/logo.svg | 825 ++++++ doxygen/stylesheet.css | 1203 ++++++++ doxygen/stylesheet.sty | 485 ++++ meowpp.test/GNUmakefile | 80 +- meowpp.test/GNUmakefile.dependency.sh | 24 + meowpp.test/GNUmakefile.targets | 14 + meowpp.test/dep/BinaryIndexTree.d | 29 +- meowpp.test/dep/DisjointSet.d | 27 +- meowpp.test/dep/KD_Tree.d | 28 +- meowpp.test/dep/Matrix.d | 27 +- meowpp.test/dep/MergeableHeap.d | 29 +- meowpp.test/dep/SegmentTree.d | 29 +- meowpp.test/dep/SplayTree.d | 30 +- meowpp.test/dep/SplayTree_Range.d | 31 +- meowpp.test/dep/VP_Tree.d | 30 +- meowpp.test/dep/autostitch.d | 62 + .../dep/autostitch_FeaturePointsDetector_Harris.d | 44 + meowpp.test/dep/autostitch_K_Match.d | 41 + meowpp.test/dep/autostitch_RansacCheck.d | 40 + meowpp.test/dep/dsa.d | 25 +- meowpp.test/dep/oo.d | 5 + meowpp.test/inc/autostitch.h | 73 + meowpp.test/inc/dsa.h | 30 + meowpp.test/input | 1 + .../output1.jpg" | Bin 0 -> 3279217 bytes .../output1.jpg.txt" | 1147 ++++++++ .../output2.jpg" | Bin 0 -> 3871811 bytes .../output2.jpg.txt" | 976 +++++++ .../output3.jpg" | Bin 0 -> 4262320 bytes .../output3.jpg.txt" | 2458 +++++++++++++++++ .../output4.jpg" | Bin 0 -> 4320583 bytes .../output4.jpg.txt" | 2914 ++++++++++++++++++++ .../output5.jpg" | Bin 0 -> 4656025 bytes .../output5.jpg.txt" | 1849 +++++++++++++ .../output6.jpg" | Bin 0 -> 3743186 bytes .../output6.jpg.txt" | 742 +++++ .../output7.jpg" | Bin 0 -> 3162076 bytes .../output7.jpg.txt" | 769 ++++++ .../output8.jpg" | Bin 0 -> 3295692 bytes .../output8.jpg.txt" | 1303 +++++++++ meowpp.test/src/BinaryIndexTree.cpp | 6 +- meowpp.test/src/DisjointSet.cpp | 6 +- meowpp.test/src/KD_Tree.cpp | 4 +- meowpp.test/src/Matrix.cpp | 2 +- meowpp.test/src/MergeableHeap.cpp | 4 +- meowpp.test/src/SegmentTree.cpp | 4 +- meowpp.test/src/SplayTree.cpp | 4 +- meowpp.test/src/SplayTree_Range.cpp | 6 +- meowpp.test/src/VP_Tree.cpp | 26 +- meowpp.test/src/autostitch.cpp | 618 +++++ .../autostitch_FeaturePointsDetector_Harris.cpp | 73 + meowpp.test/src/autostitch_K_Match.cpp | 36 + meowpp.test/src/autostitch_RansacCheck.cpp | 121 + meowpp.test/src/dsa.cpp | 30 +- meowpp.test/src/oo.cpp | 100 + meowpp/!readme.asciidoc | 20 + meowpp/Self.h | 230 ++ meowpp/Usage.h | 601 +++- meowpp/colors/!readme.asciidoc | 78 + meowpp/colors/Color3_Space.h | 78 + meowpp/colors/HSL_Space.h | 188 ++ meowpp/colors/HSV_Space.h | 188 ++ meowpp/colors/RGB_Space.h | 168 ++ meowpp/colors/YUV_Space.h | 131 + meowpp/dsa/!readme.asciidoc | 57 + meowpp/dsa/BinaryIndexTree.h | 155 +- meowpp/dsa/DisjointSet.h | 192 +- meowpp/dsa/HashTable.h | 217 ++ meowpp/dsa/KD_Tree.h | 425 ++- meowpp/dsa/MergeableHeap.h | 260 +- meowpp/dsa/SegmentTree.h | 274 +- meowpp/dsa/SplayTree.h | 1366 +++++++-- meowpp/dsa/VP_Tree.h | 461 +++- meowpp/geo/!readme.asciidoc | 12 + meowpp/geo/Vectors.h | 510 ++++ meowpp/gra/Bitmap.h | 411 +++ meowpp/gra/Camera.h | 544 ++++ meowpp/gra/FeaturePoint.h | 193 ++ meowpp/gra/FeaturePointsDetector.h | 26 + meowpp/gra/FeaturePointsDetector_Harris.h | 356 +++ meowpp/gra/FeaturePointsMatch.h | 63 + meowpp/gra/FeaturePointsMatch_K_Match.h | 190 ++ meowpp/gra/IdentityPoints.h | 279 ++ meowpp/gra/Photo.h | 407 +++ meowpp/gra/ViewPort.h | 19 + meowpp/gra/WatchBall.h | 255 ++ meowpp/math/!readme.asciidoc | 73 + meowpp/math/LinearTransformation.h | 116 +- meowpp/math/LinearTransformations.h | 424 ++- meowpp/math/Matrix.h | 536 +++- meowpp/math/Transformation.h | 272 +- meowpp/math/Transformations.h | 581 +++- meowpp/math/Vector.h | 276 ++ meowpp/math/methods.h | 181 ++ meowpp/math/utility.h | 197 +- meowpp/oo/!readme.asciidoc | 32 + meowpp/oo/ObjArray.h | 166 ++ meowpp/oo/ObjBase.h | 58 +- meowpp/oo/ObjDictionary.h | 158 ++ meowpp/oo/ObjProperties.h | 55 + meowpp/oo/ObjSelector.h | 245 +- meowpp/oo/ObjTypes.h | 202 ++ meowpp/utility.h | 232 +- readme_generate.py | 118 +- 748 files changed, 128787 insertions(+), 4329 deletions(-) create mode 100644 !readme_footer.asciidoc create mode 100644 !readme_header.asciidoc create mode 100644 LaTex/!readme.asciidoc create mode 100644 LaTex/Makefile create mode 100644 LaTex/source.tex create mode 100644 asciidoc/!readme.asciidoc create mode 100644 asciidoc/Makefile create mode 100644 asciidoc/example.txt create mode 100644 asciidoc/output.html create mode 100644 cppMakefile/!readme.asciidoc create mode 100644 cppMakefile/GNUmakefile create mode 100755 cppMakefile/GNUmakefile.dependency.sh create mode 100644 doc/html/BinaryIndexTree_8h.html create mode 100644 doc/html/BinaryIndexTree_8h_source.html create mode 100644 doc/html/Bitmap_8h.html create mode 100644 doc/html/Bitmap_8h_source.html create mode 100644 doc/html/Camera_8h.html create mode 100644 doc/html/Camera_8h_source.html create mode 100644 doc/html/Color3__Space_8h.html create mode 100644 doc/html/Color3__Space_8h_source.html create mode 100644 doc/html/DisjointSet_8h.html create mode 100644 doc/html/DisjointSet_8h_source.html create mode 100644 doc/html/FeaturePoint_8h.html create mode 100644 doc/html/FeaturePoint_8h_source.html create mode 100644 doc/html/FeaturePointsDetector_8h.html create mode 100644 doc/html/FeaturePointsDetector_8h_source.html create mode 100644 doc/html/FeaturePointsDetector__Harris_8h.html create mode 100644 doc/html/FeaturePointsDetector__Harris_8h.js create mode 100644 doc/html/FeaturePointsDetector__Harris_8h_source.html create mode 100644 doc/html/FeaturePointsMatch_8h.html create mode 100644 doc/html/FeaturePointsMatch_8h.js create mode 100644 doc/html/FeaturePointsMatch_8h_source.html create mode 100644 doc/html/FeaturePointsMatch__K__Match_8h.html create mode 100644 doc/html/FeaturePointsMatch__K__Match_8h.js create mode 100644 doc/html/FeaturePointsMatch__K__Match_8h_source.html create mode 100644 doc/html/HSL__Space_8h.html create mode 100644 doc/html/HSL__Space_8h.js create mode 100644 doc/html/HSL__Space_8h_source.html create mode 100644 doc/html/HSV__Space_8h.html create mode 100644 doc/html/HSV__Space_8h.js create mode 100644 doc/html/HSV__Space_8h_source.html create mode 100644 doc/html/HashTable_8h.html create mode 100644 doc/html/HashTable_8h_source.html create mode 100644 doc/html/IdentityPoints_8h.html create mode 100644 doc/html/IdentityPoints_8h_source.html create mode 100644 doc/html/KD__Tree_8h.html create mode 100644 doc/html/KD__Tree_8h_source.html create mode 100644 doc/html/LinearTransformation_8h.html create mode 100644 doc/html/LinearTransformation_8h_source.html create mode 100644 doc/html/LinearTransformations_8h.html create mode 100644 doc/html/LinearTransformations_8h_source.html create mode 100644 doc/html/Matrix_8h.html create mode 100644 doc/html/Matrix_8h_source.html create mode 100644 doc/html/MergeableHeap_8h.html create mode 100644 doc/html/MergeableHeap_8h_source.html create mode 100644 doc/html/ObjArray_8h.html create mode 100644 doc/html/ObjArray_8h_source.html create mode 100644 doc/html/ObjBase_8h.html create mode 100644 doc/html/ObjBase_8h_source.html create mode 100644 doc/html/ObjDictionary_8h.html create mode 100644 doc/html/ObjDictionary_8h_source.html create mode 100644 doc/html/ObjProperties_8h.html create mode 100644 doc/html/ObjProperties_8h_source.html create mode 100644 doc/html/ObjSelector_8h.html create mode 100644 doc/html/ObjSelector_8h.js create mode 100644 doc/html/ObjSelector_8h_source.html create mode 100644 doc/html/ObjTypes_8h.html create mode 100644 doc/html/ObjTypes_8h.js create mode 100644 doc/html/ObjTypes_8h_source.html create mode 100644 doc/html/Photo_8h.html create mode 100644 doc/html/Photo_8h_source.html create mode 100644 doc/html/RGB__Space_8h.html create mode 100644 doc/html/RGB__Space_8h.js create mode 100644 doc/html/RGB__Space_8h_source.html create mode 100644 doc/html/SegmentTree_8h.html create mode 100644 doc/html/SegmentTree_8h_source.html create mode 100644 doc/html/Self_8h.html create mode 100644 doc/html/Self_8h_source.html create mode 100644 doc/html/SplayTree_8h.html create mode 100644 doc/html/SplayTree_8h_source.html create mode 100644 doc/html/Transformation_8h.html create mode 100644 doc/html/Transformation_8h_source.html create mode 100644 doc/html/Transformations_8h.html create mode 100644 doc/html/Transformations_8h_source.html create mode 100644 doc/html/Usage_8h.html create mode 100644 doc/html/Usage_8h_source.html create mode 100644 doc/html/VP__Tree_8h.html create mode 100644 doc/html/VP__Tree_8h_source.html create mode 100644 doc/html/Vector_8h.html create mode 100644 doc/html/Vector_8h_source.html create mode 100644 doc/html/Vectors_8h.html create mode 100644 doc/html/Vectors_8h_source.html create mode 100644 doc/html/ViewPort_8h.html create mode 100644 doc/html/ViewPort_8h_source.html create mode 100644 doc/html/WatchBall_8h.html create mode 100644 doc/html/WatchBall_8h_source.html create mode 100644 doc/html/YUV__Space_8h.html create mode 100644 doc/html/YUV__Space_8h.js create mode 100644 doc/html/YUV__Space_8h_source.html create mode 100644 doc/html/annotated.html create mode 100644 doc/html/annotated.js create mode 100644 doc/html/bc_s.png create mode 100644 doc/html/bdwn.png create mode 100644 doc/html/classdouble.html create mode 100644 doc/html/classes.html create mode 100644 doc/html/classint.html create mode 100644 doc/html/classmeow_1_1BallProjection-members.html create mode 100644 doc/html/classmeow_1_1BallProjection.html create mode 100644 doc/html/classmeow_1_1BallProjection.js create mode 100644 doc/html/classmeow_1_1BallProjection.png create mode 100644 doc/html/classmeow_1_1BinaryIndexTree-members.html create mode 100644 doc/html/classmeow_1_1BinaryIndexTree.html create mode 100644 doc/html/classmeow_1_1BinaryIndexTree.js create mode 100644 doc/html/classmeow_1_1Bitmap-members.html create mode 100644 doc/html/classmeow_1_1Bitmap.html create mode 100644 doc/html/classmeow_1_1Bitmap.js create mode 100644 doc/html/classmeow_1_1Bitmap.png create mode 100644 doc/html/classmeow_1_1Camera-members.html create mode 100644 doc/html/classmeow_1_1Camera.html create mode 100644 doc/html/classmeow_1_1Camera.js create mode 100644 doc/html/classmeow_1_1Camera.png create mode 100644 doc/html/classmeow_1_1Color3__Space-members.html create mode 100644 doc/html/classmeow_1_1Color3__Space.html create mode 100644 doc/html/classmeow_1_1Color3__Space.js create mode 100644 doc/html/classmeow_1_1DisjointSet-members.html create mode 100644 doc/html/classmeow_1_1DisjointSet.html create mode 100644 doc/html/classmeow_1_1DisjointSet.js create mode 100644 doc/html/classmeow_1_1FeaturePoint-members.html create mode 100644 doc/html/classmeow_1_1FeaturePoint.html create mode 100644 doc/html/classmeow_1_1FeaturePoint.js create mode 100644 doc/html/classmeow_1_1FeaturePoint.png create mode 100644 doc/html/classmeow_1_1FeaturePointsDetector-members.html create mode 100644 doc/html/classmeow_1_1FeaturePointsDetector.html create mode 100644 doc/html/classmeow_1_1FeaturePointsDetector.js create mode 100644 doc/html/classmeow_1_1FeaturePointsDetector.png create mode 100644 doc/html/classmeow_1_1FeaturePointsDetector__Harris-members.html create mode 100644 doc/html/classmeow_1_1FeaturePointsDetector__Harris.html create mode 100644 doc/html/classmeow_1_1FeaturePointsDetector__Harris.js create mode 100644 doc/html/classmeow_1_1FeaturePointsDetector__Harris.png create mode 100644 doc/html/classmeow_1_1FeaturePointsMatch-members.html create mode 100644 doc/html/classmeow_1_1FeaturePointsMatch.html create mode 100644 doc/html/classmeow_1_1FeaturePointsMatch.js create mode 100644 doc/html/classmeow_1_1FeaturePointsMatch.png create mode 100644 doc/html/classmeow_1_1FeaturePointsMatch__K__Match-members.html create mode 100644 doc/html/classmeow_1_1FeaturePointsMatch__K__Match.html create mode 100644 doc/html/classmeow_1_1FeaturePointsMatch__K__Match.js create mode 100644 doc/html/classmeow_1_1FeaturePointsMatch__K__Match.png create mode 100644 doc/html/classmeow_1_1HSLf__Space-members.html create mode 100644 doc/html/classmeow_1_1HSLf__Space.html create mode 100644 doc/html/classmeow_1_1HSLf__Space.js create mode 100644 doc/html/classmeow_1_1HSLf__Space.png create mode 100644 doc/html/classmeow_1_1HSVf__Space-members.html create mode 100644 doc/html/classmeow_1_1HSVf__Space.html create mode 100644 doc/html/classmeow_1_1HSVf__Space.js create mode 100644 doc/html/classmeow_1_1HSVf__Space.png create mode 100644 doc/html/classmeow_1_1HashTableList-members.html create mode 100644 doc/html/classmeow_1_1HashTableList.html create mode 100644 doc/html/classmeow_1_1HashTableList.js create mode 100644 doc/html/classmeow_1_1IdentityPoints-members.html create mode 100644 doc/html/classmeow_1_1IdentityPoints.html create mode 100644 doc/html/classmeow_1_1IdentityPoints.js create mode 100644 doc/html/classmeow_1_1IdentityPoints.png create mode 100644 doc/html/classmeow_1_1KD__Tree-members.html create mode 100644 doc/html/classmeow_1_1KD__Tree.html create mode 100644 doc/html/classmeow_1_1KD__Tree.js create mode 100644 doc/html/classmeow_1_1LinearTransformation-members.html create mode 100644 doc/html/classmeow_1_1LinearTransformation.html create mode 100644 doc/html/classmeow_1_1LinearTransformation.js create mode 100644 doc/html/classmeow_1_1LinearTransformation.png create mode 100644 doc/html/classmeow_1_1Matrix-members.html create mode 100644 doc/html/classmeow_1_1Matrix.html create mode 100644 doc/html/classmeow_1_1Matrix.js create mode 100644 doc/html/classmeow_1_1MergeableHeap-members.html create mode 100644 doc/html/classmeow_1_1MergeableHeap.html create mode 100644 doc/html/classmeow_1_1MergeableHeap.js create mode 100644 doc/html/classmeow_1_1ObjArray-members.html create mode 100644 doc/html/classmeow_1_1ObjArray.html create mode 100644 doc/html/classmeow_1_1ObjArray.js create mode 100644 doc/html/classmeow_1_1ObjArray.png create mode 100644 doc/html/classmeow_1_1ObjBase-members.html create mode 100644 doc/html/classmeow_1_1ObjBase.html create mode 100644 doc/html/classmeow_1_1ObjBase.js create mode 100644 doc/html/classmeow_1_1ObjBase.png create mode 100644 doc/html/classmeow_1_1ObjDictionary-members.html create mode 100644 doc/html/classmeow_1_1ObjDictionary.html create mode 100644 doc/html/classmeow_1_1ObjDictionary.js create mode 100644 doc/html/classmeow_1_1ObjDictionary.png create mode 100644 doc/html/classmeow_1_1ObjProperties-members.html create mode 100644 doc/html/classmeow_1_1ObjProperties.html create mode 100644 doc/html/classmeow_1_1ObjProperties.js create mode 100644 doc/html/classmeow_1_1ObjProperties.png create mode 100644 doc/html/classmeow_1_1ObjSelector-members.html create mode 100644 doc/html/classmeow_1_1ObjSelector.html create mode 100644 doc/html/classmeow_1_1ObjSelector.js create mode 100644 doc/html/classmeow_1_1ObjType-members.html create mode 100644 doc/html/classmeow_1_1ObjType.html create mode 100644 doc/html/classmeow_1_1ObjType.js create mode 100644 doc/html/classmeow_1_1ObjType.png create mode 100644 doc/html/classmeow_1_1Photo-members.html create mode 100644 doc/html/classmeow_1_1Photo.html create mode 100644 doc/html/classmeow_1_1Photo.js create mode 100644 doc/html/classmeow_1_1Photo.png create mode 100644 doc/html/classmeow_1_1PhotoProjection-members.html create mode 100644 doc/html/classmeow_1_1PhotoProjection.html create mode 100644 doc/html/classmeow_1_1PhotoProjection.js create mode 100644 doc/html/classmeow_1_1PhotoProjection.png create mode 100644 doc/html/classmeow_1_1RGBf__Space-members.html create mode 100644 doc/html/classmeow_1_1RGBf__Space.html create mode 100644 doc/html/classmeow_1_1RGBf__Space.js create mode 100644 doc/html/classmeow_1_1RGBf__Space.png create mode 100644 doc/html/classmeow_1_1RGBi__Space-members.html create mode 100644 doc/html/classmeow_1_1RGBi__Space.html create mode 100644 doc/html/classmeow_1_1RGBi__Space.js create mode 100644 doc/html/classmeow_1_1RGBi__Space.png create mode 100644 doc/html/classmeow_1_1ReaderWriter__double-members.html create mode 100644 doc/html/classmeow_1_1ReaderWriter__double.html create mode 100644 doc/html/classmeow_1_1ReaderWriter__double.js create mode 100644 doc/html/classmeow_1_1ReaderWriter__int-members.html create mode 100644 doc/html/classmeow_1_1ReaderWriter__int.html create mode 100644 doc/html/classmeow_1_1ReaderWriter__int.js create mode 100644 doc/html/classmeow_1_1ReaderWriter__size__t-members.html create mode 100644 doc/html/classmeow_1_1ReaderWriter__size__t.html create mode 100644 doc/html/classmeow_1_1ReaderWriter__size__t.js create mode 100644 doc/html/classmeow_1_1ReaderWriter__string-members.html create mode 100644 doc/html/classmeow_1_1ReaderWriter__string.html create mode 100644 doc/html/classmeow_1_1ReaderWriter__string.js create mode 100644 doc/html/classmeow_1_1Rotation3D-members.html create mode 100644 doc/html/classmeow_1_1Rotation3D.html create mode 100644 doc/html/classmeow_1_1Rotation3D.js create mode 100644 doc/html/classmeow_1_1Rotation3D.png create mode 100644 doc/html/classmeow_1_1SegmentTree-members.html create mode 100644 doc/html/classmeow_1_1SegmentTree.html create mode 100644 doc/html/classmeow_1_1SegmentTree.js create mode 100644 doc/html/classmeow_1_1Self-members.html create mode 100644 doc/html/classmeow_1_1Self.html create mode 100644 doc/html/classmeow_1_1Self.js create mode 100644 doc/html/classmeow_1_1SplayTree-members.html create mode 100644 doc/html/classmeow_1_1SplayTree.html create mode 100644 doc/html/classmeow_1_1SplayTree.js create mode 100644 doc/html/classmeow_1_1SplayTree_1_1Element-members.html create mode 100644 doc/html/classmeow_1_1SplayTree_1_1Element.html create mode 100644 doc/html/classmeow_1_1SplayTree_1_1Element.js create mode 100644 doc/html/classmeow_1_1SplayTree__Range-members.html create mode 100644 doc/html/classmeow_1_1SplayTree__Range.html create mode 100644 doc/html/classmeow_1_1SplayTree__Range.js create mode 100644 doc/html/classmeow_1_1SplayTree__Range_1_1Element-members.html create mode 100644 doc/html/classmeow_1_1SplayTree__Range_1_1Element.html create mode 100644 doc/html/classmeow_1_1SplayTree__Range_1_1Element.js create mode 100644 doc/html/classmeow_1_1Transformation-members.html create mode 100644 doc/html/classmeow_1_1Transformation.html create mode 100644 doc/html/classmeow_1_1Transformation.js create mode 100644 doc/html/classmeow_1_1Transformation.png create mode 100644 doc/html/classmeow_1_1Usage-members.html create mode 100644 doc/html/classmeow_1_1Usage.html create mode 100644 doc/html/classmeow_1_1Usage.js create mode 100644 doc/html/classmeow_1_1VP__Tree-members.html create mode 100644 doc/html/classmeow_1_1VP__Tree.html create mode 100644 doc/html/classmeow_1_1VP__Tree.js create mode 100644 doc/html/classmeow_1_1Vector-members.html create mode 100644 doc/html/classmeow_1_1Vector.html create mode 100644 doc/html/classmeow_1_1Vector.js create mode 100644 doc/html/classmeow_1_1Vector2D-members.html create mode 100644 doc/html/classmeow_1_1Vector2D.html create mode 100644 doc/html/classmeow_1_1Vector2D.js create mode 100644 doc/html/classmeow_1_1Vector3D-members.html create mode 100644 doc/html/classmeow_1_1Vector3D.html create mode 100644 doc/html/classmeow_1_1Vector3D.js create mode 100644 doc/html/classmeow_1_1ViewPort-members.html create mode 100644 doc/html/classmeow_1_1ViewPort.html create mode 100644 doc/html/classmeow_1_1ViewPort.png create mode 100644 doc/html/classmeow_1_1WatchBall-members.html create mode 100644 doc/html/classmeow_1_1WatchBall.html create mode 100644 doc/html/classmeow_1_1WatchBall.js create mode 100644 doc/html/classmeow_1_1WatchBall.png create mode 100644 doc/html/classmeow_1_1YUVf__Space-members.html create mode 100644 doc/html/classmeow_1_1YUVf__Space.html create mode 100644 doc/html/classmeow_1_1YUVf__Space.js create mode 100644 doc/html/classmeow_1_1YUVf__Space.png create mode 100644 doc/html/closed.png create mode 100644 doc/html/custom.css create mode 100644 doc/html/dir_115d3279a93b9c99d8f569a34543848f.html create mode 100644 doc/html/dir_115d3279a93b9c99d8f569a34543848f.js create mode 100644 doc/html/dir_540a4c8f2977878a343351220ffba92b.html create mode 100644 doc/html/dir_540a4c8f2977878a343351220ffba92b.js create mode 100644 doc/html/dir_77e0ab67466b1e7d76f50725a5ab9910.html create mode 100644 doc/html/dir_77e0ab67466b1e7d76f50725a5ab9910.js create mode 100644 doc/html/dir_92fecd8d02dd5e7a67429447fdf0f60f.html create mode 100644 doc/html/dir_92fecd8d02dd5e7a67429447fdf0f60f.js create mode 100644 doc/html/dir_a17ff8dcb3a1c1b842af541700214096.html create mode 100644 doc/html/dir_a17ff8dcb3a1c1b842af541700214096.js create mode 100644 doc/html/dir_a57e9e528cb28fd6752031b735908fb6.html create mode 100644 doc/html/dir_a57e9e528cb28fd6752031b735908fb6.js create mode 100644 doc/html/dir_f6840b2fecd08a3779df34f0add0e074.html create mode 100644 doc/html/dir_f6840b2fecd08a3779df34f0add0e074.js create mode 100644 doc/html/doxygen.png create mode 100644 doc/html/dynsections.js create mode 100644 doc/html/files.html create mode 100644 doc/html/files.js create mode 100644 doc/html/form_0.png create mode 100644 doc/html/form_1.png create mode 100644 doc/html/form_10.png create mode 100644 doc/html/form_11.png create mode 100644 doc/html/form_12.png create mode 100644 doc/html/form_13.png create mode 100644 doc/html/form_14.png create mode 100644 doc/html/form_15.png create mode 100644 doc/html/form_16.png create mode 100644 doc/html/form_17.png create mode 100644 doc/html/form_18.png create mode 100644 doc/html/form_19.png create mode 100644 doc/html/form_2.png create mode 100644 doc/html/form_20.png create mode 100644 doc/html/form_21.png create mode 100644 doc/html/form_22.png create mode 100644 doc/html/form_23.png create mode 100644 doc/html/form_24.png create mode 100644 doc/html/form_25.png create mode 100644 doc/html/form_26.png create mode 100644 doc/html/form_27.png create mode 100644 doc/html/form_28.png create mode 100644 doc/html/form_29.png create mode 100644 doc/html/form_3.png create mode 100644 doc/html/form_30.png create mode 100644 doc/html/form_31.png create mode 100644 doc/html/form_32.png create mode 100644 doc/html/form_33.png create mode 100644 doc/html/form_34.png create mode 100644 doc/html/form_35.png create mode 100644 doc/html/form_36.png create mode 100644 doc/html/form_37.png create mode 100644 doc/html/form_38.png create mode 100644 doc/html/form_39.png create mode 100644 doc/html/form_4.png create mode 100644 doc/html/form_40.png create mode 100644 doc/html/form_41.png create mode 100644 doc/html/form_42.png create mode 100644 doc/html/form_43.png create mode 100644 doc/html/form_44.png create mode 100644 doc/html/form_45.png create mode 100644 doc/html/form_46.png create mode 100644 doc/html/form_47.png create mode 100644 doc/html/form_48.png create mode 100644 doc/html/form_49.png create mode 100644 doc/html/form_5.png create mode 100644 doc/html/form_6.png create mode 100644 doc/html/form_7.png create mode 100644 doc/html/form_8.png create mode 100644 doc/html/form_9.png create mode 100644 doc/html/formula.repository create mode 100644 doc/html/ftv2blank.png create mode 100644 doc/html/ftv2cl.png create mode 100644 doc/html/ftv2doc.png create mode 100644 doc/html/ftv2folderclosed.png create mode 100644 doc/html/ftv2folderopen.png create mode 100644 doc/html/ftv2lastnode.png create mode 100644 doc/html/ftv2link.png create mode 100644 doc/html/ftv2mlastnode.png create mode 100644 doc/html/ftv2mnode.png create mode 100644 doc/html/ftv2mo.png create mode 100644 doc/html/ftv2node.png create mode 100644 doc/html/ftv2ns.png create mode 100644 doc/html/ftv2plastnode.png create mode 100644 doc/html/ftv2pnode.png create mode 100644 doc/html/ftv2splitbar.png create mode 100644 doc/html/ftv2vertline.png create mode 100644 doc/html/functions.html create mode 100644 doc/html/functions_0x62.html create mode 100644 doc/html/functions_0x63.html create mode 100644 doc/html/functions_0x64.html create mode 100644 doc/html/functions_0x65.html create mode 100644 doc/html/functions_0x66.html create mode 100644 doc/html/functions_0x67.html create mode 100644 doc/html/functions_0x68.html create mode 100644 doc/html/functions_0x69.html create mode 100644 doc/html/functions_0x6a.html create mode 100644 doc/html/functions_0x6b.html create mode 100644 doc/html/functions_0x6c.html create mode 100644 doc/html/functions_0x6d.html create mode 100644 doc/html/functions_0x6e.html create mode 100644 doc/html/functions_0x6f.html create mode 100644 doc/html/functions_0x70.html create mode 100644 doc/html/functions_0x71.html create mode 100644 doc/html/functions_0x72.html create mode 100644 doc/html/functions_0x73.html create mode 100644 doc/html/functions_0x74.html create mode 100644 doc/html/functions_0x75.html create mode 100644 doc/html/functions_0x76.html create mode 100644 doc/html/functions_0x77.html create mode 100644 doc/html/functions_0x78.html create mode 100644 doc/html/functions_0x79.html create mode 100644 doc/html/functions_0x7a.html create mode 100644 doc/html/functions_0x7e.html create mode 100644 doc/html/functions_dup.js create mode 100644 doc/html/functions_func.html create mode 100644 doc/html/functions_func.js create mode 100644 doc/html/functions_func_0x62.html create mode 100644 doc/html/functions_func_0x63.html create mode 100644 doc/html/functions_func_0x64.html create mode 100644 doc/html/functions_func_0x65.html create mode 100644 doc/html/functions_func_0x66.html create mode 100644 doc/html/functions_func_0x67.html create mode 100644 doc/html/functions_func_0x68.html create mode 100644 doc/html/functions_func_0x69.html create mode 100644 doc/html/functions_func_0x6a.html create mode 100644 doc/html/functions_func_0x6b.html create mode 100644 doc/html/functions_func_0x6c.html create mode 100644 doc/html/functions_func_0x6d.html create mode 100644 doc/html/functions_func_0x6e.html create mode 100644 doc/html/functions_func_0x6f.html create mode 100644 doc/html/functions_func_0x70.html create mode 100644 doc/html/functions_func_0x71.html create mode 100644 doc/html/functions_func_0x72.html create mode 100644 doc/html/functions_func_0x73.html create mode 100644 doc/html/functions_func_0x74.html create mode 100644 doc/html/functions_func_0x75.html create mode 100644 doc/html/functions_func_0x76.html create mode 100644 doc/html/functions_func_0x77.html create mode 100644 doc/html/functions_func_0x78.html create mode 100644 doc/html/functions_func_0x79.html create mode 100644 doc/html/functions_func_0x7a.html create mode 100644 doc/html/functions_func_0x7e.html create mode 100644 doc/html/functions_rela.html create mode 100644 doc/html/functions_type.html create mode 100644 doc/html/functions_vars.html create mode 100644 doc/html/globals.html create mode 100644 doc/html/globals_defs.html create mode 100644 doc/html/hierarchy.html create mode 100644 doc/html/hierarchy.js create mode 100644 doc/html/index.html create mode 100644 doc/html/jquery.js create mode 100644 doc/html/logo.png create mode 100644 doc/html/math_2utility_8h.html create mode 100644 doc/html/math_2utility_8h.js create mode 100644 doc/html/math_2utility_8h_source.html create mode 100644 doc/html/methods_8h.html create mode 100644 doc/html/methods_8h.js create mode 100644 doc/html/methods_8h_source.html create mode 100644 doc/html/namespacemembers.html create mode 100644 doc/html/namespacemembers_func.html create mode 100644 doc/html/namespacemembers_type.html create mode 100644 doc/html/namespacemembers_vars.html create mode 100644 doc/html/namespacemeow.html create mode 100644 doc/html/namespacemeow.js create mode 100644 doc/html/namespaces.html create mode 100644 doc/html/namespaces.js create mode 100644 doc/html/nav_f.png create mode 100644 doc/html/nav_g.png create mode 100644 doc/html/nav_h.png create mode 100644 doc/html/navtree.css create mode 100644 doc/html/navtree.js create mode 100644 doc/html/navtreeindex0.js create mode 100644 doc/html/navtreeindex1.js create mode 100644 doc/html/navtreeindex2.js create mode 100644 doc/html/navtreeindex3.js create mode 100644 doc/html/navtreeindex4.js create mode 100644 doc/html/open.png create mode 100644 doc/html/resize.js create mode 100644 doc/html/structmeow_1_1FeaturePointIndexPair-members.html create mode 100644 doc/html/structmeow_1_1FeaturePointIndexPair.html create mode 100644 doc/html/structmeow_1_1FeaturePointIndexPair.js create mode 100644 doc/html/stylesheet.css create mode 100644 doc/html/sync_off.png create mode 100644 doc/html/sync_on.png create mode 100644 doc/html/tab_a.png create mode 100644 doc/html/tab_b.png create mode 100644 doc/html/tab_h.png create mode 100644 doc/html/tab_s.png create mode 100644 doc/html/tabs.css create mode 100644 doc/html/utility_8h.html create mode 100644 doc/html/utility_8h.js create mode 100644 doc/html/utility_8h_source.html create mode 100644 doc/latex/BinaryIndexTree_8h.tex create mode 100644 doc/latex/Bitmap_8h.tex create mode 100644 doc/latex/Camera_8h.tex create mode 100644 doc/latex/Color3__Space_8h.tex create mode 100644 doc/latex/DisjointSet_8h.tex create mode 100644 doc/latex/FeaturePoint_8h.tex create mode 100644 doc/latex/FeaturePointsDetector_8h.tex create mode 100644 doc/latex/FeaturePointsDetector__Harris_8h.tex create mode 100644 doc/latex/FeaturePointsMatch_8h.tex create mode 100644 doc/latex/FeaturePointsMatch__K__Match_8h.tex create mode 100644 doc/latex/HSL__Space_8h.tex create mode 100644 doc/latex/HSV__Space_8h.tex create mode 100644 doc/latex/HashTable_8h.tex create mode 100644 doc/latex/IdentityPoints_8h.tex create mode 100644 doc/latex/KD__Tree_8h.tex create mode 100644 doc/latex/LinearTransformation_8h.tex create mode 100644 doc/latex/LinearTransformations_8h.tex create mode 100644 doc/latex/Makefile create mode 100644 doc/latex/Matrix_8h.tex create mode 100644 doc/latex/MergeableHeap_8h.tex create mode 100644 doc/latex/ObjArray_8h.tex create mode 100644 doc/latex/ObjBase_8h.tex create mode 100644 doc/latex/ObjDictionary_8h.tex create mode 100644 doc/latex/ObjProperties_8h.tex create mode 100644 doc/latex/ObjSelector_8h.tex create mode 100644 doc/latex/ObjTypes_8h.tex create mode 100644 doc/latex/Photo_8h.tex create mode 100644 doc/latex/RGB__Space_8h.tex create mode 100644 doc/latex/SegmentTree_8h.tex create mode 100644 doc/latex/Self_8h.tex create mode 100644 doc/latex/SplayTree_8h.tex create mode 100644 doc/latex/Transformation_8h.tex create mode 100644 doc/latex/Transformations_8h.tex create mode 100644 doc/latex/Usage_8h.tex create mode 100644 doc/latex/VP__Tree_8h.tex create mode 100644 doc/latex/Vector_8h.tex create mode 100644 doc/latex/Vectors_8h.tex create mode 100644 doc/latex/ViewPort_8h.tex create mode 100644 doc/latex/WatchBall_8h.tex create mode 100644 doc/latex/YUV__Space_8h.tex create mode 100644 doc/latex/annotated.tex create mode 100644 doc/latex/classdouble.tex create mode 100644 doc/latex/classint.tex create mode 100644 doc/latex/classmeow_1_1BallProjection.eps create mode 100644 doc/latex/classmeow_1_1BallProjection.pdf create mode 100644 doc/latex/classmeow_1_1BallProjection.tex create mode 100644 doc/latex/classmeow_1_1BinaryIndexTree.tex create mode 100644 doc/latex/classmeow_1_1Bitmap.eps create mode 100644 doc/latex/classmeow_1_1Bitmap.pdf create mode 100644 doc/latex/classmeow_1_1Bitmap.tex create mode 100644 doc/latex/classmeow_1_1Camera.eps create mode 100644 doc/latex/classmeow_1_1Camera.pdf create mode 100644 doc/latex/classmeow_1_1Camera.tex create mode 100644 doc/latex/classmeow_1_1Color3__Space.tex create mode 100644 doc/latex/classmeow_1_1DisjointSet.tex create mode 100644 doc/latex/classmeow_1_1FeaturePoint.eps create mode 100644 doc/latex/classmeow_1_1FeaturePoint.pdf create mode 100644 doc/latex/classmeow_1_1FeaturePoint.tex create mode 100644 doc/latex/classmeow_1_1FeaturePointsDetector.eps create mode 100644 doc/latex/classmeow_1_1FeaturePointsDetector.pdf create mode 100644 doc/latex/classmeow_1_1FeaturePointsDetector.tex create mode 100644 doc/latex/classmeow_1_1FeaturePointsDetector__Harris.eps create mode 100644 doc/latex/classmeow_1_1FeaturePointsDetector__Harris.pdf create mode 100644 doc/latex/classmeow_1_1FeaturePointsDetector__Harris.tex create mode 100644 doc/latex/classmeow_1_1FeaturePointsMatch.eps create mode 100644 doc/latex/classmeow_1_1FeaturePointsMatch.pdf create mode 100644 doc/latex/classmeow_1_1FeaturePointsMatch.tex create mode 100644 doc/latex/classmeow_1_1FeaturePointsMatch__K__Match.eps create mode 100644 doc/latex/classmeow_1_1FeaturePointsMatch__K__Match.pdf create mode 100644 doc/latex/classmeow_1_1FeaturePointsMatch__K__Match.tex create mode 100644 doc/latex/classmeow_1_1HSLf__Space.eps create mode 100644 doc/latex/classmeow_1_1HSLf__Space.pdf create mode 100644 doc/latex/classmeow_1_1HSLf__Space.tex create mode 100644 doc/latex/classmeow_1_1HSVf__Space.eps create mode 100644 doc/latex/classmeow_1_1HSVf__Space.pdf create mode 100644 doc/latex/classmeow_1_1HSVf__Space.tex create mode 100644 doc/latex/classmeow_1_1HashTableList.tex create mode 100644 doc/latex/classmeow_1_1IdentityPoints.eps create mode 100644 doc/latex/classmeow_1_1IdentityPoints.pdf create mode 100644 doc/latex/classmeow_1_1IdentityPoints.tex create mode 100644 doc/latex/classmeow_1_1KD__Tree.tex create mode 100644 doc/latex/classmeow_1_1LinearTransformation.eps create mode 100644 doc/latex/classmeow_1_1LinearTransformation.pdf create mode 100644 doc/latex/classmeow_1_1LinearTransformation.tex create mode 100644 doc/latex/classmeow_1_1Matrix.tex create mode 100644 doc/latex/classmeow_1_1MergeableHeap.tex create mode 100644 doc/latex/classmeow_1_1ObjArray.eps create mode 100644 doc/latex/classmeow_1_1ObjArray.pdf create mode 100644 doc/latex/classmeow_1_1ObjArray.tex create mode 100644 doc/latex/classmeow_1_1ObjBase.eps create mode 100644 doc/latex/classmeow_1_1ObjBase.pdf create mode 100644 doc/latex/classmeow_1_1ObjBase.tex create mode 100644 doc/latex/classmeow_1_1ObjDictionary.eps create mode 100644 doc/latex/classmeow_1_1ObjDictionary.pdf create mode 100644 doc/latex/classmeow_1_1ObjDictionary.tex create mode 100644 doc/latex/classmeow_1_1ObjProperties.eps create mode 100644 doc/latex/classmeow_1_1ObjProperties.pdf create mode 100644 doc/latex/classmeow_1_1ObjProperties.tex create mode 100644 doc/latex/classmeow_1_1ObjSelector.tex create mode 100644 doc/latex/classmeow_1_1ObjType.eps create mode 100644 doc/latex/classmeow_1_1ObjType.pdf create mode 100644 doc/latex/classmeow_1_1ObjType.tex create mode 100644 doc/latex/classmeow_1_1Photo.eps create mode 100644 doc/latex/classmeow_1_1Photo.pdf create mode 100644 doc/latex/classmeow_1_1Photo.tex create mode 100644 doc/latex/classmeow_1_1PhotoProjection.eps create mode 100644 doc/latex/classmeow_1_1PhotoProjection.pdf create mode 100644 doc/latex/classmeow_1_1PhotoProjection.tex create mode 100644 doc/latex/classmeow_1_1RGBf__Space.eps create mode 100644 doc/latex/classmeow_1_1RGBf__Space.pdf create mode 100644 doc/latex/classmeow_1_1RGBf__Space.tex create mode 100644 doc/latex/classmeow_1_1RGBi__Space.eps create mode 100644 doc/latex/classmeow_1_1RGBi__Space.pdf create mode 100644 doc/latex/classmeow_1_1RGBi__Space.tex create mode 100644 doc/latex/classmeow_1_1ReaderWriter__double.tex create mode 100644 doc/latex/classmeow_1_1ReaderWriter__int.tex create mode 100644 doc/latex/classmeow_1_1ReaderWriter__size__t.tex create mode 100644 doc/latex/classmeow_1_1ReaderWriter__string.tex create mode 100644 doc/latex/classmeow_1_1Rotation3D.eps create mode 100644 doc/latex/classmeow_1_1Rotation3D.pdf create mode 100644 doc/latex/classmeow_1_1Rotation3D.tex create mode 100644 doc/latex/classmeow_1_1SegmentTree.tex create mode 100644 doc/latex/classmeow_1_1Self.tex create mode 100644 doc/latex/classmeow_1_1SplayTree.tex create mode 100644 doc/latex/classmeow_1_1SplayTree_1_1Element.tex create mode 100644 doc/latex/classmeow_1_1SplayTree__Range.tex create mode 100644 doc/latex/classmeow_1_1SplayTree__Range_1_1Element.tex create mode 100644 doc/latex/classmeow_1_1Transformation.eps create mode 100644 doc/latex/classmeow_1_1Transformation.pdf create mode 100644 doc/latex/classmeow_1_1Transformation.tex create mode 100644 doc/latex/classmeow_1_1Usage.tex create mode 100644 doc/latex/classmeow_1_1VP__Tree.tex create mode 100644 doc/latex/classmeow_1_1Vector.tex create mode 100644 doc/latex/classmeow_1_1Vector2D.tex create mode 100644 doc/latex/classmeow_1_1Vector3D.tex create mode 100644 doc/latex/classmeow_1_1ViewPort.eps create mode 100644 doc/latex/classmeow_1_1ViewPort.pdf create mode 100644 doc/latex/classmeow_1_1ViewPort.tex create mode 100644 doc/latex/classmeow_1_1WatchBall.eps create mode 100644 doc/latex/classmeow_1_1WatchBall.pdf create mode 100644 doc/latex/classmeow_1_1WatchBall.tex create mode 100644 doc/latex/classmeow_1_1YUVf__Space.eps create mode 100644 doc/latex/classmeow_1_1YUVf__Space.pdf create mode 100644 doc/latex/classmeow_1_1YUVf__Space.tex create mode 100644 doc/latex/dir_115d3279a93b9c99d8f569a34543848f.tex create mode 100644 doc/latex/dir_540a4c8f2977878a343351220ffba92b.tex create mode 100644 doc/latex/dir_77e0ab67466b1e7d76f50725a5ab9910.tex create mode 100644 doc/latex/dir_92fecd8d02dd5e7a67429447fdf0f60f.tex create mode 100644 doc/latex/dir_a17ff8dcb3a1c1b842af541700214096.tex create mode 100644 doc/latex/dir_a57e9e528cb28fd6752031b735908fb6.tex create mode 100644 doc/latex/dir_f6840b2fecd08a3779df34f0add0e074.tex create mode 100644 doc/latex/doxygen.sty create mode 100644 doc/latex/files.tex create mode 100644 doc/latex/hierarchy.tex create mode 100644 doc/latex/math_2utility_8h.tex create mode 100644 doc/latex/methods_8h.tex create mode 100644 doc/latex/namespacemeow.tex create mode 100644 doc/latex/namespaces.tex create mode 100644 doc/latex/refman.tex create mode 100644 doc/latex/structmeow_1_1FeaturePointIndexPair.tex create mode 100644 doc/latex/utility_8h.tex create mode 100644 doxygen/!readme.asciidoc create mode 100644 doxygen/Makefile create mode 100644 doxygen/config create mode 100644 doxygen/custom.css create mode 100644 doxygen/footer.html create mode 100644 doxygen/footer.tex create mode 100644 doxygen/header.html create mode 100644 doxygen/header.tex create mode 100644 doxygen/logo.png create mode 100644 doxygen/logo.svg create mode 100644 doxygen/stylesheet.css create mode 100644 doxygen/stylesheet.sty mode change 120000 => 100644 meowpp.test/GNUmakefile create mode 100755 meowpp.test/GNUmakefile.dependency.sh create mode 100644 meowpp.test/dep/autostitch.d create mode 100644 meowpp.test/dep/autostitch_FeaturePointsDetector_Harris.d create mode 100644 meowpp.test/dep/autostitch_K_Match.d create mode 100644 meowpp.test/dep/autostitch_RansacCheck.d create mode 100644 meowpp.test/dep/oo.d create mode 100644 meowpp.test/inc/autostitch.h create mode 100644 meowpp.test/inc/dsa.h create mode 120000 meowpp.test/input create mode 100644 "meowpp.test/output/1/\346\226\260\350\263\207\346\226\231\345\244\276/output1.jpg" create mode 100644 "meowpp.test/output/1/\346\226\260\350\263\207\346\226\231\345\244\276/output1.jpg.txt" create mode 100644 "meowpp.test/output/1/\346\226\260\350\263\207\346\226\231\345\244\276/output2.jpg" create mode 100644 "meowpp.test/output/1/\346\226\260\350\263\207\346\226\231\345\244\276/output2.jpg.txt" create mode 100644 "meowpp.test/output/1/\346\226\260\350\263\207\346\226\231\345\244\276/output3.jpg" create mode 100644 "meowpp.test/output/1/\346\226\260\350\263\207\346\226\231\345\244\276/output3.jpg.txt" create mode 100644 "meowpp.test/output/1/\346\226\260\350\263\207\346\226\231\345\244\276/output4.jpg" create mode 100644 "meowpp.test/output/1/\346\226\260\350\263\207\346\226\231\345\244\276/output4.jpg.txt" create mode 100644 "meowpp.test/output/1/\346\226\260\350\263\207\346\226\231\345\244\276/output5.jpg" create mode 100644 "meowpp.test/output/1/\346\226\260\350\263\207\346\226\231\345\244\276/output5.jpg.txt" create mode 100644 "meowpp.test/output/1/\346\226\260\350\263\207\346\226\231\345\244\276/output6.jpg" create mode 100644 "meowpp.test/output/1/\346\226\260\350\263\207\346\226\231\345\244\276/output6.jpg.txt" create mode 100644 "meowpp.test/output/1/\346\226\260\350\263\207\346\226\231\345\244\276/output7.jpg" create mode 100644 "meowpp.test/output/1/\346\226\260\350\263\207\346\226\231\345\244\276/output7.jpg.txt" create mode 100644 "meowpp.test/output/1/\346\226\260\350\263\207\346\226\231\345\244\276/output8.jpg" create mode 100644 "meowpp.test/output/1/\346\226\260\350\263\207\346\226\231\345\244\276/output8.jpg.txt" create mode 100644 meowpp.test/src/autostitch.cpp create mode 100644 meowpp.test/src/autostitch_FeaturePointsDetector_Harris.cpp create mode 100644 meowpp.test/src/autostitch_K_Match.cpp create mode 100644 meowpp.test/src/autostitch_RansacCheck.cpp create mode 100644 meowpp.test/src/oo.cpp create mode 100644 meowpp/!readme.asciidoc create mode 100644 meowpp/Self.h create mode 100644 meowpp/colors/!readme.asciidoc create mode 100644 meowpp/colors/Color3_Space.h create mode 100644 meowpp/colors/HSL_Space.h create mode 100644 meowpp/colors/HSV_Space.h create mode 100644 meowpp/colors/RGB_Space.h create mode 100644 meowpp/colors/YUV_Space.h create mode 100644 meowpp/dsa/!readme.asciidoc create mode 100644 meowpp/dsa/HashTable.h create mode 100644 meowpp/geo/!readme.asciidoc create mode 100644 meowpp/geo/Vectors.h create mode 100644 meowpp/gra/Bitmap.h create mode 100644 meowpp/gra/Camera.h create mode 100644 meowpp/gra/FeaturePoint.h create mode 100644 meowpp/gra/FeaturePointsDetector.h create mode 100644 meowpp/gra/FeaturePointsDetector_Harris.h create mode 100644 meowpp/gra/FeaturePointsMatch.h create mode 100644 meowpp/gra/FeaturePointsMatch_K_Match.h create mode 100644 meowpp/gra/IdentityPoints.h create mode 100644 meowpp/gra/Photo.h create mode 100644 meowpp/gra/ViewPort.h create mode 100644 meowpp/gra/WatchBall.h create mode 100644 meowpp/math/!readme.asciidoc create mode 100644 meowpp/math/Vector.h create mode 100644 meowpp/math/methods.h create mode 100644 meowpp/oo/!readme.asciidoc create mode 100644 meowpp/oo/ObjArray.h create mode 100644 meowpp/oo/ObjDictionary.h create mode 100644 meowpp/oo/ObjProperties.h create mode 100644 meowpp/oo/ObjTypes.h diff --git a/!readme_footer.asciidoc b/!readme_footer.asciidoc new file mode 100644 index 0000000..52a4af0 --- /dev/null +++ b/!readme_footer.asciidoc @@ -0,0 +1,38 @@ + +== Test +=== ACM 相關題目 +[options="header",width="70%",cols="3'.pdf* +* `view` 用kde-open 把輸出結果開起來(如有需要會先重新編譯) +* `clean` 清除 +* `two` 編譯兩次, 如果有目錄的話可能會需要用到 + +===== source.tex + +內容為一些我自己定義的設定, 參數設置等等. 另外還有用寫在註解裡面的小筆記 + + diff --git a/LaTex/Makefile b/LaTex/Makefile new file mode 100644 index 0000000..b0fd0da --- /dev/null +++ b/LaTex/Makefile @@ -0,0 +1,32 @@ +SOURCE = source.tex +TARGET = output + + +################################################## + +FLAGS=-interaction=nonstopmode -jobname=$(TARGET) + +OUTFILE_PDF=$(TARGET).pdf +OUTFILE_LOG=$(TARGET).log +OUTFILE_AUX=$(TARGET).aux + +################################################## + +.PHONY: all view clean + +all: $(OUTFILE_PDF) + +view: $(OUTFILE_PDF) + kde-open $(OUTFILE_PDF) + +clean: + -rm $(OUTFILE_PDF) + -rm $(OUTFILE_LOG) + -rm $(OUTFILE_AUX) + +$(OUTFILE_PDF): $(SOURCE) + xelatex $(FLAGS) $(SOURCE) + +two: $(SOURCE) + xelatex $(FLAGS) $(SOURCE) + xelatex $(FLAGS) $(SOURCE) diff --git a/LaTex/source.tex b/LaTex/source.tex new file mode 100644 index 0000000..cb189ec --- /dev/null +++ b/LaTex/source.tex @@ -0,0 +1,237 @@ +\documentclass{article} + +%%%%%%%%%%%%%%%%% **# chinese setting #** %%%%%%%%%%%%%%%%%% +\usepackage{fontspec} +\usepackage{xeCJK} %讓中英文字體分開設置 +\defaultCJKfontfeatures{AutoFakeBold=6,AutoFakeSlant=.4} %以後不用再設定粗斜 +\XeTeXlinebreaklocale "zh" %這兩行一定要加 +\XeTeXlinebreakskip = 0pt plus 1pt %中文才能自動換 +\newCJKfontfamily{\Kai}{標楷體} +\newCJKfontfamily{\Hei}{微軟正黑體} +\newCJKfontfamily{\Wen}{文泉驛等寬正黑} +\setCJKmainfont{文泉驛等寬正黑} + +%%%%%%%%%%%%%%%%%% **# border, indent #** %%%%%%%%%%%%%%%%%% +\usepackage{geometry} +\geometry{a4paper} +\geometry{left=1.7cm, right=1.7cm, top=2cm, bottom=2cm} +\linespread{1} +\setlength{\parskip }{0.5em} +\setlength{\parindent }{ 2em} + +%%%%%%%%%%%%%%%%%% **# header, footer #** %%%%%%%%%%%%%%%%%% +\usepackage{fancyhdr} +\usepackage{lastpage} +\pagestyle{fancy} % plain / empty / headings / myheadings / fancy +\pagenumbering{arabic} % arabic / roman / Roman / alph / Alph +\fancyhead[LE,LO]{資工二} +\fancyhead[CE,CO]{B01902109} +\fancyhead[RE,RO]{洪湧} +\fancyfoot[LE,LO]{} +\fancyfoot[CE,CO]{Page~\thepage ~of~\pageref*{LastPage}} +\fancyfoot[RE,RO]{} +\renewcommand{\headrulewidth}{0.5pt} +\renewcommand{\footrulewidth}{0pt} + +%%%%%%%%%%%%%%% **# title format & spacing #** %%%%%%%%%%%%% +\usepackage[sf]{titlesec} +\titleformat{\section }[hang]{\large}{\textbf{Problem\ \thesection}}{0em}{}{} +\titleformat{\subsection}[hang]{ }{\thesubsection .}{1em}{}{} + +\usepackage{chngcntr} +\renewcommand{\thesubsection}{\alph{subsection}} + +%%%%%%%%%%%%%%%%%% **# multi columns #** %%%%%%%%%%%%%%%%%%% +\usepackage{multicol} +\setlength{\columnsep }{30pt} +\setlength{\columnseprule}{0.5pt} + +%%%%%%%%%%%%%%%%%%% **# table of content #** %%%%%%%%%%%%%%% +\usepackage{tocloft} +\renewcommand{\cftsecleader }{\cftdotfill{\cftdotsep}} + +%%%%%%%%%%%%%%%%%%%% **# mathematics #** %%%%%%%%%%%%%%%%%%% +\usepackage{amsmath, amsthm, amssymb} + +\theoremstyle{definition} +\newtheorem*{defi}{Definition} + +\theoremstyle{plain} +\newtheorem{thm}{Theorem} +\newtheorem{cor}[thm]{Corollary} +\newtheorem{lemma}[thm]{Lemma} + +%%%%%%%%%%%%%%%%%%%%% **# algorithm #** %%%%%%%%%%%%%%%%%%%% +\usepackage{algorithmicx} +\usepackage{algorithm} +\usepackage{algc} +\usepackage{algcompatible} +\usepackage[noend]{algpseudocode} + +%%%%%%%%%%%%%%%%%%%%%%% **# etc #** %%%%%%%%%%%%%%%%%%%%%%%% +\usepackage{listings} +\usepackage{url} +\usepackage{hyperref} +\hypersetup{ + bookmarks = true, + unicode = true, + colorlinks = true, + linkcolor = blue + linkcolor = blue, + urlcolor = blue, + citecolor = blue, + anchorcolor = blue +} + +%%%%%%%%%%%%%%%%%% **# custom commands #** %%%%%%%%%%%%%%%%% +\newcommand{\Indent}[2]{\parindent=#1 \leftskip=#2} +\newcommand{\Usesize}[2]{\fontsize{#1}{#2}\selectfont \fontsize{#1}{#2}\selectfont} +\newcommand{\lstsetCPP}[0]{\lstset{ + basicstyle=\small, % font size + breakatwhitespace=false, % automatic breaks only happen at whitespace + breaklines=true, % automatic line breaking + captionpos=b, % caption-position to bottom + escapeinside={\%*}{*)}, % if you want to add LaTeX within your code + extendedchars=true, % lets you use non-ASCII characters; for 8-bits encodings only, does not work with UTF-8 + frame=single, % adds a frame around the code + keepspaces=true, % keeps spaces in text, useful for keeping indentation of code (possibly needs columns=flexible) + language=C++, % the language of the code + numbers=left, % where to put the line-numbers; (none, left, right) + numbersep=4pt, % how far the line-numbers are from the code + showspaces=false, % show spaces everywhere adding particular underscores; it overrides 'showstringspaces' + showstringspaces=false, % underline spaces within strings only + showtabs=false, % show tabs within strings adding particular underscores + stepnumber=1, % the step between two line-numbers. + tabsize=4, % tabsize +}} +\newcommand{\LineIf}[2]{\State \algorithmicif\ {#1}\ \algorithmicthen\ {#2}} + +%%%%%%%%%%%%%%%%%%%%%%%%% **# 本文 #** %%%%%%%%%%%%%%%%%%% + +\begin{document} +\Indent{0em}{3em} +hi! +\Kai +啦啦\textbf{啦} + +\Indent{0em}{5em} +啦啦\textbf{啦}aaaaaaaaaaaaa b c xxx +xxxxxxxxxxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx +xxxxxxxxxxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx +xxxxxxxxxxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx +xxxxxxxxxxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx +xxxxxxxxxxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx +\\ + + +\Indent{0em}{7em} + \begin{itemize} +\Indent{0em}{7em} + \itemsep = 0em + \item b +xxxxxxxxxxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx +xxxxxxxxxxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx +xxxxxxxxxxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx +xxxxxxxxxxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx + \end{itemize} + + + + +啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦 啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦 啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦 啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦 啦啦啦啦啦啦啦啦啦啦啦啦啦啦 + +啦啦\textbf{啦}aaaaaaaaaaaaa b c xxx +xxxxxxxxxxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx +xxxxxxxxxxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx +xxxxxxxxxxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx +xxxxxxxxxxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx +x +\end{document} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% \newtheorem{thm}{Theorm} 定理 +% \newtheorem{thm}{Theorm}[section] 加入節...? +% \newtheorem{lem}[thm]{Lemma} 和定理一起編號 +% \newtheorem*{mainthm}{Main Theorem} 不要編號 +% \begin{thm}\label{T:major} ... \ref{T:major} 用label, 引用 +% \begin{array}{clr} ... & ... \\ 矩陣用 +% \begin{align} + +%titleformat{command}[shape]{format}{label}{sep}{before}[after] +% command: 要定義的標題 +% shape : 形狀 hang|block|display +% format : 標題外觀(至中對齊啦, 粗體啦...) +% label : 標籤(標號) +% sep : 標題標籤與內容之間的間隔 +% befor : 內容之前 +% after : 內容之後 + +%titlespacing{command}{left}{before}{after} +% command: 要定義的標題 +% left : 標題左邊偏移 +% before : 與前一段文字間隔 +% after : 與後一段文字間隔 + +% \setcounter{secnumdepth}{3} 自己定義要標號到多深 +% -1 part, 0~5 ch, se, subse, subsubse, par, subpar + +%%%%%%%%%%%%%%%%%%%% 筆記區 %%%%%%%%%%%%%%%%%%%%%% +% ~ & 空白 表格中的分隔 +% \, \: \; \quad \qquad \hspace{2cm} 小中大空白 +% \smallskip \medskip \bigskip \vspace{2cm} 垂直移動3, 6, 12, 自訂 +% \hfill, \vfill 平均的塞入 水平/垂直 空間 +% \dotfill \hrulefill 塞 點/線 進去 +% \tiny \small \large \Large \LARGE \huge \Huge 字體大小 +% \emph{} \bf{} 斜體, 粗體 +% \title{} \author{} \date{} \maketitle 封面用 +% $...$ \[...\] 數學 隨文/展示 模式 +% \textbackslash $\backslash% 反除號 +% \part \chapter \section \paragraph section command +% \begin{itemize/enumerate/description} \item item + +%Options: Sonny, Lenny, Glenn, Conny, Rejne, Bjarne, Bjornstrup +%\usepackage[Sonny]{fncychap} 漂亮的chapter + +% \begin{raggedleft / flushright / center} %靠左/右/中對齊(前者不切齊) +% \linespread{0.5} + +% \begin{minipage}[t]{0.40\linewidth} +% \end{minipage} + +% \begin{tabular}[t / b / c]{r|cc||l} +% bla & x & y & bla (\\ or \tabularnewline) +% \hline +% bla & x & y & bla (\\ or \tabularnewline) +% \end{tabular} + +% \begin{multicols}{2} +% \end{multicols} + +% \begin{itemize} +% \itemsep = 0em +% \item ... +% \end{itemize} + +% \tableofcontents %目錄 +%\begin{algorithm} +%\begin{algorithmic}[1] +% \caption{My algorithm}\label{euclid} +% \Function{$BinSearch$}{$record array arr, integer len, integer value$} +% \State{$left \gets 0, {right} \gets \mathrm{len}$} +% \State ${ans} \gets -1$ +% \While{ $left < right$ } +% \State $mid \gets ??$ +% \If{$arr[mid] = value$} +% \State $ans \gets mid, left \gets mid+1$ +% \ElsIf{$arr[mid] > value$} +% \State{$right \gets mid$} +% \ElsIf{$arr[mid] < value$} +% \State{$left \gets mid+1$} +% \EndIf +% \EndWhile +% \LineIf{$ans = -1$}{\Return $NOTFOUND$} +% \State \Return $arr[ans]$ +% \EndFunction +%\end{algorithmic} +%\end{algorithm} + diff --git a/Makefile b/Makefile index 4e00191..3775649 100644 --- a/Makefile +++ b/Makefile @@ -1,15 +1,42 @@ ASCIIDOC = asciidoc -ASCIIDOC_FLAGS = -a toc2 -a data-uri -a max-width=70em\ +ASCIIDOC_FLAGS = -a toc2 \ + -a data-uri \ + -a toclevels=4 \ + -a max-width=70em \ -b html5 \ --theme=volnitsky README = README.asciidoc README_HTML = README.html -readme: - ./readme_generate.py $(README) - $(ASCIIDOC) $(ASCIIDOC_FLAGS) -o $(README_HTML) $(README) +CURRENT_DIR = $(shell pwd) + +.PHONY: all clean + +all: readme doc; + +readme: $(README_HTML); + +doc: document; clean: -rm -f $(README) $(README_HTML) + -rm -rf doc/* + +###################################################################### + +.PHONY: $(README) +$(README): + ./readme_generate.py $(README) + +ASCIIDOC_SOURCE = $(README) +ASCIIDOC_OUTPUT = $(README_HTML) + +include asciidoc/Makefile + +###################################################################### + +DOXYGEN_RUN_PATH = $(CURRENT_DIR) +DOXYGEN_CONFIG_PATH = $(CURRENT_DIR)/doxygen +include $(DOXYGEN_CONFIG_PATH)/Makefile diff --git a/README.asciidoc b/README.asciidoc index af84ff1..09f1af8 100644 --- a/README.asciidoc +++ b/README.asciidoc @@ -10,698 +10,690 @@ * https://github.com/cathook/meow/archive/master.zip[Download] == File Tree -=== *meowpp/* C++ templates - -* *utility.h* some useful functions, - `stringPringf()` , `stringReplace()` , `cstringEndWith()` , - `debugPrintf()` , `messagePrintf()` , `filenameCompare()` -* *Usage.h* `class Usage` -* *colors/* Color splces and transformer -** *RGB.h* `class RGBi` , `class RGBf` -** *YUV.h* `class YUVi` , `class YUVf` , `RGB_to_YUV()` , `YUV_to_RGB()` -** *HSL.h* `class HSLf` , `RGB_to_HSL()` , `HSL_to_RGB()` , - `YUV_to_HSL()` , `HSL_to_YUV()` -** *HSV.h* `class HSVf` , `RGB_to_HSV()` , `HSV_to_RGB()` , - `YUV_to_HSV()` , `HSV_to_YUV()` , - `HSL_to_HSV()` , `HSV_to_HSL()` -* *dsa/* Data Structures and Algorithms -** *BinaryIndexTree.h* `class BinaryIndexTree` -** *DisjointSet.h* `class DisjointSet` -** *Heaps.h* `class MergeableHeap` -** *KD_Tree.h* `class KD_Tree` -** *SegemenTree.h* `class SegmentTree` -** *SplayTree.h* `class SplayTree` -** *SplayTree_Range.h* `class SplayTree_Range` -** *VP_Tree.h* `class VP_Tree` -* *geo/* -** *Vector2D.h* `Vector2D` -** *Vector3D.h* `Vector3D` -* *math/* -** *utility.h* some useful functions, - `constant PI` , - `noEPS()` , `normalize()` , `denormalize()` , - `ratioMapping()` , `inRange()` , `squ()` , `average()` -** *LinearTransformation.h* `LinearTransformation` -** *LinearTransformations.h* `Rotation3D` -** *Matrix.h* `Matrix` -** *Transformation.h* `Transformation` -** *Transformations.h* `BallProjection`, `PhotoProjection` -* *oo/* -** *ObjBase.h* `class ObjBase` -** *ObjSelector.h* `class ObjBase` -** *Properties.h* `class Properties` - -== Structures/Classes/Functions - - -:b: | - - - -=== meow:: *Functios* in utility.h - -[options="header",width="100%",cols="1>s,5<,1<,10<",grid="rows"] -|============================================================== -|Name | Parameters | Return_Type | Description -|stringPrintf |(char const * `fmt`, ...) | std::string -|Format print to C++ string and return it -|stringReplace |(std::string `str`, + -std::string const& -`from`, + -std::string const& `to`) | std::string -|Return a string like `str`, but all `from` be replaced by `to` -|cstringEndWith |(char const* `str`, + -int `n`, ...) | bool -|Return whether `str` is end with one of the c-string you specify in -the parameters or not -|debugPrintf |(char const* `fmt`, ...) | void -|Print debug message (file name, line number, ...etc) when `DEBUG` is -defined -|messagePrintf |(int `level_change`, + -char const* `fmt`, ...) | void -|階層式的訊息輸出 -|filenameCompare |(std::string const& `f1`, std::string const& `f2`)|void -| 依照 `a0.txt < a1.txt < a2.txt < a10.txt` 的字串比較方法比較字串 -|============================================================== -[NOTE] -==================================== -* `stringReplace()` 不是用什麼好方法寫的因此執行效率很低請別虐待它. -==================================== - -''' - - -=== meow:: *Usage* (C++ Class) -==== Description -`Usage` 是用來分析argc, argv和輸出usage document的class. -argc, argv的部份, 有以下規則 - -* `-c` 其中 `c` 可以代換成正常的一個字元的字符, -這種選像要嘛就是 *有設置* , 不然就是 *沒設置* -* `-c ` 附加一個value, 這種選項可以是選擇性 ,即要設定與否都可以, -反之則一定要設定. 另外可以給定value的預設值以及哪些value是可接受的 -* `` 其他, 一律視為process arguments - -==== Methods -* `Usage(String const& _name)` + -建構子, 所有說明文字中 ** 都會被代換成 `_name` -* `Usage()` + -建構子, `_name` 自動取為 " *nobody* " -* `import(Usage const& usage)` + -將另一個usage的設定匯入, 回傳成功與否 *(bool)* -* `update(Usage const& usage)` + -將另一個usage分析argc,argv出來的資料拿來用, 回傳成功與否 *(bool)* -* `addOption(unsigned char option, String const& description)` + -新增一個不接額外選項的參數, 並附上說明文字, 回傳成功與否 *(bool)* -* `addOption(unsigned char option, String const& description, -String const& value_type, String const& value_default, bool must)` + -新增一個有額外選項的參數, 並附上說明文字, 額外選項的型別跟預設值. -說明文字中所有的" ** "將會被取代指定的型別, 其中 `must` 代表 -" *是否一定要設定此參數* " , 回傳表成功與否 *(bool)* -* `addOptionValueAccept(unsigned char option, -String const& value, String const& description)` + -針對某個option, 新增一個可接受的額外選項 (如果某個option從頭到尾都 -沒有新增可接受的選項, 則視為不限制), 回傳成功與否 *(bool)* -* `hasOptionSetup(unsigned char option)` + -回傳是否有此選項 *(bool)* -* `getOptionValuesCount(unsigned char option)` + -回傳此參數被設置了幾次 *(size_t)* , 只對有接額外參數的有效 -* `getOptionValue(unsigned char option, size_t index)` + -回傳第`index`個額外選項 *(String)* -* `getProcArgsCount()` + -回傳有多少個Process Arguments *(size_t)* -* `getProcArg(size_t index)` + -取得第`index`個Process Argument *(String)* -* `getProcArgs()` + -回傳一個陣列, 包含所有Process Arguments *(Strings)* -* `addUsageBegin(String const& des)` + -新增一段usage document於每個選項逐條說明之前 -* `addUsageEnd (String const& des)` + -新增一段usage document於每個選項逐條說明之後 -* `String getUsage()` + -回傳usage document *(String)* -* `setArguments(int argc, char** argv, String* errmsg)` + -輸入argv, argc, 回傳是否沒有錯誤發生 *(bool)* , 其中如果有錯誤發生, -且 `errmsg != NULL` 則會將錯誤訊息寫入之 -[NOTE] -================================== -* `String` 是 `std::string` . -* `Strings` 是 `std::vector< std::string> >`. -* 如果沒有寫回傳什麼, 就是回傳 `void` -================================== - -''' - - -=== meow:: *DisjointSet* (C++ class) -==== Description -`DisjointSet` 是個*輕量級Data Dtructure*, 用來維護一堆互斥集的資訊. -相關資料可參考 -link:http://www.csie.ntnu.edu.tw/~u91029/DisjointSets.html[演算法筆記] - -==== Support Methods - -[options="header",width="100%",cols="1>m,3>s,7<,3<,3^,20<",grid="rows"] -|===================================================================== -|Const?|Name | Parameters | Return_Type| Time_Complexity| Description -|const |root |(size_t `number`) | size_t | very fast -|回傳 `number` 所在的 *集合的編號* (0~N-1) -|const |size |() | size_t | very fast -|回傳 *總集合大小* -| |reset|(size_t `N`) | void | O(N) -| 清空, 並且設定總集合大小為 `N` -| |merge|(size_t `number1`, + -size_t `number2`)| size_t | very fast -| 將 `number1` 所在的集合 跟 `number2` 所在的集合 *合併*, -並回傳合併後新的集合的編號 -|===================================================================== -[NOTE] -======================================== -* *very fast* 表示它算的真的超級快, 可以視為常數時間. -* 預設值所有 `number` 所在的集合的編號就是 `number` 本身, -即沒有任兩個數在同一個set裡面 -======================================== - -''' - -=== meow:: *MergeableHeap* (C++ class) -==== Description -一個用 *左偏樹* 實作的 *Maximum-Heap* , 除了原本heap有的功能外, -還支援 `merge`, `split` 等功能 - -==== Template Class Operators Request -[options="header",width="70%",cols="1>m,1<,3* (C++ class) -==== Description -`VP_Tree` 用來維護由 *N個K維度向量所成的集合*, -並可於該set中查找 *前i個離給定向量最接近的向量*. + -不像 `KD_Tree` 二分樹每次都選擇一個維度去分, 分成小的跟大的, -`VP_Tree` 每次選一個點, 將資料分成 離這個點近的, 跟離這個點遠的. -至於怎麼選呢...., 嘛還沒研究, 先random - -.參考資料連結: -* http://stevehanov.ca/blog/index.php?id=130[link] -* http://pnylab.com/pny/papers/vptree/vptree[link] - -==== Template Class Operators Request -[options="header",width="70%",cols="1>m,1<,3` - -==== Support Methods - -* N <- `this` 中擁有的資料數 -* D <- `this` 資料維度 - -[options="header",width="100%",cols="1>m,3>s,7<,3<,3^,20<",grid="rows"] -|===================================================================== -|Const?|Name | Parameters | Return_Type| Time_Complexity| Description -||insert|(Vector const& `v`)|void| O(1) -|將向量 `v` 加到set中 -||erase|(Vector const& `v`)|bool| O(N) -|將向量 `v` 從set中移除, '~TODO:可以再優化~' -||build|()|void|O(KN logN) or O(1) -|檢查距上一次 `build()` 至今是否有 `insert/erase` 被呼叫, -若有, 重新建樹, 否則不做事 -||forceBuild|()|void|O(KN logN) -|重新建樹 -|const|query|(Vector const& `v`, + -size_t `i`, + -bool `cmp`)|Vectors -|O(logN) ~Expected~ -|於set中找尋距離 `v` 前 `i` 近的向量, 並依照由近而遠的順序排序. -如果有兩個向量 `v1`,`v2` 距離一樣, 且 `cmp` 為 `true` , 則直接依照 -`v1 < v2` 來決定誰在前面. 最後回傳一陣列包含所有解. -||clear|()|void|O(1) -|清空所有資料 -||reset|(size_t `dimension`)|size_t|O(1) -|清空所有資料並且指定維度為 `max(1, dimension)` 並且回傳指定後的維度 -|===================================================================== +=== LaTex/ -[NOTE] -======================================== -* 實測結果發覺, 維度小的時候, 比起中規中矩的 `KD_Tree`, `VP_Tree` 有 -'randomp' 於其中, 因此時間複雜度只是期望值 'O(logN)' 但是測資大到 -一定程度, `KD_Tree` 效率會一整個大幅掉下, 但 `VP_Tree` 幾乎不受影響 -* 'TODO' `insert()`, `erase()` 算是未完成功能 - -======================================== - -''' - -=== meow:: *KD_Tree* (C++ class) -==== Description -`KD_Tree` 全名k-dimension tree, 用來維護由 *N個K維度向量所成的集合*, -並可於該set中查找 *前i個離給定向量最接近的向量* - -==== Template Class Operators Request -[options="header",width="70%",cols="1>m,1<,3` - -==== Support Methods - -* N <- `this` 中擁有的資料數 -* K <- `this` 資料維度 - -[options="header",width="100%",cols="1>m,3>s,7<,3<,3^,20<",grid="rows"] -|===================================================================== -|Const?|Name | Parameters | Return_Type| Time_Complexity| Description -||insert|(Vector const& `v`)|void| O(1) -|將向量 `v` 加到set中 -||erase|(Vector const& `v`)|bool| O(N) -|將向量 `v` 從set中移除, '~TODO:可以再優化~' -||build|()|void|O(KN logN) or O(1) -|檢查距上一次 `build()` 至今是否有 `insert/erase` 被呼叫, -若有, 重新建樹, 否則不做事 -||forceBuild|()|void|O(KN logN) -|重新建樹 -|const|query|(Vector const& `v`, + -size_t `i`, + -bool `cmp`)|Vectors -|O(KN ^1-1/K^ ) -|於set中找尋距離 `v` 前 `i` 近的向量, 並依照由近而遠的順序排序. -如果有兩個向量 `v1`,`v2` 距離一樣, 且 `cmp` 為 `true` , 則直接依照 -`v1 < v2` 來決定誰在前面. 最後回傳一陣列包含所有解. -||clear|()|void|O(1) -|清空所有資料 -||reset|(size_t `dimension`)|void|O(1) -|清空所有資料並且指定維度為 `dimension` -|===================================================================== -[NOTE] -======================================== -* 此資料結構只有在 N >> 2 ^K^ 時才比較有優勢, -當 K 逐漸變大時, 所花時間會跟暴搜沒兩樣 -======================================== - -''' - -=== meow:: *SplayTree* (C++ class) -==== Description -`SplayTree` 是一種神乎其技的資料結構, 維護一堆 Key->Value . 並且支援 -一些 `std::map` 難以快速實踐的操作, 如 `split` , `merge` , `keyOffset` - -==== Template Class Operators Request -[options="header",width="70%",cols="1>m,1<,3 用來當作回傳資料的媒介 -** 重定義 `operator->()` 到 `std::pair*` -** 重定義 `operator*()` 到 `std::pair&` -** 有 `operator==` , `operator!=`, `operator=` 可用 -** 可以直接用 `(*e).second = some_value` 來改變SplayTree中的資料 - -==== Support Methods - -* N <- `this` 中擁有的資料數 -* M <- `tree2` 中擁有的資料數 - -[options="header",width="100%",cols="1>m,3>s,7<,3<,3^,20<",grid="rows"] -|===================================================================== -|Const?|Name | Parameters | Return_Type| Time_Complexity| Description -||moveTo|(SplayTree* `tree2`)|void|O(M) -|將 `this` 的資料複寫到 `tree2` 上面, 同時清空自己, -時間複雜度中的M是 `tree2` 所擁有的資料數 -|const|lowerBound|(Key const& `k`)|Element|O(logN) -|找出第一個(最小的) Element且 `k` <= 它的 Key, 並且回傳之. -找不到的話回傳 `this->end()` -|const|lowerBound|(Key const& `k`)|Element|O(logN) -|找出第一個(最小的) Element且 `k` < 它的 Key, 並且回傳之. -找不到的話回傳 `this->end()` -|const|lowerBound|(Key const& `k`)|Element|O(logN) -|找出第一個(最小的) Element且 `k` >= 它的 Key, 並且回傳之. -找不到的話回傳 `this->end()` -|const|lowerBound|(Key const& `k`)|Element|O(logN) -|找出第一個(最小的) Element且 `k` > 它的 Key, 並且回傳之. -找不到的話回傳 `this->end()` -|const|find|(Key const& `k`)|Element|O(logN) -|找出 Key= `k` 的Elemenet 並回傳. 找不到的話回傳 `this->end()` -|const|order|(size_t `ord`)|Element|O(logN) -|將Elements依照Key由小到大排序, 回傳第 `ord` 個Element (由0算起). -其中如果 `ord` > N - 1, 則會回傳 `this->last()` -|const|first|(size_t `ord`)|Element|O(logN) -|回傳Key最小的Element, 如果SplayTree為空, 則回傳 `this->end()` -|const|last|(size_t `ord`)|Element|O(logN) -|回傳Key最大的Element, 如果SplayTree為空, 則回傳 `this->end()` -|const|end|()|Element|O(1) -|回傳一個指向NULL的Element, 以供 `find` , `order` , `first` -, `last` 等判斷是否有找到相對應的Element -|const|size|()|size_t|O(1)| 回傳資料數 -|const|size|()|bool|O(1)| 回傳是否為空 -||clear|()|void|O(N)| 清空資料 -||insert|(Key const& `key`, + -Value const& `value`)|bool|O(logN) -|檢查是否已有Element的Key 為 `key`, 若有則回傳 `false` , 否則將 -一個 (Key -> Value) = (`key` -> `value`)的Element加入, 並回傳 `true` -將所有Element的Key同加上 `delta` -||erase|(Key const& `key`)|bool|O(logN) -|檢查是否已有Element的Key 為 `key`, 若有則刪除之, 並回傳 `true`, -否則則回傳 `false` -||keyOffset|(Key const& `delta`)|void|O(1) -|將所有Element的Key同加上 `delta` -||operator[]|(Key const& `key`)|Value&|O(logN) -|檢查是否已有Element的Key 為 `key`, 若有則回傳相對應的Value的Reference -否則先執行 `insert(key, Value())` 再回傳相對應的Reference -||splitOut|(Key const& `upper_bound`, + -SplayTree* `tree2`)|void -|O(logN) + O(M) -|將 `tree2` 清空, 再將所有Key > `upper_bound` 的Element都丟到 `tree2` -||mergeAfter|(SplayTree* `tree2`)|void|O(logN) + O(logM) -|檢查是否 `this` 中的 Key 都小於 `tree2` 中的Key, 是的話把 `tree2` -中的 Element 都搬到 `this` , 同時清空 `tree2` , 回傳 `true`. 否則 -回傳 `false` -||merge|(SplayTree* `tree2`)|void|O(logN) + O(logM) -|檢查是否 `this` 中的 Key 都小於 `tree2` 中的Key 或者 -是否 `this` 中的 Key 都大於 `tree2` 中的Key, 是的話把 `tree2` -中的 Element 都搬到 `this` , 同時清空 `tree2` , 回傳 `true`. 否則 -回傳 `false` -|===================================================================== +LaTex 相關模板 + +===== Makefile + +環境變數: + +* `SOURCE = source.tex` 設定 'LaTex' 源碼檔名 +* `TARGET = output` 設定生出來的 *pdf* 檔名 [NOTE] -======================================== -* 假設現在有兩個SplayTree `A` 和 `B`, 則: -** 執行 `B.moveTo(&A)` 後 `B` 會變成空的, `A` 原本擁有的資料也會覆蓋掉 -** 執行 `A.merge(&B)` 或 `A.mergeAfter(&B)` 後 -如果檢查發現確實可以merge, 則之後 `B` 會變成空的 -======================================== - -''' - - -=== meow:: *SegmentTree* (C++ class) -==== Description -維護一個陣列, 並且讓user可以有區間查詢, 區間修改的小東東 - -==== Template Class Operators Request -[options="header",width="70%",cols="1>m,1<,3* (C++ class) -==== Description -`SplayTree_Range` 是一種神乎其技的資料結構, 維護一堆 Key->Value. 並且支援 -一些 `std::map` 難以快速實踐的操作, 如 `split` , `merge` , `keyOffset` - -==== Template Class Operators Request -[options="header",width="70%",cols="1>m,1<,3 用來當作回傳資料的媒介 -** 重定義 `operator->()` 到 `std::pair*` -** 重定義 `operator*()` 到 `std::pair&` -** 有 `operator==` , `operator!=`, `operator=` 可用 -** 可以直接用 `(*e).second = some_value` 來改變SplayTree_Range中的資料 - -==== Support Methods - -* N <- `this` 中擁有的資料數 -* M <- `tree2` 中擁有的資料數 - -[options="header",width="100%",cols="1>m,3>s,7<,3<,3^,20<",grid="rows"] -|===================================================================== -|Const?|Name | Parameters | Return_Type| Time_Complexity| Description -||moveTo|(SplayTree_Range* `tree2`)|void|O(M) -|將 `this` 的資料複寫到 `tree2` 上面, 同時清空自己, -時間複雜度中的M是 `tree2` 所擁有的資料數 -|const|lowerBound|(Key const& `k`)|Element|O(logN) -|找出第一個(最小的) Element且 `k` <= 它的 Key, 並且回傳之. -找不到的話回傳 `this->end()` -|const|lowerBound|(Key const& `k`)|Element|O(logN) -|找出第一個(最小的) Element且 `k` < 它的 Key, 並且回傳之. -找不到的話回傳 `this->end()` -|const|lowerBound|(Key const& `k`)|Element|O(logN) -|找出第一個(最小的) Element且 `k` >= 它的 Key, 並且回傳之. -找不到的話回傳 `this->end()` -|const|lowerBound|(Key const& `k`)|Element|O(logN) -|找出第一個(最小的) Element且 `k` > 它的 Key, 並且回傳之. -找不到的話回傳 `this->end()` -|const|find|(Key const& `k`)|Element|O(logN) -|找出 Key= `k` 的Elemenet 並回傳. 找不到的話回傳 `this->end()` -|const|query|()|Value|O(1) -|回傳整棵樹的區間Value -|const|query|(Key const& `first` , + -Key const& `last`)|Value|O(logN) -|找出key介於 `first` + -~ `last` 的區間Value -|const|order|(size_t `ord`)|Element|O(logN) -|將Elements依照Key由小到大排序, 回傳第 `ord` 個Element (由0算起). -其中如果 `ord` > N - 1, 則會回傳 `this->last()` -|const|first|(size_t `ord`)|Element|O(logN) -|回傳Key最小的Element, 如果SplayTree_Range為空, 則回傳 `this->end()` -|const|last|(size_t `ord`)|Element|O(logN) -|回傳Key最大的Element, 如果SplayTree_Range為空, 則回傳 `this->end()` -|const|end|()|Element|O(1) -|回傳一個指向NULL的Element, 以供 `find` , `order` , `first` -, `last` 等判斷是否有找到相對應的Element -|const|size|()|size_t|O(1)| 回傳資料數 -|const|size|()|bool|O(1)| 回傳是否為空 -||clear|()|void|O(N)| 清空資料 -||insert|(Key const& `key`, + -Value const& `value`)|bool|O(logN) -|檢查是否已有Element的Key 為 `key`, 若有則回傳 `false` , 否則將 -一個 (Key -> Value) = (`key` -> `value`)的Element加入, 並回傳 `true` -將所有Element的Key同加上 `delta` -||erase|(Key const& `key`)|bool|O(logN) -|檢查是否已有Element的Key 為 `key`, 若有則刪除之, 並回傳 `true`, -否則則回傳 `false` -||keyOffset|(Key const& `delta`)|void|O(1) -|將所有Element的Key同加上 `delta` -||valueOffset|(Value const& `delta`)|void|O(1) -|將所有Element的value同加上 `delta` -||valueOverride|(Value const& `vaule`)|void|O(1) -|將所有Element的value同變成 `value` -||operator[]|(Key const& `key`)|Value&|O(logN) -|檢查是否已有Element的Key 為 `key`, 若有則回傳相對應的Value的Reference -否則先執行 `insert(key, Value())` 再回傳相對應的Reference -||splitOut|(Key const& `upper_bound`, + -SplayTree_Range* `tree2`)|void -|O(logN) + O(M) -|將 `tree2` 清空, 再將所有Key > `upper_bound` 的Element都丟到 `tree2` -||mergeAfter|(SplayTree_Range* `tree2`)|void|O(logN) + O(logM) -|檢查是否 `this` 中的 Key 都小於 `tree2` 中的Key, 是的話把 `tree2` -中的 Element 都搬到 `this` , 同時清空 `tree2` , 回傳 `true`. 否則 -回傳 `false` -||merge|(SplayTree_Range* `tree2`)|void|O(logN) + O(logM) -|檢查是否 `this` 中的 Key 都小於 `tree2` 中的Key 或者 -是否 `this` 中的 Key 都大於 `tree2` 中的Key, 是的話把 `tree2` -中的 Element 都搬到 `this` , 同時清空 `tree2` , 回傳 `true`. 否則 -回傳 `false` -|===================================================================== +`TARGET` 不需要給副檔名 + +targets: + +* `all` 生成 *''.pdf* +* `view` 用kde-open 把輸出結果開起來(如有需要會先重新編譯) +* `clean` 清除 +* `two` 編譯兩次, 如果有目錄的話可能會需要用到 + +===== source.tex + +內容為一些我自己定義的設定, 參數設置等等. 另外還有用寫在註解裡面的小筆記 + + + +=== asciidoc/ + +一些關於asciidoc的example與編譯設定 + +===== Makefile + +編譯asciidoc用的, 裡面有兩個環境變數: + +- ASCIIDOC_SOURCE: 指定原始碼, 預設為 'example.txt' +- ASCIIDOC_OUTPUT: 輸出的檔名, 預設為 'output.html' + +另外還有一個target: + +[source,makefile] +--------------- +$(ASCIIDOC_OUTPUT): $(ASCIIDOC_SOURCE) +--------------- + + + +=== cppMakefile/ + + + +.Description + +這是一個簡單的 *GNU makefile for 'C++' project* +類似AutoTool等工具, 不過又更簡化了, 操作方法是利用GNUMakefile裡的targets +當作指令, 生出一個targets檔, 以後鍵入 `make all` 就會自動把所有targets都 +編譯出來. + +.Commands + +* `make init` + +初始化, 設定完之後所在位置會多幾個資料夾如下 + +** 'bin/' 放編譯出來的執行檔 +** 'dep/' dependency相關資料, 內容會自動生成, 不用理它 +** 'inc/' 自定義的include file放置位置 +** 'src/' source code放置位置 +** 'obj/' obj file放置位置, 會自動生成, 不用理它 + +* `make new NAME= [OBJS= LIBS=]` + +新增一個target, 須給定目標名 , 並且此Makefile會假定 `main() { ... }` 放在 +'src/.cpp' 而最終輸出會是 'bin/' . + +關於 'OBJS=' 與 'LIBS=' 參考下面說明 + +* `make add NAME= [OBJS= LIBS=]` + +針對target為 '' 的目標新增需要的 '' , 與 ''. +'' 的部份會用 `pkg-config` 去解讀, 例如 '' 為 +'opencv lapackpp' 則link時會被以下指令展開 + +`pkg-config --libs opencv lapackpp` + +而 '' 的部份則只需要給 *name* 就好, 不需要有完整個 pathname, 例如 +例如 '' 是 'a b c' 則此makefile會視為 + +** source code: 'src/a.cpp src/b.cpp src/c.cpp' +** obj file: 'obj/a.o obj/b.o obj/c.o' + +* `make del NAME= [OBJS= LIBS=]` + +與 add相反, 嘗試將指定target所需的''和''移除 + +* `make clean` + +將 'bin/*' 'dep/*' 'obj/*' 清除, 有時候覺得dependency怪怪的 +時可以嘗試執行此指令 [NOTE] -======================================== -* 假設現在有兩個SplayTree_Range `A` 和 `B`, 則: -** 執行 `B.moveTo(&A)` 後 `B` 會變成空的, `A` 原本擁有的資料也會覆蓋掉 -** 執行 `A.merge(&B)` 或 `A.mergeAfter(&B)` 後 -如果檢查發現確實可以merge, 則之後 `B` 會變成空的 -======================================== - -''' - - -=== meow:: *BinaryIndexTree* (C++ class) -==== Description -極度簡化版的 `SegmentTree` 已無法區間操作, 區間詢問的區間開頭也一定要 -在 `index=0` 的地方 - -==== Template Class Operators Request -[options="header",width="70%",cols="1>m,1<,3 |(T `value`, T `eps` = 1e-9) | T | -如果abs(輸入的數值) < eps, 則回傳0, 否則回傳輸入的數值 -|normalize |(T `lower`, T `upper`, + - T value) -| T | `(value - lower) / (upper - lower)` -|denormalize |(T `lower`, T `upper`, - + - T `ratio`) | T | `lower + (upper - lower) * ratio` -|ratioMapping|(T `l1`, T `u1`, - + -T `m1`, T `l2`, + -T `u2`) -| T | `denormalize(l2, u2, normalize(l1, u1, m1))` -|inRange |(T const& `mn`, T const& `mx`, + - T const& `v`) | T | -`std::max(mn, std::min(mx, v))` -|squ |(T const& `x`) | T| `x * x` -|cub |(T const& `x`) | T| `x * x * x` -|average|(T const& `beg`, T const& `end`, + - double `sigs`)| T| -只將 `sigs` 個標準差以內的數據拿來取平均 -|average|(T const& `beg`, T const& `end`, - + - T const& `p`, double `sigs`)| T| 同上, 不過這次用 `p` 來加權平均 -|============================================================== +'config' 中 `$(config_path)` 是一個環境變數, 代表這個configure file所在位置 +*呼叫asciidoc時必須有設置這個環境變數* + + +===== header.html + +*HTML* output 的開頭 +沒有更動 + +===== footer.html + +*HTML* output 的結尾 +沒有更動 + +===== logo.png + +就是logo + + +===== stylesheet.css + +*HTML* output 的css樣式, 我把他改成暗色系了 + +以下是更動的地方: +[source,css] +---------------------------------------------- +body, table, div, p, dl { + font: 400 14px/19px Roboto,sans-serif,monospace; +} + +.title { + line-height: 100%; + font-size: 200%; + margin : 0px; + padding: 0px; + border : 0px; +} + +dt { + color: #999999; + font-style:italic; +} + +div.qindex, div.navtab{ + background-color: #2B3F26; +} + +a { + color: #5D77AC; +} + +.contents a:visited { + color: #7695D2; +} + +a.code, a.code:visited { + color: #7695D2; +} + +a.codeRef, a.codeRef:visited { + color: #7695D2; +} + +pre.fragment { + background-color: #0B0C0D; + border-radius: 4px; + -moz-border-radius: 4px; + -webkit-border-top-left-radius: 4px; +} + +div.fragment { + background-color: #0B0C0D; + border-radius: 4px; + -moz-border-radius: 4px; + -webkit-border-top-left-radius: 4px; +} + +div.line { + font-family: 'courier new', monospace, fixed; + color: #CCCCCC; + font-size: 14px; + min-height: 14px; +} + +span.lineno { + background-color: #181818; +} +span.lineno a { + background-color: #3B3838; +} + +span.lineno a:hover { + background-color: #6B6868; +} + +body { + background-color: #212131; + color: #DDFFDD; +} + +span.keyword { + color: #00A000 +} + +span.keywordtype { + color: #907050 +} + +span.comment { + color: #808080 +} + +table.memberdecls { + border-top-color: #111111; +} + +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #192322; +} + +.mdescLeft, .mdescRight { + color: #CCCCCC; +} + +.memTemplParams { + color: #7695D2; +} + +.memtemplate { + color: #7695D2; +} + +.memproto, dl.reflist dt { + color: #758575; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.95); + /* background-image:url('nav_f.png'); */ + background-color: #181C28; +} + +.memdoc, dl.reflist dd { + /* background-image:url('nav_g.png'); */ + background-color: #131923; +} + +.params .paramdir { + color:#A0AA00; +} + +.directory tr.even { + background-color: #272838; +} + +.directory .levels span { + color: #5D77AC; +} + +div.header +{ + /* background-image:url('nav_h.png'); */ + /* background-repeat:repeat-x; */ + background-color: #290A1C; + padding: 0px; + margin : 0px; + border : 0px; + margin-top: 10px; + border-bottom: 1px solid #AA0000;/*#C4CFE5;*/ +} + +div.headertitle +{ + padding: 5px; + margin : 0px; + border : 0px; +} + +#projectname +{ + font: 400% Tahoma, Arial,sans-serif,monospace; +} + +div.toc h3 { + color: #7695D2; +} + +---------------------------------------------- + +===== custom.css + +*HTML* output 的css樣式, 在這邊設定的話連 'navtree' 等都可以設定. + +另外這個檔案的檔名不能是 `navtree.css` , 不知道是不是bug. + +===== header.tex + +*LaTex* output 的開頭 + +===== header.tex + +*LaTex* output 的結尾 + +===== stylesheet.sty + +*LaTex* 的樣式設定 + + +=== meowpp/ + +meow for *C++ templates* + + +===== Self.h + +包含一個具有 *Copy On Write* 技術的 'class' 而且有實作 *by reference* , +基本上就是改良C\+\+原本的 reference 機制, 原本的 reference 只能在宣告的時候 +指定參照指向的變數, +而這邊則可以動態改變 + + +===== Usage.h + +方便user製作還算精美的 *usage document* 並且利用 `getopt()` 實作讀入參數與分析 + +===== utility.h + +一些不知道要歸類到哪的小functions + + +==== colors/ + + +一些 *color space* 以及這些space的 *transformate function* 都放在這資料夾下 [NOTE] -==================================== -* 額外附贈一個 `const double PI = 3.141592653589......` -==================================== +目前transformation function的準確率還很低, 有待以後加強 + +===== Color3_Space.h + +`class Color3_Space` *Channel Number = 3* 的 Color Space 的共通 *Base class* + +===== RGB_Space.h + +Channel分別是 + +* Red +* Green +* Blue + +.Classes +* `meow::RGBi_Space` 用 'int' 存資料, 每個channel數值合法範圍是 *0~255* +* `meow::RGBf_Space` 用 'double' 存資料, 每個channel數值合法範圍是 *0.0~1.0* + +.Functions +* `meow::colorTransformation(in, *out)` for +** RGBi_Space <--> RGBf_Space + +===== YUV_Space.h + +Channel分別是 + +* Y 明度 +* U 色度 +* V 濃度 + +.Classes +* `meow::YUVf_Space` 用 'double' 存資料, 每個channel數值合法範圍是 *0~1.0* + +.Functions +* `meow::colorTransformation(in, *out)` for +** YUVf_Space <--> RGBi_Space +** YUVf_Space <--> RGBf_Space + +===== HSL_Space.h + +Channel分別是 + +* H 色調 +* S 飽和度 +* L 亮度 + +.Classes +* `meow::HSLf_Space` 用 'double' 存資料, 每個channel數值合法範圍是 *0~1.0* + +.Functions +* `meow::colorTransformation(in, *out)` for +** HSLf_Space <--> RGBi_Space +** HSLf_Space <--> RGBf_Space +** HSLf_Space <--> YUVf_Space + +===== HSV_Space.h + +Channel分別是 + +* H 色調 +* S 飽和度 +* V 亮度 + +.Classes +* `meow::HSVf_Space` 用 'double' 存資料, 每個channel數值合法範圍是 *0~1.0* + +.Functions +* `meow::colorTransformation(in, *out)` for +** HSVf_Space <--> RGBi_Space +** HSVf_Space <--> RGBf_Space +** HSVf_Space <--> YUVf_Space +** HSVf_Space <--> HSLf_Space + + +==== dsa/ + + +包含一些資料結構 + +===== BinaryIndexTree.h + +極度簡化的 *SegmentTree* 已無區間更新的操作. + +.Classes +* `meow::BinaryIndexTree` + +===== DisjointSet.h + +用來維護一堆互斥集的資訊. + +.Classes +* `meow::DisjointSet` + +===== HashTable.h + +就是傳說中的HashTable + +.Classes +* `meow::HashTableList` + +===== KD_Tree.h + +查詢第k近鄰居用的 + +.Classes +* `meow::KD_Tree` + +===== MergeableHeap.h + +可合併Heap + +.Classes +* `meow::MergeableHeap` + +===== SegmentTree.h + +線段樹 +.Classes +* `meow::SegmentTree` + +===== SplayTree.h + +伸展樹, 比一般平衡樹稍強的東東 +* `meow::SplayTree` +* `meow::SplayTree_Range` + +===== VP_Tree.h + +查詢第k近鄰居用的 + +.Classes +* `meow::VP_Tree` + +==== geo/ + +計算幾何相關, 算是從math中特化出來的 + +===== Vectors.h + +實作上不是用陣列, 是直接宣告2到3個變數分別存x, y (,z) + +.Classes +* `meow::Vector2D` +* `meow::Vector3D` + + + +==== math/ + + +===== utility.h + +數學相關的小 function 雜七雜八的不知道歸類何處 + +.Functions +* noEPS() +* normalize() +* denormalize() +* ratioMapping() +* inRange() +* squ() +* cub() +* average() +* average() +* tAbs() + +.Constants +* PI + +===== Matrix.h + +.Classes +* `meow::Matrix` + +===== Vector.h + +實作上將 *Matrix* 重新包裝 + +.Classes +* `meow::Vector` + +===== Transformation.h + +各種轉換的 Base Class, 這裡所謂的 *Transformation* 形式上不一定要是 Linear, +但原則上都是 *input a vector, output a vector* 其中input/output的dimension可以 +不同. + +.Classes +* `meow::Transformation` + +===== Transformations.h + +包含各種 *Non-Linear* transformation + +.Classes +* `meow::BallProjection` +* `meow::PhotoProjection` + +===== LinearTransformation.h + +各種 LinearTransformation 的Base Class, 繼承自 `meow::Transformation` + +.Classes +* `meow::LinearTransformation` + +===== LinearTransformations.h + +各種 *Linear* Transformation + +.Classes +* `meow::Rotation3D` + +===== methods.h + +一些數學方法 + +.Functions +* ransac() +* levenbergMarquardt() + + + +==== oo/ + +物件相關 + +===== ObjBase.h + +.Classes +* `meow::ObjBase` + +===== ObjTypes.h + +.Classes +* `meow::ObjType` +* `meow::ObjInt` +* `meow::ObjSizeT` +* `meow::ObjDouble` +* `meow::ObjString` + +===== ObjArray.h + +.Classes +* `meow::ObjArray` + +===== ObjDictionary.h + +.Classes +* `meow::ObjDictionary` + +===== ObjSelector.h -''' +.Classes +* `meow::ObjSelector` == Test @@ -740,3 +732,4 @@ http://www.spoj.com/problems/SHUFFLEK/[SPOJ] == Bug Report / Contact * E-Mail: cat.hook31894 \~在~ gmail.com + * GitHub diff --git a/README.html b/README.html index 26b5af2..cef1c4f 100644 --- a/README.html +++ b/README.html @@ -61,6 +61,13 @@ h1, h2, h3, h4, h5, h6 { letter-spacing:+0.15em; } +h1 { font-size: 7ex; } +h2 { font-size: 5ex; } +h3 { font-size: 4ex; } +h4 { font-size: 3ex; } +h5 { font-size: 2ex; } +h6 { font-size: 2ex; } + h1, h2, h3 { border-bottom: 2px solid #ccd; } h2 { padding-top: 0.5em; } h3 { float: left; } @@ -83,6 +90,11 @@ ul, ol, li > p { margin-top: 0; } +ul { + margin-left: 1em; + padding-left: 1em; +} + pre { padding: 0; margin: 0; @@ -139,6 +151,7 @@ div.title, caption.title { text-align: left; margin-top: 1.0em; margin-bottom: 0.5em; + margin-left: 1em; } div.title + * { margin-top: 0; @@ -164,6 +177,7 @@ div.listingblock > div.content { border: 1px solid silver; background: #f4f4f4; padding: 0.5em; + margin-left: 2em; } div.quoteblock { @@ -325,9 +339,9 @@ div.hdlist.compact tr { div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } div.toclevel1 { margin-top: 0.3em; margin-left: 0; font-size: 1.0em; } -div.toclevel2 { margin-top: 0.25em; margin-left: 2em; font-size: 0.9em; } -div.toclevel3 { margin-left: 4em; font-size: 0.8em; } -div.toclevel4 { margin-left: 6em; font-size: 0.8em; } +div.toclevel2 { margin-top: 0.25em; margin-left: 1em; font-size: 0.9em; } +div.toclevel3 { margin-left: 2em; font-size: 0.8em; } +div.toclevel4 { margin-left: 3em; font-size: 0.8em; } body { margin: 1em 5%; @@ -350,6 +364,7 @@ body { .paragraph p { line-height: 1.5em; margin-top: 1em; + margin-left: 2em; } .paragraph p, li, dd, .content { max-width: 100%; } @@ -359,10 +374,11 @@ div.sectionbody div.ulist > ul > li { list-style-type: square; color: #aaa; } - div.sectionbody div.ulist > ul > li > * { - color: black; - /*font-size: 50%;*/ - } + +div.sectionbody div.ulist > ul > li > * { + color: black; + /*font-size: 50%;*/ +} div.sectionbody div.ulist > ul > li div.ulist > ul > li { @@ -388,6 +404,7 @@ em { table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; + margin-left: 2em; } thead, p.tableblock.header { font-weight: bold; @@ -669,7 +686,7 @@ install: function(toclevels) { } } -asciidoc.install(2); +asciidoc.install(4); /*]]>*/ @@ -709,2282 +726,1061 @@ asciidoc.install(2);

File Tree

-

meowpp/ C++ templates

+

LaTex/

+

LaTex 相關模板

+
+
Makefile
+

環境變數:

  • -utility.h some useful functions, - stringPringf() , stringReplace() , cstringEndWith() , - debugPrintf() , messagePrintf() , filenameCompare() +SOURCE = source.tex 設定 LaTex 源碼檔名

  • -Usage.h class Usage +TARGET = output 設定生出來的 pdf 檔名

  • -
  • -

    -colors/ Color splces and transformer -

    +
+
+ + + +
+
Note
+
TARGET 不需要給副檔名
+
+

targets:

  • -RGB.h class RGBi , class RGBf +all 生成 <TARGET>.pdf

  • -YUV.h class YUVi , class YUVf , RGB_to_YUV() , YUV_to_RGB() +view 用kde-open 把輸出結果開起來(如有需要會先重新編譯)

  • -HSL.h class HSLf , RGB_to_HSL() , HSL_to_RGB() , - YUV_to_HSL() , HSL_to_YUV() +clean 清除

  • -HSV.h class HSVf , RGB_to_HSV() , HSV_to_RGB() , - YUV_to_HSV() , HSV_to_YUV() , - HSL_to_HSV() , HSV_to_HSL() +two 編譯兩次, 如果有目錄的話可能會需要用到

- -
  • -

    -dsa/ Data Structures and Algorithms -

    +
  • +
    +
    source.tex
    +

    內容為一些我自己定義的設定, 參數設置等等. 另外還有用寫在註解裡面的小筆記

    +
    +
    +
    +

    asciidoc/

    +

    一些關於asciidoc的example與編譯設定

    +
    +
    Makefile
    +

    編譯asciidoc用的, 裡面有兩個環境變數:

    • -BinaryIndexTree.h class BinaryIndexTree<Vector, Scalar> +ASCIIDOC_SOURCE: 指定原始碼, 預設為 example.txt

    • -DisjointSet.h class DisjointSet +ASCIIDOC_OUTPUT: 輸出的檔名, 預設為 output.html

    • +
    +

    另外還有一個target:

    +
    +
    +
    $(ASCIIDOC_OUTPUT): $(ASCIIDOC_SOURCE)
    +
    +
    +
    +

    cppMakefile/

    +
    Description

    這是一個簡單的 GNU makefile for C++ project +類似AutoTool等工具, 不過又更簡化了, 操作方法是利用GNUMakefile裡的targets +當作指令, 生出一個targets檔, 以後鍵入 make all 就會自動把所有targets都 +編譯出來.

    +
    Commands
    • -Heaps.h class MergeableHeap<Element> +make init
      +初始化, 設定完之後所在位置會多幾個資料夾如下

      -
    • +
      • -KD_Tree.h class KD_Tree<Vector, Scalar> +bin/ 放編譯出來的執行檔

      • -SegemenTree.h class SegmentTree<Value> +dep/ dependency相關資料, 內容會自動生成, 不用理它

      • -SplayTree.h class SplayTree<Key, Value> +inc/ 自定義的include file放置位置

      • -SplayTree_Range.h class SplayTree_Range<Key, Value> +src/ source code放置位置

      • -VP_Tree.h class VP_Tree<Vector, Scalar> +obj/ obj file放置位置, 會自動生成, 不用理它

    • -geo/ +make new NAME=<name> [OBJS=<OBJ_FILES> LIBS=<LIBRARIES>]
      +新增一個target, 須給定目標名 , 並且此Makefile會假定 main() { ... } 放在 +src/<name>.cpp 而最終輸出會是 bin/<name> .
      +關於 OBJS=LIBS= 參考下面說明 +

      +
    • +
    • +

      +make add NAME=<name> [OBJS=<OBJ_FILES> LIBS=<LIBRARIES>]
      +針對target為 <name> 的目標新增需要的 <OBJ_FILES> , 與 <LIBRARIES>. +<LIBRARIES> 的部份會用 pkg-config 去解讀, 例如 <LIBRARIES> 為 +opencv lapackpp 則link時會被以下指令展開
      +pkg-config --libs opencv lapackpp
      +而 <OBJ_FILES> 的部份則只需要給 name 就好, 不需要有完整個 pathname, 例如 +例如 <OBJ_FILES>a b c 則此makefile會視為

      • -Vector2D.h Vector2D<Scalar> +source code: src/a.cpp src/b.cpp src/c.cpp

      • -Vector3D.h Vector3D<Scalar> +obj file: obj/a.o obj/b.o obj/c.o

    • -math/ +make del NAME=<name> [OBJS=<OBJ_FILES> LIBS=<LIBRARIES>]
      +與 add相反, 嘗試將指定target所需的<OBJ_FILES>'和<LIBRARIES>'移除

      -
        +
      • -utility.h some useful functions, - constant PI , - noEPS() , normalize() , denormalize() , - ratioMapping() , inRange() , squ() , average() +make clean
        +將 bin/ dep/ obj/* 清除, 有時候覺得dependency怪怪的 +時可以嘗試執行此指令

      • +
      +
      + + + +
      +
      Note
      +
      其中整個project到底有哪些obj file會完全依照 src/ 裡面有哪些 .cpp 檔決定
      +
      +
      +
      GNUMakefile
      +

      就是一個 Makefile, 不過裡面有些東西是 GNU-make only的

      +
      +
      +
      GNUMakefile.dependency.bash
      +

      產生 dependency檔用的

      +
      +
    +
    +

    doxygen/

    +

    doxygen 相關設定

    +
    +
    Makefile
    +

    編譯doxygen document的Makefile, 裡面只有一個target: document, +另外有兩個環境變數:

    +
    • -LinearTransformation.h LinearTransformation<Scalar> +DOXYGEN_RUN_PATH: 指定doxygen執行的pwd, 預設為 pwd

    • -LinearTransformations.h Rotation3D<Scalar> +DOXYGEN_CONFIG: 指定config檔放在哪裡, 預設為 pwd

    • +
    +
    +
    +
    config
    +

    設置, 以下幾點個人覺得比較重要的

    +
    +
    +
    
    +#---------------------------------------------------------------------------
    +# Project related configuration options
    +#---------------------------------------------------------------------------
    +DOXYFILE_ENCODING      = UTF-8
    +PROJECT_NAME           = "Templates -- Meow"
    +PROJECT_NUMBER         = 1.1.2
    +PROJECT_BRIEF          = 不能, 也不應該先編譯成obj-file的templates
    +PROJECT_LOGO           = $(config_path)/logo.png
    +OUTPUT_DIRECTORY       = doc
    +CREATE_SUBDIRS         = NO
    +OUTPUT_LANGUAGE        = English
    +TAB_SIZE               = 2
    +
    +#---------------------------------------------------------------------------
    +# Build related configuration options
    +#---------------------------------------------------------------------------
    +EXTRACT_ALL            = YES
    +EXTRACT_STATIC         = YES
    +EXTRACT_LOCAL_CLASSES  = NO
    +EXTRACT_LOCAL_CLASSES  = YES
    +FORCE_LOCAL_INCLUDES   = YES
    +
    +#---------------------------------------------------------------------------
    +# configuration options related to the input files
    +#---------------------------------------------------------------------------
    +INPUT                  = meowpp
    +INPUT_ENCODING         = UTF-8
    +FILE_PATTERNS          =
    +RECURSIVE              = YES
    +
    +#---------------------------------------------------------------------------
    +# configuration options related to the HTML output
    +#---------------------------------------------------------------------------
    +GENERATE_HTML          = YES
    +HTML_OUTPUT            = html
    +HTML_FILE_EXTENSION    = .html
    +HTML_HEADER            = $(config_path)/header.html
    +HTML_FOOTER            = $(config_path)/footer.html
    +HTML_STYLESHEET        = $(config_path)/stylesheet.css
    +HTML_EXTRA_STYLESHEET  = $(config_path)/custom.css
    +HTML_EXTRA_FILES       =
    +HTML_COLORSTYLE_HUE    = 120
    +HTML_COLORSTYLE_SAT    = 36
    +HTML_COLORSTYLE_GAMMA  = 166
    +DISABLE_INDEX          = YES
    +GENERATE_TREEVIEW      = YES
    +FORMULA_FONTSIZE       = 11
    +SEARCHENGINE           = NO
    +
    +#---------------------------------------------------------------------------
    +# configuration options related to the LaTeX output
    +#---------------------------------------------------------------------------
    +GENERATE_LATEX         = YES
    +LATEX_CMD_NAME         = xelatex
    +PAPER_TYPE             = letter
    +HIDE_UNDOC_RELATIONS   = NO
    +UML_LOOK               = YES
    +EXTRA_PACKAGES         =
    +LATEX_HEADER           = $(config_path)/header.tex
    +LATEX_FOOTER           = $(config_path)/footer.tex
    +
    +#---------------------------------------------------------------------------
    +# Configuration options related to the dot tool
    +#---------------------------------------------------------------------------
    +CALL_GRAPH             = YES
    +CALLER_GRAPH           = YES
    +
    + + + +
    +
    Note
    +
    config$(config_path) 是一個環境變數, 代表這個configure file所在位置 +呼叫asciidoc時必須有設置這個環境變數
    +
    +
    +
    +
    header.html
    +

    HTML output 的開頭 +沒有更動

    +
    +
    + +

    HTML output 的結尾 +沒有更動

    +
    +
    +
    logo.png
    +

    就是logo

    +
    +
    +
    stylesheet.css
    +

    HTML output 的css樣式, 我把他改成暗色系了

    +

    以下是更動的地方:

    +
    +
    +
    body, table, div, p, dl {
    +        font: 400 14px/19px Roboto,sans-serif,monospace;
    +}
    +
    +.title {
    +        line-height: 100%;
    +        font-size: 200%;
    +        margin :  0px;
    +        padding: 0px;
    +        border : 0px;
    +}
    +
    +dt {
    +        color: #999999;
    +        font-style:italic;
    +}
    +
    +div.qindex, div.navtab{
    +        background-color: #2B3F26;
    +}
    +
    +a {
    +        color: #5D77AC;
    +}
    +
    +.contents a:visited {
    +        color: #7695D2;
    +}
    +
    +a.code, a.code:visited {
    +        color: #7695D2;
    +}
    +
    +a.codeRef, a.codeRef:visited {
    +        color: #7695D2;
    +}
    +
    +pre.fragment {
    +        background-color: #0B0C0D;
    +        border-radius: 4px;
    +        -moz-border-radius: 4px;
    +        -webkit-border-top-left-radius: 4px;
    +}
    +
    +div.fragment {
    +        background-color: #0B0C0D;
    +        border-radius: 4px;
    +        -moz-border-radius: 4px;
    +        -webkit-border-top-left-radius: 4px;
    +}
    +
    +div.line {
    +        font-family: 'courier new', monospace, fixed;
    +        color: #CCCCCC;
    +        font-size: 14px;
    +        min-height: 14px;
    +}
    +
    +span.lineno {
    +        background-color: #181818;
    +}
    +span.lineno a {
    +        background-color: #3B3838;
    +}
    +
    +span.lineno a:hover {
    +        background-color: #6B6868;
    +}
    +
    +body {
    +        background-color: #212131;
    +        color: #DDFFDD;
    +}
    +
    +span.keyword {
    +        color: #00A000
    +}
    +
    +span.keywordtype {
    +        color: #907050
    +}
    +
    +span.comment {
    +        color: #808080
    +}
    +
    +table.memberdecls {
    +        border-top-color: #111111;
    +}
    +
    +.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
    +        background-color: #192322;
    +}
    +
    +.mdescLeft, .mdescRight {
    +        color: #CCCCCC;
    +}
    +
    +.memTemplParams {
    +        color: #7695D2;
    +}
    +
    +.memtemplate {
    +        color: #7695D2;
    +}
    +
    +.memproto, dl.reflist dt {
    +        color: #758575;
    +        text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.95);
    +        /* background-image:url('nav_f.png'); */
    +        background-color: #181C28;
    +}
    +
    +.memdoc, dl.reflist dd {
    +        /* background-image:url('nav_g.png'); */
    +        background-color: #131923;
    +}
    +
    +.params .paramdir {
    +        color:#A0AA00;
    +}
    +
    +.directory tr.even {
    +        background-color: #272838;
    +}
    +
    +.directory .levels span {
    +        color: #5D77AC;
    +}
    +
    +div.header
    +{
    +        /* background-image:url('nav_h.png'); */
    +        /* background-repeat:repeat-x; */
    +        background-color: #290A1C;
    +        padding: 0px;
    +        margin : 0px;
    +        border : 0px;
    +        margin-top: 10px;
    +        border-bottom: 1px solid #AA0000;/*#C4CFE5;*/
    +}
    +
    +div.headertitle
    +{
    +        padding: 5px;
    +        margin : 0px;
    +        border : 0px;
    +}
    +
    +#projectname
    +{
    +        font: 400% Tahoma, Arial,sans-serif,monospace;
    +}
    +
    +div.toc h3 {
    +        color: #7695D2;
    +}
    +
    +
    +
    +
    custom.css
    +

    HTML output 的css樣式, 在這邊設定的話連 navtree 等都可以設定.
    +另外這個檔案的檔名不能是 navtree.css , 不知道是不是bug.

    +
    +
    +
    header.tex
    +

    LaTex output 的開頭

    +
    +
    +
    header.tex
    +

    LaTex output 的結尾

    +
    +
    +
    stylesheet.sty
    +

    LaTex 的樣式設定

    +
    +
    +
    +

    meowpp/

    +

    meow for C++ templates

    +
    +
    Self.h
    +

    包含一個具有 Copy On Write 技術的 class 而且有實作 by reference , +基本上就是改良C\+\+原本的 reference 機制, 原本的 reference 只能在宣告的時候 +指定參照指向的變數, +而這邊則可以動態改變

    +
    +
    +
    Usage.h
    +

    方便user製作還算精美的 usage document 並且利用 getopt() 實作讀入參數與分析

    +
    +
    +
    utility.h
    +

    一些不知道要歸類到哪的小functions

    +
    +
    +

    colors/

    +

    一些 color space 以及這些space的 transformate function 都放在這資料夾下

    +
    + + + +
    +
    Note
    +
    目前transformation function的準確率還很低, 有待以後加強
    +
    +
    +
    Color3_Space.h
    +

    class Color3_Space<T> Channel Number = 3 的 Color Space 的共通 Base class

    +
    +
    +
    RGB_Space.h
    +

    Channel分別是

    +
    • -Matrix.h Matrix<Entry> +Red

    • -Transformation.h Transformation<Scalar> +Green

    • -Transformations.h BallProjection<Scalar>, PhotoProjection<Scalar> +Blue

    - +
    Classes
    • -oo/ +meow::RGBi_Spaceint 存資料, 每個channel數值合法範圍是 0~255

      -
        +
      • -ObjBase.h class ObjBase +meow::RGBf_Spacedouble 存資料, 每個channel數值合法範圍是 0.0~1.0

      • +
      +
      Functions
      • -ObjSelector.h class ObjBase<size_t id> +meow::colorTransformation(in, *out) for

        -
      • +
        • -Properties.h class Properties +RGBi_Space ←→ RGBf_Space

    -
    -
    -
    -

    Structures/Classes/Functions

    -
    -
    -

    meow:: Functios in utility.h

    - ----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Name Parameters Return_Type Description

    stringPrintf

    (char const * fmt, …)

    std::string

    Format print to C++ string and return it

    stringReplace

    (std::string str,
    -std::string const& -from,
    -std::string const& to)

    std::string

    Return a string like str, but all from be replaced by to

    cstringEndWith

    (char const* str,
    -int n, …)

    bool

    Return whether str is end with one of the c-string you specify in -the parameters or not

    debugPrintf

    (char const* fmt, …)

    void

    Print debug message (file name, line number, …etc) when DEBUG is -defined

    messagePrintf

    (int level_change,
    -char const* fmt, …)

    void

    階層式的訊息輸出

    filenameCompare

    (std::string const& f1, std::string const& f2)

    void

    依照 a0.txt < a1.txt < a2.txt < a10.txt 的字串比較方法比較字串

    -
    - - - -
    -
    Note
    -
    +
    +
    YUV_Space.h
    +

    Channel分別是

    • -stringReplace() 不是用什麼好方法寫的因此執行效率很低請別虐待它. +Y 明度

    • -
    -
    -
    -
    -
    -
    -

    meow:: Usage (C++ Class)

    -
    -

    Description

    -

    Usage 是用來分析argc, argv和輸出usage document的class. -argc, argv的部份, 有以下規則

    -
    • --c 其中 c 可以代換成正常的一個字元的字符, -這種選像要嘛就是 有設置 , 不然就是 沒設置 +U 色度

    • --c <value> 附加一個value, 這種選項可以是選擇性 ,即要設定與否都可以, -反之則一定要設定. 另外可以給定value的預設值以及哪些value是可接受的 +V 濃度

    • +
    +
    Classes
    • -<value> 其他, 一律視為process arguments +meow::YUVf_Spacedouble 存資料, 每個channel數值合法範圍是 0~1.0

    -
    -
    -

    Methods

    -
      +
      Functions
      • -Usage(String const& _name)
        -建構子, 所有說明文字中 <name> 都會被代換成 _name +meow::colorTransformation(in, *out) for

        -
      • +
        • -Usage()
          -建構子, _name 自動取為 " nobody " +YUVf_Space ←→ RGBi_Space

        • -import(Usage const& usage)
          -將另一個usage的設定匯入, 回傳成功與否 (bool) +YUVf_Space ←→ RGBf_Space

        • +
        + +
      +
    +
    +
    HSL_Space.h
    +

    Channel分別是

    +
    • -update(Usage const& usage)
      -將另一個usage分析argc,argv出來的資料拿來用, 回傳成功與否 (bool) +H 色調

    • -addOption(unsigned char option, String const& description)
      -新增一個不接額外選項的參數, 並附上說明文字, 回傳成功與否 (bool) +S 飽和度

    • -addOption(unsigned char option, String const& description, -String const& value_type, String const& value_default, bool must)
      -新增一個有額外選項的參數, 並附上說明文字, 額外選項的型別跟預設值. -說明文字中所有的" <types> "將會被取代指定的型別, 其中 must 代表 -" 是否一定要設定此參數 " , 回傳表成功與否 (bool) +L 亮度

    • +
    +
    Classes
    • -addOptionValueAccept(unsigned char option, -String const& value, String const& description)
      -針對某個option, 新增一個可接受的額外選項 (如果某個option從頭到尾都 -沒有新增可接受的選項, 則視為不限制), 回傳成功與否 (bool) +meow::HSLf_Spacedouble 存資料, 每個channel數值合法範圍是 0~1.0

    • +
    +
    Functions
    • -hasOptionSetup(unsigned char option)
      -回傳是否有此選項 (bool) +meow::colorTransformation(in, *out) for

      -
    • +
      • -getOptionValuesCount(unsigned char option)
        -回傳此參數被設置了幾次 (size_t) , 只對有接額外參數的有效 +HSLf_Space ←→ RGBi_Space

      • -getOptionValue(unsigned char option, size_t index)
        -回傳第`index`個額外選項 (String) +HSLf_Space ←→ RGBf_Space

      • -getProcArgsCount()
        -回傳有多少個Process Arguments (size_t) +HSLf_Space ←→ YUVf_Space

      • +
      + +
    +
    +
    +
    HSV_Space.h
    +

    Channel分別是

    +
    • -getProcArg(size_t index)
      -取得第`index`個Process Argument (String) +H 色調

    • -getProcArgs()
      -回傳一個陣列, 包含所有Process Arguments (Strings) +S 飽和度

    • -addUsageBegin(String const& des)
      -新增一段usage document於每個選項逐條說明之前 +V 亮度

    • +
    +
    Classes
    • -addUsageEnd (String const& des)
      -新增一段usage document於每個選項逐條說明之後 +meow::HSVf_Spacedouble 存資料, 每個channel數值合法範圍是 0~1.0

    • +
    +
    Functions
    • -String getUsage()
      -回傳usage document (String) +meow::colorTransformation(in, *out) for

      -
    • +
      • -setArguments(int argc, char** argv, String* errmsg)
        -輸入argv, argc, 回傳是否沒有錯誤發生 (bool) , 其中如果有錯誤發生, -且 errmsg != NULL 則會將錯誤訊息寫入之 +HSVf_Space ←→ RGBi_Space

      • -
      -
      - - - -
      -
      Note
      -
      -
      • -Stringstd::string . +HSVf_Space ←→ RGBf_Space

      • -Stringsstd::vector< std::string> >. +HSVf_Space ←→ YUVf_Space

      • -如果沒有寫回傳什麼, 就是回傳 void +HSVf_Space ←→ HSLf_Space

      -
      -
      -
      -
    + +
    -
    -

    meow:: DisjointSet (C++ class)

    -
    -

    Description

    -

    DisjointSet 是個輕量級Data Dtructure, 用來維護一堆互斥集的資訊. -相關資料可參考 -演算法筆記

    -

    Support Methods

    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Const?Name Parameters Return_Type Time_Complexity Description

    const

    root

    (size_t number)

    size_t

    very fast

    回傳 number 所在的 集合的編號 (0~N-1)

    const

    size

    ()

    size_t

    very fast

    回傳 總集合大小

    reset

    (size_t N)

    void

    O(N)

    清空, 並且設定總集合大小為 N

    merge

    (size_t number1,
    -size_t number2)

    size_t

    very fast

    number1 所在的集合 跟 number2 所在的集合 合併, -並回傳合併後新的集合的編號

    -
    - - - -
    -
    Note
    -
    -
      +

      dsa/

      +

      包含一些資料結構

      +
      +
      BinaryIndexTree.h
      +

      極度簡化的 SegmentTree 已無區間更新的操作.

      +
      Classes
      • -very fast 表示它算的真的超級快, 可以視為常數時間. +meow::BinaryIndexTree<Value>

      • +
      +
      +
      +
      DisjointSet.h
      +

      用來維護一堆互斥集的資訊.

      +
      Classes
      • -預設值所有 number 所在的集合的編號就是 number 本身, -即沒有任兩個數在同一個set裡面 +meow::DisjointSet

      -
    -
    -
    -
    -
    -
    -

    meow:: MergeableHeap<Element> (C++ class)

    -
    -

    Description

    -

    一個用 左偏樹 實作的 Maximum-Heap , 除了原本heap有的功能外, -還支援 merge, split 等功能

    -
    -

    Template Class Operators Request

    - ------- - - - - - - - - - - - - - - - - - - - -
    Const?Typename Operator Parameters Return_Type Description

    const

    Element

    operator<

    (Element v)

    bool

    大小比較

    -
    -
    -

    Support Methods

    -
      +
      +
      HashTable.h
      +

      就是傳說中的HashTable

      +
      Classes
      • -N ← this 中擁有的資料數 +meow::HashTableList<Data, HashFunc>

      - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Const?Name Parameters Return_Type Time_Complexity Description

      moveTo

      (MergeableHeap* h)

      void

      O(M)

      this 的資料複寫到 h 上面, 同時清空自己, -時間複雜度中的M是 h 所擁有的資料數

      const

      top

      ()

      Element const&

      O(1)

      回傳最大的那個 Element

      const

      size

      ()

      size_t

      O(1)

      回傳 this 中擁有的資料數

      const

      empty

      ()

      bool

      O(1)

      回傳 this 是否為空

      push

      (Element const& e)

      void

      O(logN)

      e 加入

      pop

      ()

      void

      O(logN)

      將最大的 Element 移除

      clear

      ()

      void

      O(N)

      將資料清空

      merge

      (MergeableHeap* heap2)

      void

      O(logN+logM)

      heap2 的資料統統加到 this 中, 並且清空 heap2 -時間複雜度中的M是 heap2 的資料數

      -
      - - - -
      -
      Warning
      -
      -
        +
      +
      +
      KD_Tree.h
      +

      查詢第k近鄰居用的

      +
      Classes
      • -假設現在有兩個MergeableHeap AB, 則: +meow::KD_Tree<Vector>

        -
          + +
        +
      +
      +
      MergeableHeap.h
      +

      可合併Heap

      +
      Classes
      • -執行 A.merge(&B)B 會變成空的 +meow::MergeableHeap<Element>

      • +
      +
      +
      +
      SegmentTree.h
      +

      線段樹 +.Classes +* meow::SegmentTree<Value>

      +
      +
      +
      SplayTree.h
      +

      伸展樹, 比一般平衡樹稍強的東東 +* meow::SplayTree<Key, Value> +* meow::SplayTree_Range<Key, Value>

      +
      +
      +
      VP_Tree.h
      +

      查詢第k近鄰居用的

      +
      Classes
      • -執行 B.moveTo(&A)B 會變成空的, A 原本擁有的資料也會覆蓋掉 +meow::VP_Tree<Vector>

      - -
      -
      -
      -
    -
    -

    meow:: VP_Tree<Vector, Scalar> (C++ class)

    -

    Description

    -

    VP_Tree 用來維護由 N個K維度向量所成的集合, -並可於該set中查找 前i個離給定向量最接近的向量.
    -不像 KD_Tree 二分樹每次都選擇一個維度去分, 分成小的跟大的, -VP_Tree 每次選一個點, 將資料分成 離這個點近的, 跟離這個點遠的. -至於怎麼選呢…., 嘛還沒研究, 先random

    -
    參考資料連結:
      +

      geo/

      +

      計算幾何相關, 算是從math中特化出來的

      +
      +
      Vectors.h
      +

      實作上不是用陣列, 是直接宣告2到3個變數分別存x, y (,z)

      +
      Classes
      • -link +meow::Vector2D<Scalar>

      • -link +meow::Vector3D<Scalar>

      +
    -

    Template Class Operators Request

    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Const?Typename Operator Parameters Return_Type Description

    const

    Vector

    operator[]

    (size_t n)

    Scalar

    取得第 n 維度量

    const

    Vector

    operator=

    (Vector v)

    Vector&

    copy operator

    const

    Vector

    operator<

    (Vector v)

    bool

    權重比較

    const

    Scalar

    Scalar

    (int n)

    Scalar

    建構子, -其中一定n=0 or 4

    const

    Scalar

    operator*

    (Scalar s)

    Scalar

    相乘

    const

    Scalar

    operator+

    (Scalar s)

    Scalar

    相加

    const

    Scalar

    operator-

    (Scalar s)

    Scalar

    相差

    const

    Scalar

    operator-

    ( )

    Scalar

    取負號

    const

    Scalar

    operator<

    (Scalar s)

    bool

    大小比較

    -
    -
    -

    Custom Type Definitions

    -
      -
    • -

      -Vectorsstd::vector<Vector> -

      -
    • -
    -
    -
    -

    Support Methods

    -
      -
    • -

      -N ← this 中擁有的資料數 -

      -
    • -
    • -

      -D ← this 資料維度 -

      -
    • -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Const?Name Parameters Return_Type Time_Complexity Description

    insert

    (Vector const& v)

    void

    O(1)

    將向量 v 加到set中

    erase

    (Vector const& v)

    bool

    O(N)

    將向量 v 從set中移除, TODO:可以再優化

    build

    ()

    void

    O(KN logN) or O(1)

    檢查距上一次 build() 至今是否有 insert/erase 被呼叫, -若有, 重新建樹, 否則不做事

    forceBuild

    ()

    void

    O(KN logN)

    重新建樹

    const

    query

    (Vector const& v,
    -size_t i,
    -bool cmp)

    Vectors

    O(logN) Expected

    於set中找尋距離 vi 近的向量, 並依照由近而遠的順序排序. -如果有兩個向量 v1,v2 距離一樣, 且 cmptrue , 則直接依照 -v1 < v2 來決定誰在前面. 最後回傳一陣列包含所有解.

    clear

    ()

    void

    O(1)

    清空所有資料

    reset

    (size_t dimension)

    size_t

    O(1)

    清空所有資料並且指定維度為 max(1, dimension) 並且回傳指定後的維度

    -
    - - - -
    -
    Note
    -
    -
      -
    • -

      -實測結果發覺, 維度小的時候, 比起中規中矩的 KD_Tree, VP_Tree 有 -randomp 於其中, 因此時間複雜度只是期望值 O(logN) 但是測資大到 -一定程度, KD_Tree 效率會一整個大幅掉下, 但 VP_Tree 幾乎不受影響 -

      -
    • -
    • -

      -TODO insert(), erase() 算是未完成功能 -

      -
    • -
    -
    -
    -
    -
    -
    -
    -

    meow:: KD_Tree<Vector, Scalar> (C++ class)

    -
    -

    Description

    -

    KD_Tree 全名k-dimension tree, 用來維護由 N個K維度向量所成的集合, -並可於該set中查找 前i個離給定向量最接近的向量

    -
    -
    -

    Template Class Operators Request

    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Const?Typename Operator Parameters Return_Type Description

    const

    Vector

    operator[]

    (size_t n)

    Scalar

    取得第 n 維度量

    const

    Vector

    operator<

    (Vector v)

    bool

    權重比較

    const

    Scalar

    operator*

    (Scalar s)

    Scalar

    相乘

    const

    Scalar

    operator+

    (Scalar s)

    Scalar

    相加

    const

    Scalar

    operator-

    (Scalar s)

    Scalar

    相差

    const

    Scalar

    operator<

    (Scalar s)

    bool

    大小比較

    -
    -
    -

    Custom Type Definitions

    -
      -
    • -

      -Vectorsstd::vector<Vector> -

      -
    • -
    -
    -
    -

    Support Methods

    -
      -
    • -

      -N ← this 中擁有的資料數 -

      -
    • -
    • -

      -K ← this 資料維度 -

      -
    • -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Const?Name Parameters Return_Type Time_Complexity Description

    insert

    (Vector const& v)

    void

    O(1)

    將向量 v 加到set中

    erase

    (Vector const& v)

    bool

    O(N)

    將向量 v 從set中移除, TODO:可以再優化

    build

    ()

    void

    O(KN logN) or O(1)

    檢查距上一次 build() 至今是否有 insert/erase 被呼叫, -若有, 重新建樹, 否則不做事

    forceBuild

    ()

    void

    O(KN logN)

    重新建樹

    const

    query

    (Vector const& v,
    -size_t i,
    -bool cmp)

    Vectors

    O(KN 1-1/K )

    於set中找尋距離 vi 近的向量, 並依照由近而遠的順序排序. -如果有兩個向量 v1,v2 距離一樣, 且 cmptrue , 則直接依照 -v1 < v2 來決定誰在前面. 最後回傳一陣列包含所有解.

    clear

    ()

    void

    O(1)

    清空所有資料

    reset

    (size_t dimension)

    void

    O(1)

    清空所有資料並且指定維度為 dimension

    -
    - - - -
    -
    Note
    -
    -
      -
    • -

      -此資料結構只有在 N >> 2 K 時才比較有優勢, -當 K 逐漸變大時, 所花時間會跟暴搜沒兩樣 -

      -
    • -
    -
    -
    -
    -
    -
    -
    -

    meow:: SplayTree<Key, Value> (C++ class)

    -
    -

    Description

    -

    SplayTree 是一種神乎其技的資料結構, 維護一堆 Key→Value . 並且支援 -一些 std::map 難以快速實踐的操作, 如 split , merge , keyOffset

    -
    -
    -

    Template Class Operators Request

    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Const?Typename Operator Parameters Return_Type Description

    const

    Key

    operator+

    (Key k)

    Key

    相加

    const

    Key

    operator<

    (Key k)

    bool

    大小比較

    Key

    Key

    (int n)

    建構子, n 永遠是0

    Value

    Value

    ( )

    建構子

    -
    -
    -

    Custom Type Definitions

    -
      -
    • -

      -Element → 用來當作回傳資料的媒介 -

      -
        -
      • -

        -重定義 operator->()std::pair<Key const&, Value&>* -

        -
      • -
      • -

        -重定義 operator*()std::pair<Key const&, Value&>& -

        -
      • -
      • -

        -有 operator== , operator!=, operator= 可用 -

        -
      • -
      • -

        -可以直接用 (*e).second = some_value 來改變SplayTree中的資料 -

        -
      • -
      -
    • -
    -
    -
    -

    Support Methods

    -
      -
    • -

      -N ← this 中擁有的資料數 -

      -
    • -
    • -

      -M ← tree2 中擁有的資料數 -

      -
    • -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Const?Name Parameters Return_Type Time_Complexity Description

    moveTo

    (SplayTree* tree2)

    void

    O(M)

    this 的資料複寫到 tree2 上面, 同時清空自己, -時間複雜度中的M是 tree2 所擁有的資料數

    const

    lowerBound

    (Key const& k)

    Element

    O(logN)

    找出第一個(最小的) Element且 k ⇐ 它的 Key, 並且回傳之. -找不到的話回傳 this->end()

    const

    lowerBound

    (Key const& k)

    Element

    O(logN)

    找出第一個(最小的) Element且 k < 它的 Key, 並且回傳之. -找不到的話回傳 this->end()

    const

    lowerBound

    (Key const& k)

    Element

    O(logN)

    找出第一個(最小的) Element且 k >= 它的 Key, 並且回傳之. -找不到的話回傳 this->end()

    const

    lowerBound

    (Key const& k)

    Element

    O(logN)

    找出第一個(最小的) Element且 k > 它的 Key, 並且回傳之. -找不到的話回傳 this->end()

    const

    find

    (Key const& k)

    Element

    O(logN)

    找出 Key= k 的Elemenet 並回傳. 找不到的話回傳 this->end()

    const

    order

    (size_t ord)

    Element

    O(logN)

    將Elements依照Key由小到大排序, 回傳第 ord 個Element (由0算起). -其中如果 ord > N - 1, 則會回傳 this->last()

    const

    first

    (size_t ord)

    Element

    O(logN)

    回傳Key最小的Element, 如果SplayTree為空, 則回傳 this->end()

    const

    last

    (size_t ord)

    Element

    O(logN)

    回傳Key最大的Element, 如果SplayTree為空, 則回傳 this->end()

    const

    end

    ()

    Element

    O(1)

    回傳一個指向NULL的Element, 以供 find , order , first -, last 等判斷是否有找到相對應的Element

    const

    size

    ()

    size_t

    O(1)

    回傳資料數

    const

    size

    ()

    bool

    O(1)

    回傳是否為空

    clear

    ()

    void

    O(N)

    清空資料

    insert

    (Key const& key,
    -Value const& value)

    bool

    O(logN)

    檢查是否已有Element的Key 為 key, 若有則回傳 false , 否則將 -一個 (Key → Value) = (keyvalue)的Element加入, 並回傳 true -將所有Element的Key同加上 delta

    erase

    (Key const& key)

    bool

    O(logN)

    檢查是否已有Element的Key 為 key, 若有則刪除之, 並回傳 true, -否則則回傳 false

    keyOffset

    (Key const& delta)

    void

    O(1)

    將所有Element的Key同加上 delta

    operator[]

    (Key const& key)

    Value&

    O(logN)

    檢查是否已有Element的Key 為 key, 若有則回傳相對應的Value的Reference -否則先執行 insert(key, Value()) 再回傳相對應的Reference

    splitOut

    (Key const& upper_bound,
    -SplayTree* tree2)

    void

    O(logN) + O(M)

    tree2 清空, 再將所有Key > upper_bound 的Element都丟到 tree2

    mergeAfter

    (SplayTree* tree2)

    void

    O(logN) + O(logM)

    檢查是否 this 中的 Key 都小於 tree2 中的Key, 是的話把 tree2 -中的 Element 都搬到 this , 同時清空 tree2 , 回傳 true. 否則 -回傳 false

    merge

    (SplayTree* tree2)

    void

    O(logN) + O(logM)

    檢查是否 this 中的 Key 都小於 tree2 中的Key 或者 -是否 this 中的 Key 都大於 tree2 中的Key, 是的話把 tree2 -中的 Element 都搬到 this , 同時清空 tree2 , 回傳 true. 否則 -回傳 false

    -
    - - - -
    -
    Note
    -
    -
      -
    • -

      -假設現在有兩個SplayTree AB, 則: -

      -
        -
      • -

        -執行 B.moveTo(&A)B 會變成空的, A 原本擁有的資料也會覆蓋掉 -

        -
      • -
      • -

        -執行 A.merge(&B)A.mergeAfter(&B) 後 -如果檢查發現確實可以merge, 則之後 B 會變成空的 -

        -
      • -
      -
    • -
    -
    -
    -
    -
    -
    -
    -

    meow:: SegmentTree<Value> (C++ class)

    -
    -

    Description

    -

    維護一個陣列, 並且讓user可以有區間查詢, 區間修改的小東東

    -
    -
    -

    Template Class Operators Request

    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Const?Typename Operator Parameters Return_Type Description

    const

    Value

    operator+

    (Value v)

    Value

    相加(位移)

    const

    Value

    operator*

    (size_t n)

    Value

    每個Value都一樣, -長為 n 的區間的值

    const

    Value

    operator|

    (Value v)

    Value

    區間合併後的值

    -
      +

      math/

      +
      +
      utility.h
      +

      數學相關的小 function 雜七雜八的不知道歸類何處

      +
      Functions
      • -若要維護區間最小值, 即每次都是詢問範圍 [a, b] 的最小值, 則可以定義 +noEPS()

        -
          +
        • -operator+回傳相加值 +normalize()

        • -operator*回傳*this +denormalize()

        • -operator|回傳std::min(*this, v) +ratioMapping()

        • -
        +
      • +

        +inRange() +

      • -若要維護區間最總和, 即每次都是詢問範圍 [a, b] 的總和, 則可以定義 +squ()

        -
          + +
        • +

          +cub() +

          +
        • -operator+回傳相加值 +average()

        • -operator*回傳(*this) * n +average()

        • -operator|回傳相加值 +tAbs()

        +
        Constants
          +
        • +

          +PI +

      -
      -

      Support Methods

      -
        +
        +
        Matrix.h
        +
        Classes
        • -N ← this 所維護的陣列長度 +meow::Matrix<Entry>

        - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        Const?Name Parameters Return_Type Time_Complexity Description

        reset

        (size_t size)

        void

        O(1)

        將資料清空且設定維護範圍是 0~size - 1 其中時間複雜度確切多少未知 -要看 std::vector::resize() 的效率

        const

        query

        (ssize_t first,
        -ssize_t last)

        Value

        O(logN)

        回傳區間 [first,last] (邊界都含) 的區間值

        override

        (ssize_t first,
        -ssize_t last,
        -Value const& value)

        void

        O(logN)

        將區間 [first,last] 全部都設定成 value

        offset

        (ssize_t first,
        -ssize_t last,
        -Value const& delta)

        void

        O(logN)

        將區間 [first,last] 全部都加上 delta

        -
        -
        -
      -
      -

      meow:: SplayTree_Range<Key, Value> (C++ class)

      -
      -

      Description

      -

      SplayTree_Range 是一種神乎其技的資料結構, 維護一堆 Key→Value. 並且支援 -一些 std::map 難以快速實踐的操作, 如 split , merge , keyOffset

      -
      -
      -

      Template Class Operators Request

      - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Const?Typename Operator Parameters Return_Type Description

      const

      Key

      operator+

      (Key k)

      Key

      相加

      const

      Key

      operator<

      (Key k)

      bool

      大小比較

      Key

      Key

      (int n)

      建構子, n 永遠是0

      Value

      Value

      ( )

      建構子

      -
      -

      Custom Type Definitions

      -
        +
        +
        Vector.h
        +

        實作上將 Matrix 重新包裝

        +
        Classes
        • -Element → 用來當作回傳資料的媒介 +meow::Vector<Scalar>

          -
            + +
          +
        +
        +
        Transformation.h
        +

        各種轉換的 Base Class, 這裡所謂的 Transformation 形式上不一定要是 Linear, +但原則上都是 input a vector, output a vector 其中input/output的dimension可以 +不同.

        +
        Classes
        • -重定義 operator->()std::pair<Key const&, Value&>* +meow::Transformation<Scalar>

        • +
        +
        +
        +
        Transformations.h
        +

        包含各種 Non-Linear transformation

        +
        Classes
        • -重定義 operator*()std::pair<Key const&, Value&>& +meow::BallProjection<Scalar>

        • -有 operator== , operator!=, operator= 可用 +meow::PhotoProjection<Scalar>

        • +
        +
        +
        +
        LinearTransformation.h
        +

        各種 LinearTransformation 的Base Class, 繼承自 meow::Transformation

        +
        Classes
        • -可以直接用 (*e).second = some_value 來改變SplayTree_Range中的資料 +meow::LinearTransformation<Scalar>

        +
        +
        +
        LinearTransformations.h
        +

        各種 Linear Transformation

        +
        Classes
          +
        • +

          +meow::Rotation3D<Scalar> +

        -
        -

        Support Methods

        -
          +
          +
          methods.h
          +

          一些數學方法

          +
          Functions
          • -N ← this 中擁有的資料數 +ransac()

          • -M ← tree2 中擁有的資料數 +levenbergMarquardt()

          - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Const?Name Parameters Return_Type Time_Complexity Description

          moveTo

          (SplayTree_Range* tree2)

          void

          O(M)

          this 的資料複寫到 tree2 上面, 同時清空自己, -時間複雜度中的M是 tree2 所擁有的資料數

          const

          lowerBound

          (Key const& k)

          Element

          O(logN)

          找出第一個(最小的) Element且 k ⇐ 它的 Key, 並且回傳之. -找不到的話回傳 this->end()

          const

          lowerBound

          (Key const& k)

          Element

          O(logN)

          找出第一個(最小的) Element且 k < 它的 Key, 並且回傳之. -找不到的話回傳 this->end()

          const

          lowerBound

          (Key const& k)

          Element

          O(logN)

          找出第一個(最小的) Element且 k >= 它的 Key, 並且回傳之. -找不到的話回傳 this->end()

          const

          lowerBound

          (Key const& k)

          Element

          O(logN)

          找出第一個(最小的) Element且 k > 它的 Key, 並且回傳之. -找不到的話回傳 this->end()

          const

          find

          (Key const& k)

          Element

          O(logN)

          找出 Key= k 的Elemenet 並回傳. 找不到的話回傳 this->end()

          const

          query

          ()

          Value

          O(1)

          回傳整棵樹的區間Value

          const

          query

          (Key const& first ,
          -Key const& last)

          Value

          O(logN)

          找出key介於 first
          -~ last 的區間Value

          const

          order

          (size_t ord)

          Element

          O(logN)

          將Elements依照Key由小到大排序, 回傳第 ord 個Element (由0算起). -其中如果 ord > N - 1, 則會回傳 this->last()

          const

          first

          (size_t ord)

          Element

          O(logN)

          回傳Key最小的Element, 如果SplayTree_Range為空, 則回傳 this->end()

          const

          last

          (size_t ord)

          Element

          O(logN)

          回傳Key最大的Element, 如果SplayTree_Range為空, 則回傳 this->end()

          const

          end

          ()

          Element

          O(1)

          回傳一個指向NULL的Element, 以供 find , order , first -, last 等判斷是否有找到相對應的Element

          const

          size

          ()

          size_t

          O(1)

          回傳資料數

          const

          size

          ()

          bool

          O(1)

          回傳是否為空

          clear

          ()

          void

          O(N)

          清空資料

          insert

          (Key const& key,
          -Value const& value)

          bool

          O(logN)

          檢查是否已有Element的Key 為 key, 若有則回傳 false , 否則將 -一個 (Key → Value) = (keyvalue)的Element加入, 並回傳 true -將所有Element的Key同加上 delta

          erase

          (Key const& key)

          bool

          O(logN)

          檢查是否已有Element的Key 為 key, 若有則刪除之, 並回傳 true, -否則則回傳 false

          keyOffset

          (Key const& delta)

          void

          O(1)

          將所有Element的Key同加上 delta

          valueOffset

          (Value const& delta)

          void

          O(1)

          將所有Element的value同加上 delta

          valueOverride

          (Value const& vaule)

          void

          O(1)

          將所有Element的value同變成 value

          operator[]

          (Key const& key)

          Value&

          O(logN)

          檢查是否已有Element的Key 為 key, 若有則回傳相對應的Value的Reference -否則先執行 insert(key, Value()) 再回傳相對應的Reference

          splitOut

          (Key const& upper_bound,
          -SplayTree_Range* tree2)

          void

          O(logN) + O(M)

          tree2 清空, 再將所有Key > upper_bound 的Element都丟到 tree2

          mergeAfter

          (SplayTree_Range* tree2)

          void

          O(logN) + O(logM)

          檢查是否 this 中的 Key 都小於 tree2 中的Key, 是的話把 tree2 -中的 Element 都搬到 this , 同時清空 tree2 , 回傳 true. 否則 -回傳 false

          merge

          (SplayTree_Range* tree2)

          void

          O(logN) + O(logM)

          檢查是否 this 中的 Key 都小於 tree2 中的Key 或者 -是否 this 中的 Key 都大於 tree2 中的Key, 是的話把 tree2 -中的 Element 都搬到 this , 同時清空 tree2 , 回傳 true. 否則 -回傳 false

          -
          - - - -
          -
          Note
          -
          -
            +
          + +
          +

          oo/

          +

          物件相關

          +
          +
          ObjBase.h
          +
          Classes
          • -假設現在有兩個SplayTree_Range AB, 則: +meow::ObjBase

            -
              + +
            +
          +
          +
          ObjTypes.h
          +
          Classes
          • -執行 B.moveTo(&A)B 會變成空的, A 原本擁有的資料也會覆蓋掉 +meow::ObjType

          • -執行 A.merge(&B)A.mergeAfter(&B) 後 -如果檢查發現確實可以merge, 則之後 B 會變成空的 +meow::ObjInt

          • -
          - -
          -
          -
          -
          -
          -
        -
        -

        meow:: BinaryIndexTree<Value> (C++ class)

        -
        -

        Description

        -

        極度簡化版的 SegmentTree 已無法區間操作, 區間詢問的區間開頭也一定要 -在 index=0 的地方

        -
        -
        -

        Template Class Operators Request

        - ------- - - - - - - - - - - - - - - - - - - - -
        Const?Typename Operator Parameters Return_Type Description

        const

        Value

        operator+

        (Value n)

        Value

        合併用(類似 -SegmentTree 的 -operator| )

        -
        -
        -

        Support Methods

        -
        • -N ← this 中擁有的資料數 +meow::ObjSizeT

        • -
        - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        Const?Name Parameters Return_Type Time_Complexity Description

        reset

        (size_t size, Value const& value)

        void

        O(size)

        將資料長度刷成 N = size 且每一個元素都是 value

        update

        (size_t index, Value const& value)

        void

        O(logN)

        將第 index (從零開始算) 多加上 value

        const

        query

        (size_t index)

        void

        O(logN)

        詢問 0~index 的區間值

        -
        - - - -
        -
        Note
        -
        -
        • -一般來說只能用在維護區間總和, 維護區間最大值只有在特殊情況才可以, 即 -針對每個元素, 每次 update() 的值一定會大於等於原本的值 +meow::ObjDouble

        • -若要用區間最大值 , 則 Valueoperator+ 要寫成 std::max(...) +meow::ObjString

        -
        -
        +
        +
        ObjArray.h
        +
        Classes
          +
        • +

          +meow::ObjArray +

          +
        • +
        +
        +
        ObjDictionary.h
        +
        Classes
          +
        • +

          +meow::ObjDictionary +

          +
        • +
        -
        -

        meow:: Functios in math/utility.h

        - ----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        Name Parameters Return_Type Description

        noEPS<T>

        (T value, T eps = 1e-9)

        T

        如果abs(輸入的數值) < eps, 則回傳0, 否則回傳輸入的數值

        normalize<T>

        (T lower, T upper,
        - T value)

        T

        (value - lower) / (upper - lower)

        denormalize<T>

        (T lower, T upper, -
        - T ratio)

        T

        lower + (upper - lower) * ratio

        ratioMapping<T>

        (T l1, T u1, -
        -T m1, T l2,
        -T u2)

        T

        denormalize(l2, u2, normalize(l1, u1, m1))

        inRange<T>

        (T const& mn, T const& mx,
        - T const& v)

        T

        std::max(mn, std::min(mx, v))

        squ<T>

        (T const& x)

        T

        x * x

        cub<T>

        (T const& x)

        T

        x * x * x

        average<T>

        (T const& beg, T const& end,
        - double sigs)

        T

        只將 sigs 個標準差以內的數據拿來取平均

        average<T>

        (T const& beg, T const& end, -
        - T const& p, double sigs)

        T

        同上, 不過這次用 p 來加權平均

        -
        - - - -
        -
        Note
        -
        -
          +
          +
          ObjSelector.h
          +
          Classes
          • -額外附贈一個 const double PI = 3.141592653589...... +meow::ObjSelector<SID>

          -
        -
        +
        @@ -3064,6 +1860,11 @@ width:70%; E-Mail: cat.hook31894 ~在~ gmail.com

        +
      • +

        +GitHub +

        +
      @@ -3071,7 +1872,7 @@ E-Mail: cat.hook31894 ~在~ gmail.com

      diff --git a/asciidoc/!readme.asciidoc b/asciidoc/!readme.asciidoc new file mode 100644 index 0000000..b8b07d9 --- /dev/null +++ b/asciidoc/!readme.asciidoc @@ -0,0 +1,18 @@ + +一些關於asciidoc的example與編譯設定 + +===== Makefile + +編譯asciidoc用的, 裡面有兩個環境變數: + +- ASCIIDOC_SOURCE: 指定原始碼, 預設為 'example.txt' +- ASCIIDOC_OUTPUT: 輸出的檔名, 預設為 'output.html' + +另外還有一個target: + +[source,makefile] +--------------- +$(ASCIIDOC_OUTPUT): $(ASCIIDOC_SOURCE) +--------------- + + diff --git a/asciidoc/Makefile b/asciidoc/Makefile new file mode 100644 index 0000000..fefe422 --- /dev/null +++ b/asciidoc/Makefile @@ -0,0 +1,13 @@ +ASCIIDOC_SOURCE ?= example.txt +ASCIIDOC_OUTPUT ?= output.html + +ASCIIDOC = asciidoc +ASCIIDOC_FLAGS = -a toc2 \ + -a data-uri \ + -a toclevels=4 \ + -a max-width=70em \ + -b html5 \ + --theme=volnitsky + +$(ASCIIDOC_OUTPUT): $(ASCIIDOC_SOURCE) + $(ASCIIDOC) $(ASCIIDOC_FLAGS) -o $@ $^ diff --git a/asciidoc/example.txt b/asciidoc/example.txt new file mode 100644 index 0000000..9fe787e --- /dev/null +++ b/asciidoc/example.txt @@ -0,0 +1,74 @@ + += h1 + +== h2 + +=== h3 + + + + + +==== h4 + +[source,cpp] +------------------- +#include + +class Main { +public: + Main() { + printf("Hello, world\n"); + } +} _; + +int main() { + return 0; +} +------------------- + +aaa "雙引號" + +aaa '單引號' + +aaa `反單引號` + +aaa ~毛毛蟲~ + +aaa *星號* + +aaa ^xor^ + +aaa ?問號? + +aaa 結尾兩個問號?? +aaa $錢號$ + + +===== h5 + +// no h6 + +bla + + +.Description + +cla + +dla + +[options="header",width="70%",cols="1<,2^,1>",grid="rows"] +|================================ +| header1 | header2 | header3 +| (0, 0) | (0, 1) | (0, 2) +| (1, 0) | (1, 1) | (1, 2) +| (2, 0) | (2, 1) | (2, 2) +|================================ + +[NOTE] +zzz + +yyy + +xxx + +WARNING: gogo! + + +* list1 +** list2 +*** list 3 +*** list 3 +** list2 + diff --git a/asciidoc/output.html b/asciidoc/output.html new file mode 100644 index 0000000..a451bea --- /dev/null +++ b/asciidoc/output.html @@ -0,0 +1,834 @@ + + + + + +h1 + + + + + +
      +
      +

      h2

      +
      +
      +

      h3

      +
      +

      h4

      +
      +
      +
      #include <cstdio>
      +
      +class Main {
      +public:
      +  Main() {
      +    printf("Hello, world\n");
      +  }
      +} _;
      +
      +int main() {
      +  return 0;
      +}
      +

      aaa "雙引號"
      +aaa 單引號
      +aaa 反單引號
      +aaa 毛毛蟲
      +aaa 星號
      +aaa xor
      +aaa ?問號?
      +aaa 結尾兩個問號?? +aaa $錢號$

      +
      +
      h5
      +

      bla

      +
      Description

      cla
      +dla

      + ++++ + + + + + + + + + + + + + + + + + + + + + + + +
      header1 header2 header3

      (0, 0)

      (0, 1)

      (0, 2)

      (1, 0)

      (1, 1)

      (1, 2)

      (2, 0)

      (2, 1)

      (2, 2)

      +
      + + + +
      +
      Note
      +
      zzz
      +yyy
      +xxx
      +
      +
      + + + +
      +
      Warning
      +
      gogo!
      +
      +
        +
      • +

        +list1 +

        +
          +
        • +

          +list2 +

          +
            +
          • +

            +list 3 +

            +
          • +
          • +

            +list 3 +

            +
          • +
          +
        • +
        • +

          +list2 +

          +
        • +
        +
      • +
      +
      +
      +
      +
      +
      +
      +

      + + + diff --git a/cppMakefile/!readme.asciidoc b/cppMakefile/!readme.asciidoc new file mode 100644 index 0000000..da89fc4 --- /dev/null +++ b/cppMakefile/!readme.asciidoc @@ -0,0 +1,56 @@ + + + +.Description + +這是一個簡單的 *GNU makefile for 'C++' project* +類似AutoTool等工具, 不過又更簡化了, 操作方法是利用GNUMakefile裡的targets +當作指令, 生出一個targets檔, 以後鍵入 `make all` 就會自動把所有targets都 +編譯出來. + +.Commands + +* `make init` + +初始化, 設定完之後所在位置會多幾個資料夾如下 + +** 'bin/' 放編譯出來的執行檔 +** 'dep/' dependency相關資料, 內容會自動生成, 不用理它 +** 'inc/' 自定義的include file放置位置 +** 'src/' source code放置位置 +** 'obj/' obj file放置位置, 會自動生成, 不用理它 + +* `make new NAME= [OBJS= LIBS=]` + +新增一個target, 須給定目標名 , 並且此Makefile會假定 `main() { ... }` 放在 +'src/.cpp' 而最終輸出會是 'bin/' . + +關於 'OBJS=' 與 'LIBS=' 參考下面說明 + +* `make add NAME= [OBJS= LIBS=]` + +針對target為 '' 的目標新增需要的 '' , 與 ''. +'' 的部份會用 `pkg-config` 去解讀, 例如 '' 為 +'opencv lapackpp' 則link時會被以下指令展開 + +`pkg-config --libs opencv lapackpp` + +而 '' 的部份則只需要給 *name* 就好, 不需要有完整個 pathname, 例如 +例如 '' 是 'a b c' 則此makefile會視為 + +** source code: 'src/a.cpp src/b.cpp src/c.cpp' +** obj file: 'obj/a.o obj/b.o obj/c.o' + +* `make del NAME= [OBJS= LIBS=]` + +與 add相反, 嘗試將指定target所需的''和''移除 + +* `make clean` + +將 'bin/*' 'dep/*' 'obj/*' 清除, 有時候覺得dependency怪怪的 +時可以嘗試執行此指令 + +[NOTE] +其中整個project到底有哪些obj file會完全依照 *src/* 裡面有哪些 `.cpp` 檔決定 + +===== GNUMakefile + +就是一個 Makefile, 不過裡面有些東西是 `GNU-make` only的 + +===== GNUMakefile.dependency.bash + +產生 dependency檔用的 + + diff --git a/cppMakefile/GNUmakefile b/cppMakefile/GNUmakefile new file mode 100644 index 0000000..839be8e --- /dev/null +++ b/cppMakefile/GNUmakefile @@ -0,0 +1,79 @@ +INC := inc +SRC := src +OBJ := obj +BIN := bin +DEP := dep + +LIB_INCS := +CXX := g++ +CXXFLAGS := -Wall -O2 -I$(INC) $(LIB_INCS) -g -pedantic -lstdc++ -lm +CXX_OBJ := $(CXX) -c +CXX_DEP := $(CXX) -MM + +DEPENDENCY_CREATER := ./GNUmakefile.dependency.sh + +OBJECTS := $(patsubst $(SRC)/%.cpp,$(OBJ)/%.o,$(wildcard $(SRC)/*.cpp)) +DEPENDENCYS := $(patsubst $(SRC)/%.cpp,$(DEP)/%.d,$(wildcard $(SRC)/*.cpp)) + +TARGET_FILE := GNUmakefile.targets +TARGETS := + +NAME := empty + +.PHONY: all all2 dep clean init new del add sub + +all: all2 + +-include $(TARGET_FILE) + +all2: $(TARGETS) + +init: + -@mkdir -p $(BIN) + -@mkdir -p $(SRC) + -@mkdir -p $(INC) + -@mkdir -p $(OBJ) + -@mkdir -p $(DEP) + -@echo '' > $(TARGET_FILE) + +new: + @set -e; echo "Add target '$(NAME)'"; \ + echo 'TARGETS := $$(TARGETS) $$(BIN)/$(NAME)' >> $(TARGET_FILE); \ + echo '$(NAME)_OBJS := $(foreach n,$(OBJS),$$(OBJ)/$(n).o)' >> $(TARGET_FILE); \ + echo '$(NAME)_LIBS := $(LIBS)' >> $(TARGET_FILE); \ + echo '$$(BIN)/$(NAME): $$(OBJ)/$(NAME).o $$($(NAME)_OBJS)' >> $(TARGET_FILE); \ + echo '\t@echo Target: $$@...' >> $(TARGET_FILE); \ + echo '\t@$$(CXX) $$^ $$(CXXFLAGS) `pkg-config --cflags --libs $$($(NAME)_LIBS) 2>/dev/null` -o $$@' >> $(TARGET_FILE); \ + echo '' >> $(TARGET_FILE) + +add: + @set -e; echo "Add Objects $(OBJS) to Target '$(NAME)'"; \ + sed '/^$(NAME)_OBJS :=/s/$$/& $(foreach n,$(OBJS),\$$(OBJ)\/$(n).o)/' $(TARGET_FILE) >$(TARGET_FILE).$$$$; \ + mv -f $(TARGET_FILE).$$$$ $(TARGET_FILE) + @set -e; echo "Add Libraries $(LIBS) to Target '$(NAME)'"; \ + sed '/^$(NAME)_LIBS :=/s/$$/& $(subst /,\/,$(LIBS))/' $(TARGET_FILE) >$(TARGET_FILE).$$$$; \ + mv -f $(TARGET_FILE).$$$$ $(TARGET_FILE) + +sub: + @set -e; echo "Remove Objects $(OBJS) from Target '$(NAME)'"; \ + sed '/^$(NAME)_OBJS :=/s/$(subst \ ,|,$(foreach n,$(OBJS),\$$(OBJ)\/$(n).o))//' $(TARGET_FILE) >$(TARGET_FILE).$$$$; \ + mv -f $(TARGET_FILE).$$$$ $(TARGET_FILE) + @set -e; echo "Remove Libraries $(LIBS) from Target '$(NAME)'"; \ + sed '/^$(NAME)_OBJS :=/s/$(subst \ ,|,$(foreach n,$(LIBS),\$$(OBJ)\/$(n).o))//' $(TARGET_FILE) >$(TARGET_FILE).$$$$; \ + mv -f $(TARGET_FILE).$$$$ $(TARGET_FILE) + +clean: + -rm -f $(BIN)/* + -rm -f $(OBJ)/* 2>/dev/null + -rm -f $(DEP)/* + +dep: $(DEPENDENCY); + +-include $(DEPENDENCYS) + +$(DEPENDENCYS):: $(DEP)/%.d: $(SRC)/%.cpp + $(DEPENDENCY_CREATER) "`$(CXX_DEP) $(CXXFLAGS) $<`" $@ + +$(OBJECTS): $(OBJ)/%.o: $(SRC)/%.cpp $(DEP)/%.d $(DEP)/%.d + @echo 'Objects: $@...' + @$(CXX_OBJ) $(CXXFLAGS) -o $@ $< diff --git a/cppMakefile/GNUmakefile.dependency.sh b/cppMakefile/GNUmakefile.dependency.sh new file mode 100755 index 0000000..0d2b65a --- /dev/null +++ b/cppMakefile/GNUmakefile.dependency.sh @@ -0,0 +1,24 @@ +#! /bin/sh + +out=`echo "$2" | sed -e 's/\\//\\\\\//g'` + +echo $1 \ + | sed -e 's/\\ / /g' \ + | sed -e ':x; /\\$/ {N;s/\\\n//; tx};' \ + | sed -e 's/.*://g' \ + > $2.$$ +rm -f $2 +cat $2.$$ \ + | sed -e 's/^/'$out'::/g' \ + >> $2 +printf '\t%s "`%s %s $<`" $@\n' \ + '$(DEPENDENCY_CREATER)' \ + '$(CXX_DEP)' \ + '$(CXXFLAGS)' \ + >> $2 +cat $2.$$ \ + | sed -e 's/ */\n/g' \ + | sed -e 's/$/::;/g' \ + | sed -e 's/^::;$//g' \ + >> $2 +rm -f $2.$$ diff --git a/doc/html/BinaryIndexTree_8h.html b/doc/html/BinaryIndexTree_8h.html new file mode 100644 index 0000000..56904e2 --- /dev/null +++ b/doc/html/BinaryIndexTree_8h.html @@ -0,0 +1,94 @@ + + + + + + + +Templates -- Meow: meowpp/dsa/BinaryIndexTree.h File Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      BinaryIndexTree.h File Reference
      +
      +
      +
      #include <cstdlib>
      +#include <vector>
      +#include <algorithm>
      +
      +

      Go to the source code of this file.

      + + + + + +

      +Classes

      class  meow::BinaryIndexTree< Value >
       極度簡化的 SegmentTree 已無區間更新的操作 More...
       
      + + + +

      +Namespaces

      namespace  meow
       
      +
      +
      + + + + + diff --git a/doc/html/BinaryIndexTree_8h_source.html b/doc/html/BinaryIndexTree_8h_source.html new file mode 100644 index 0000000..193f571 --- /dev/null +++ b/doc/html/BinaryIndexTree_8h_source.html @@ -0,0 +1,126 @@ + + + + + + + +Templates -- Meow: meowpp/dsa/BinaryIndexTree.h Source File + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      BinaryIndexTree.h
      +
      +
      +Go to the documentation of this file.
      1 #ifndef dsa_BinaryIndexTree_H__
      +
      2 #define dsa_BinaryIndexTree_H__
      +
      3 
      +
      4 #include <cstdlib>
      +
      5 
      +
      6 #include <vector>
      +
      7 #include <algorithm>
      +
      8 
      +
      9 namespace meow {
      +
      10 
      +
      11 template<class Value>
      + +
      22 private:
      +
      23  std::vector<Value> array_;
      +
      24 public:
      + +
      29  }
      +
      30 
      +
      37  BinaryIndexTree(size_t size, Value const& value):
      +
      38  array_(size, value) {
      +
      39  }
      +
      40 
      + +
      48  array_(tree2.array_) {
      +
      49  }
      +
      50 
      +
      60  void reset(size_t size, Value const& init) {
      +
      61  array_.clear();
      +
      62  array_.resize(size, init);
      +
      63  }
      +
      64 
      +
      74  void update(size_t index, Value const& value) {
      +
      75  index++;
      +
      76  for ( ; index <= array_.size(); index += (index & -index)) {
      +
      77  array_[index - 1] = array_[index - 1] + value;
      +
      78  }
      +
      79  }
      +
      80 
      +
      81 
      +
      90  Value query(ssize_t index) const {
      +
      91  index = std::min(index + 1, (ssize_t)array_.size());
      +
      92  Value ret(0);
      +
      93  for ( ; 0 < index; index -= (index & -index)) {
      +
      94  ret = ret + array_[index - 1];
      +
      95  }
      +
      96  return ret;
      +
      97  }
      +
      98 };
      +
      99 
      +
      100 }
      +
      101 
      +
      102 #endif // dsa_BinaryIndexTree_H__
      +
      +
      + + + + + diff --git a/doc/html/Bitmap_8h.html b/doc/html/Bitmap_8h.html new file mode 100644 index 0000000..398a815 --- /dev/null +++ b/doc/html/Bitmap_8h.html @@ -0,0 +1,100 @@ + + + + + + + +Templates -- Meow: meowpp/gra/Bitmap.h File Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      Bitmap.h File Reference
      +
      +
      +
      #include "../Self.h"
      +#include "../math/utility.h"
      +#include "../math/Matrix.h"
      +#include "../oo/ObjBase.h"
      +#include <vector>
      +#include <cmath>
      +#include <string>
      +#include <typeinfo>
      +#include <cstdlib>
      +
      +

      Go to the source code of this file.

      + + + + + +

      +Classes

      class  meow::Bitmap< Pixel >
       二維點陣資料 More...
       
      + + + +

      +Namespaces

      namespace  meow
       
      +
      +
      + + + + + diff --git a/doc/html/Bitmap_8h_source.html b/doc/html/Bitmap_8h_source.html new file mode 100644 index 0000000..4956a0b --- /dev/null +++ b/doc/html/Bitmap_8h_source.html @@ -0,0 +1,309 @@ + + + + + + + +Templates -- Meow: meowpp/gra/Bitmap.h Source File + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      Bitmap.h
      +
      +
      +Go to the documentation of this file.
      1 #ifndef gra_Bitmap_H__
      +
      2 #define gra_Bitmap_H__
      +
      3 
      +
      4 
      +
      5 #include "../Self.h"
      +
      6 
      +
      7 #include "../math/utility.h"
      +
      8 #include "../math/Matrix.h"
      +
      9 
      +
      10 #include "../oo/ObjBase.h"
      +
      11 
      +
      12 #include <vector>
      +
      13 #include <cmath>
      +
      14 #include <string>
      +
      15 #include <typeinfo>
      +
      16 #include <cstdlib>
      +
      17 
      +
      18 namespace meow{
      +
      19 
      +
      25 template<class Pixel>
      +
      26 class Bitmap: public ObjBase {
      +
      27 private:
      +
      28  Matrix<Pixel> matrix_;
      +
      29  //
      +
      30  static std::vector<double> gaussianFactor1(double sigma) {
      +
      31  double sigma2 = squ(sigma);
      +
      32  size_t width = std::max(ceil((double)(sigma * 2)), 0.0);
      +
      33  std::vector<double> factor(width + 1 + width);
      +
      34  for (size_t x = 0; x < width; x++) {
      +
      35  factor[width - x - 1] = exp(-(squ((double)x)) / (2.0 * sigma2));
      +
      36  factor[width + x + 1] = exp(-(squ((double)x)) / (2.0 * sigma2));
      +
      37  }
      +
      38  factor[width] = 1.0;
      +
      39  return factor;
      +
      40  }
      +
      41  static std::vector<double> gradianceFactor1(double sigma) {
      +
      42  double sigma2 = squ(sigma), ss = sigma * 2;
      +
      43  size_t width = std::max(ceil(ss), 1.0);
      +
      44  std::vector<double> factor(width + 1 + width);
      +
      45  for (size_t x = 0; x < width; x++) {
      +
      46  factor[width - x - 1] = (double)x * exp(-(squ((double)x))/(2.0*sigma2));
      +
      47  factor[width + x + 1] = -(double)x * exp(-(squ((double)x))/(2.0*sigma2));
      +
      48  }
      +
      49  factor[width] = 0.0;
      +
      50  return factor;
      +
      51  }
      +
      52  Bitmap xyBlur(std::vector<double> const& factor,
      +
      53  ssize_t dx, ssize_t dy) const {
      +
      54  Bitmap ret(*this);
      +
      55  if (factor.size() > 0) {
      +
      56  ssize_t w = factor.size() / 2;
      +
      57  for (size_t y = 0, Y = height(); y < Y; y++) {
      +
      58  for (size_t x = 0, X = width(); x < X; x++) {
      +
      59  Pixel sum(0);
      +
      60  double fsum(0);
      +
      61  for (ssize_t i = -w; i <= w; i++) {
      +
      62  ssize_t x2 = (ssize_t)x + dx * i;
      +
      63  ssize_t y2 = (ssize_t)y + dy * i;
      +
      64  if (0 <= x2 && x2 < (ssize_t)X && 0 <= y2 && y2 < (ssize_t)Y) {
      +
      65  sum = sum + pixel(y2, x2) * factor[i + w];
      +
      66  fsum = fsum + fabs(factor[i + w]);
      +
      67  }
      +
      68  }
      +
      69  ret.pixel(y, x, sum / fsum);
      +
      70  }
      +
      71  }
      +
      72  }
      +
      73  return ret;
      +
      74  }
      +
      75 public:
      +
      79  Bitmap() {
      +
      80  }
      +
      81 
      +
      85  Bitmap(Bitmap const& b): matrix_(b.matrix_) {
      +
      86  }
      +
      87 
      +
      95  Bitmap(size_t h, size_t w, Pixel const& p): matrix_(h, w, p) {
      +
      96  }
      +
      97 
      + +
      102  }
      +
      103 
      +
      107  Bitmap& copyFrom(Bitmap const& b) {
      +
      108  matrix_.copyFrom(b.matrix_);
      +
      109  return *this;
      +
      110  }
      +
      111 
      + +
      116  matrix_.referenceFrom(b.matrix_);
      +
      117  return *this;
      +
      118  }
      +
      119 
      +
      128  void reset(size_t h, size_t w, Pixel const& p) {
      +
      129  matrix_.reset(h, w, p);
      +
      130  }
      +
      131 
      +
      135  void clear() {
      +
      136  matrix_.size(0, 0, Pixel(0));
      +
      137  }
      +
      138 
      +
      142  size_t height() const {
      +
      143  return matrix_.rows();
      +
      144  }
      +
      145 
      +
      149  size_t width() const {
      +
      150  return matrix_.cols();
      +
      151  }
      +
      152 
      +
      156  size_t size() const {
      +
      157  return matrix_.size();
      +
      158  }
      +
      159 
      +
      167  size_t height(size_t h2, Pixel const& p) {
      +
      168  return matrix_.rows(h2, p);
      +
      169  }
      +
      170 
      +
      178  size_t width(size_t w2, Pixel const& p) {
      +
      179  return matrix_.cols(w2, p);
      +
      180  }
      +
      181 
      +
      190  size_t size(size_t h2, size_t w2, Pixel const& p) {
      +
      191  return matrix_.size(h2, w2, p);
      +
      192  }
      +
      193 
      +
      201  Pixel pixel(size_t y, size_t x) const {
      +
      202  return matrix_.entry(y, x);
      +
      203  }
      +
      204 
      +
      213  Pixel pixel(size_t y, size_t x, Pixel const& p) {
      +
      214  return matrix_.entry(y, x, p);
      +
      215  }
      +
      216 
      +
      229  void pixels(ssize_t yFirst, ssize_t yLast,
      +
      230  ssize_t xFirst, ssize_t xLast,
      +
      231  Pixel const& p) {
      +
      232  return matrix_.entries(yFirst, yLast, xFirst, xLast, p);
      +
      233  }
      +
      234 
      +
      242  Bitmap gaussian(double radiusY, double radiusX) const {
      +
      243  return (xyBlur(gaussianFactor1(radiusY), 1, 0).
      +
      244  xyBlur(gaussianFactor1(radiusX), 0, 1));
      +
      245  }
      +
      246 
      +
      254  Bitmap<Pixel>& gaussianed(double radiusY, double radiusX) {
      +
      255  copyFrom(gaussian(radiusY, radiusX));
      +
      256  return *this;
      +
      257  }
      +
      258 
      +
      266  Bitmap<Pixel> gradianceX(double radiusY, double radiusX) const {
      +
      267  return (xyBlur(gaussianFactor1(radiusY), 1, 0).
      +
      268  xyBlur(gradianceFactor1(radiusX), 0, 1));
      +
      269  }
      +
      270 
      +
      278  Bitmap<Pixel>& gradiancedX(double radiusY, double radiusX) {
      +
      279  return copyFrom(gradianceX(radiusY, radiusX));
      +
      280  }
      +
      281 
      +
      289  Bitmap<Pixel> gradianceY (double radiusY, double radiusX) const {
      +
      290  return (xyBlur(gaussianFactor1(radiusX), 0, 1).
      +
      291  xyBlur(gradianceFactor1(radiusY), 1, 0));
      +
      292  }
      +
      293 
      +
      301  Bitmap<Pixel>& gradiancedY(double radiusY, double radiusX) {
      +
      302  return copyFrom(gradianceY(radiusY, radiusX));
      +
      303  }
      +
      304 
      +
      308  Bitmap& operator=(Bitmap const& b) {
      +
      309  return copyFrom(b);
      +
      310  }
      +
      311 
      +
      315  Pixel operator()(size_t y, size_t x) const {
      +
      316  return pixel(y, x);
      +
      317  }
      +
      318 
      +
      322  Pixel const& operator()(size_t y, size_t x, Pixel const& p) const {
      +
      323  return pixel(y, x, p);
      +
      324  }
      +
      325 
      +
      330  bool write(FILE* f, bool bin, unsigned int fg) const {
      +
      331  size_t w = width(), h = height();
      +
      332  if (bin) {
      +
      333  if (fwrite(&h, sizeof(size_t), 1, f) < 1) return false;
      +
      334  if (fwrite(&w, sizeof(size_t), 1, f) < 1) return false;
      +
      335  }
      +
      336  else {
      +
      337  if (fprintf(f, "%lu %lu\n", h, w) < 2) return false;
      +
      338  }
      +
      339  if (fg) {
      +
      340  // TODO
      +
      341  return false;
      +
      342  }
      +
      343  return true;
      +
      344  //return propertyWrite(__f, __bin, __fg);
      +
      345  }
      +
      346 
      +
      351  bool read(FILE* f, bool bin, unsigned int fg) {
      +
      352  size_t w, h;
      +
      353  if (bin) {
      +
      354  if (fread(&h, sizeof(size_t), 1, f) < 1) return false;
      +
      355  if (fread(&w, sizeof(size_t), 1, f) < 1) return false;
      +
      356  }
      +
      357  else {
      +
      358  if (fscanf(f, "%lu %lu\n", &h, &w) < 2) return false;
      +
      359  }
      +
      360  if (fg) {
      +
      361  // TODO
      +
      362  return false;
      +
      363  }
      +
      364  else {
      +
      365  reset(h, w, Pixel(0));
      +
      366  }
      +
      367  return true;
      +
      368  }
      +
      369 
      +
      374  ObjBase* create() const {
      +
      375  return new Bitmap();
      +
      376  }
      +
      377 
      +
      387  ObjBase* copyFrom(ObjBase const* b) {
      +
      388  return &(copyFrom(*(Bitmap*)b));
      +
      389  }
      +
      390 
      +
      395  char const* ctype() const{
      +
      396  static char const* ptr = typeid(*this).name();
      +
      397  return ptr;
      +
      398  }
      +
      399 
      +
      404  std::string type() const {
      +
      405  return std::string(ctype());
      +
      406  }
      +
      407 };
      +
      408 
      +
      409 }
      +
      410 
      +
      411 #endif // gra_Bitmap_H__
      +
      +
      + + + + + diff --git a/doc/html/Camera_8h.html b/doc/html/Camera_8h.html new file mode 100644 index 0000000..4ef99f0 --- /dev/null +++ b/doc/html/Camera_8h.html @@ -0,0 +1,98 @@ + + + + + + + +Templates -- Meow: meowpp/gra/Camera.h File Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      Camera.h File Reference
      +
      +
      +
      #include "Photo.h"
      +#include "IdentityPoints.h"
      +#include "../Self.h"
      +#include "../math/utility.h"
      +#include "../math/LinearTransformations.h"
      +#include "../math/methods.h"
      +#include "../oo/ObjBase.h"
      +
      +

      Go to the source code of this file.

      + + + + + +

      +Classes

      class  meow::Camera< Pixel >
       Camera. More...
       
      + + + +

      +Namespaces

      namespace  meow
       
      +
      +
      + + + + + diff --git a/doc/html/Camera_8h_source.html b/doc/html/Camera_8h_source.html new file mode 100644 index 0000000..eaf91fb --- /dev/null +++ b/doc/html/Camera_8h_source.html @@ -0,0 +1,520 @@ + + + + + + + +Templates -- Meow: meowpp/gra/Camera.h Source File + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      Camera.h
      +
      +
      +Go to the documentation of this file.
      1 #ifndef gra_Camera_H__
      +
      2 #define gra_Camera_H__
      +
      3 
      +
      4 #include "Photo.h"
      +
      5 #include "IdentityPoints.h"
      +
      6 #include "../Self.h"
      +
      7 #include "../math/utility.h"
      +
      8 #include "../math/LinearTransformations.h"
      +
      9 #include "../math/methods.h"
      +
      10 #include "../oo/ObjBase.h"
      +
      11 
      +
      12 namespace meow {
      +
      13 
      +
      22 template<class Pixel>
      +
      23 class Camera: public ObjBase {
      +
      24 public:
      + +
      26 private:
      +
      27  struct Myself {
      +
      28  Photo<Pixel> photo_;
      +
      29  Rotation3D<double> rot_;
      +
      30  FixedPoints2D fixed2D_;
      +
      31 
      +
      32  Myself() {
      +
      33  fixed2D_.dimension(2);
      +
      34  }
      +
      35  ~Myself() {
      +
      36  }
      +
      37  Myself& copyFrom(Myself const& b) {
      +
      38  photo_ .copyFrom(b. photo_);
      +
      39  rot_ .copyFrom(b. rot_);
      +
      40  fixed2D_.copyFrom(b.fixed2D_);
      +
      41  return *this;
      +
      42  }
      +
      43  };
      +
      44 
      +
      45  Self<Myself> const self;
      +
      46 public:
      +
      50  Camera(): self(true) {
      +
      51  }
      +
      52 
      +
      56  Camera(Camera const& b): self(false) {
      +
      57  copyFrom(b);
      +
      58  }
      +
      59 
      +
      63  ~Camera() {
      +
      64  }
      +
      65 
      +
      69  Camera& copyFrom(Camera const& b) {
      +
      70  self().copyFrom(b.self);
      +
      71  return *this;
      +
      72  }
      +
      73 
      + +
      78  self().referenceFrom(b.self);
      +
      79  return *this;
      +
      80  }
      +
      81 
      +
      85  Photo<Pixel> const& photo() const {
      +
      86  return self->photo_;
      +
      87  }
      +
      88 
      + +
      93  return self()->photo_;
      +
      94  }
      +
      95 
      +
      99  Photo<Pixel> const& photo(Photo<Pixel> const& pho) {
      +
      100  self()->photo_.copyFrom(pho);
      +
      101  return photo();
      +
      102  }
      +
      103 
      +
      107  Rotation3D<double> const& rotation() const {
      +
      108  return self->rot_;
      +
      109  }
      +
      110 
      + +
      115  return self()->rot_;
      +
      116  }
      +
      117 
      + +
      122  self()->rot_ = rot;
      +
      123  return rotation();
      +
      124  }
      +
      125 
      +
      129  FixedPoints2D const& fixedPoints2D() const {
      +
      130  return self->fixed2D_;
      +
      131  }
      +
      132 
      + +
      137  return self()->fixed2D_;
      +
      138  }
      +
      139 
      +
      143  FixedPoints2D const& fixedPoints2D(FixedPoints2D const& fps2d) const {
      +
      144  if (fps2d.dimension() == 2) {
      +
      145  self()->fixed2D_ = fps2d;
      +
      146  }
      +
      147  return fixedPoints2D();
      +
      148  }
      +
      149 
      + +
      154  return self->fixed2D_.identityPoint(i);
      +
      155  }
      +
      156 
      +
      160  bool inside(Vector3D<double> p) const {
      +
      161  return self->photo_.inside(
      +
      162  Vector3D<double>(self->rot_.transformate(p.matrix())));
      +
      163  }
      +
      164 
      +
      168  Pixel color(Vector3D<double> p) const {
      +
      169  return self->photo_.color(
      +
      170  Vector3D<double>(self->rot_.transformate(p.matrix())));
      +
      171  }
      +
      172 
      +
      176  Camera& operator=(Camera const& b) {
      +
      177  return copyFrom(b);
      +
      178  }
      +
      179 
      +
      184  bool write(FILE* f, bool bin, unsigned int fg) const {
      +
      185  return false;
      +
      186  }
      +
      187 
      +
      192  bool read(FILE* f, bool bin, unsigned int fg) {
      +
      193  return false;
      +
      194  }
      +
      195 
      +
      200  ObjBase* create() const {
      +
      201  return new Camera();
      +
      202  }
      +
      203 
      +
      212  ObjBase* copyFrom(ObjBase const* b) {
      +
      213  return &(copyFrom(*(Camera*)b));
      +
      214  }
      +
      215 
      +
      220  char const* ctype() const{
      +
      221  static char const* ptr = typeid(*this).name();
      +
      222  return ptr;
      +
      223  }
      +
      224 
      +
      229  std::string type() const {
      +
      230  return std::string(ctype());
      +
      231  }
      +
      232 
      +
      234 private:
      +
      235  class BoundleAdjustment2D {
      +
      236  private:
      +
      237  class Parameters {
      +
      238  private:
      +
      239  std::vector<Camera>& cam_;
      +
      240  std::vector<Rotation3D<double> > rot_;
      +
      241  std::vector<PhotoProjection<double> > pho_;
      +
      242  struct Pair {
      +
      243  size_t i1_;
      +
      244  size_t i2_;
      +
      245  Vector<double> v1_;
      +
      246  Vector<double> v2_;
      +
      247  Pair(size_t a, size_t b,
      +
      248  Vector<double> const& v1, Vector<double> const& v2):
      +
      249  i1_(a), i2_(b), v1_(v1), v2_(v2) {
      +
      250  }
      +
      251  };
      +
      252  std::vector<Pair> pairs_;
      +
      253 
      +
      254  void setParameters(Vector<double> const& v) {
      +
      255  size_t n = 0;
      +
      256  for (size_t i = 0, I = cam_.size(); i < I; ++i) {
      +
      257  pho_[i].focal(v(n++));
      +
      258  for (size_t j = 0; j < 3; j++) {
      +
      259  rot_[i].theta(j, v(n++));
      +
      260  }
      +
      261  }
      +
      262  for (size_t i = 0, I = pairs_.size(); i < I; ++i) {
      +
      263  pairs_[i].v1_.entry(2, pho_[pairs_[i].i1_].focal());
      +
      264  pairs_[i].v2_.entry(2, pho_[pairs_[i].i2_].focal());
      +
      265  }
      +
      266  }
      +
      267  Vector<double> getParameters() const {
      +
      268  Vector<double> ret(cam_.size() * 4, 0.0);
      +
      269  for (size_t i = 0, I = cam_.size(); i < I; ++i) {
      +
      270  ret.entry(i * 4, pho_[i].focal());
      +
      271  for (size_t j = 0; j < 3; ++j) {
      +
      272  ret.entry(i * 4 + 1 + j, rot_[i].theta(j));
      +
      273  }
      +
      274  }
      +
      275  return ret;
      +
      276  }
      +
      277  Vector<double> residureV() const {
      +
      278  Vector<double> ret(pairs_.size() * 3, 0.0);
      +
      279  for (size_t i = 0, I = pairs_.size(); i < I; ++i) {
      +
      280  size_t i_from = pairs_[i].i1_;
      +
      281  size_t i_to = pairs_[i].i2_;
      +
      282  Matrix<double> v_from(pairs_[i].v1_.matrix());
      +
      283  Matrix<double> v_to (pairs_[i].v2_.matrix());
      +
      284  Matrix<double> v_tr(
      +
      285  pho_[i_to].transformate(
      +
      286  rot_[i_to].transformate(
      +
      287  rot_[i_from].transformateInv(
      +
      288  BallProjection<double>(3, 1.0).transformate(
      +
      289  v_from
      +
      290  )
      +
      291  )
      +
      292  )
      +
      293  )
      +
      294  );
      +
      295  Matrix<double> delta(v_to - v_tr);
      +
      296  for (size_t j = 0; j < 3; ++j) {
      +
      297  ret.entry(i * 3 + j, delta(j, 0));
      +
      298  }
      +
      299  }
      +
      300  return ret;
      +
      301  }
      +
      302  public:
      +
      303  Parameters(std::vector<Camera>& cam): cam_(cam) {
      +
      304  rot_.resize(cam_.size());
      +
      305  pho_.resize(cam_.size(), PhotoProjection<double>(3));
      +
      306  for (size_t i = 0, I = cam_.size(); i < I; ++i) {
      +
      307  rot_[i].referenceFrom(cam_[i].rotation());
      +
      308  pho_[i].focal(cam_[i].photo().focal());
      +
      309  }
      +
      310  for (size_t i = 0, I = cam_.size(); i < I; ++i) {
      +
      311  std::map<int,Vector<double> >const& p1 = (
      +
      312  cam_[i].fixedPoints2D().identityPoints());
      +
      313  for (size_t j = 0; j < I; ++j) {
      +
      314  if (i == j) continue;
      +
      315  std::map<int,Vector<double> >const& p2 = (
      +
      316  cam_[j].fixedPoints2D().identityPoints());
      +
      317  for (std::map<int,Vector<double> >::const_iterator
      +
      318  it1 = p1.begin(); it1 != p1.end(); ++it1) {
      +
      319  for (std::map<int,Vector<double> >::const_iterator
      +
      320  it2 = p2.begin(); it2 != p2.end(); ++it2) {
      +
      321  if (it1->first != it2->first) continue;
      +
      322  Vector<double> v1(it1->second), v2(it2->second);
      +
      323  v1.dimension(3, 0.0);
      +
      324  v2.dimension(3, 0.0);
      +
      325  pairs_.push_back(Pair(i, j, v1, v2));
      +
      326  }
      +
      327  }
      +
      328  }
      +
      329  }
      +
      330  }
      +
      331  Vector<double> init() const {
      +
      332  return getParameters();
      +
      333  }
      +
      334  Vector<double> residure(Vector<double> const& v) const {
      +
      335  ((Parameters*)this)->setParameters(v);
      +
      336  return residureV();
      +
      337  }
      +
      338  Matrix<double> jacobian(Vector<double> const& v) const {
      +
      339  //setParameters(v);
      +
      340  Matrix<double> ret(pairs_.size() * 3, v.dimension(), 0.0);
      +
      341  for (size_t i = 0, I = pairs_.size(); i < I; ++i) {
      +
      342  for (size_t j = 0, J = v.dimension(); j < J; ++j) {
      +
      343  size_t j0 = j / 4;
      +
      344  size_t dj = j % 4;
      +
      345  size_t i_from = pairs_[i].i1_;
      +
      346  size_t i_to = pairs_[i].i2_;
      +
      347  Matrix<double> v_from(pairs_[i].v1_.matrix());
      +
      348  Matrix<double> v_to (pairs_[i].v2_.matrix());
      +
      349  Matrix<double> v_tr (3, 1, 0.0);
      +
      350  if (j0 == i_from) {
      +
      351  if (dj == 0) {
      +
      352  v_tr = (
      +
      353  pho_[i_to].jacobian(
      +
      354  rot_[i_to].transformate(
      +
      355  rot_[i_from].transformateInv(
      +
      356  BallProjection<double>(3, 1.0).transformate(
      +
      357  v_from
      +
      358  )
      +
      359  )
      +
      360  )
      +
      361  )
      +
      362  *
      +
      363  rot_[i_to].jacobian(
      +
      364  rot_[i_from].transformateInv(
      +
      365  BallProjection<double>(3, 1.0).transformate(
      +
      366  v_from
      +
      367  )
      +
      368  )
      +
      369  )
      +
      370  *
      +
      371  rot_[i_from].jacobianInv(
      +
      372  BallProjection<double>(3, 1.0).transformate(
      +
      373  v_from
      +
      374  )
      +
      375  )
      +
      376  *
      +
      377  BallProjection<double>(3, 1.0).jacobian(
      +
      378  v_from
      +
      379  ).col(2)
      +
      380  );
      +
      381  }
      +
      382  else {
      +
      383  v_tr = (
      +
      384  pho_[i_to].jacobian(
      +
      385  rot_[i_to].transformate(
      +
      386  rot_[i_from].transformateInv(
      +
      387  BallProjection<double>(3, 1.0).transformate(
      +
      388  v_from
      +
      389  )
      +
      390  )
      +
      391  )
      +
      392  )
      +
      393  *
      +
      394  rot_[i_to].jacobian(
      +
      395  rot_[i_from].transformateInv(
      +
      396  BallProjection<double>(3, 1.0).transformate(
      +
      397  v_from
      +
      398  )
      +
      399  )
      +
      400  )
      +
      401  *
      +
      402  rot_[i_from].jacobianInv(
      +
      403  BallProjection<double>(3, 1.0).transformate(
      +
      404  v_from
      +
      405  )
      +
      406  )
      +
      407  );
      +
      408  }
      +
      409  }
      +
      410  else if (j0 == i_to) {
      +
      411  if (dj == 0) {
      +
      412  v_tr = (
      +
      413  pho_[i_to].jacobian(
      +
      414  rot_[i_to].transformate(
      +
      415  rot_[i_from].transformateInv(
      +
      416  BallProjection<double>(3, 1.0).transformate(
      +
      417  v_from
      +
      418  )
      +
      419  )
      +
      420  )
      +
      421  ).col(2)
      +
      422  );
      +
      423  }
      +
      424  else {
      +
      425  v_tr = (
      +
      426  pho_[i_to].jacobian(
      +
      427  rot_[i_to].transformate(
      +
      428  rot_[i_from].transformateInv(
      +
      429  BallProjection<double>(3, 1.0).transformate(
      +
      430  v_from
      +
      431  )
      +
      432  )
      +
      433  )
      +
      434  )
      +
      435  *
      +
      436  rot_[i_to].jacobian(
      +
      437  rot_[i_from].transformateInv(
      +
      438  BallProjection<double>(3, 1.0).transformate(
      +
      439  v_from
      +
      440  )
      +
      441  ),
      +
      442  dj - 1
      +
      443  )
      +
      444  );
      +
      445  }
      +
      446  }
      +
      447  for (size_t k = 0; k < 3; ++k) {
      +
      448  ret.entry(i * 3 + k, j, -v_tr(k, 0));
      +
      449  }
      +
      450  }
      +
      451  }
      +
      452  return ret;
      +
      453  }
      +
      454  Matrix<double> identity(Vector<double> const& v) const {
      +
      455  //setParameters(v);
      +
      456  Matrix<double> ret(v.dimension(), v.dimension(), 0.0);
      +
      457  ret.identity();
      +
      458  return ret;
      +
      459  }
      +
      460  double averageResidure() const {
      +
      461  Vector<double> res(residureV());
      +
      462  double sum = 0;
      +
      463  for (size_t i = 0, I = res.dimension(); i < I; ++i) {
      +
      464  sum += res(i);
      +
      465  }
      +
      466  return sum / res.dimension();
      +
      467  }
      +
      468  size_t dimensinonI() const {
      +
      469  return cam_.size() * 4;
      +
      470  }
      +
      471  size_t dimensionO() const {
      +
      472  return pairs_.size() * 3;
      +
      473  }
      +
      474  };
      +
      475  class F {
      +
      476  private:
      +
      477  Parameters& p_;
      +
      478  public:
      +
      479  F(Parameters& p): p_(p) {
      +
      480  }
      +
      481  Vector<double> operator()(Vector<double> const& v) const {
      +
      482  return p_.residure(v);
      +
      483  }
      +
      484  };
      +
      485  class J {
      +
      486  private:
      +
      487  Parameters& p_;
      +
      488  public:
      +
      489  J(Parameters& p): p_(p) {
      +
      490  }
      +
      491  Matrix<double> operator()(Vector<double> const& v) const {
      +
      492  return p_.jacobian(v);
      +
      493  }
      +
      494  };
      +
      495  class I {
      +
      496  private:
      +
      497  Parameters& p_;
      +
      498  public:
      +
      499  I(Parameters& p): p_(p) {
      +
      500  }
      +
      501  Matrix<double> operator()(Vector<double> const& v) const {
      +
      502  return p_.identity(v);
      +
      503  }
      +
      504  };
      +
      505  class Stop {
      +
      506  private:
      +
      507  Parameters& p_;
      +
      508  double t_;
      +
      509  public:
      +
      510  Stop(Parameters& p, double t): p_(p), t_(t) {
      +
      511  }
      +
      512  bool operator()(double r) const {
      +
      513  return (r < p_.dimensionO() * t_);
      +
      514  }
      +
      515  };
      +
      516  public:
      +
      517  BoundleAdjustment2D() {
      +
      518  }
      +
      519  ~BoundleAdjustment2D() {
      +
      520  }
      +
      521  double operator()(std::vector<Camera>* cs, double threshold) const {
      +
      522  Parameters p(*cs);
      +
      523  Vector<double> v0(p.init());
      +
      524  levenbergMarquardt(F(p), J(p), I(p), v0, Stop(p, threshold), 100000);
      +
      525  return p.averageResidure();
      +
      526  }
      +
      527  };
      +
      528 public:
      +
      536  static double boundleAdjustment2D(std::vector<Camera>* cs, double threshold) {
      +
      537  static BoundleAdjustment2D bdl;
      +
      538  return bdl(cs, threshold);
      +
      539  }
      +
      540 };
      +
      541 
      +
      542 }
      +
      543 
      +
      544 #endif // gra_Camera_H__
      +
      +
      + + + + + diff --git a/doc/html/Color3__Space_8h.html b/doc/html/Color3__Space_8h.html new file mode 100644 index 0000000..6f23ca4 --- /dev/null +++ b/doc/html/Color3__Space_8h.html @@ -0,0 +1,96 @@ + + + + + + + +Templates -- Meow: meowpp/colors/Color3_Space.h File Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      Color3_Space.h File Reference
      +
      +
      +
      #include <cstdlib>
      +#include "../Self.h"
      +#include "../geo/Vectors.h"
      +#include "../math/Matrix.h"
      +#include "../math/utility.h"
      +
      +

      Go to the source code of this file.

      + + + + + +

      +Classes

      class  meow::Color3_Space< T >
       以三個channel所組成的色彩空間 More...
       
      + + + +

      +Namespaces

      namespace  meow
       
      +
      +
      + + + + + diff --git a/doc/html/Color3__Space_8h_source.html b/doc/html/Color3__Space_8h_source.html new file mode 100644 index 0000000..de5c3e3 --- /dev/null +++ b/doc/html/Color3__Space_8h_source.html @@ -0,0 +1,147 @@ + + + + + + + +Templates -- Meow: meowpp/colors/Color3_Space.h Source File + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      Color3_Space.h
      +
      +
      +Go to the documentation of this file.
      1 #ifndef colors_Color3_Space_H__
      +
      2 #define colors_Color3_Space_H__
      +
      3 
      +
      4 #include <cstdlib>
      +
      5 
      +
      6 #include "../Self.h"
      +
      7 #include "../geo/Vectors.h"
      +
      8 #include "../math/Matrix.h"
      +
      9 #include "../math/utility.h"
      +
      10 
      +
      11 namespace meow {
      +
      12 
      +
      18 template<class T>
      +
      19 class Color3_Space {
      +
      20 protected:
      + + + +
      24  Color3_Space(Vector3D<T> const& min_bound,
      +
      25  Vector3D<T> const& max_bound,
      +
      26  Vector3D<T> const& init_value) {
      +
      27  min_ = min_bound;
      +
      28  max_ = max_bound;
      +
      29  val_ = init_value;
      +
      30  }
      + +
      32  min_ = b.min_;
      +
      33  max_ = b.max_;
      +
      34  copyFrom(b);
      +
      35  }
      +
      36 public:
      +
      37  virtual ~Color3_Space() { }
      + +
      39  val_ = b.val_;
      +
      40  return *this;
      +
      41  }
      +
      42  template<class T2>
      + +
      44  for (size_t i = 0; i < 3; i++) {
      +
      45  val(i, ratioMapping((double)b.min(i), (double)b.max(i), (double)b.rgb(i),
      +
      46  (double)min(i), (double)max(i)));
      +
      47  }
      +
      48  }
      +
      49  Vector3D<T> const& minV() const { return min_; }
      +
      50  Vector3D<T> const& maxV() const { return max_; }
      +
      51  Vector3D<T> const& valV() const { return val_; }
      +
      52  Vector3D<T> const& valV(Vector3D<T> const& vv) { val_ = vv; return val(); }
      +
      53  Vector3D<T> & valVGet() { return val_; }
      +
      54  T const& min(size_t id) const { return minV()(id); }
      +
      55  T const& max(size_t id) const { return maxV()(id); }
      +
      56  T const& val(size_t id) const { return valV()(id); }
      +
      57  T const& val(size_t i, T const& c) {
      +
      58  if (i == 0) val_.x(c);
      +
      59  else if (i == 1) val_.y(c);
      +
      60  else if (i == 2) val_.z(c);
      +
      61  return val(i);
      +
      62  }
      +
      63  T& valGet(size_t id) {
      +
      64  if (id == 0) return valVGet().xGet();
      +
      65  else if (id == 1) return valVGet().yGet();
      +
      66  else return valVGet().zGet();
      +
      67  }
      +
      68  Matrix<T> matrix() const {
      +
      69  Matrix<T> ret(3, 1);
      +
      70  for (size_t i = 0; i < 3; i++) {
      +
      71  ret(i, 0, val(i));
      +
      72  }
      +
      73  }
      +
      74 };
      +
      75 
      +
      76 } // meow
      +
      77 
      +
      78 #endif // colors_Color3_Space_H__
      +
      +
      + + + + + diff --git a/doc/html/DisjointSet_8h.html b/doc/html/DisjointSet_8h.html new file mode 100644 index 0000000..92f931b --- /dev/null +++ b/doc/html/DisjointSet_8h.html @@ -0,0 +1,94 @@ + + + + + + + +Templates -- Meow: meowpp/dsa/DisjointSet.h File Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      DisjointSet.h File Reference
      +
      +
      +
      #include <vector>
      +#include <cstdlib>
      +#include <cstdio>
      +
      +

      Go to the source code of this file.

      + + + + + +

      +Classes

      class  meow::DisjointSet
       用來維護一堆互斥集的資訊 More...
       
      + + + +

      +Namespaces

      namespace  meow
       
      +
      +
      + + + + + diff --git a/doc/html/DisjointSet_8h_source.html b/doc/html/DisjointSet_8h_source.html new file mode 100644 index 0000000..6deb462 --- /dev/null +++ b/doc/html/DisjointSet_8h_source.html @@ -0,0 +1,146 @@ + + + + + + + +Templates -- Meow: meowpp/dsa/DisjointSet.h Source File + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      DisjointSet.h
      +
      +
      +Go to the documentation of this file.
      1 #ifndef dsa_DisjointSet_H__
      +
      2 #define dsa_DisjointSet_H__
      +
      3 
      +
      4 #include <vector>
      +
      5 #include <cstdlib>
      +
      6 #include <cstdio>
      +
      7 
      +
      8 namespace meow {
      +
      25 class DisjointSet {
      +
      26 private:
      +
      27  size_t n_;
      +
      28  std::vector<size_t> father_;
      +
      29  std::vector<size_t> depth_;
      +
      30  //
      +
      31  size_t root_(size_t now) {
      +
      32  if (father_[now] == now) return now;
      +
      33  return (father_[now] = root_(father_[now]));
      +
      34  }
      +
      35 
      +
      36  size_t merge_(size_t a, size_t b) {
      +
      37  a = root_(a);
      +
      38  b = root_(b);
      +
      39  if (a == b) return a;
      +
      40  if (depth_[a] > depth_[b]) {
      +
      41  father_[b] = a;
      +
      42  return a;
      +
      43  }
      +
      44  else {
      +
      45  father_[a] = b;
      +
      46  if (depth_[a] == depth_[b]) depth_[b]++;
      +
      47  return b;
      +
      48  }
      +
      49  }
      +
      50 public:
      +
      54  DisjointSet(): n_(0) {
      +
      55  }
      +
      56 
      +
      62  DisjointSet(size_t n) {
      +
      63  reset(n);
      +
      64  }
      +
      65 
      +
      73  DisjointSet(DisjointSet const& dsj):
      +
      74  n_(dsj.n_), father_(dsj.father_), depth_(dsj.depth_) {
      +
      75  }
      +
      76 
      +
      85  size_t root(size_t a) const {
      +
      86  return ((DisjointSet*)this)->root_(a);
      +
      87  }
      +
      88 
      +
      89 
      +
      95  size_t size() const {
      +
      96  return n_;
      +
      97  }
      +
      98 
      +
      107  void reset(size_t n) {
      +
      108  n_ = n;
      +
      109  father_.resize(n);
      +
      110  depth_ .resize(n);
      +
      111  for (size_t i = 0; i < n; i++) {
      +
      112  father_[i] = i;
      +
      113  depth_ [i] = 1;
      +
      114  }
      +
      115  }
      +
      116 
      +
      128  size_t merge(size_t a, size_t b) {
      +
      129  return merge_(a, b);
      +
      130  }
      +
      131 };
      +
      132 
      +
      133 }
      +
      134 
      +
      135 #endif // dsa_DisjointSet_H__
      +
      +
      + + + + + diff --git a/doc/html/FeaturePoint_8h.html b/doc/html/FeaturePoint_8h.html new file mode 100644 index 0000000..8e14f66 --- /dev/null +++ b/doc/html/FeaturePoint_8h.html @@ -0,0 +1,97 @@ + + + + + + + +Templates -- Meow: meowpp/gra/FeaturePoint.h File Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      FeaturePoint.h File Reference
      +
      +
      +
      #include "../oo/ObjBase.h"
      +#include "../math/Vector.h"
      +#include <string>
      +#include <typeinfo>
      +#include <cstdlib>
      +#include <cstdio>
      +
      +

      Go to the source code of this file.

      + + + + + +

      +Classes

      class  meow::FeaturePoint< Scalar, Description >
       特徵點 More...
       
      + + + +

      +Namespaces

      namespace  meow
       
      +
      +
      + + + + + diff --git a/doc/html/FeaturePoint_8h_source.html b/doc/html/FeaturePoint_8h_source.html new file mode 100644 index 0000000..0f40226 --- /dev/null +++ b/doc/html/FeaturePoint_8h_source.html @@ -0,0 +1,205 @@ + + + + + + + +Templates -- Meow: meowpp/gra/FeaturePoint.h Source File + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      FeaturePoint.h
      +
      +
      +Go to the documentation of this file.
      1 #ifndef gra_FeaturePoint_H__
      +
      2 #define gra_FeaturePoint_H__
      +
      3 
      +
      4 #include "../oo/ObjBase.h"
      +
      5 
      +
      6 #include "../math/Vector.h"
      +
      7 
      +
      8 #include <string>
      +
      9 #include <typeinfo>
      +
      10 #include <cstdlib>
      +
      11 #include <cstdio>
      +
      12 
      +
      13 namespace meow {
      +
      14 
      +
      20 template<class Scalar, class Description>
      +
      21 class FeaturePoint: public ObjBase {
      +
      22 private:
      +
      23  Vector<Scalar> pos_;
      + +
      25 public:
      + +
      30  }
      +
      31 
      +
      35  FeaturePoint(size_t pDim, size_t dDim):
      +
      36  pos_(pDim, Scalar(0)), des_(dDim, Description(0)) {
      +
      37  }
      +
      38 
      + +
      43  pos_(fp.pos_), des_(fp.des_) {
      +
      44  }
      +
      45 
      + +
      50  }
      +
      51 
      + +
      56  pos_.copyFrom(fp.pos_);
      +
      57  des_.copyFrom(fp.des_);
      +
      58  return *this;
      +
      59  }
      +
      60 
      + +
      65  pos_.referenceFrom(fp.pos_);
      +
      66  des_.referenceFrom(fp.des_);
      +
      67  return *this;
      +
      68  }
      +
      69 
      +
      73  Vector<Scalar> const& position() const {
      +
      74  return pos_;
      +
      75  }
      +
      76 
      + +
      81  return des_;
      +
      82  }
      +
      83 
      +
      87  Vector<Scalar> const& position(Vector<Scalar> const& p) const {
      +
      88  pos_.copyFrom(p);
      +
      89  return position();
      +
      90  }
      +
      91 
      + +
      96  des_.copyFrom(d);
      +
      97  return description();
      +
      98  }
      +
      99 
      +
      103  Scalar position(size_t index) const {
      +
      104  return pos_(index);
      +
      105  }
      +
      106 
      +
      110  Description description(size_t i) const {
      +
      111  return des_(i);
      +
      112  }
      +
      113 
      +
      117  Scalar position(size_t i, Scalar const& s) {
      +
      118  pos_.entry(i, s);
      +
      119  return position(i);
      +
      120  }
      +
      121 
      +
      125  Description description(size_t i, Description const& d) {
      +
      126  des_.entry(i, d);
      +
      127  return description(i);
      +
      128  }
      +
      129 
      + +
      134  return pos_;
      +
      135  }
      +
      136 
      + +
      141  return des_;
      +
      142  }
      +
      143 
      + +
      148  return copyFrom(fp);
      +
      149  }
      +
      150 
      +
      154  Scalar const& operator()(size_t i) const {
      +
      155  return position(i);
      +
      156  }
      +
      157 
      +
      161  Description operator[](size_t i) const {
      +
      162  return description(i);
      +
      163  }
      +
      164 
      +
      165  bool write(FILE* f, bool bin, unsigned int fg) const {
      +
      166  return false;
      +
      167  }
      +
      168 
      +
      169  bool read (FILE* f, bool bin, unsigned int fg) {
      +
      170  return false;
      +
      171  }
      +
      172 
      +
      173  ObjBase* create() const {
      +
      174  return new FeaturePoint();
      +
      175  }
      +
      176 
      +
      177  ObjBase* copyFrom(ObjBase const& b) {
      +
      178  return &(copyFrom(*(FeaturePoint*)b));
      +
      179  }
      +
      180 
      +
      181  char const* ctype() const {
      +
      182  static char const* ptr = typeid(*this).name();
      +
      183  return ptr;
      +
      184  }
      +
      185 
      +
      186  std::string type() const {
      +
      187  return std::string(ctype());
      +
      188  }
      +
      189 };
      +
      190 
      +
      191 }
      +
      192 
      +
      193 #endif // gra_FeaturePoint_H__
      +
      +
      + + + + + diff --git a/doc/html/FeaturePointsDetector_8h.html b/doc/html/FeaturePointsDetector_8h.html new file mode 100644 index 0000000..810cd79 --- /dev/null +++ b/doc/html/FeaturePointsDetector_8h.html @@ -0,0 +1,94 @@ + + + + + + + +Templates -- Meow: meowpp/gra/FeaturePointsDetector.h File Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      FeaturePointsDetector.h File Reference
      +
      +
      +
      #include "../oo/ObjBase.h"
      +#include "FeaturePoint.h"
      +#include "Bitmap.h"
      +#include <vector>
      +
      +

      Go to the source code of this file.

      + + + + +

      +Classes

      class  meow::FeaturePointsDetector< Pixel >
       
      + + + +

      +Namespaces

      namespace  meow
       
      +
      +
      + + + + + diff --git a/doc/html/FeaturePointsDetector_8h_source.html b/doc/html/FeaturePointsDetector_8h_source.html new file mode 100644 index 0000000..96b6f89 --- /dev/null +++ b/doc/html/FeaturePointsDetector_8h_source.html @@ -0,0 +1,100 @@ + + + + + + + +Templates -- Meow: meowpp/gra/FeaturePointsDetector.h Source File + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      FeaturePointsDetector.h
      +
      +
      +Go to the documentation of this file.
      1 #ifndef gra_FeaturePointsDetector_H__
      +
      2 #define gra_FeaturePointsDetector_H__
      +
      3 
      +
      4 #include "../oo/ObjBase.h"
      +
      5 
      +
      6 #include "FeaturePoint.h"
      +
      7 #include "Bitmap.h"
      +
      8 
      +
      9 #include <vector>
      +
      10 
      +
      11 namespace meow {
      +
      12 
      +
      13 template<class Pixel>
      + +
      15 protected:
      + +
      17 public:
      +
      18  virtual ~FeaturePointsDetector() { }
      +
      19 
      +
      20  virtual std::vector<FeaturePoint<double, double> >
      +
      21  detect(Bitmap<Pixel> const& __bitmap) const = 0;
      +
      22 };
      +
      23 
      +
      24 }
      +
      25 
      +
      26 #endif // gra_FeaturePointsDetector_H__
      +
      +
      + + + + + diff --git a/doc/html/FeaturePointsDetector__Harris_8h.html b/doc/html/FeaturePointsDetector__Harris_8h.html new file mode 100644 index 0000000..55ff1d6 --- /dev/null +++ b/doc/html/FeaturePointsDetector__Harris_8h.html @@ -0,0 +1,116 @@ + + + + + + + +Templates -- Meow: meowpp/gra/FeaturePointsDetector_Harris.h File Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      FeaturePointsDetector_Harris.h File Reference
      +
      +
      +
      #include "FeaturePointsDetector.h"
      +#include "Bitmap.h"
      +#include "FeaturePoint.h"
      +#include "../dsa/DisjointSet.h"
      +#include "../Self.h"
      +#include <vector>
      +
      +

      Go to the source code of this file.

      + + + + + +

      +Classes

      class  meow::FeaturePointsDetector_Harris< Pixel >
       Harris corner detect. More...
       
      + + + +

      +Namespaces

      namespace  meow
       
      + + + +

      +Macros

      #define FPD_Harris   FeaturePointsDetector_Harris
       
      +

      Macro Definition Documentation

      + +
      +
      + + + + +
      #define FPD_Harris   FeaturePointsDetector_Harris
      +
      + +
      +
      +
      +
      + + + + + diff --git a/doc/html/FeaturePointsDetector__Harris_8h.js b/doc/html/FeaturePointsDetector__Harris_8h.js new file mode 100644 index 0000000..acd3b21 --- /dev/null +++ b/doc/html/FeaturePointsDetector__Harris_8h.js @@ -0,0 +1,5 @@ +var FeaturePointsDetector__Harris_8h = +[ + [ "FeaturePointsDetector_Harris", "classmeow_1_1FeaturePointsDetector__Harris.html", "classmeow_1_1FeaturePointsDetector__Harris" ], + [ "FPD_Harris", "FeaturePointsDetector__Harris_8h.html#aba22d1a87f3c9e09d7960b2e45e81555", null ] +]; \ No newline at end of file diff --git a/doc/html/FeaturePointsDetector__Harris_8h_source.html b/doc/html/FeaturePointsDetector__Harris_8h_source.html new file mode 100644 index 0000000..c64bb31 --- /dev/null +++ b/doc/html/FeaturePointsDetector__Harris_8h_source.html @@ -0,0 +1,370 @@ + + + + + + + +Templates -- Meow: meowpp/gra/FeaturePointsDetector_Harris.h Source File + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      FeaturePointsDetector_Harris.h
      +
      +
      +Go to the documentation of this file.
      1 #ifndef gra_FeaturePointsDetector_Harris
      +
      2 #define gra_FeaturePointsDetector_Harris
      +
      3 
      + +
      5 
      +
      6 #include "Bitmap.h"
      +
      7 #include "FeaturePoint.h"
      + +
      9 
      +
      10 #include "../dsa/DisjointSet.h"
      +
      11 
      +
      12 #include "../Self.h"
      +
      13 
      +
      14 #include <vector>
      +
      15 
      +
      16 
      +
      17 namespace meow {
      +
      18 
      +
      24 template<class Pixel>
      + +
      26 # define FPD_Harris FeaturePointsDetector_Harris
      +
      27 private:
      +
      28  struct Myself {
      +
      29  double ratioK_;
      +
      30  double thresholdR_;
      +
      31  double sizeW_;
      +
      32  double noiseN_;
      +
      33  double lightL_;
      +
      34  double featureG_;
      +
      35  size_t boundB_;
      +
      36 
      +
      37  Myself() {
      +
      38  ratioK_ = 0.03;
      +
      39  thresholdR_ = 0.001;
      +
      40  sizeW_ = 2.0;
      +
      41  noiseN_ = 3.0;
      +
      42  lightL_ = 30.0;
      +
      43  featureG_ = 3.0;
      +
      44  boundB_ = 10u;
      +
      45  }
      +
      46  ~Myself() {
      +
      47  }
      +
      48  Myself& copyFrom(Myself const& b) {
      +
      49  ratioK_ = b.ratioK_ ;
      +
      50  thresholdR_ = b.thresholdR_ ;
      +
      51  sizeW_ = b.sizeW_ ;
      +
      52  noiseN_ = b.noiseN_ ;
      +
      53  lightL_ = b.lightL_ ;
      +
      54  featureG_ = b.featureG_ ;
      +
      55  boundB_ = b.boundB_ ;
      +
      56  return *this;
      +
      57  }
      +
      58  };
      +
      59 
      +
      60  Self<Myself> const self;
      +
      61 public:
      + +
      63  typedef std::vector<MyFeaturePoint> MyFeaturePoints;
      +
      65  FPD_Harris(): self(true) {
      +
      66  self()->ratioK_ = 0.03;
      +
      67  self()->thresholdR_ = 0.001;
      +
      68  self()->sizeW_ = 2.0;
      +
      69  self()->noiseN_ = 3.0;
      +
      70  self()->lightL_ = 30.0;
      +
      71  self()->featureG_ = 3.0;
      +
      72  self()->boundB_ = 10u;
      +
      73  }
      +
      74 
      +
      76  FPD_Harris(FPD_Harris const& fps): self(false) {
      +
      77  self().copyFrom(fps.self);
      +
      78  }
      +
      79 
      + +
      82  }
      +
      83 
      + +
      86  self().copyFrom(fps.self);
      +
      87  return *this;
      +
      88  }
      +
      89 
      + +
      92  self().referenceFrom(fps.self);
      +
      93  return *this;
      +
      94  }
      +
      95 
      +
      97  double paramK() const {
      +
      98  return self->ratioK_;
      +
      99  }
      +
      100 
      +
      102  double paramR() const {
      +
      103  return self->thresholdR_;
      +
      104  }
      +
      105 
      +
      107  double paramW() const {
      +
      108  return self->sizeW_;
      +
      109  }
      +
      110 
      +
      112  double paramN() const {
      +
      113  return self->noiseN_;
      +
      114  }
      +
      115 
      +
      117  double paramG() const {
      +
      118  return self->featureG_;
      +
      119  }
      +
      120 
      +
      122  double paramL() const {
      +
      123  return self->lightL_;
      +
      124  }
      +
      125 
      +
      127  size_t paramB() const {
      +
      128  return self->boundB_;
      +
      129  }
      +
      130 
      +
      132  double paramK(double k) {
      +
      133  self()->ratioK_ = k;
      +
      134  return paramK();
      +
      135  }
      +
      136 
      +
      138  double paramR(double r) {
      +
      139  self()->thresholdR_ = r;
      +
      140  return paramR();
      +
      141  }
      +
      142 
      +
      144  double paramW(double w) {
      +
      145  self()->sizeW_ = w;
      +
      146  return paramW();
      +
      147  }
      +
      148 
      +
      150  double paramN(double n){
      +
      151  self()->noiseN_ = n;
      +
      152  return paramN();
      +
      153  }
      +
      154 
      +
      156  double paramL(double l) {
      +
      157  self()->lightL_ = l;
      +
      158  return paramL();
      +
      159  }
      +
      160 
      +
      162  double paramG(double g) {
      +
      163  self()->featureG_ = g;
      +
      164  return paramG();
      +
      165  }
      +
      166 
      +
      168  size_t paramB(size_t b) {
      +
      169  self()->boundB_ = b;
      +
      170  return paramB();
      +
      171  }
      +
      172 
      + +
      179  Bitmap<Pixel> input = bmp;
      +
      180 
      +
      181  Bitmap<Pixel> input_gx(input.gradianceX(0, self->noiseN_));
      +
      182  Bitmap<Pixel> input_gy(input.gradianceY(self->noiseN_, 0));
      +
      183 
      +
      184  Bitmap<double> Ixx(input.height(), input.width(), 0.0);
      +
      185  Bitmap<double> Iyy(input.height(), input.width(), 0.0);
      +
      186  Bitmap<double> Ixy(input.height(), input.width(), 0.0);
      +
      187  for (ssize_t y = 0, Y = input.height(); y < Y; y++) {
      +
      188  for (ssize_t x = 0, X = input.width(); x < X; x++) {
      +
      189  Pixel gx(input_gx(y, x));
      +
      190  Pixel gy(input_gy(y, x));
      +
      191  Ixx.pixel(y, x, gx * gx);
      +
      192  Iyy.pixel(y, x, gy * gy);
      +
      193  Ixy.pixel(y, x, gx * gy);
      +
      194  }
      +
      195  }
      +
      196 
      +
      197  Ixx.gaussianed(self->sizeW_, self->sizeW_);
      +
      198  Iyy.gaussianed(self->sizeW_, self->sizeW_);
      +
      199  Ixy.gaussianed(self->sizeW_, self->sizeW_);
      +
      200 
      +
      201  Bitmap<double> R(input.height(), input.width(), 0.0);
      +
      202  Bitmap<bool> good(input.height(), input.width(), false);
      +
      203  ssize_t b = self->boundB_;
      +
      204  for (ssize_t y = b, Y = -b + input.height(); y < Y; y++) {
      +
      205  for (ssize_t x = b, X = -b + input.width(); x < X; x++) {
      +
      206  double det = Ixx(y, x) * Iyy(y, x) - squ(Ixy(y, x));
      +
      207  double tra = Ixx(y, x) + Iyy(y, x);
      +
      208  double r = det - self->ratioK_ * squ(tra);
      +
      209  R.pixel(y, x, r);
      +
      210  good.pixel(y, x, (r >= self->thresholdR_));
      +
      211  }
      +
      212  }
      +
      213 
      +
      214  DisjointSet dsj(input.size());
      +
      215  ssize_t dy[2] = {0, 1};
      +
      216  ssize_t dx[2] = {1, 0};
      +
      217  for (ssize_t y = b, Y = -b + input.height(); y < Y; y++) {
      +
      218  for (ssize_t x = b, X = -b + input.width(); x < X; x++) {
      +
      219  if(good.pixel((size_t)y, (size_t)x)){
      +
      220  for (size_t k = 0; k < 2u; k++) {
      +
      221  if (good.pixel((size_t)(y + dy[k]), (size_t)(x + dx[k]))) {
      +
      222  dsj.merge( y * input.width() + x,
      +
      223  (y + dy[k]) * input.width() + (x + dx[k]));
      +
      224  }
      +
      225  }
      +
      226  }
      +
      227  }
      +
      228  }
      +
      229 
      +
      230  std::vector<size_t> max_i(input.size());
      +
      231  for (size_t i = 0, I = input.size(); i < I; i++) {
      +
      232  max_i[i] = i;
      +
      233  }
      +
      234  for (size_t i = 0, I = input.size(); i < I; i++) {
      +
      235  size_t ri = dsj.root(i);
      +
      236  if (R.pixel( i / input.width(), i % input.width()) >
      +
      237  R.pixel(max_i[ri] / input.width(), max_i[ri] % input.width())) {
      +
      238  max_i[ri] = i;
      +
      239  }
      +
      240  }
      +
      241 
      +
      242  input.gaussianed(self->featureG_, self->featureG_);
      +
      243 
      +
      244  MyFeaturePoints ret;
      +
      245  for (ssize_t y = b, Y = -b + input.height(); y < Y; y++) {
      +
      246  for (ssize_t x = b, X = -b + input.width(); x < X; x++) {
      +
      247  if (!good.pixel((size_t)y, (size_t)x)) {
      +
      248  continue;
      +
      249  }
      +
      250  size_t i = y * input.width() + x;
      +
      251  if (max_i[dsj.root(i)] != i) {
      +
      252  continue;
      +
      253  }
      +
      254  ssize_t dx[4] = {1, 0, -1, 0};
      +
      255  ssize_t dy[4] = {0, 1, 0, -1};
      +
      256  std::vector<double> desc;
      +
      257  for (ssize_t d = 1; d <= (ssize_t)self->boundB_; d++) {
      +
      258  std::vector<double> light;
      +
      259  size_t max_id = 0;
      +
      260  size_t x0 = x - d, y0 = y - d;
      +
      261  for (size_t k = 0; k < 4; k++) {
      +
      262  for (ssize_t n = 0;
      +
      263  n < (ssize_t)b * 2;
      +
      264  n++, x0 += dx[k], y0 += dy[k]){
      +
      265  Pixel diff = input.pixel(y0, x0) - input.pixel(y, x) * 0.2;
      +
      266  light.push_back(diff * diff * self->lightL_);
      +
      267  if (light[max_id] < light[-1 + light.size()]) {
      +
      268  max_id = -1 + (ssize_t)light.size();
      +
      269  }
      +
      270  }
      +
      271  }
      +
      272  for (ssize_t n = 0, N = light.size(); n < N; n++) {
      +
      273  desc.push_back((max_id + n) % N);
      +
      274  desc.push_back(light[(max_id + n) % N]);
      +
      275  }
      +
      276  }
      +
      277  MyFeaturePoint now(2, desc.size());
      +
      278  now.position(0, x);
      +
      279  now.position(1, y);
      +
      280  now.description(Vector<double>(desc));
      +
      281  ret.push_back(now);
      +
      282  }
      +
      283  }
      +
      284  return ret;
      +
      285  }
      +
      286 
      + +
      289  return copyFrom(fps);
      +
      290  }
      +
      291 
      + +
      294  return detect(bmp);
      +
      295  }
      +
      296 
      +
      301  bool write(FILE* f, bool bin, unsigned int fg) const {
      +
      302  // TODO
      +
      303  return false;
      +
      304  }
      +
      305 
      +
      310  bool read (FILE* f, bool bin, unsigned int fg) {
      +
      311  // TODO
      +
      312  return false;
      +
      313  }
      +
      314 
      +
      319  ObjBase* create() const {
      +
      320  return (ObjBase*)new FPD_Harris<Pixel>();
      +
      321  }
      +
      322 
      +
      332  ObjBase* copyFrom(ObjBase const* b) {
      +
      333  return &(copyFrom(*(FPD_Harris const*)b));
      +
      334  }
      +
      335 
      +
      340  char const* ctype() const {
      +
      341  return typeid(*this).name();
      +
      342  }
      +
      343 
      +
      348  std::string type() const {
      +
      349  return std::string(ctype());
      +
      350  }
      +
      351 # undef FPD_Harris
      +
      352 };
      +
      353 
      +
      354 }
      +
      355 
      +
      356 #endif // gra_FeaturePointsDetector_Harris
      +
      +
      + + + + + diff --git a/doc/html/FeaturePointsMatch_8h.html b/doc/html/FeaturePointsMatch_8h.html new file mode 100644 index 0000000..6adebf7 --- /dev/null +++ b/doc/html/FeaturePointsMatch_8h.html @@ -0,0 +1,103 @@ + + + + + + + +Templates -- Meow: meowpp/gra/FeaturePointsMatch.h File Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      FeaturePointsMatch.h File Reference
      +
      +
      +
      #include "FeaturePoint.h"
      +#include "../oo/ObjBase.h"
      +#include <utility>
      +#include <cstdlib>
      +
      +

      Go to the source code of this file.

      + + + + + + +

      +Classes

      struct  meow::FeaturePointIndexPair
       
      class  meow::FeaturePointsMatch< Scalar, Description >
       
      + + + +

      +Namespaces

      namespace  meow
       
      + + + +

      +Typedefs

      typedef std::vector
      +< FeaturePointIndexPair > 
      meow::FeaturePointIndexPairs
       
      +
      +
      + + + + + diff --git a/doc/html/FeaturePointsMatch_8h.js b/doc/html/FeaturePointsMatch_8h.js new file mode 100644 index 0000000..e846b9a --- /dev/null +++ b/doc/html/FeaturePointsMatch_8h.js @@ -0,0 +1,6 @@ +var FeaturePointsMatch_8h = +[ + [ "FeaturePointIndexPair", "structmeow_1_1FeaturePointIndexPair.html", "structmeow_1_1FeaturePointIndexPair" ], + [ "FeaturePointsMatch", "classmeow_1_1FeaturePointsMatch.html", "classmeow_1_1FeaturePointsMatch" ], + [ "FeaturePointIndexPairs", "FeaturePointsMatch_8h.html#a03cd29a3b4f8874be532a4b0c9422961", null ] +]; \ No newline at end of file diff --git a/doc/html/FeaturePointsMatch_8h_source.html b/doc/html/FeaturePointsMatch_8h_source.html new file mode 100644 index 0000000..bcf89b0 --- /dev/null +++ b/doc/html/FeaturePointsMatch_8h_source.html @@ -0,0 +1,137 @@ + + + + + + + +Templates -- Meow: meowpp/gra/FeaturePointsMatch.h Source File + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      FeaturePointsMatch.h
      +
      +
      +Go to the documentation of this file.
      1 #ifndef gra_FeaturePointsMatch_H__
      +
      2 #define gra_FeaturePointsMatch_H__
      +
      3 
      +
      4 #include "FeaturePoint.h"
      +
      5 
      +
      6 #include "../oo/ObjBase.h"
      +
      7 
      +
      8 #include <utility>
      +
      9 #include <cstdlib>
      +
      10 
      +
      11 namespace meow {
      +
      12 
      + +
      14  std::pair<size_t, size_t> from;
      +
      15  std::pair<size_t, size_t> to;
      +
      16 
      + +
      18  }
      +
      19  FeaturePointIndexPair(size_t ff, size_t fs,
      +
      20  size_t tf, size_t ts) {
      +
      21  from.first = ff;
      +
      22  from.second = fs;
      +
      23  to.first = tf;
      +
      24  to.second = ts;
      +
      25  }
      +
      26  bool operator==(FeaturePointIndexPair const& p) const {
      +
      27  return (from == p.from && to == p.to);
      +
      28  }
      +
      29 };
      +
      30 
      +
      31 typedef std::vector<FeaturePointIndexPair> FeaturePointIndexPairs;
      +
      32 
      +
      33 template<class Scalar, class Description>
      +
      34 class FeaturePointsMatch: public ObjBase {
      +
      35 protected:
      + +
      37  }
      +
      38 public:
      +
      39  typedef std::vector<FeaturePoint<Scalar, Description> > FeaturePoints;
      +
      40  typedef std::vector<FeaturePoints > FeaturePointss;
      +
      41 
      +
      42  virtual ~FeaturePointsMatch() {
      +
      43  }
      +
      44 
      +
      45  virtual FeaturePointIndexPairs match(size_t dimension,
      +
      46  FeaturePoints const& from,
      +
      47  FeaturePoints const& to) const = 0;
      +
      48 
      +
      49  virtual FeaturePointIndexPairs match(size_t dimension,
      +
      50  FeaturePoints const& from,
      +
      51  FeaturePointss const& to) const = 0;
      +
      52 
      +
      53  virtual FeaturePointIndexPairs match(size_t dimension,
      +
      54  FeaturePointss const& from,
      +
      55  FeaturePointss const& to) const = 0;
      +
      56 
      +
      57  virtual FeaturePointIndexPairs match(size_t dimension,
      +
      58  FeaturePointss const& fpss) const = 0;
      +
      59 };
      +
      60 
      +
      61 }
      +
      62 
      +
      63 #endif // gra_FeaturePointsMatch_H__
      +
      +
      + + + + + diff --git a/doc/html/FeaturePointsMatch__K__Match_8h.html b/doc/html/FeaturePointsMatch__K__Match_8h.html new file mode 100644 index 0000000..6fdc038 --- /dev/null +++ b/doc/html/FeaturePointsMatch__K__Match_8h.html @@ -0,0 +1,114 @@ + + + + + + + +Templates -- Meow: meowpp/gra/FeaturePointsMatch_K_Match.h File Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      FeaturePointsMatch_K_Match.h File Reference
      +
      +
      +
      #include "../dsa/VP_Tree.h"
      +#include "FeaturePointsMatch.h"
      +#include "../Self.h"
      +#include "../oo/ObjBase.h"
      +#include <cstdlib>
      +
      +

      Go to the source code of this file.

      + + + + +

      +Classes

      class  meow::FeaturePointsMatch_K_Match< Scalar, Description >
       
      + + + +

      +Namespaces

      namespace  meow
       
      + + + +

      +Macros

      #define FPMKM   FeaturePointsMatch_K_Match
       
      +

      Macro Definition Documentation

      + +
      +
      + + + + +
      #define FPMKM   FeaturePointsMatch_K_Match
      +
      + +
      +
      +
      +
      + + + + + diff --git a/doc/html/FeaturePointsMatch__K__Match_8h.js b/doc/html/FeaturePointsMatch__K__Match_8h.js new file mode 100644 index 0000000..c261e4e --- /dev/null +++ b/doc/html/FeaturePointsMatch__K__Match_8h.js @@ -0,0 +1,5 @@ +var FeaturePointsMatch__K__Match_8h = +[ + [ "FeaturePointsMatch_K_Match", "classmeow_1_1FeaturePointsMatch__K__Match.html", "classmeow_1_1FeaturePointsMatch__K__Match" ], + [ "FPMKM", "FeaturePointsMatch__K__Match_8h.html#a58e89d43a69e628ede9275899ef6ebbb", null ] +]; \ No newline at end of file diff --git a/doc/html/FeaturePointsMatch__K__Match_8h_source.html b/doc/html/FeaturePointsMatch__K__Match_8h_source.html new file mode 100644 index 0000000..59c7019 --- /dev/null +++ b/doc/html/FeaturePointsMatch__K__Match_8h_source.html @@ -0,0 +1,264 @@ + + + + + + + +Templates -- Meow: meowpp/gra/FeaturePointsMatch_K_Match.h Source File + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      FeaturePointsMatch_K_Match.h
      +
      +
      +Go to the documentation of this file.
      1 #ifndef gra_FeaturePointsMatch_K_Match_H__
      +
      2 #define gra_FeaturePointsMatch_K_Match_H__
      +
      3 
      +
      4 #include "../dsa/VP_Tree.h"
      +
      5 
      +
      6 #include "FeaturePointsMatch.h"
      +
      7 
      +
      8 #include "../Self.h"
      +
      9 
      +
      10 
      +
      11 #include "../oo/ObjBase.h"
      +
      12 
      +
      13 #include <cstdlib>
      +
      14 
      +
      15 namespace meow {
      +
      16 
      +
      17 template<class Scalar, class Description>
      + +
      19 public FeaturePointsMatch<Scalar, Description> {
      +
      20 # define FPMKM FeaturePointsMatch_K_Match
      +
      21 public:
      +
      22  typedef std::vector<FeaturePoint<Scalar, Description> > FeaturePoints;
      +
      23  typedef std::vector<FeaturePoints > FeaturePointss;
      +
      24 private:
      +
      25  struct Node {
      +
      26  size_t id_;
      +
      27  size_t index_;
      +
      28  FeaturePointss const* ptr_;
      +
      29 
      +
      30  Node() {
      +
      31  }
      +
      32  Node(Node const& nd) {
      +
      33  id_ = nd.id_;
      +
      34  index_ = nd.index_;
      +
      35  ptr_ = nd.ptr_;
      +
      36  }
      +
      37  Node(size_t id, size_t index, FeaturePointss const* ptr) {
      +
      38  id_ = id;
      +
      39  index_ = index;
      +
      40  ptr_ = ptr;
      +
      41  }
      +
      42  ~Node() {
      +
      43  }
      +
      44  bool operator<(Node const& nd) const {
      +
      45  return (id_ < nd.id_);
      +
      46  }
      +
      47  Description operator[](size_t id) const {
      +
      48  return (*ptr_)[id_][index_][id];
      +
      49  }
      +
      50  };
      +
      51  struct Myself {
      +
      52  size_t k_;
      +
      53  Myself() {
      +
      54  k_ = 1;
      +
      55  }
      +
      56  ~Myself() {
      +
      57  }
      +
      58  Myself& copyFrom(Myself const& m) {
      +
      59  k_ = m.k_;
      +
      60  return *this;
      +
      61  }
      +
      62  };
      +
      63 
      +
      64  Self<Myself> const self;
      +
      65 public:
      +
      66  FPMKM(): self(true) {
      +
      67  }
      +
      68 
      +
      69  FPMKM(FPMKM const& m): self(false) {
      +
      70  self().copyFrom(m.self);
      +
      71  }
      +
      72 
      +
      73  FPMKM(size_t k): self(true) {
      +
      74  self()->k_ = k;
      +
      75  }
      +
      76 
      +
      77  ~FPMKM() {
      +
      78  }
      +
      79 
      +
      80  FPMKM& copyFrom(FPMKM const& m) {
      +
      81  self().copyFrom(m.self);
      +
      82  return *this;
      +
      83  }
      +
      84 
      +
      85  FPMKM& referenceFrom(FPMKM const& m) {
      +
      86  self().referenceFrom(m.self);
      +
      87  return *this;
      +
      88  }
      +
      89 
      +
      90  size_t paramK() const {
      +
      91  return self->k_;
      +
      92  }
      +
      93 
      +
      94  size_t paramK(size_t k) {
      +
      95  self()->k_ = std::max(k, (size_t)1);
      +
      96  return paramK();
      +
      97  }
      +
      98 
      +
      99 
      +
      100  FeaturePointIndexPairs match(size_t dimension,
      +
      101  FeaturePoints const& from,
      +
      102  FeaturePoints const& to) const {
      +
      103  return match(dimension, FeaturePointss(1, from), FeaturePointss(1, to));
      +
      104  }
      +
      105 
      +
      106 
      +
      107  FeaturePointIndexPairs match(size_t dimension,
      +
      108  FeaturePoints const& from,
      +
      109  FeaturePointss const& to) const {
      +
      110  return match(dimension, FeaturePointss(1, from), to);
      +
      111  }
      +
      112 
      +
      113  FeaturePointIndexPairs match(size_t dimension,
      +
      114  FeaturePointss const& from,
      +
      115  FeaturePointss const& to) const {
      +
      116  VP_Tree<Node, Description> tree(dimension);
      +
      117  for (size_t i = 0, I = to.size(); i < I; i++) {
      +
      118  for (size_t j = 0, J = to[i].size(); j < J; j++) {
      +
      119  tree.insert(Node(i, j, &to));
      +
      120  }
      +
      121  }
      +
      122  FeaturePointIndexPairs ret(from.size());
      +
      123  for (size_t i = 0, I = from.size(); i < I; i++) {
      +
      124  for (size_t j = 0, J = from[i].size(); j < J; j++) {
      +
      125  Node now(i, j, &from);
      +
      126  std::vector<Node> tree_ret = tree.query(now, self->k_, true);
      +
      127  for (size_t k = 0, K = tree_ret.size(); k < K; k++) {
      +
      128  ret.push_back(FeaturePointIndexPair(i, j,
      +
      129  tree_ret[k].id_,
      +
      130  tree_ret[k].index_));
      +
      131  }
      +
      132  }
      +
      133  }
      +
      134  return ret;
      +
      135  }
      +
      136 
      +
      137  FeaturePointIndexPairs match(size_t dimension,
      +
      138  FeaturePointss const& fpss) const {
      +
      139  FeaturePointIndexPairs ret(fpss.size()), add;
      +
      140  FeaturePointss to(fpss);
      +
      141  for (size_t i = 0, I = fpss.size(); i < I; i++) {
      +
      142  FeaturePoints tmp(to[i]);
      +
      143  to[i].clear();
      +
      144  add = match(dimension, fpss[i], to);
      +
      145  for (size_t j = 0, J = add.size(); j < J; j++) {
      +
      146  ret.push_back(FeaturePointIndexPair(i , add[j].from.second,
      +
      147  add[j].to.first, add[j].to.second));
      +
      148  }
      +
      149  to[i] = tmp;
      +
      150  }
      +
      151  return ret;
      +
      152  }
      +
      153 
      +
      154  FPMKM& operator=(FPMKM const& b) {
      +
      155  return copyFrom(b);
      +
      156  }
      +
      157 
      +
      158 
      +
      159  bool write(FILE* f, bool bin, unsigned int fg) const {
      +
      160  // TODO
      +
      161  return false;
      +
      162  }
      +
      163 
      +
      164  bool read (FILE* f, bool bin, unsigned int fg) {
      +
      165  // TODO
      +
      166  return false;
      +
      167  }
      +
      168 
      +
      169  ObjBase* create() const {
      +
      170  return new FPMKM();
      +
      171  }
      +
      172 
      +
      173  ObjBase* copyFrom(ObjBase const* ptr) {
      +
      174  return &(copyFrom(*(FPMKM*)ptr));
      +
      175  }
      +
      176 
      +
      177  char const* ctype() const {
      +
      178  static char const* ptr = typeid(*this).name();
      +
      179  return ptr;
      +
      180  }
      +
      181 
      +
      182  std::string type() const {
      +
      183  return std::string(ctype());
      +
      184  }
      +
      185 # undef FPMKM
      +
      186 };
      +
      187 
      +
      188 }
      +
      189 
      +
      190 #endif // gra_FeaturePointsMatch_K_Match_H__
      +
      +
      + + + + + diff --git a/doc/html/HSL__Space_8h.html b/doc/html/HSL__Space_8h.html new file mode 100644 index 0000000..122710f --- /dev/null +++ b/doc/html/HSL__Space_8h.html @@ -0,0 +1,119 @@ + + + + + + + +Templates -- Meow: meowpp/colors/HSL_Space.h File Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      HSL_Space.h File Reference
      +
      +
      +
      #include "Color3_Space.h"
      +#include "../geo/Vectors.h"
      +#include "RGB_Space.h"
      +#include "YUV_Space.h"
      +#include "../math/utility.h"
      +#include <cstdlib>
      +
      +

      Go to the source code of this file.

      + + + + + +

      +Classes

      class  meow::HSLf_Space
       以浮點數Y(亮度), U(色度), V(濃度) 三個值所組成的色彩空間 More...
       
      + + + +

      +Namespaces

      namespace  meow
       
      + + + + + + + + + + + + + + + + + + + +

      +Functions

      void meow::colorTransformate (RGBf_Space const &rgb, HSLf_Space *hsl)
       RGBf_Space to HSLf_Space More...
       
      void meow::colorTransformate (YUVf_Space const &yuv, HSLf_Space *hsl)
       YUVf_Space to HSLf_Space More...
       
      void meow::colorTransformate (HSLf_Space const &hsl, RGBf_Space *rgb)
       HSLf_Space to RGBf_Space More...
       
      void meow::colorTransformate (HSLf_Space const &hsl, YUVf_Space *yuv)
       HSLf_Space to YUVf_Space More...
       
      void meow::colorTransformate (HSLf_Space const &hsl, RGBi_Space *rgb)
       HSLf_Space to RGBi_Space More...
       
      void meow::colorTransformate (RGBi_Space const &rgb, HSLf_Space *hsl)
       RGBi_Space to HSLf_Space More...
       
      +
      +
      + + + + + diff --git a/doc/html/HSL__Space_8h.js b/doc/html/HSL__Space_8h.js new file mode 100644 index 0000000..b412a5d --- /dev/null +++ b/doc/html/HSL__Space_8h.js @@ -0,0 +1,10 @@ +var HSL__Space_8h = +[ + [ "HSLf_Space", "classmeow_1_1HSLf__Space.html", "classmeow_1_1HSLf__Space" ], + [ "colorTransformate", "HSL__Space_8h.html#af9ab85cd87a9f843e710657188f4c601", null ], + [ "colorTransformate", "HSL__Space_8h.html#a7f2b465df93750016d3ff54b2adce77b", null ], + [ "colorTransformate", "HSL__Space_8h.html#ad429f8a956d1f0e1484d08bb9419685b", null ], + [ "colorTransformate", "HSL__Space_8h.html#a4c39f0ec6860546a7b16e3f165bed83e", null ], + [ "colorTransformate", "HSL__Space_8h.html#a992d4c33aed66c0d4d7f578ef92dfa15", null ], + [ "colorTransformate", "HSL__Space_8h.html#ae9b7bb880aa5b6dfebd523a6b344a4f1", null ] +]; \ No newline at end of file diff --git a/doc/html/HSL__Space_8h_source.html b/doc/html/HSL__Space_8h_source.html new file mode 100644 index 0000000..b5a0dac --- /dev/null +++ b/doc/html/HSL__Space_8h_source.html @@ -0,0 +1,237 @@ + + + + + + + +Templates -- Meow: meowpp/colors/HSL_Space.h Source File + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      HSL_Space.h
      +
      +
      +Go to the documentation of this file.
      1 #ifndef colors_HSL_Space_H__
      +
      2 #define colors_HSL_Space_H__
      +
      3 
      +
      4 #include "Color3_Space.h"
      +
      5 #include "../geo/Vectors.h"
      +
      6 
      +
      7 #include "RGB_Space.h"
      +
      8 #include "YUV_Space.h"
      +
      9 #include "../math/utility.h"
      +
      10 
      +
      11 #include <cstdlib>
      +
      12 
      +
      13 namespace meow {
      +
      14 
      +
      22 class HSLf_Space: public Color3_Space<double> {
      +
      23 public:
      + +
      25  Vector3D<double>(PI*2.0, 1.0, 1.0),
      +
      26  Vector3D<double>( 0.0, 0.0, 0.0)) {
      +
      27  }
      +
      28  HSLf_Space(double c): Color3_Space<double>(Vector3D<double>( 0.0, 0.0, 0.0),
      +
      29  Vector3D<double>(PI*2.0, 1.0, 1.0),
      +
      30  Vector3D<double>( c, c, c))
      +
      31  { }
      + +
      33  Color3_Space<double>(Vector3D<double>(0.0, 0.0, 0.0),
      +
      34  Vector3D<double>(1.0, 1.0, 1.0),
      +
      35  Vector3D<double>(v)) {
      +
      36  }
      +
      37  HSLf_Space(HSL_Space const& b): Color3_Space<double>(b) {
      +
      38  }
      + +
      40  }
      +
      41  double const& hslMin(size_t i) const { return min(i); }
      +
      42  double const& hMin( ) const { return min(0); }
      +
      43  double const& sMin( ) const { return min(1); }
      +
      44  double const& lMin( ) const { return min(2); }
      +
      45  double const& hslMax(size_t i) const { return max(i); }
      +
      46  double const& hMax( ) const { return max(0); }
      +
      47  double const& sMax( ) const { return max(1); }
      +
      48  double const& lMax( ) const { return max(2); }
      +
      49  double const& hsl(size_t i) const { return val(i); }
      +
      50  double const& h( ) const { return hsl(0); }
      +
      51  double const& s( ) const { return hsl(1); }
      +
      52  double const& l( ) const { return hsl(2); }
      +
      53  double const& hsl(size_t i, double c) { return val(i, c); }
      +
      54  double const& h( double c) { return hsl(0, c); }
      +
      55  double const& s( double c) { return hsl(1, c); }
      +
      56  double const& l( double c) { return hsl(2, c); }
      +
      57  double& hslGet(size_t i) { return valGet(i); }
      +
      58  double& hGet( ) { return hslGet(0); }
      +
      59  double& sGet( ) { return hslGet(1); }
      +
      60  double& lGet( ) { return hslGet(2); }
      + +
      62  copyFrom(b);
      +
      63  return *this;
      +
      64  }
      +
      65  HSLf_Space operator+(HSLf_Space const& b) const {
      +
      66  return HSLf_Space(val_ + b.val_);
      +
      67  }
      +
      68  HSLf_Space operator-(HSLf_Space const& b) const {
      +
      69  return HSLf_Space(val_ - b.val_);
      +
      70  }
      +
      71  HSLf_Space operator*(double const& c) const {
      +
      72  return HSLf_Space(val_ * c);
      +
      73  }
      +
      74  HSLf_Space operator/(double const& c) const {
      +
      75  return HSLf_Space(val_ / c);
      +
      76  }
      +
      77  double operator*(HSLf_Space const& b) const {
      +
      78  return val_ * b.val_;
      +
      79  }
      +
      80 };
      +
      81 
      +
      85 inline void colorTransformate(RGBf_Space const& rgb, HSLf_Space* hsl) {
      +
      86  double r = normalize(rgb.rMin(), rgb.rMax(), rgb.r());
      +
      87  double g = normalize(rgb.gMin(), rgb.gMax(), rgb.g());
      +
      88  double b = normalize(rgb.bMin(), rgb.bMax(), rgb.b());
      +
      89  double mx = std::max(std::max(r, g), b);
      +
      90  double mn = std::min(std::min(r, g), b);
      +
      91  double h, s, l;
      +
      92  if (mx == mn ) h = 0;
      +
      93  else if(mx == r && g >= b) h = PI/3.0 * (g-b) / (mx-mn);
      +
      94  else if(mx == r && g < b) h = PI/3.0 * (g-b) / (mx-mn) + PI * 2.0;
      +
      95  else if(mx == g ) h = PI/3.0 * (b-r) / (mx-mn) + PI/3.0*2.0;
      +
      96  else h = PI/3.0 * (r-g) / (mx-mn) + PI/3.0*4.0;
      +
      97  l = 0.5 * (mx + mn);
      +
      98  if (l == 0 || mx == mn) s = 0;
      +
      99  else if(l < 0.5 ) s = (mx - mn) / (2.0 * l);
      +
      100  else s = (mx - mn) / (2 - 2.0 * l);
      +
      101  hsl->h(h);
      +
      102  hsl->s(s);
      +
      103  hsl->l(l);
      +
      104 }
      +
      105 
      +
      109 inline void colorTransformate(YUVf_Space const& yuv, HSLf_Space* hsl) {
      +
      110  RGBf_Space tmp;
      +
      111  colorTransformate(yuv, &tmp);
      +
      112  colorTransformate(tmp, hsl);
      +
      113 }
      +
      114 
      +
      118 inline void colorTransformate(HSLf_Space const& hsl, RGBf_Space* rgb) {
      +
      119  double h = normalize(hsl.hMin(), hsl.hMax(), hsl.h());
      +
      120  double s = normalize(hsl.sMin(), hsl.sMax(), hsl.s());
      +
      121  double l = normalize(hsl.lMin(), hsl.lMax(), hsl.l());
      +
      122  if(s == 0){
      +
      123  rgb->r(denormalize(rgb->rMin(), rgb->rMax(), l));
      +
      124  rgb->g(denormalize(rgb->gMin(), rgb->gMax(), l));
      +
      125  rgb->b(denormalize(rgb->bMin(), rgb->bMax(), l));
      +
      126  return ;
      +
      127  }
      +
      128  double q = (l < 0.5 ? (l * (1 + s)) : (l + s - (l * s)));
      +
      129  double p = 2 * l - q;
      +
      130  double t_r = h + 1.0 / 3.0;
      +
      131  double t_g = h;
      +
      132  double t_b = h - 1.0 / 3.0;
      +
      133  if(t_r < 0) t_r = t_r + 1.0;
      +
      134  if(t_r > 1) t_r = t_r - 1.0;
      +
      135  if(t_g < 0) t_g = t_g + 1.0;
      +
      136  if(t_g > 1) t_g = t_g - 1.0;
      +
      137  if(t_b < 0) t_b = t_b + 1.0;
      +
      138  if(t_b > 1) t_b = t_b - 1.0;
      +
      139  double r, g, b;
      +
      140  if (t_r < 1.0 / 6.0) r = p + (q - p) * 6 * t_r;
      +
      141  else if(t_r < 0.5 ) r = q;
      +
      142  else if(t_r < 2.0 / 3.0) r = p + (q - p) * 6 * (2.0 / 3.0 - t_r);
      +
      143  else r = p;
      +
      144  if (t_g < 1.0 / 6.0) g = p + (q - p) * 6 * t_g;
      +
      145  else if(t_g < 0.5 ) g = q;
      +
      146  else if(t_g < 2.0 / 3.0) g = p + (q - p) * 6 * (2.0 / 3.0 - t_g);
      +
      147  else g = p;
      +
      148  if (t_b < 1.0 / 6.0) b = p + (q - p) * 6 * t_b;
      +
      149  else if(t_b < 0.5 ) b = q;
      +
      150  else if(t_b < 2.0 / 3.0) b = p + (q - p) * 6 * (2.0 / 3.0 - t_b);
      +
      151  else b = p;
      +
      152  rgb->r(denormalize(rgb->rMin(), rgb->rMax(), r));
      +
      153  rgb->g(denormalize(rgb->gMin(), rgb->gMax(), g));
      +
      154  rgb->b(denormalize(rgb->bMin(), rgb->bMax(), b));
      +
      155 }
      +
      156 
      +
      160 inline void colorTransformate(HSLf_Space const& hsl, YUVf_Space* yuv) {
      +
      161  RGBf_Space tmp;
      +
      162  colorTransformate(hsl, &tmp);
      +
      163  colorTransformate(tmp, yuv);
      +
      164 }
      +
      165 
      +
      169 inline void colorTransformate(HSLf_Space const& hsl, RGBi_Space* rgb) {
      +
      170  RGBf_Space tmp;
      +
      171  colorTransformate(hsl, &tmp);
      +
      172  rgb->copyFrom(tmp);
      +
      173 }
      +
      174 
      +
      175 
      +
      179 inline void colorTransformate(RGBi_Space const& rgb, HSLf_Space* hsl) {
      +
      180  RGBf_Space tmp;
      +
      181  tmp.copyFrom(rgb);
      +
      182  colorTransformate(rgb, hsl);
      +
      183 }
      +
      184 
      +
      185 } // meow
      +
      186 
      +
      187 
      +
      188 #endif // colors_HSL_Space_H__
      +
      +
      + + + + + diff --git a/doc/html/HSV__Space_8h.html b/doc/html/HSV__Space_8h.html new file mode 100644 index 0000000..db490e1 --- /dev/null +++ b/doc/html/HSV__Space_8h.html @@ -0,0 +1,126 @@ + + + + + + + +Templates -- Meow: meowpp/colors/HSV_Space.h File Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      HSV_Space.h File Reference
      +
      +
      +
      #include "Color3_Space.h"
      +#include "../geo/Vectors.h"
      +#include "RGB_Space.h"
      +#include "YUV_Space.h"
      +#include "HSL_Space.h"
      +#include "../math/utility.h"
      +#include <cstdlib>
      +
      +

      Go to the source code of this file.

      + + + + + +

      +Classes

      class  meow::HSVf_Space
       以浮點數Y(亮度), U(色度), V(濃度) 三個值所組成的色彩空間 More...
       
      + + + +

      +Namespaces

      namespace  meow
       
      + + + + + + + + + + + + + + + + + + + + + + + + + +

      +Functions

      void meow::colorTransformate (RGBf_Space const &rgb, HSVf_Space *hsv)
       RGBf_Space to HSVf_Space More...
       
      void meow::colorTransformate (YUVf_Space const &yuv, HSVf_Space *hsv)
       YUVf_Space to HSVf_Space More...
       
      void meow::colorTransformate (HSLf_Space const &hsl, HSVf_Space *hsv)
       HSLf_Space to HSVf_Space More...
       
      void meow::colorTransformate (HSVf_Space const &hsv, RGBf_Space *rgb)
       HSVf_Space to RGBf_Space More...
       
      void meow::colorTransformate (HSVf_Space const &hsv, YUVf_Space *yuv)
       HSVf_Space to YUVf_Space More...
       
      void meow::colorTransformate (HSVf_Space const &hsv, HSLf_Space *hsl)
       HSVf_Space to HSLf_Space More...
       
      void meow::colorTransformate (HSVf_Space const &hsv, RGBi_Space *rgb)
       HSVf_Space to RGBi_Space More...
       
      void meow::colorTransformate (RGBi_Space const &rgb, HSVf_Space *hsv)
       RGBi_Space to HSVf_Space More...
       
      +
      +
      + + + + + diff --git a/doc/html/HSV__Space_8h.js b/doc/html/HSV__Space_8h.js new file mode 100644 index 0000000..e1a26c7 --- /dev/null +++ b/doc/html/HSV__Space_8h.js @@ -0,0 +1,12 @@ +var HSV__Space_8h = +[ + [ "HSVf_Space", "classmeow_1_1HSVf__Space.html", "classmeow_1_1HSVf__Space" ], + [ "colorTransformate", "HSV__Space_8h.html#a1591a113b022322f1119894a83a56625", null ], + [ "colorTransformate", "HSV__Space_8h.html#ad01fb20ad0ae3932e408c06ad80f7b1e", null ], + [ "colorTransformate", "HSV__Space_8h.html#a19e830f03459a25435ff963551772e74", null ], + [ "colorTransformate", "HSV__Space_8h.html#a2f627a58a3394af709ddc8114b4b5286", null ], + [ "colorTransformate", "HSV__Space_8h.html#a930aec4a586b79b076e64541f3a96cc7", null ], + [ "colorTransformate", "HSV__Space_8h.html#ae5a2c4f9f20fe94d8fcd378a86e05260", null ], + [ "colorTransformate", "HSV__Space_8h.html#a303120584f2d7e474096da63bec4cdf5", null ], + [ "colorTransformate", "HSV__Space_8h.html#a0239dc74535f528644a22e3e86e5221c", null ] +]; \ No newline at end of file diff --git a/doc/html/HSV__Space_8h_source.html b/doc/html/HSV__Space_8h_source.html new file mode 100644 index 0000000..1ebbe4f --- /dev/null +++ b/doc/html/HSV__Space_8h_source.html @@ -0,0 +1,231 @@ + + + + + + + +Templates -- Meow: meowpp/colors/HSV_Space.h Source File + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      HSV_Space.h
      +
      +
      +Go to the documentation of this file.
      1 #ifndef colors_HSV_Space_H__
      +
      2 #define colors_HSV_Space_H__
      +
      3 
      +
      4 #include "Color3_Space.h"
      +
      5 #include "../geo/Vectors.h"
      +
      6 
      +
      7 #include "RGB_Space.h"
      +
      8 #include "YUV_Space.h"
      +
      9 #include "HSL_Space.h"
      +
      10 #include "../math/utility.h"
      +
      11 
      +
      12 #include <cstdlib>
      +
      13 
      +
      14 namespace meow {
      +
      15 
      +
      23 class HSVf_Space: public Color3_Space<double> {
      +
      24 public:
      + +
      26  Vector3D<double>(PI*2.0, 1.0, 1.0),
      +
      27  Vector3D<double>( 0.0, 0.0, 0.0)) {
      +
      28  }
      +
      29  HSVf_Space(double c): Color3_Space<double>(Vector3D<double>( 0.0, 0.0, 0.0),
      +
      30  Vector3D<double>(PI*2.0, 1.0, 1.0),
      +
      31  Vector3D<double>( c, c, c))
      +
      32  { }
      + +
      34  Color3_Space<double>(Vector3D<double>(0.0, 0.0, 0.0),
      +
      35  Vector3D<double>(1.0, 1.0, 1.0),
      +
      36  Vector3D<double>(v)) {
      +
      37  }
      +
      38  HSVf_Space(HSV_Space const& b): Color3_Space<double>(b) {
      +
      39  }
      + +
      41  }
      +
      42  double const& hsvMin(size_t i) const { return min(i); }
      +
      43  double const& hMin( ) const { return min(0); }
      +
      44  double const& sMin( ) const { return min(1); }
      +
      45  double const& vMin( ) const { return min(2); }
      +
      46  double const& hsvMax(size_t i) const { return max(i); }
      +
      47  double const& hMax( ) const { return max(0); }
      +
      48  double const& sMax( ) const { return max(1); }
      +
      49  double const& vMax( ) const { return max(2); }
      +
      50  double const& hsv(size_t i) const { return val(i); }
      +
      51  double const& h( ) const { return hsv(0); }
      +
      52  double const& s( ) const { return hsv(1); }
      +
      53  double const& v( ) const { return hsv(2); }
      +
      54  double const& hsv(size_t i, double c) { return val(i, c); }
      +
      55  double const& h( double c) { return hsv(0, c); }
      +
      56  double const& s( double c) { return hsv(1, c); }
      +
      57  double const& v( double c) { return hsv(2, c); }
      +
      58  double& hsvGet(size_t i) { return valGet(i); }
      +
      59  double& hGet( ) { return hsvGet(0); }
      +
      60  double& sGet( ) { return hsvGet(1); }
      +
      61  double& vGet( ) { return hsvGet(2); }
      + +
      63  copyFrom(b);
      +
      64  return *this;
      +
      65  }
      +
      66  HSVf_Space operator+(HSVf_Space const& b) const {
      +
      67  return HSVf_Space(val_ + b.val_);
      +
      68  }
      +
      69  HSVf_Space operator-(HSVf_Space const& b) const {
      +
      70  return HSVf_Space(val_ - b.val_);
      +
      71  }
      +
      72  HSVf_Space operator*(double const& c) const {
      +
      73  return HSVf_Space(val_ * c);
      +
      74  }
      +
      75  HSVf_Space operator/(double const& c) const {
      +
      76  return HSVf_Space(val_ / c);
      +
      77  }
      +
      78  double operator*(HSVf_Space const& b) const {
      +
      79  return val_ * b.val_;
      +
      80  }
      +
      81 };
      +
      82 
      +
      86 inline void colorTransformate(RGBf_Space const& rgb, HSVf_Space* hsv) {
      +
      87  double r = normalize(rgb.rMin(), rgb.rMax(), rgb.r());
      +
      88  double g = normalize(rgb.gMin(), rgb.gMax(), rgb.g());
      +
      89  double b = normalize(rgb.bMin(), rgb.bMax(), rgb.b());
      +
      90  double mx = std::max(std::max(r, g), b);
      +
      91  double mn = std::min(std::min(r, g), b);
      +
      92  double h, s, v;
      +
      93  if (mx == mn ) h = 0;
      +
      94  else if(mx == r && g >= b) h = PI/3.0 * (g-b) / (mx-mn);
      +
      95  else if(mx == r && g < b) h = PI/3.0 * (g-b) / (mx-mn) + PI * 2.0;
      +
      96  else if(mx == g ) h = PI/3.0 * (b-r) / (mx-mn) + PI/3.0*2.0;
      +
      97  else h = PI/3.0 * (r-g) / (mx-mn) + PI/3.0*4.0;
      +
      98  if(mx == 0) s = 0;
      +
      99  else s = 1 - mn / mx;
      +
      100  v = mx;
      +
      101  hsv->h(h);
      +
      102  hsv->s(s);
      +
      103  hsv->v(v);
      +
      104 }
      +
      105 
      +
      109 inline void colorTransformate(YUVf_Space const& yuv, HSVf_Space* hsv) {
      +
      110  RGBf_Space tmp;
      +
      111  colorTransformate( yuv, &tmp);
      +
      112  colorTransformate(*tmp, hsv);
      +
      113 }
      +
      114 
      +
      118 inline void colorTransformate(HSLf_Space const& hsl, HSVf_Space* hsv) {
      +
      119  RGBf_Space tmp;
      +
      120  colorTransformate( hsl, &tmp);
      +
      121  colorTransformate(*tmp, hsv);
      +
      122 }
      +
      123 
      +
      127 inline void colorTransformate(HSVf_Space const& hsv, RGBf_Space* rgb) {
      +
      128  double h = normalize(hsv.hMin(), hsv.hMax(), hsv.h()) * 360;
      +
      129  double s = normalize(hsv.sMin(), hsv.sMax(), hsv.s());
      +
      130  double v = normalize(hsv.vMin(), hsv.vMax(), hsv.v());
      +
      131  int hi = (int)h / 60 % 6;
      +
      132  double f = h / 60.0 - hi;
      +
      133  double p = v * (1 - s);
      +
      134  double q = v * (1 - f * s);
      +
      135  double t = v * (1 - (1 - f) * s);
      +
      136  double r, g, b;
      +
      137  if (hi == 0){ r = v; g = t; b = p; }
      +
      138  else if(hi == 1){ r = q; g = v; b = p; }
      +
      139  else if(hi == 2){ r = p; g = v; b = t; }
      +
      140  else if(hi == 3){ r = p; g = q; b = v; }
      +
      141  else if(hi == 4){ r = t; g = p; b = v; }
      +
      142  else { r = v; g = p; b = q; }
      +
      143  rgb->r(denormalize(rgb->rMin(), rgb->rMax(), r));
      +
      144  rgb->g(denormalize(rgb->gMin(), rgb->gMax(), g));
      +
      145  rgb->b(denormalize(rgb->bMin(), rgb->bMax(), b));
      +
      146 }
      +
      147 
      +
      151 inline void colorTransformate(HSVf_Space const& hsv, YUVf_Space* yuv) {
      +
      152  RGBf_Space tmp;
      +
      153  colorTransformate( hsv, &tmp);
      +
      154  colorTransformate(*tmp, yuv);
      +
      155 }
      +
      156 
      +
      160 inline void colorTransformate(HSVf_Space const& hsv, HSLf_Space* hsl) {
      +
      161  RGBf_Space tmp;
      +
      162  colorTransformate( hsv, &tmp);
      +
      163  colorTransformate(*tmp, hsl);
      +
      164 }
      +
      165 
      +
      169 inline void colorTransformate(HSVf_Space const& hsv, RGBi_Space* rgb) {
      +
      170  RGBf_Space tmp;
      +
      171  colorTransformate(hsv, &tmp);
      +
      172  rgb->copyFrom(tmp);
      +
      173 }
      +
      174 
      +
      175 
      +
      179 inline void colorTransformate(RGBi_Space const& rgb, HSVf_Space* hsv) {
      +
      180  RGBf_Space tmp;
      +
      181  tmp.copyFrom(rgb);
      +
      182  colorTransformate(rgb, hsv);
      +
      183 }
      +
      184 
      +
      185 } // meow
      +
      186 
      +
      187 
      +
      188 #endif // colors_HSV_Space_H__
      +
      +
      + + + + + diff --git a/doc/html/HashTable_8h.html b/doc/html/HashTable_8h.html new file mode 100644 index 0000000..3982e4f --- /dev/null +++ b/doc/html/HashTable_8h.html @@ -0,0 +1,93 @@ + + + + + + + +Templates -- Meow: meowpp/dsa/HashTable.h File Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      HashTable.h File Reference
      +
      +
      +
      #include <vector>
      +#include <list>
      +
      +

      Go to the source code of this file.

      + + + + + +

      +Classes

      class  meow::HashTableList< Data, HashFunc >
       一個當key相撞時會用list解決的hash_table More...
       
      + + + +

      +Namespaces

      namespace  meow
       
      +
      +
      + + + + + diff --git a/doc/html/HashTable_8h_source.html b/doc/html/HashTable_8h_source.html new file mode 100644 index 0000000..c46e075 --- /dev/null +++ b/doc/html/HashTable_8h_source.html @@ -0,0 +1,233 @@ + + + + + + + +Templates -- Meow: meowpp/dsa/HashTable.h Source File + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      HashTable.h
      +
      +
      +Go to the documentation of this file.
      1 #ifndef dsa_HashTable_H__
      +
      2 #define dsa_HashTable_H__
      +
      3 
      +
      4 #include <vector>
      +
      5 #include <list>
      +
      6 
      +
      7 namespace meow {
      +
      8 
      +
      14 template<class Data, class HashFunc>
      + +
      16 private:
      +
      17  std::vector<std::list<Data> > table_;
      +
      18  HashFunc func_;
      +
      19 public:
      + +
      24  }
      +
      25 
      +
      31  HashTableList(size_t size, HashFunc const& func): table_(size), func_(func) {
      +
      32  }
      +
      33 
      + +
      38  }
      +
      39 
      + +
      44  table_ = b.table_;
      +
      45  func_ = b.func_;
      +
      46  return *this;
      +
      47  }
      +
      48 
      +
      52  void clear() {
      +
      53  for (size_t i = 0, I = table_.size(); i < I; i++) {
      +
      54  table_[i].clear();
      +
      55  }
      +
      56  }
      +
      57 
      +
      61  void reset(size_t size, HashFunc const& func) {
      +
      62  table_.clear();
      +
      63  table_.resize(std::max(size, 1u));
      +
      64  func_ = func;
      +
      65  }
      +
      66 
      +
      70  size_t tableSize() const {
      +
      71  return table_.size();
      +
      72  }
      +
      73 
      +
      77  size_t size() const {
      +
      78  size_t ret = 0;
      +
      79  for (size_t i = 0, I = table_.size(); i < I; i++) {
      +
      80  ret += table_[i].size();
      +
      81  }
      +
      82  return ret;
      +
      83  }
      +
      84 
      +
      88  HashFunc const& func() const {
      +
      89  return func_;
      +
      90  }
      +
      91 
      +
      95  bool add(Data const& e) {
      +
      96  size_t index = func_(e) % size();
      +
      97  table_[index].push_back(e);
      +
      98  return true;
      +
      99  }
      +
      100 
      +
      104  bool add(HashTableList const& h) {
      +
      105  for (size_t i = 0, I = h.table_.size(); i < I; i++) {
      +
      106  for (std::list<Data>::const_iterator
      +
      107  it = h.table_[index].begin(); it != h.table_[index].end(); ++it) {
      +
      108  insert(*it);
      +
      109  }
      +
      110  }
      +
      111  return true;
      +
      112  }
      +
      113 
      +
      117  bool del(Data const& e) {
      +
      118  size_t index = func_(e) % size();
      +
      119  for (std::list<Data>::const_iterator
      +
      120  it = table_[index].begin(); it != table_[index].end(); ++it) {
      +
      121  if ((*it) == e) {
      +
      122  table_[index].erase(i);
      +
      123  return true;
      +
      124  }
      +
      125  }
      +
      126  return false;
      +
      127  }
      +
      128 
      +
      132  bool del(HashTableList const& h) {
      +
      133  if (size() > h.size()) {
      +
      134  for (size_t i = 0, I = h.table_.size(); i < I; i++) {
      +
      135  for (std::list<Data>::const_iterator
      +
      136  it = h.table_[index].begin(); it != h.table_[index].end(); ++it) {
      +
      137  erase(*it);
      +
      138  }
      +
      139  }
      +
      140  }
      +
      141  else {
      +
      142  for (size_t i = 0, I = table_.size(); i < I; i++) {
      +
      143  for (std::list<Data>::const_iterator
      +
      144  it = table_[index].begin(); it != table_[index].end(); ) {
      +
      145  if (h.exist(*it)) {
      +
      146  table_[index].erase(it);
      +
      147  }
      +
      148  else {
      +
      149  ++it;
      +
      150  }
      +
      151  }
      +
      152  }
      +
      153  }
      +
      154  return true;
      +
      155  }
      +
      156 
      +
      160  bool exist(Data const& e) const {
      +
      161  size_t index = func_(e) % size();
      +
      162  for (std::list<Data>::const_iterator
      +
      163  it = table_[index].begin(); it != table_[index].end(); ++it) {
      +
      164  if ((*it) == e)
      +
      165  return true;
      +
      166  }
      +
      167  return false;
      +
      168  }
      +
      169 
      +
      173  std::vector<Data> all() const {
      +
      174  std::vector<Data> ret;
      +
      175  for (size_t i = 0, I = table_.size(); i < I; i++) {
      +
      176  for (std::list<Data>::const_iterator
      +
      177  it = table_[i].begin(); it != table_[i].end(); ++it) {
      +
      178  ret.push_back(*it);
      +
      179  }
      +
      180  }
      +
      181  return ret;
      +
      182  }
      +
      183 
      +
      187  std::vector<Data> all(size_t index) const {
      +
      188  index %= table_.size();
      +
      189  std::vector<Data> ret;
      +
      190  for (std::list<Data>::const_iterator
      +
      191  it = table_[index].begin(); it != table_[index].end(); ++it) {
      +
      192  ret.push_back(*it);
      +
      193  }
      +
      194  return ret;
      +
      195  }
      +
      196 
      + +
      199  return copyFrom(h);
      +
      200  }
      +
      201 
      + +
      204  add(h);
      +
      205  return *this;
      +
      206  }
      +
      207 
      + +
      210  del(h);
      +
      211  return *this;
      +
      212  }
      +
      213 };
      +
      214 
      +
      215 }
      +
      216 
      +
      217 #endif // dsa_HashTable_H__
      +
      +
      + + + + + diff --git a/doc/html/IdentityPoints_8h.html b/doc/html/IdentityPoints_8h.html new file mode 100644 index 0000000..f3e157e --- /dev/null +++ b/doc/html/IdentityPoints_8h.html @@ -0,0 +1,96 @@ + + + + + + + +Templates -- Meow: meowpp/gra/IdentityPoints.h File Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      IdentityPoints.h File Reference
      +
      +
      +
      #include "../Self.h"
      +#include "../math/Vector.h"
      +#include "../oo/ObjBase.h"
      +#include <map>
      +#include <cstdlib>
      +
      +

      Go to the source code of this file.

      + + + + + +

      +Classes

      class  meow::IdentityPoints< ID, Scalar >
       把一個 std::map<ID,Vector<Scalar> > 包起來 More...
       
      + + + +

      +Namespaces

      namespace  meow
       
      +
      +
      + + + + + diff --git a/doc/html/IdentityPoints_8h_source.html b/doc/html/IdentityPoints_8h_source.html new file mode 100644 index 0000000..e93de3f --- /dev/null +++ b/doc/html/IdentityPoints_8h_source.html @@ -0,0 +1,253 @@ + + + + + + + +Templates -- Meow: meowpp/gra/IdentityPoints.h Source File + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      IdentityPoints.h
      +
      +
      +Go to the documentation of this file.
      1 #ifndef gra_IdentityPoints_H__
      +
      2 #define gra_IdentityPoints_H__
      +
      3 
      +
      4 #include "../Self.h"
      +
      5 
      +
      6 #include "../math/Vector.h"
      +
      7 
      +
      8 #include "../oo/ObjBase.h"
      +
      9 
      +
      10 #include <map>
      +
      11 
      +
      12 #include <cstdlib>
      +
      13 
      +
      14 namespace meow {
      +
      15 
      +
      21 template<class ID, class Scalar>
      +
      22 class IdentityPoints: public ObjBase {
      +
      23 public:
      +
      24  typedef typename std::map<ID, Vector<Scalar> > IdentityPointsMap;
      +
      25  typedef typename IdentityPointsMap:: iterator IdentityPointsMapIter;
      +
      26  typedef typename IdentityPointsMap::const_iterator IdentityPointsMapIterK;
      +
      27 
      +
      28 private:
      +
      29  struct Myself {
      +
      30  IdentityPointsMap points_;
      +
      31  size_t dimension_;
      +
      32 
      +
      33  Myself() {
      +
      34  dimension_ = 1;
      +
      35  }
      +
      36  ~Myself() {
      +
      37  }
      +
      38  Myself& copyFrom(Myself const& b) {
      +
      39  points_ = b.points_;
      +
      40  dimension_ = b.dimension_;
      +
      41  return *this;
      +
      42  }
      +
      43  };
      +
      44 
      +
      45  Self<Myself> const self;
      +
      46 public:
      +
      50  IdentityPoints(): self(true) {
      +
      51  }
      +
      52 
      +
      56  IdentityPoints(IdentityPoints const& b): self(false) {
      +
      57  copyFrom(b);
      +
      58  }
      +
      59 
      + +
      64  }
      +
      65 
      + +
      70  self().copyFrom(b.self);
      +
      71  return *this;
      +
      72  }
      +
      73 
      + +
      78  self().referenceFrom(b.self);
      +
      79  return *this;
      +
      80  }
      +
      81 
      +
      85  void clear() {
      +
      86  self()->points_.clear();
      +
      87  }
      +
      88 
      +
      92  size_t size() const {
      +
      93  return self->points_.size();
      +
      94  }
      +
      95 
      +
      99  bool empty() const {
      +
      100  return (size() == 0u);
      +
      101  }
      +
      102 
      +
      106  bool exist(ID const& id) const {
      +
      107  return (self->points_.find(id) != self->points_.end());
      +
      108  }
      +
      109 
      +
      113  size_t dimension() const {
      +
      114  return self->dimension_;
      +
      115  }
      +
      116 
      +
      120  size_t dimension(size_t dim) {
      +
      121  self()->dimension_ = dim;
      +
      122  clear();
      +
      123  return dimension();
      +
      124  }
      +
      125 
      +
      129  size_t dimension(size_t dim, Scalar const& init_value) {
      +
      130  self()->dimension_ = dim;
      + +
      132  it = self()->points_.begin(); it != self()->points_.end(); ++it) {
      +
      133  it.second.dimension(dim, init_value);
      +
      134  }
      +
      135  return dimension();
      +
      136  }
      +
      137 
      + +
      142  return self->points_;
      +
      143  }
      +
      144 
      + +
      149  clear();
      +
      150  return identityPointsAdd(points);
      +
      151  }
      +
      152 
      + +
      157  for (IdentityPointsMapIterK it = points.begin(); it != points.end(); ++it) {
      +
      158  identityPointAdd(it.first, it.second);
      +
      159  }
      +
      160  return identityPoints();
      +
      161  }
      +
      162 
      +
      166  IdentityPointsMap const& identityPointsDel(std::set<ID> const& ids) {
      +
      167  for (typename std::set<ID>::const_iterator
      +
      168  it = ids.begin(); it != ids.end(); ++it) {
      +
      169  identityPointDel(*it);
      +
      170  }
      +
      171  return identityPoints();
      +
      172  }
      +
      173 
      +
      177  Vector<Scalar> identityPoint(ID const& id) const {
      +
      178  return (exist(id) ? self->points_.find(id)->second : Vector<Scalar>());
      +
      179  }
      +
      180 
      +
      184  Vector<Scalar> identityPoint(ID const& id, Vector<Scalar> const& b) {
      +
      185  if (b.dimension() == self->dimension_ && exist(id)) {
      +
      186  self()->points_[id].copyFrom(b);
      +
      187  }
      +
      188  return identityPoint(id);
      +
      189  }
      +
      190 
      + +
      195  if (b.dimension() == self->dimension_ && !exist(id)) {
      +
      196  self()->points_[id].copyFrom(b);
      +
      197  }
      +
      198  return identityPoint(id);
      +
      199  }
      +
      200 
      +
      204  void identityPointDel(ID const& id) {
      +
      205  self()->points_.erase(id);
      +
      206  }
      +
      207 
      + +
      212  return self()->points_[id];
      +
      213  }
      +
      214 
      + +
      219  return copyFrom(b);
      +
      220  }
      +
      221 
      +
      226  bool write(FILE* f, bool bin, unsigned int fg) const {
      +
      227  return false;
      +
      228  }
      +
      229 
      +
      234  bool read(FILE* f, bool bin, unsigned int fg) {
      +
      235  return false;
      +
      236  }
      +
      237 
      +
      242  ObjBase* create() const {
      +
      243  return new IdentityPoints();
      +
      244  }
      +
      245 
      +
      255  ObjBase* copyFrom(ObjBase const* b) {
      +
      256  return &(copyFrom(*(IdentityPoints*)b));
      +
      257  }
      +
      258 
      +
      263  char const* ctype() const{
      +
      264  static char const* ptr = typeid(*this).name();
      +
      265  return ptr;
      +
      266  }
      +
      267 
      +
      272  std::string type() const {
      +
      273  return std::string(ctype());
      +
      274  }
      +
      275 };
      +
      276 
      +
      277 }
      +
      278 
      +
      279 #endif // gra_IdentityPoints_H__
      +
      +
      + + + + + diff --git a/doc/html/KD__Tree_8h.html b/doc/html/KD__Tree_8h.html new file mode 100644 index 0000000..2e6ff9a --- /dev/null +++ b/doc/html/KD__Tree_8h.html @@ -0,0 +1,97 @@ + + + + + + + +Templates -- Meow: meowpp/dsa/KD_Tree.h File Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      KD_Tree.h File Reference
      +
      +
      +
      #include "../utility.h"
      +#include "../math/utility.h"
      +#include <cstdlib>
      +#include <vector>
      +#include <algorithm>
      +#include <queue>
      +
      +

      Go to the source code of this file.

      + + + + + +

      +Classes

      class  meow::KD_Tree< Vector, Scalar >
       k-dimension tree More...
       
      + + + +

      +Namespaces

      namespace  meow
       
      +
      +
      + + + + + diff --git a/doc/html/KD__Tree_8h_source.html b/doc/html/KD__Tree_8h_source.html new file mode 100644 index 0000000..9c80126 --- /dev/null +++ b/doc/html/KD__Tree_8h_source.html @@ -0,0 +1,324 @@ + + + + + + + +Templates -- Meow: meowpp/dsa/KD_Tree.h Source File + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      KD_Tree.h
      +
      +
      +Go to the documentation of this file.
      1 #ifndef dsa_KD_Tree_H__
      +
      2 #define dsa_KD_Tree_H__
      +
      3 
      +
      4 #include "../utility.h"
      +
      5 #include "../math/utility.h"
      +
      6 
      +
      7 #include <cstdlib>
      +
      8 
      +
      9 #include <vector>
      +
      10 #include <algorithm>
      +
      11 #include <queue>
      +
      12 
      +
      13 namespace meow {
      +
      14 
      +
      39 template<class Vector, class Scalar>
      +
      40 class KD_Tree {
      +
      41 private:
      +
      42  struct Node {
      +
      43  Vector vector_;
      +
      44  ssize_t lChild_;
      +
      45  ssize_t rChild_;
      +
      46 
      +
      47  Node(Vector v, ssize_t l, ssize_t r): vector_(v), lChild_(l), rChild_(r){
      +
      48  }
      +
      49  };
      +
      50  typedef std::vector<Node> Nodes;
      +
      51 
      +
      52  class Sorter {
      +
      53  private:
      +
      54  Nodes const* nodes_;
      +
      55  size_t cmp_;
      +
      56  public:
      +
      57  Sorter(Nodes const* nodes, size_t cmp):
      +
      58  nodes_(nodes), cmp_(cmp){
      +
      59  }
      +
      60  bool operator()(size_t const& a, size_t const& b) const{
      +
      61  if ((*nodes_)[a].vector_[cmp_] != (*nodes_)[b].vector_[cmp_]) {
      +
      62  return ((*nodes_)[a].vector_[cmp_] < (*nodes_)[b].vector_[cmp_]);
      +
      63  }
      +
      64  return ((*nodes_)[a].vector_ < (*nodes_)[b].vector_);
      +
      65  }
      +
      66  };
      +
      67  struct Answer {
      +
      68  ssize_t index_;
      +
      69  Scalar dist2_;
      +
      70  //
      +
      71  Answer(ssize_t index, Scalar dist2):
      +
      72  index_(index), dist2_(dist2) {
      +
      73  }
      +
      74  Answer(Answer const& answer2):
      +
      75  index_(answer2.index_), dist2_(answer2.dist2_) {
      +
      76  }
      +
      77  };
      +
      78  class AnswerCompare {
      +
      79  private:
      +
      80  Nodes const* nodes_;
      +
      81  bool cmpValue_;
      +
      82  public:
      +
      83  AnswerCompare(Nodes const* nodes, bool cmpValue):
      +
      84  nodes_(nodes), cmpValue_(cmpValue) {
      +
      85  }
      +
      86  bool operator()(Answer const& a, Answer const& b) const {
      +
      87  if (cmpValue_ == true && a.dist2_ == b.dist2_) {
      +
      88  return ((*nodes_)[a.index_].vector_ < (*nodes_)[b.index_].vector_);
      +
      89  }
      +
      90  return (a.dist2_ < b.dist2_);
      +
      91  }
      +
      92  };
      +
      93  typedef std::vector<Answer> AnswerV;
      +
      94  typedef std::priority_queue<Answer, AnswerV, AnswerCompare> Answers;
      +
      95  //
      +
      96  const ssize_t kNIL_;
      +
      97  //
      +
      98  Nodes nodes_;
      +
      99  size_t root_;
      +
      100  bool needRebuild_;
      +
      101  size_t dimension_;
      +
      102  //
      +
      103  Scalar distance2(Vector const& v1, Vector const& v2) const {
      +
      104  Scalar ret(0);
      +
      105  for(size_t i = 0; i < dimension_; i++){
      +
      106  ret += squ(v1[i] - v2[i]);
      +
      107  }
      +
      108  return ret;
      +
      109  }
      +
      110  //
      +
      111  void query(Vector const& v,
      +
      112  size_t nearestNumber,
      +
      113  AnswerCompare const& answerCompare,
      +
      114  ssize_t index,
      +
      115  int depth,
      +
      116  std::vector<Scalar>& dist2Vector,
      +
      117  Scalar dist2Minimum,
      +
      118  Answers *out) const {
      +
      119  if (index == kNIL_) return ;
      +
      120  size_t cmp = depth % dimension_;
      +
      121  ssize_t this_side, that_side;
      +
      122  if (!(nodes_[index].vector_[cmp] < v[cmp])) {
      +
      123  this_side = nodes_[index].lChild_;
      +
      124  that_side = nodes_[index].rChild_;
      +
      125  }else{
      +
      126  this_side = nodes_[index].rChild_;
      +
      127  that_side = nodes_[index].lChild_;
      +
      128  }
      +
      129  query(v, nearestNumber, answerCompare,
      +
      130  this_side, depth + 1,
      +
      131  dist2Vector, dist2Minimum,
      +
      132  out);
      +
      133  Answer my_ans(index, distance2(nodes_[index].vector_, v));
      +
      134  if (out->size() < nearestNumber || answerCompare(my_ans, out->top())) {
      +
      135  out->push(my_ans);
      +
      136  if (out->size() > nearestNumber) out->pop();
      +
      137  }
      +
      138  Scalar dist2_old(dist2Vector[cmp]);
      +
      139  dist2Vector[cmp] = squ(nodes_[index].vector_[cmp] - v[cmp]);
      +
      140  Scalar dist2Minimum2(dist2Minimum + dist2Vector[cmp] - dist2_old);
      +
      141  if (out->size() < nearestNumber || !(out->top().dist2_ < dist2Minimum)) {
      +
      142  query(v, nearestNumber, answerCompare,
      +
      143  that_side, depth + 1,
      +
      144  dist2Vector, dist2Minimum2,
      +
      145  out);
      +
      146  }
      +
      147  dist2Vector[cmp] = dist2_old;
      +
      148  }
      +
      149  ssize_t build(ssize_t beg,
      +
      150  ssize_t end,
      +
      151  std::vector<size_t>* orders,
      +
      152  int depth) {
      +
      153  if (beg > end) return kNIL_;
      +
      154  size_t tmp_order = dimension_;
      +
      155  size_t which_side = dimension_ + 1;
      +
      156  ssize_t mid = (beg + end) / 2;
      +
      157  size_t cmp = depth % dimension_;
      +
      158  for (ssize_t i = beg; i <= mid; i++) {
      +
      159  orders[which_side][orders[cmp][i]] = 0;
      +
      160  }
      +
      161  for (ssize_t i = mid + 1; i <= end; i++) {
      +
      162  orders[which_side][orders[cmp][i]] = 1;
      +
      163  }
      +
      164  for (size_t i = 0; i < dimension_; i++) {
      +
      165  if (i == cmp) continue;
      +
      166  size_t left = beg, right = mid + 1;
      +
      167  for (int j = beg; j <= end; j++) {
      +
      168  size_t ask = orders[i][j];
      +
      169  if(ask == orders[cmp][mid]) {
      +
      170  orders[tmp_order][mid] = ask;
      +
      171  }
      +
      172  else if(orders[which_side][ask] == 1) {
      +
      173  orders[tmp_order][right++] = ask;
      +
      174  }
      +
      175  else {
      +
      176  orders[tmp_order][left++] = ask;
      +
      177  }
      +
      178  }
      +
      179  for (int j = beg; j <= end; j++) {
      +
      180  orders[i][j] = orders[tmp_order][j];
      +
      181  }
      +
      182  }
      +
      183  nodes_[orders[cmp][mid]].lChild_ = build(beg, mid - 1, orders, depth + 1);
      +
      184  nodes_[orders[cmp][mid]].rChild_ = build(mid + 1, end, orders, depth + 1);
      +
      185  return orders[cmp][mid];
      +
      186  }
      +
      187 public:
      +
      189  typedef typename std::vector<Vector> Vectors;
      +
      190 
      +
      192  KD_Tree(): kNIL_(-1), root_(kNIL_), needRebuild_(false), dimension_(1) {
      +
      193  }
      +
      194 
      +
      196  KD_Tree(size_t dimension):
      +
      197  kNIL_(-1), root_(kNIL_), needRebuild_(false), dimension_(dimension) {
      +
      198  }
      +
      199 
      + +
      202  }
      +
      203 
      +
      207  void insert(Vector const& v) {
      +
      208  nodes_.push_back(Node(v, kNIL_, kNIL_));
      +
      209  needRebuild_ = true;
      +
      210  }
      +
      211 
      +
      215  bool erase(Vector const& v) {
      +
      216  for (size_t i = 0, I = nodes_.size(); i < I; i++) {
      +
      217  if (nodes_[i] == v) {
      +
      218  if (i != I - 1) {
      +
      219  std::swap(nodes_[i], nodes_[I - 1]);
      +
      220  }
      +
      221  needRebuild_ = true;
      +
      222  return true;
      +
      223  }
      +
      224  }
      +
      225  return false;
      +
      226  }
      +
      227 
      +
      231  void build(){
      +
      232  if (needRebuild_) {
      +
      233  forceBuild();
      +
      234  }
      +
      235  }
      +
      236 
      +
      240  void forceBuild() {
      +
      241  std::vector<size_t> *orders = new std::vector<size_t>[dimension_ + 2];
      +
      242  for (size_t j = 0; j < dimension_ + 2; j++) {
      +
      243  orders[j].resize(nodes_.size());
      +
      244  }
      +
      245  for (size_t j = 0; j < dimension_; j++) {
      +
      246  for (size_t i = 0, I = nodes_.size(); i < I; i++) {
      +
      247  orders[j][i] = i;
      +
      248  }
      +
      249  std::sort(orders[j].begin(), orders[j].end(), Sorter(&nodes_, j));
      +
      250  }
      +
      251  root_ = build(0, (ssize_t)nodes_.size() - 1, orders, 0);
      +
      252  delete [] orders;
      +
      253  needRebuild_ = false;
      +
      254  }
      +
      255 
      +
      263  Vectors query(Vector const& v,
      +
      264  size_t nearestNumber,
      +
      265  bool compareWholeVector) const {
      +
      266  ((KD_Tree*)this)->build();
      +
      267  AnswerCompare answer_compare(&nodes_, compareWholeVector);
      +
      268  Answers answer_set(answer_compare);
      +
      269  std::vector<Scalar> tmp(dimension_, 0);
      +
      270  query(v, nearestNumber,
      +
      271  answer_compare,
      +
      272  root_, 0,
      +
      273  tmp, Scalar(0),
      +
      274  &answer_set);
      +
      275  Vectors ret(answer_set.size());
      +
      276  for (int i = (ssize_t)answer_set.size() - 1; i >= 0; i--) {
      +
      277  ret[i] = nodes_[answer_set.top().index_].vector_;
      +
      278  answer_set.pop();
      +
      279  }
      +
      280  return ret;
      +
      281  }
      +
      282 
      +
      286  void clear() {
      +
      287  root_ = kNIL_;
      +
      288  nodes_.clear();
      +
      289  needRebuild_ = false;
      +
      290  }
      +
      291 
      +
      295  void reset(size_t dimension) {
      +
      296  clear();
      +
      297  dimension_ = dimension;
      +
      298  }
      +
      299 };
      +
      300 
      +
      301 }
      +
      302 
      +
      303 #endif // dsa_KD_Tree_H__
      +
      +
      + + + + + diff --git a/doc/html/LinearTransformation_8h.html b/doc/html/LinearTransformation_8h.html new file mode 100644 index 0000000..a840094 --- /dev/null +++ b/doc/html/LinearTransformation_8h.html @@ -0,0 +1,94 @@ + + + + + + + +Templates -- Meow: meowpp/math/LinearTransformation.h File Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      LinearTransformation.h File Reference
      +
      +
      +
      #include "Transformation.h"
      +#include "Matrix.h"
      +#include <cstdlib>
      +
      +

      Go to the source code of this file.

      + + + + + +

      +Classes

      class  meow::LinearTransformation< Scalar >
       A base class for implementing kinds of linear transformations. More...
       
      + + + +

      +Namespaces

      namespace  meow
       
      +
      +
      + + + + + diff --git a/doc/html/LinearTransformation_8h_source.html b/doc/html/LinearTransformation_8h_source.html new file mode 100644 index 0000000..d1df9ff --- /dev/null +++ b/doc/html/LinearTransformation_8h_source.html @@ -0,0 +1,137 @@ + + + + + + + +Templates -- Meow: meowpp/math/LinearTransformation.h Source File + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      LinearTransformation.h
      +
      +
      +Go to the documentation of this file.
      1 #ifndef math_LinearTransformation_H__
      +
      2 #define math_LinearTransformation_H__
      +
      3 
      +
      4 #include "Transformation.h"
      +
      5 #include "Matrix.h"
      +
      6 
      +
      7 #include <cstdlib>
      +
      8 
      +
      9 namespace meow {
      +
      10 
      +
      19 template<class Scalar>
      +
      20 class LinearTransformation: public Transformation<Scalar> {
      +
      21 private:
      +
      22  Matrix<Scalar> matrix_;
      +
      23 protected:
      +
      27  LinearTransformation(size_t inputRows, size_t outputRows, size_t psize):
      +
      28  Transformation<Scalar>(inputRows, 1u, outputRows, 1u, psize),
      +
      29  matrix_(outputRows, inputRows, Scalar(0.0)) {
      +
      30  }
      +
      31 
      +
      35  LinearTransformation(size_t inputRows, size_t outputRows, size_t psize,
      +
      36  Matrix<Scalar> const& m):
      +
      37  Transformation<Scalar>(inputRows, 1u, outputRows, 1u, psize),
      +
      38  matrix_(m) {
      +
      39  }
      +
      40 
      + +
      47  Transformation<Scalar>(b),
      +
      48  matrix_(b.matrix_) {
      +
      49  }
      +
      50 
      + + +
      58  matrix_.copyFrom(b.matrix_);
      +
      59  return *this;
      +
      60  }
      +
      61 
      + + +
      69  matrix_.referenceFrom(b.matrix_);
      +
      70  return *this;
      +
      71  }
      +
      72 
      + +
      80  matrix_.copyFrom(m);
      +
      81  return matrix_;
      +
      82  }
      +
      83 public:
      + +
      88  }
      +
      89 
      +
      95  virtual Matrix<Scalar> const& matrix() const {
      +
      96  return matrix_;
      +
      97  }
      +
      98 
      +
      104  virtual Matrix<Scalar> matrixInv() const {
      +
      105  return matrix_.inverse();
      +
      106  }
      +
      107 };
      +
      108 
      +
      109 }
      +
      110 
      +
      111 #endif // math_LinearTransformation_H__
      +
      +
      + + + + + diff --git a/doc/html/LinearTransformations_8h.html b/doc/html/LinearTransformations_8h.html new file mode 100644 index 0000000..df80fd6 --- /dev/null +++ b/doc/html/LinearTransformations_8h.html @@ -0,0 +1,97 @@ + + + + + + + +Templates -- Meow: meowpp/math/LinearTransformations.h File Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      LinearTransformations.h File Reference
      +
      +
      +
      #include "LinearTransformation.h"
      +#include "Matrix.h"
      +#include "utility.h"
      +#include "../Self.h"
      +#include "../geo/Vectors.h"
      +#include <cstdlib>
      +
      +

      Go to the source code of this file.

      + + + + + +

      +Classes

      class  meow::Rotation3D< Scalar >
       Rotation a point/vector alone an axis with given angle in 3D world. More...
       
      + + + +

      +Namespaces

      namespace  meow
       
      +
      +
      + + + + + diff --git a/doc/html/LinearTransformations_8h_source.html b/doc/html/LinearTransformations_8h_source.html new file mode 100644 index 0000000..f40b5e0 --- /dev/null +++ b/doc/html/LinearTransformations_8h_source.html @@ -0,0 +1,264 @@ + + + + + + + +Templates -- Meow: meowpp/math/LinearTransformations.h Source File + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      LinearTransformations.h
      +
      +
      +Go to the documentation of this file.
      1 #ifndef math_LinearTransformations_H__
      +
      2 #define math_LinearTransformations_H__
      +
      3 
      +
      4 #include "LinearTransformation.h"
      +
      5 #include "Matrix.h"
      +
      6 #include "utility.h"
      +
      7 #include "../Self.h"
      +
      8 #include "../geo/Vectors.h"
      +
      9 
      +
      10 #include <cstdlib>
      +
      11 
      +
      12 namespace meow {
      +
      13 
      +
      19 template<class Scalar>
      +
      20 class Rotation3D: public LinearTransformation<Scalar> {
      +
      21 private:
      +
      22  struct Myself {
      +
      23  Vector3D<Scalar> theta_;
      +
      24  bool need_;
      +
      25 
      +
      26  Myself() {
      +
      27  }
      +
      28  ~Myself() {
      +
      29  }
      +
      30  Myself& copyFrom(Myself const& b) {
      +
      31  theta_ = b.theta_;
      +
      32  need_ = b.need_;
      +
      33  return *this;
      +
      34  }
      +
      35  };
      +
      36 
      +
      37  Self<Myself> const& self;
      +
      38 
      +
      39  void calcMatrix() const {
      +
      40  if (self->need_) {
      +
      41  Vector3D<double> axis (self->theta_.normalize());
      +
      42  double angle(self->theta_.length());
      +
      43  double cs(cos(angle / 2.0));
      +
      44  double sn(sin(angle / 2.0));
      +
      45 
      +
      46  Matrix<Scalar> tmp(3, 3, Scalar(0.0));
      +
      47  tmp.entry(0, 0, 2*(squ(axis.x())-1.0)*squ(sn) + 1);
      +
      48  tmp.entry(1, 1, 2*(squ(axis.y())-1.0)*squ(sn) + 1);
      +
      49  tmp.entry(2, 2, 2*(squ(axis.z())-1.0)*squ(sn) + 1);
      +
      50  tmp.entry(0, 1, 2*axis.x()*axis.y()*squ(sn) - 2*axis.z()*cs*sn);
      +
      51  tmp.entry(1, 0, 2*axis.y()*axis.x()*squ(sn) + 2*axis.z()*cs*sn);
      +
      52  tmp.entry(0, 2, 2*axis.x()*axis.z()*squ(sn) + 2*axis.y()*cs*sn);
      +
      53  tmp.entry(2, 0, 2*axis.z()*axis.x()*squ(sn) - 2*axis.y()*cs*sn);
      +
      54  tmp.entry(1, 2, 2*axis.y()*axis.z()*squ(sn) - 2*axis.x()*cs*sn);
      +
      55  tmp.entry(2, 1, 2*axis.z()*axis.y()*squ(sn) + 2*axis.x()*cs*sn);
      +
      56  ((Rotation3D*)this)->matrix(tmp);
      +
      57  self()->need_ = false;
      +
      58  }
      +
      59  }
      +
      60 
      +
      61 public:
      +
      65  Rotation3D(): LinearTransformation<Scalar>(3u, 3u, 3u),
      +
      66  self(true) {
      +
      67  self()->theta_.x(Scalar(0));
      +
      68  self()->theta_.y(Scalar(0));
      +
      69  self()->theta_.z(Scalar(0));
      +
      70  self()->need_ = true;
      +
      71  calcMatrix();
      +
      72  }
      +
      73 
      + +
      78  self(false) {
      +
      79  copyFrom(b);
      +
      80  }
      +
      81 
      + +
      86  }
      +
      87 
      + + +
      96  self().copyFrom(b.self);
      +
      97  return *this;
      +
      98  }
      +
      99 
      + + +
      108  self().referenceFrom(b.self);
      +
      109  return *this;
      +
      110  }
      +
      111 
      +
      115  Scalar parameter(size_t i) const {
      +
      116  return theta(i);
      +
      117  }
      +
      118 
      +
      122  Scalar parameter(size_t i, Scalar const& s) {
      +
      123  return theta(i, s);
      +
      124  }
      +
      125 
      +
      134  Scalar const& theta(size_t i) const {
      +
      135  return self->theta_(i);
      +
      136  }
      +
      137 
      +
      147  Scalar const& theta(size_t i, Scalar const& s) {
      +
      148  if (theta(i) != s) {
      +
      149  if (i == 0) self()->theta_.x(s);
      +
      150  else if (i == 1) self()->theta_.y(s);
      +
      151  else if (i == 2) self()->theta_.z(s);
      +
      152  self()->need_ = true;
      +
      153  }
      +
      154  return theta(i);
      +
      155  }
      +
      156 
      +
      163  void axisAngle(Vector<Scalar> const& axis, Scalar const& angle) {
      +
      164  Vector<Scalar> n(axis.normalize());
      +
      165  for (size_t i = 0; i < 3; i++) {
      +
      166  theta(i, n(i) * angle);
      +
      167  }
      +
      168  }
      +
      169 
      +
      174  Rotation3D& add(Rotation3D const& r) {
      +
      175  for (size_t i = 0; i < 3; i++) {
      +
      176  theta(i, r.theta(i));
      +
      177  }
      +
      178  return *this;
      +
      179  }
      +
      180 
      + +
      217  if (self->need_) calcMatrix();
      + +
      219  }
      +
      220 
      + +
      247  if (self->need_) calcMatrix();
      + +
      249  }
      +
      250 
      +
      323  Matrix<Scalar> jacobian(Matrix<Scalar> const& x, size_t i) const {
      +
      324  if (self->need_) calcMatrix();
      +
      325  Matrix<Scalar> mid(3u, 3u, Scalar(0.0));
      +
      326  if (i == 0) {
      +
      327  mid.entry(1, 2, Scalar(-1.0));
      +
      328  mid.entry(2, 1, Scalar( 1.0));
      +
      329  }
      +
      330  else if(i == 1) {
      +
      331  mid.entry(0, 2, Scalar( 1.0));
      +
      332  mid.entry(2, 0, Scalar(-1.0));
      +
      333  }
      +
      334  else {
      +
      335  mid.entry(0, 1, Scalar(-1.0));
      +
      336  mid.entry(1, 0, Scalar( 1.0));
      +
      337  }
      +
      338  return mid * LinearTransformation<Scalar>::matrix() * x;
      +
      339  }
      +
      340 
      + +
      348  if (self->need_) calcMatrix();
      + +
      350  }
      +
      351 
      + +
      359  if (self->need_) calcMatrix();
      + +
      361  }
      +
      362 
      +
      370  Matrix<Scalar> jacobianInv(Matrix<Scalar> const& x, size_t i) const {
      +
      371  if (self->need_) calcMatrix();
      +
      372  Matrix<Scalar> mid(3u, 3u, Scalar(0.0));
      +
      373  if (i == 0) {
      +
      374  mid.entry(1, 2, Scalar(-1.0));
      +
      375  mid.entry(2, 1, Scalar( 1.0));
      +
      376  }
      +
      377  else if(i == 1) {
      +
      378  mid.entry(0, 2, Scalar( 1.0));
      +
      379  mid.entry(2, 0, Scalar(-1.0));
      +
      380  }
      +
      381  else {
      +
      382  mid.entry(0, 1, Scalar(-1.0));
      +
      383  mid.entry(1, 0, Scalar( 1.0));
      +
      384  }
      +
      385  return mid.transpose() * matrixInv() * x;
      +
      386  }
      +
      387 
      + +
      396  if (self->need_) calcMatrix();
      + +
      398  }
      +
      399 
      + +
      402  return copyFrom(b);
      +
      403  }
      +
      404 };
      +
      405 
      +
      406 }
      +
      407 
      +
      408 #endif // math_LinearTransformations_H__
      +
      +
      + + + + + diff --git a/doc/html/Matrix_8h.html b/doc/html/Matrix_8h.html new file mode 100644 index 0000000..181b78e --- /dev/null +++ b/doc/html/Matrix_8h.html @@ -0,0 +1,96 @@ + + + + + + + +Templates -- Meow: meowpp/math/Matrix.h File Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      Matrix.h File Reference
      +
      +
      +
      #include "utility.h"
      +#include "../Self.h"
      +#include <vector>
      +#include <algorithm>
      +#include <cstdlib>
      +
      +

      Go to the source code of this file.

      + + + + + +

      +Classes

      class  meow::Matrix< Entry >
       matrix More...
       
      + + + +

      +Namespaces

      namespace  meow
       
      +
      +
      + + + + + diff --git a/doc/html/Matrix_8h_source.html b/doc/html/Matrix_8h_source.html new file mode 100644 index 0000000..2a12c80 --- /dev/null +++ b/doc/html/Matrix_8h_source.html @@ -0,0 +1,414 @@ + + + + + + + +Templates -- Meow: meowpp/math/Matrix.h Source File + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      Matrix.h
      +
      +
      +Go to the documentation of this file.
      1 #ifndef math_Matrix_H__
      +
      2 #define math_Matrix_H__
      +
      3 
      +
      4 #include "utility.h"
      +
      5 
      +
      6 #include "../Self.h"
      +
      7 
      +
      8 #include <vector>
      +
      9 #include <algorithm>
      +
      10 
      +
      11 #include <cstdlib>
      +
      12 
      +
      13 namespace meow {
      +
      19 template<class Entry>
      +
      20 class Matrix {
      +
      21 private:
      +
      22  struct Myself {
      +
      23  size_t rows_;
      +
      24  size_t cols_;
      +
      25  std::vector<Entry> entries_;
      +
      26  Myself(): rows_(0), cols_(0), entries_(0) {
      +
      27  }
      +
      28  ~Myself() {
      +
      29  }
      +
      30  size_t index(size_t r, size_t c) const {
      +
      31  return r * cols_ + c;
      +
      32  }
      +
      33  Myself& copyFrom(Myself const& m) {
      +
      34  rows_ = m. rows_;
      +
      35  cols_ = m. cols_;
      +
      36  entries_ = m.entries_;
      +
      37  return *this;
      +
      38  }
      +
      39  };
      +
      40  Self<Myself> const self;
      +
      41 public:
      +
      48  Matrix(): self(true) { }
      +
      49 
      +
      57  Matrix(Matrix const& m): self(false) { self().copyFrom(m.self); }
      +
      58 
      +
      68  Matrix(size_t r, size_t c, Entry const& e): self(true) { reset(r, c, e); }
      +
      69 
      +
      71  ~Matrix() { }
      +
      72 
      +
      81  Matrix& copyFrom(Matrix const& m) {
      +
      82  self().copyFrom(m.self);
      +
      83  return *this;
      +
      84  }
      +
      85 
      + +
      95  self().referenceFrom(m.self);
      +
      96  return *this;
      +
      97  }
      +
      98 
      +
      100  void reset(size_t r, size_t c, Entry const& e) {
      +
      101  self()->rows_ = r;
      +
      102  self()->cols_ = c;
      +
      103  self()->entries_.clear();
      +
      104  self()->entries_.resize(r * c, e);
      +
      105  }
      +
      106 
      +
      108  bool valid() const {
      +
      109  return (rows() > 0 && cols() > 0);
      +
      110  }
      +
      111 
      +
      113  size_t rows() const {
      +
      114  return self->rows_;
      +
      115  }
      +
      116 
      +
      118  size_t cols() const {
      +
      119  return self->cols_;
      +
      120  }
      +
      121 
      +
      123  size_t size() const {
      +
      124  return rows() * cols();
      +
      125  }
      +
      126 
      +
      136  size_t rows(size_t r, Entry const& e) {
      +
      137  if (r != rows()) {
      +
      138  self()->entries_.resize(r * cols(), e);
      +
      139  self()->rows_ = r;
      +
      140  }
      +
      141  return rows();
      +
      142  }
      +
      143 
      +
      153  size_t cols(size_t c, Entry const& e) {
      +
      154  if (c != cols()) {
      +
      155  Self<Myself> const old(false);
      +
      156  old().copyFrom(self);
      +
      157  self()->entries_.resize(rows() * c);
      +
      158  self()->cols_ = c;
      +
      159  for (size_t i = 0, I = rows(); i < I; i++) {
      +
      160  size_t j, J1 = std::min(old->cols_, cols()), J2 = cols();
      +
      161  for (j = 0; j < J1; j++)
      +
      162  self()->entries_[self->index(i, j)] = old->entries_[old->index(i, j)];
      +
      163  for (j = J1; j < J2; j++)
      +
      164  self()->entries_[self->index(i, j)] = e;
      +
      165  }
      +
      166  }
      +
      167  return cols();
      +
      168  }
      +
      169 
      +
      180  size_t size(size_t r, size_t c, Entry const& e) {
      +
      181  cols(c, e);
      +
      182  rows(r, e);
      +
      183  return rows() * cols();
      +
      184  }
      +
      185 
      +
      187  Entry entry(size_t r, size_t c) const {
      +
      188  return self->entries_[self->index(r, c)];
      +
      189  }
      +
      190 
      +
      192  Entry entry(size_t r, size_t c, Entry const& e) {
      +
      193  self()->entries_[self->index(r, c)] = e;
      +
      194  return entry(r, c);
      +
      195  }
      +
      196 
      +
      207  void entries(ssize_t rFirst, ssize_t rLast,
      +
      208  ssize_t cFirst, ssize_t cLast,
      +
      209  Entry const& e) {
      +
      210  for (ssize_t r = rFirst; r <= rLast; r++) {
      +
      211  for (ssize_t c = cFirst; c <=cFirst; c++) {
      +
      212  entry(r, c, e);
      +
      213  }
      +
      214  }
      +
      215  }
      +
      216 
      +
      228  Matrix subMatrix(size_t rFirst, size_t rLast,
      +
      229  size_t cFirst, size_t cLast) const {
      +
      230  if (rFirst > rLast || cFirst > cLast) return Matrix();
      +
      231  if (rFirst == 0 || cFirst == 0) {
      +
      232  Matrix ret(*this);
      +
      233  ret.size(rLast + 1, cLast + 1, Entry(0));
      +
      234  return ret;
      +
      235  }
      +
      236  Matrix ret(rLast - rFirst + 1, cLast - cFirst + 1, entry(rFirst, cFirst));
      +
      237  for (size_t r = rFirst; r <= rLast; r++)
      +
      238  for (size_t c = cFirst; c <= cLast; c++)
      +
      239  ret.entry(r - rFirst, c - cFirst, entry(r, c));
      +
      240  return ret;
      +
      241  }
      +
      242 
      +
      244  Matrix row(size_t r) const {
      +
      245  return subMatrix(r, r, 0, cols() - 1);
      +
      246  }
      +
      247 
      +
      249  Matrix col(size_t c) const {
      +
      250  return subMatrix(0, rows() - 1, c, c);
      +
      251  }
      +
      252 
      +
      254  Matrix positive() const {
      +
      255  return *this;
      +
      256  }
      +
      257 
      +
      259  Matrix negative() const {
      +
      260  Matrix ret(*this);
      +
      261  for (size_t r = 0, R = rows(); r < R; r++)
      +
      262  for (size_t c = 0, C = cols(); c < C; c++)
      +
      263  ret.entry(r, c, -ret.entry(r, c));
      +
      264  return ret;
      +
      265  }
      +
      266 
      +
      271  Matrix add(Matrix const& m) const {
      +
      272  if (rows() != m.rows() || cols() != m.cols()) return Matrix();
      +
      273  Matrix ret(*this);
      +
      274  for (size_t r = 0, R = rows(); r < R; r++)
      +
      275  for (size_t c = 0, C = cols(); c < C; c++)
      +
      276  ret.entry(r, c, ret.entry(r, c) + m.entry(r, c));
      +
      277  return ret;
      +
      278  }
      +
      279 
      +
      284  Matrix sub(Matrix const& m) const {
      +
      285  if (rows() != m.rows() || cols() != m.cols()) return Matrix();
      +
      286  Matrix ret(*this);
      +
      287  for (size_t r = 0, R = rows(); r < R; r++)
      +
      288  for (size_t c = 0, C = cols(); c < C; c++)
      +
      289  ret.entry(r, c, ret.entry(r, c) - m.entry(r, c));
      +
      290  return ret;
      +
      291  }
      +
      292 
      +
      297  Matrix mul(Matrix const& m) const {
      +
      298  if (cols() != m.rows()) return Matrix();
      +
      299  Matrix ret(rows(), m.cols(), Entry(0));
      +
      300  for (size_t r = 0, R = rows(); r < R; r++)
      +
      301  for (size_t c = 0, C = m.cols(); c < C; c++)
      +
      302  for (size_t k = 0, K = cols(); k < K; k++)
      +
      303  ret.entry(r, c, ret.entry(r, c) + entry(r, k) * m.entry(k, c));
      +
      304  return ret;
      +
      305  }
      +
      306 
      +
      308  Matrix mul(Entry const& s) const {
      +
      309  Matrix ret(*this);
      +
      310  for (size_t r = 0, R = rows(); r < R; r++)
      +
      311  for (size_t c = 0, C = cols(); c < C; c++)
      +
      312  ret.entry(r, c, ret.entry(r, c) * s);
      +
      313  return ret;
      +
      314  }
      +
      315 
      +
      317  Matrix div(Entry const& s) const {
      +
      318  Matrix ret(*this);
      +
      319  for (size_t r = 0, R = rows(); r < R; r++)
      +
      320  for (size_t c = 0, C = cols(); c < C; c++)
      +
      321  ret.entry(r, c, ret.entry(r, c) / s);
      +
      322  return ret;
      +
      323  }
      +
      324 
      +
      326  Matrix identity() const {
      +
      327  Matrix ret(*this);
      +
      328  ret.identitied();
      +
      329  return ret;
      +
      330  }
      +
      331 
      + +
      338  for (size_t r = 0, R = rows(); r < R; r++)
      +
      339  for (size_t c = 0, C = cols(); c < C; c++)
      +
      340  entry(r, c, (r == c ? Entry(1) : Entry(0)));
      +
      341  return *this;
      +
      342  }
      +
      343 
      +
      349  Matrix inverse() const {
      +
      350  if (rows() != cols() || rows() == 0) return Matrix<Entry>();
      +
      351  Matrix tmp(rows(), cols() * 2, Entry(0));
      +
      352  for (size_t r = 0, R = rows(); r < R; r++) {
      +
      353  for (size_t c = 0, C = cols(); c < C; c++) {
      +
      354  tmp.entry(r, c, entry(r, c));
      +
      355  tmp.entry(r, c + cols(), (r == c ? Entry(1) : Entry(0)));
      +
      356  }
      +
      357  }
      +
      358  tmp.triangulared();
      +
      359  for (ssize_t r = rows() - 1; r >= 0; r--) {
      +
      360  if (tmp(r, r) == Entry(0)) return Matrix<Entry>();
      +
      361  for (ssize_t r2 = r - 1; r2 >= 0; r2--) {
      +
      362  Entry rat(-tmp.entry(r2, r) / tmp.entry(r, r));
      +
      363  for (size_t c = r, C = tmp.cols(); c < C; c++) {
      +
      364  tmp.entry(r2, c, tmp.entry(r2, c) + rat * tmp(r, c));
      +
      365  }
      +
      366  }
      +
      367  Entry rat(tmp.entry(r, r));
      +
      368  for (size_t c = cols(), C = tmp.cols(); c < C; c++) {
      +
      369  tmp.entry(r, c - cols(), tmp.entry(r, c) / rat);
      +
      370  }
      +
      371  }
      +
      372  tmp.size(cols(), rows(), Entry(0));
      +
      373  return tmp;
      +
      374  }
      +
      375 
      + +
      378  copyFrom(inverse());
      +
      379  return *this;
      +
      380  }
      +
      381 
      +
      383  Matrix transpose () const {
      +
      384  Matrix ret(cols(), rows(), Entry(0));
      +
      385  for (size_t r = 0, R = cols(); r < R; r++)
      +
      386  for (size_t c = 0, C = rows(); c < C; c++)
      +
      387  ret.entry(r, c, entry(c, r));
      +
      388  return ret;
      +
      389  }
      +
      390 
      + +
      393  copyFrom(transpose());
      +
      394  return *this;
      +
      395  }
      +
      396 
      +
      398  Matrix triangular() const {
      +
      399  Matrix<Entry> ret(*this);
      +
      400  ret.triangulared();
      +
      401  return ret;
      +
      402  }
      +
      403 
      + +
      406  for (size_t r = 0, c = 0, R = rows(), C = cols(); r < R && c < C; r++) {
      +
      407  ssize_t maxR;
      +
      408  for ( ; c < C; c++) {
      +
      409  maxR = -1;
      +
      410  for (size_t r2 = r; r2 < R; r2++)
      +
      411  if (maxR == -1 || tAbs(entry(r2, c)) > tAbs(entry(maxR, c)))
      +
      412  maxR = r2;
      +
      413  if (entry(maxR, c) != Entry(0)) break;
      +
      414  }
      +
      415  if (c >= C) break;
      +
      416  if (maxR != (ssize_t)r) {
      +
      417  for (size_t c2 = c; c2 < C; c2++)
      +
      418  std::swap(self()->entries_[self->index( r, c2)],
      +
      419  self()->entries_[self->index(maxR, c2)]);
      +
      420  }
      +
      421  for (size_t r2 = r + 1; r2 < R; r2++) {
      +
      422  Entry rati = -entry(r2, c) / entry(r, c);
      +
      423  entry(r2, c, Entry(0));
      +
      424  for (size_t c2 = c + 1; c2 < C; c2++)
      +
      425  entry(r2, c2, entry(r2, c2) + entry(r, c2) * rati);
      +
      426  }
      +
      427  }
      +
      428  return *this;
      +
      429  }
      +
      430 
      +
      432  Matrix& operator=(Matrix const& m) {
      +
      433  return copyFrom(m);
      +
      434  }
      +
      435 
      +
      437  Entry operator()(size_t r, size_t c) const {
      +
      438  return entry(r, c);
      +
      439  }
      +
      440 
      +
      442  Entry operator()(size_t r, size_t c, Entry const& e) {
      +
      443  return entry(r, c, e);
      +
      444  }
      +
      445 
      +
      447  Matrix operator+() const {
      +
      448  return positive();
      +
      449  }
      +
      450 
      +
      452  Matrix operator-() const {
      +
      453  return negative();
      +
      454  }
      +
      455 
      +
      457  Matrix operator+(Matrix const& m) const {
      +
      458  return add(m);
      +
      459  }
      +
      460 
      +
      462  Matrix operator-(Matrix const& m) const {
      +
      463  return sub(m);
      +
      464  }
      +
      465 
      +
      467  Matrix operator*(Matrix const& m) const {
      +
      468  return mul(m);
      +
      469  }
      +
      470 
      +
      472  Matrix operator*(Entry const& s) const {
      +
      473  return mul(s);
      +
      474  }
      +
      475 
      +
      477  Matrix operator/(Entry const& s) const {
      +
      478  return div(s);
      +
      479  }
      +
      480 };
      +
      481 
      +
      482 }
      +
      483 
      +
      484 #endif // math_Matrix_H__
      +
      +
      + + + + + diff --git a/doc/html/MergeableHeap_8h.html b/doc/html/MergeableHeap_8h.html new file mode 100644 index 0000000..bc13fa7 --- /dev/null +++ b/doc/html/MergeableHeap_8h.html @@ -0,0 +1,93 @@ + + + + + + + +Templates -- Meow: meowpp/dsa/MergeableHeap.h File Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      MergeableHeap.h File Reference
      +
      +
      +
      #include <cstdlib>
      +#include <algorithm>
      +
      +

      Go to the source code of this file.

      + + + + + +

      +Classes

      class  meow::MergeableHeap< Element >
       一個用 左偏樹 實作的 Maximum-Heap , 除了原本heap有的功能外, 還支援 merge 功能 More...
       
      + + + +

      +Namespaces

      namespace  meow
       
      +
      +
      + + + + + diff --git a/doc/html/MergeableHeap_8h_source.html b/doc/html/MergeableHeap_8h_source.html new file mode 100644 index 0000000..d397f82 --- /dev/null +++ b/doc/html/MergeableHeap_8h_source.html @@ -0,0 +1,193 @@ + + + + + + + +Templates -- Meow: meowpp/dsa/MergeableHeap.h Source File + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      MergeableHeap.h
      +
      +
      +Go to the documentation of this file.
      1 #ifndef dsa_MergeableHeap_H__
      +
      2 #define dsa_MergeableHeap_H__
      +
      3 
      +
      4 #include <cstdlib>
      +
      5 #include <algorithm>
      +
      6 
      +
      7 namespace meow {
      +
      8 
      +
      29 template<class Element>
      +
      30 class MergeableHeap { // maximum-heap
      +
      31 private:
      +
      32  struct Node {
      +
      33  Element value_;
      +
      34  Node* lChild_;
      +
      35  Node* rChild_;
      +
      36  size_t weight_;
      +
      37  Node(Element const& value):
      +
      38  value_(value), lChild_(NULL), rChild_(NULL), weight_(1){
      +
      39  }
      +
      40  };
      +
      41 
      +
      42  Node* root_;
      +
      43 
      +
      44  void clear(Node* node) {
      +
      45  if (node != NULL) {
      +
      46  clear(node->lChild_);
      +
      47  clear(node->rChild_);
      +
      48  delete node;
      +
      49  }
      +
      50  }
      +
      51  Node* dup(Node* node) {
      +
      52  if (node == NULL) return NULL;
      +
      53  Node* ret = new Node(node->value_);
      +
      54  ret->lChild_ = dup(node->lChild_);
      +
      55  ret->rChild_ = dup(node->rChild_);
      +
      56  ret->weight_ = 1;
      +
      57  ret->weight_ += (ret->lChild_ == NULL ? 0 : ret->lChild_->weight_);
      +
      58  ret->weight_ += (ret->rChild_ == NULL ? 0 : ret->rChild_->weight_);
      +
      59  return ret;
      +
      60  }
      +
      61  Node* merge(Node* left, Node* right) {
      +
      62  if (left == NULL) return right;
      +
      63  if (right == NULL) return left;
      +
      64  if (left->value_ < right->value_) {
      +
      65  std::swap(left, right);
      +
      66  }
      +
      67  left->rChild_ = merge(left->rChild_, right);
      +
      68  size_t lw = (left->lChild_ == NULL ? 0 : left->lChild_->weight_);
      +
      69  size_t rw = (left->rChild_ == NULL ? 0 : left->rChild_->weight_);
      +
      70  if (lw < rw) {
      +
      71  std::swap(left->lChild_, left->rChild_);
      +
      72  }
      +
      73  left->weight_ = 1 + lw + rw;
      +
      74  return left;
      +
      75  }
      +
      76 public:
      +
      78  MergeableHeap(): root_(NULL){
      +
      79  }
      +
      80 
      +
      82  MergeableHeap(MergeableHeap const& heap2): root_(dup(heap2.root_)) {
      +
      83  }
      +
      84 
      + +
      87  clear(root_);
      +
      88  }
      +
      89 
      + +
      92  delete root_;
      +
      93  root_ = dup(heap2.root_);
      +
      94  return *this;
      +
      95  }
      +
      96 
      +
      100  void moveTo(MergeableHeap* heap2){
      +
      101  heap2->clear();
      +
      102  heap2->root_ = root_;
      +
      103  root_ = NULL;
      +
      104  }
      +
      105 
      +
      109  Element const& top() const {
      +
      110  return root_->value_;
      +
      111  }
      +
      112 
      +
      116  size_t size() const {
      +
      117  return (root_ == NULL ? 0 : root_->weight_);
      +
      118  }
      +
      119 
      +
      123  bool empty() const {
      +
      124  return (size() == 0);
      +
      125  }
      +
      126 
      +
      130  void push(Element const& value) {
      +
      131  root_ = merge(root_, new Node(value));
      +
      132  }
      +
      133 
      +
      137  void pop() {
      +
      138  Node* l = root_->lChild_;
      +
      139  Node* r = root_->rChild_;
      +
      140  delete root_;
      +
      141  root_ = merge(l, r);
      +
      142  }
      +
      143 
      +
      147  void clear() {
      +
      148  clear(root_);
      +
      149  root_ = NULL;
      +
      150  }
      +
      151 
      +
      155  void merge(MergeableHeap* heap2) {
      +
      156  root_ = merge(root_, heap2->root_);
      +
      157  heap2->root_ = NULL;
      +
      158  }
      +
      159 
      + +
      162  return copyFrom(heap2);
      +
      163  }
      +
      164 };
      +
      165 
      +
      166 }
      +
      167 
      +
      168 #endif // dsa_MergeableHeap_H__
      +
      +
      + + + + + diff --git a/doc/html/ObjArray_8h.html b/doc/html/ObjArray_8h.html new file mode 100644 index 0000000..e2f7e26 --- /dev/null +++ b/doc/html/ObjArray_8h.html @@ -0,0 +1,98 @@ + + + + + + + +Templates -- Meow: meowpp/oo/ObjArray.h File Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      ObjArray.h File Reference
      +
      +
      +
      #include "ObjBase.h"
      +#include "../Self.h"
      +#include <vector>
      +#include <string>
      +#include <typeinfo>
      +#include <cstdio>
      +#include <cstdlib>
      +
      +

      Go to the source code of this file.

      + + + + + +

      +Classes

      class  meow::ObjArray< T >
       純粹把 std::vector 包起來, 變成繼承自 ObjBase More...
       
      + + + +

      +Namespaces

      namespace  meow
       
      +
      +
      + + + + + diff --git a/doc/html/ObjArray_8h_source.html b/doc/html/ObjArray_8h_source.html new file mode 100644 index 0000000..f0c7b05 --- /dev/null +++ b/doc/html/ObjArray_8h_source.html @@ -0,0 +1,235 @@ + + + + + + + +Templates -- Meow: meowpp/oo/ObjArray.h Source File + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      ObjArray.h
      +
      +
      +Go to the documentation of this file.
      1 #ifndef oo_ObjArray_H__
      +
      2 #define oo_ObjArray_H__
      +
      3 
      +
      4 #include "ObjBase.h"
      +
      5 
      +
      6 #include "../Self.h"
      +
      7 
      +
      8 #include <vector>
      +
      9 #include <string>
      +
      10 #include <typeinfo>
      +
      11 
      +
      12 #include <cstdio>
      +
      13 #include <cstdlib>
      +
      14 
      +
      15 namespace meow {
      +
      16 
      +
      22 template<class T>
      +
      23 class ObjArray: public ObjBase {
      +
      24 private:
      +
      25  struct Myself {
      +
      26  std::vector<T> array_;
      +
      27  Myself() {
      +
      28  }
      +
      29  ~Myself() {
      +
      30  }
      +
      31  Myself& copyFrom(Myself const& b) {
      +
      32  array_ = b.array_;
      +
      33  return *this;
      +
      34  }
      +
      35  };
      +
      36  Self<Myself> const self;
      +
      37 public:
      +
      38  ObjArray(): self(true) {
      +
      39  }
      +
      40 
      +
      41  ObjArray(ObjArray const& a): self(false) {
      +
      42  self().copyFrom(a.self);
      +
      43  }
      +
      44 
      +
      45  ObjArray(std::vector<T> const& a): self(true) {
      +
      46  self()->array_ = a;
      +
      47  }
      +
      48 
      +
      49  ObjArray(size_t sz, T const& e): self(true) {
      +
      50  self()->array_.resize(sz, e);
      +
      51  }
      +
      52 
      + +
      54  }
      +
      55 
      +
      56  ObjArray& copyFrom(ObjArray const& a) {
      +
      57  self().copyFrom(a.self);
      +
      58  return *this;
      +
      59  }
      +
      60 
      + +
      62  self().referenceFrom(a.self);
      +
      63  return *this;
      +
      64  }
      +
      65 
      +
      66  size_t size() const {
      +
      67  return self->array_.size();
      +
      68  }
      +
      69  bool empty() const {
      +
      70  return self->array_.empty();
      +
      71  }
      +
      72 
      +
      73  size_t size(size_t res, T const& i) {
      +
      74  self()->array_.resize(res, i);
      +
      75  return size();
      +
      76  }
      +
      77 
      +
      78  size_t size(size_t res) {
      +
      79  self()->array_.resize(res);
      +
      80  return size();
      +
      81  }
      +
      82 
      +
      83  void clear() {
      +
      84  self()->array_.clear();
      +
      85  }
      +
      86 
      +
      87  T const& entry(size_t i) const {
      +
      88  return self->array_[i];
      +
      89  }
      +
      90  T const& entry(size_t i, T const& e) {
      +
      91  self()->array_[i] = e;
      +
      92  return entry(i);
      +
      93  }
      +
      94 
      +
      95  T const& putBack(T const& e) {
      +
      96  self()->array_.push_back(e);
      +
      97  return entry(size() - 1);
      +
      98  }
      +
      99 
      +
      100  bool popBack() {
      +
      101  if (empty()) return false;
      +
      102  self()->array_.pop_back();
      +
      103  return true;
      +
      104  }
      +
      105 
      + +
      107  return copyFrom(a);
      +
      108  }
      +
      109 
      +
      110  T const& operator[](size_t i) const {
      +
      111  return self->array_[i];
      +
      112  }
      +
      113 
      +
      114  T& operator[](size_t i) {
      +
      115  return self()->array_[i];
      +
      116  }
      +
      117 
      +
      118  bool write(FILE* f, bool bin, unsigned int fg) const {
      +
      119  size_t sz = size();
      +
      120  if (bin) {
      +
      121  if (fwrite(&sz, sizeof(size_t), 1, f) < 1) return false;
      +
      122  }
      +
      123  else {
      +
      124  if (fprintf(f, "%lu\n", sz) < 1) return false;
      +
      125  }
      +
      126  for (size_t i = 0; i < sz; i++) {
      +
      127  if (self->array_[i].write(f, bin, fg) == false) return false;
      +
      128  }
      +
      129  return true;
      +
      130  }
      +
      131 
      +
      132  bool read(FILE* f, bool bin, unsigned int fg) {
      +
      133  size_t sz;
      +
      134  if (bin) {
      +
      135  if (fread(&sz, sizeof(size_t), 1, f) < 1) return false;
      +
      136  }
      +
      137  else {
      +
      138  if (fscanf(f, "%lu\n", &sz) < 0) return false;
      +
      139  }
      +
      140  size(sz);
      +
      141  for (size_t i = 0; i < sz; i++) {
      +
      142  if (self()->array_[i].read(f, bin, fg) == false) return false;
      +
      143  }
      +
      144  return true;
      +
      145  }
      +
      146 
      +
      147  ObjBase* create() const {
      +
      148  return new ObjArray();
      +
      149  }
      +
      150 
      +
      151  ObjBase* copyFrom(ObjBase const* b) {
      +
      152  return &(copyFrom(*b));
      +
      153  }
      +
      154 
      +
      155  char const* ctype() const {
      +
      156  return typeid(*this).name();
      +
      157  }
      +
      158 
      +
      159  std::string type() const {
      +
      160  return std::string(ctype());
      +
      161  }
      +
      162 };
      +
      163 
      +
      164 }
      +
      165 
      +
      166 #endif // oo_ObjArray_H__
      +
      +
      + + + + + diff --git a/doc/html/ObjBase_8h.html b/doc/html/ObjBase_8h.html new file mode 100644 index 0000000..1bd2b08 --- /dev/null +++ b/doc/html/ObjBase_8h.html @@ -0,0 +1,94 @@ + + + + + + + +Templates -- Meow: meowpp/oo/ObjBase.h File Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      ObjBase.h File Reference
      +
      +
      +
      #include <cstdio>
      +#include <typeinfo>
      +#include <string>
      +
      +

      Go to the source code of this file.

      + + + + + +

      +Classes

      class  meow::ObjBase
       一切物件的Base, 並要求每個物件都要有read, write, create, ... 等功能 More...
       
      + + + +

      +Namespaces

      namespace  meow
       
      +
      +
      + + + + + diff --git a/doc/html/ObjBase_8h_source.html b/doc/html/ObjBase_8h_source.html new file mode 100644 index 0000000..206ce88 --- /dev/null +++ b/doc/html/ObjBase_8h_source.html @@ -0,0 +1,112 @@ + + + + + + + +Templates -- Meow: meowpp/oo/ObjBase.h Source File + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      ObjBase.h
      +
      +
      +Go to the documentation of this file.
      1 #ifndef oo_ObjBase_H__
      +
      2 #define oo_ObjBase_H__
      +
      3 
      +
      4 #include <cstdio>
      +
      5 
      +
      6 #include <typeinfo>
      +
      7 #include <string>
      +
      8 
      +
      9 namespace meow{
      +
      10 
      +
      16 class ObjBase {
      +
      17 protected:
      +
      18  ObjBase(){ }
      +
      19 public:
      +
      20  virtual ~ObjBase(){ }
      +
      21  //
      +
      22  virtual bool write(FILE* f,bool bin,unsigned int fg) const { return false; }
      +
      23  virtual bool read(FILE* f,bool bin,unsigned int fg) { return false; }
      +
      24  //
      +
      25  virtual ObjBase* create() const { return NULL; }
      +
      26  virtual ObjBase* copyFrom(ObjBase const* b) { (*this) = (*b); return this; }
      +
      27  //
      +
      28  virtual char const* ctype() const{
      +
      29  static char const* ptr = typeid(*this).name();
      +
      30  return ptr;
      +
      31  }
      +
      32  virtual std::string type() const{ return std::string(ctype()); }
      +
      33  //
      +
      34  static char const* ctypeBase(){
      +
      35  static char const* ptr = typeid(ObjBase).name();
      +
      36  return ptr;
      +
      37  }
      +
      38  static std::string typeBase(){ return std::string(ctypeBase()); }
      +
      39 };
      +
      40 
      +
      41 }
      +
      42 
      +
      43 #endif // oo_ObjBase_H__
      +
      +
      + + + + + diff --git a/doc/html/ObjDictionary_8h.html b/doc/html/ObjDictionary_8h.html new file mode 100644 index 0000000..80f3017 --- /dev/null +++ b/doc/html/ObjDictionary_8h.html @@ -0,0 +1,98 @@ + + + + + + + +Templates -- Meow: meowpp/oo/ObjDictionary.h File Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      ObjDictionary.h File Reference
      +
      +
      +
      #include "ObjBase.h"
      +#include "../Self.h"
      +#include <string>
      +#include <typeinfo>
      +#include <map>
      +#include <cstdio>
      +#include <cstdlib>
      +
      +

      Go to the source code of this file.

      + + + + + +

      +Classes

      class  meow::ObjDictionary< Key, Value >
       純粹把 std::map 包起來, 變成繼承自 ObjBase More...
       
      + + + +

      +Namespaces

      namespace  meow
       
      +
      +
      + + + + + diff --git a/doc/html/ObjDictionary_8h_source.html b/doc/html/ObjDictionary_8h_source.html new file mode 100644 index 0000000..214f963 --- /dev/null +++ b/doc/html/ObjDictionary_8h_source.html @@ -0,0 +1,227 @@ + + + + + + + +Templates -- Meow: meowpp/oo/ObjDictionary.h Source File + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      ObjDictionary.h
      +
      +
      +Go to the documentation of this file.
      1 #ifndef oo_ObjDictionary_H__
      +
      2 #define oo_ObjDictionary_H__
      +
      3 
      +
      4 #include "ObjBase.h"
      +
      5 
      +
      6 #include "../Self.h"
      +
      7 
      +
      8 #include <string>
      +
      9 #include <typeinfo>
      +
      10 #include <map>
      +
      11 
      +
      12 #include <cstdio>
      +
      13 #include <cstdlib>
      +
      14 
      +
      15 namespace meow {
      +
      16 
      +
      22 template<class Key, class Value>
      +
      23 class ObjDictionary: public ObjBase {
      +
      24 private:
      +
      25  struct Myself {
      +
      26  std::map<Key, Value> dictionary_;
      +
      27  Myself() {
      +
      28  }
      +
      29  ~Myself() {
      +
      30  }
      +
      31  Myself& copyFrom(Myself const& b) {
      +
      32  dictionary_ = b.dictionary_;
      +
      33  return *this;
      +
      34  }
      +
      35  };
      +
      36  Self<Myself> const self;
      +
      37 public:
      +
      38  ObjDictionary(): self(true) {
      +
      39  }
      +
      40 
      +
      41  ObjDictionary(ObjDictionary const& d): self(false) {
      +
      42  self.copyFrom(b.self);
      +
      43  }
      +
      44 
      +
      45  ObjDictionary(std::map<Key, Value> const& d): self(true) {
      +
      46  self()->dictionary_ = d;
      +
      47  }
      +
      48 
      + +
      50  }
      +
      51 
      + +
      53  self().copyFrom(d.self);
      +
      54  return *this;
      +
      55  }
      +
      56 
      + +
      58  self().referenceFrom(d.self);
      +
      59  return *this;
      +
      60  }
      +
      61 
      +
      62  size_t size() const {
      +
      63  return self->dictionary_.size();
      +
      64  }
      +
      65  bool empty() const {
      +
      66  return self->dictionary_.empty();
      +
      67  }
      +
      68 
      +
      69  void clear() {
      +
      70  self()->dictionary_.clear();
      +
      71  }
      +
      72 
      +
      73  std::map<Key, Value>::const_iterator end() const {
      +
      74  return self->dictionary_.end();
      +
      75  }
      +
      76 
      +
      77  std::map<Key, Value>::iterator end() {
      +
      78  return self()->dictionary_.end();
      +
      79  }
      +
      80 
      +
      81  std::map<Key, Value>::const_iterator find(Key const& k) const {
      +
      82  return self->dictionary_.find(k);
      +
      83  }
      +
      84 
      +
      85  std::map<Key, Value>::iterator find(Key const& k) {
      +
      86  return self()->dictionary_.find(k);
      +
      87  }
      +
      88 
      +
      89  bool exist(Key const& k) const {
      +
      90  return (find() != end());
      +
      91  }
      +
      92 
      +
      93  void insert(Key const& k, Value const& v) {
      +
      94  self->dictionary_.insert(std::pair<Key, Value>(k, v));
      +
      95  }
      +
      96 
      + +
      98  return copyFrom(a);
      +
      99  }
      +
      100 
      +
      101  Value& operator[](Key const& k) {
      +
      102  return self()->dictionary_[k];
      +
      103  }
      +
      104 
      +
      105  bool write(FILE* f, bool bin, unsigned int fg) const {
      +
      106  size_t sz = size();
      +
      107  if (bin) {
      +
      108  if (fwrite(&sz, sizeof(size_t), 1, f) < 1) return false;
      +
      109  }
      +
      110  else {
      +
      111  if (fprintf(f, "%lu\n", sz) < 1) return false;
      +
      112  }
      +
      113  for (std::map<Key, Value>::const_iterator
      +
      114  it = self->dictionary_.begin(); it != self->dictionary_.end(); ++it) {
      +
      115  if (it->first .write(f, bin, fg) == false) return false;
      +
      116  if (it->second.write(f, bin, fg) == false) return false;
      +
      117  }
      +
      118  return true;
      +
      119  }
      +
      120 
      +
      121  bool read(FILE* f, bool bin, unsigned int fg) {
      +
      122  size_t sz;
      +
      123  if (bin) {
      +
      124  if (fread(&sz, sizeof(size_t), 1, f) < 1) return false;
      +
      125  }
      +
      126  else {
      +
      127  if (fscanf(f, "%lu\n", &sz) < 0) return false;
      +
      128  }
      +
      129  for (size_t i = 0; i < sz; i++) {
      +
      130  Key k;
      +
      131  Value v;
      +
      132  if (k.read(f, bin, fg) == false) return false;
      +
      133  if (v.read(f, bin, fg) == false) return false;
      +
      134  insert(k, v);
      +
      135  }
      +
      136  return true;
      +
      137  }
      +
      138 
      +
      139  ObjBase* create() const {
      +
      140  return new ObjDictionary();
      +
      141  }
      +
      142 
      +
      143  ObjBase* copyFrom(ObjBase const* b) {
      +
      144  return &(copyFrom(*(ObjDictionary*)b));
      +
      145  }
      +
      146 
      +
      147  char const* ctype() const {
      +
      148  return typeid(*this).name();
      +
      149  }
      +
      150 
      +
      151  std::string type() const {
      +
      152  return std::string(ctype());
      +
      153  }
      +
      154 };
      +
      155 
      +
      156 }
      +
      157 
      +
      158 #endif // oo_ObjDictionary_H__
      +
      +
      + + + + + diff --git a/doc/html/ObjProperties_8h.html b/doc/html/ObjProperties_8h.html new file mode 100644 index 0000000..a9cdf3b --- /dev/null +++ b/doc/html/ObjProperties_8h.html @@ -0,0 +1,93 @@ + + + + + + + +Templates -- Meow: meowpp/oo/ObjProperties.h File Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      ObjProperties.h File Reference
      +
      +
      +
      #include "ObjBase.h"
      +#include <cstdlib>
      +
      +

      Go to the source code of this file.

      + + + + + +

      +Classes

      class  meow::ObjProperties< SID >
       目前擺爛中 More...
       
      + + + +

      +Namespaces

      namespace  meow
       
      +
      +
      + + + + + diff --git a/doc/html/ObjProperties_8h_source.html b/doc/html/ObjProperties_8h_source.html new file mode 100644 index 0000000..1bb5177 --- /dev/null +++ b/doc/html/ObjProperties_8h_source.html @@ -0,0 +1,128 @@ + + + + + + + +Templates -- Meow: meowpp/oo/ObjProperties.h Source File + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      ObjProperties.h
      +
      +
      +Go to the documentation of this file.
      1 #ifndef oo_ObjProperties_H__
      +
      2 #define oo_ObjProperties_H__
      +
      3 
      +
      4 #include "ObjBase.h"
      +
      5 
      +
      6 #include <cstdlib>
      +
      7 
      +
      8 namespace meow {
      +
      9 
      +
      10 template<size_t SID>
      +
      11 
      +
      13 class ObjProperties: public ObjBase {
      +
      14 private:
      +
      15 public:
      +
      16  ObjProperties();
      +
      17 
      +
      18  ObjProperties(ObjProperties const& p);
      +
      19 
      +
      20  virtual ~ObjProperties();
      +
      21 
      +
      22  size_t propertySize() const;
      +
      23 
      +
      24  bool propertyEmpty() const;
      +
      25 
      +
      26  void propertyClear();
      +
      27 
      +
      28  ObjBase const* property(std::string name) const;
      +
      29 
      +
      30  ObjBase* property(std::string name);
      +
      31 
      +
      32  bool propertyAdd(std::string name, ObjBase* obj, bool autoRemove);
      +
      33 
      +
      34  bool propertyDel(std::string name);
      +
      35 
      +
      36  ObjProperties& properties() const;
      +
      37 
      + +
      39 
      +
      40  bool write(FILE* f, bool bin, unsigned int fg) const;
      +
      41 
      +
      42  bool read(FILE* f, bool bin, unsigned int fg);
      +
      43 
      +
      44  ObjBase* create() const;
      +
      45 
      +
      46  ObjBase* copyFrom(ObjBase const* b);
      +
      47 
      +
      48  char const* ctype() const;
      +
      49 
      +
      50  std::string type() const;
      +
      51 };
      +
      52 
      +
      53 }
      +
      54 
      +
      55 #endif // oo_ObjProperties_H__
      +
      +
      + + + + + diff --git a/doc/html/ObjSelector_8h.html b/doc/html/ObjSelector_8h.html new file mode 100644 index 0000000..be18e00 --- /dev/null +++ b/doc/html/ObjSelector_8h.html @@ -0,0 +1,104 @@ + + + + + + + +Templates -- Meow: meowpp/oo/ObjSelector.h File Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      ObjSelector.h File Reference
      +
      +
      +
      #include "ObjBase.h"
      +#include <utility>
      +#include <vector>
      +#include <string>
      +#include <map>
      +#include <cstdlib>
      +#include <cstdio>
      +
      +

      Go to the source code of this file.

      + + + + + +

      +Classes

      class  meow::ObjSelector< id >
       利用register的概念, 達到runtime用string選擇要new的class More...
       
      + + + +

      +Namespaces

      namespace  meow
       
      + + + +

      +Variables

      static const size_t meow::kGlobalSeletorID = 0
       
      +
      +
      + + + + + diff --git a/doc/html/ObjSelector_8h.js b/doc/html/ObjSelector_8h.js new file mode 100644 index 0000000..7e105da --- /dev/null +++ b/doc/html/ObjSelector_8h.js @@ -0,0 +1,5 @@ +var ObjSelector_8h = +[ + [ "ObjSelector", "classmeow_1_1ObjSelector.html", "classmeow_1_1ObjSelector" ], + [ "kGlobalSeletorID", "ObjSelector_8h.html#aaa678bbd106012a98ed5679e2ca8cc32", null ] +]; \ No newline at end of file diff --git a/doc/html/ObjSelector_8h_source.html b/doc/html/ObjSelector_8h_source.html new file mode 100644 index 0000000..d6240f4 --- /dev/null +++ b/doc/html/ObjSelector_8h_source.html @@ -0,0 +1,245 @@ + + + + + + + +Templates -- Meow: meowpp/oo/ObjSelector.h Source File + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      ObjSelector.h
      +
      +
      +Go to the documentation of this file.
      1 #ifndef oo_ObjSelector_H__
      +
      2 #define oo_ObjSelector_H__
      +
      3 
      +
      4 #include "ObjBase.h"
      +
      5 
      +
      6 #include <utility>
      +
      7 #include <vector>
      +
      8 #include <string>
      +
      9 #include <map>
      +
      10 
      +
      11 #include <cstdlib>
      +
      12 #include <cstdio>
      +
      13 
      +
      14 namespace meow{
      +
      15 
      +
      21 template<size_t id>
      +
      22 class ObjSelector {
      +
      23 private:
      +
      24  struct Info {
      +
      25  ObjSelector* parent_;
      +
      26  ObjBase const* pointer_;
      +
      27  bool autoDelete_;
      +
      28  //
      +
      29  Info(ObjSelector* parent,
      +
      30  ObjBase const* ptr,
      +
      31  bool autoDelete) {
      +
      32  parent_ = parent;
      +
      33  pointer_ = ptr;
      +
      34  autoDelete_ = autoDelete;
      +
      35  }
      +
      36  ~Info() {
      +
      37  if (autoDelete_) {
      +
      38  delete pointer_;
      +
      39  }
      +
      40  if (parent_ != NULL) {
      +
      41  parent_->me_.second = NULL;
      +
      42  }
      +
      43  }
      +
      44  };
      +
      45  friend struct Info;
      +
      46 
      +
      47  typedef typename std::map<std::string, Info*> Funcs;
      +
      48  typedef typename std::map<std::string, Info*>::iterator FuncsIterator;
      +
      49 
      +
      50  static Funcs& funcs() {
      +
      51  static Funcs f;
      +
      52  return f;
      +
      53  }
      +
      54  static Info* add(std::string name,
      +
      55  ObjSelector* parent,
      +
      56  ObjBase* ptr,
      +
      57  bool autoDelete) {
      +
      58  Info* info = new Info(parent, ptr, autoDelete);
      +
      59  del(name);
      +
      60  funcs()[name] = info;
      +
      61  return info;
      +
      62  }
      +
      63 
      +
      64  std::pair<std::string, Info*> me_;
      +
      65 public:
      +
      69  static void add(std::string name, ObjBase* obj, bool autoDelete) {
      +
      70  add(name, NULL, obj, autoDelete);
      +
      71  }
      +
      72 
      +
      76  static void add(ObjBase* obj, bool autoDelete) {
      +
      77  add(obj->type(), NULL, obj, autoDelete);
      +
      78  }
      +
      79 
      +
      83  static void del(std::string name) {
      +
      84  if (funcs().find(name) != funcs().end()) {
      +
      85  delete funcs()[name];
      +
      86  funcs().erase(name);
      +
      87  }
      +
      88  }
      +
      89 
      +
      93  static ObjBase const* get(std::string name) {
      +
      94  if (funcs().find(name) == funcs().end()) return NULL;
      +
      95  return funcs()[name]->pointer_;
      +
      96  }
      +
      97 
      +
      101  static ObjBase* create(std::string name) {
      +
      102  ObjBase const* ptr = get(name);
      +
      103  if(ptr == NULL) return NULL;
      +
      104  return ptr->create();
      +
      105  }
      +
      106 
      +
      110  static bool exist(ObjBase* obj) {
      +
      111  for (FuncsIterator it = funcs().begin(); it != funcs().end(); it++) {
      +
      112  if (it->second->pointer_ == obj ||
      +
      113  (it->second->pointer_ != NULL &&
      +
      114  it->second->pointer_->type() == obj->type())) {
      +
      115  return true;
      +
      116  }
      +
      117  }
      +
      118  return false;
      +
      119  }
      +
      120 
      +
      124  static std::string name(ObjBase* obj) {
      +
      125  for (FuncsIterator it = funcs().begin(); it != funcs().end(); it++) {
      +
      126  if (it->second->pointer_ == obj ||
      +
      127  (it->second->pointer_ != NULL &&
      +
      128  it->second->pointer_->type() == obj->type())) {
      +
      129  return it->first;
      +
      130  }
      +
      131  }
      +
      132  return std::string();
      +
      133  }
      +
      134 
      +
      138  static std::vector<std::string> names() {
      +
      139  std::vector<std::string> ret;
      +
      140  for (FuncsIterator it = funcs().begin(); it != funcs().end(); it++)
      +
      141  ret.push_back(it->first);
      +
      142  return ret;
      +
      143  }
      +
      144 
      +
      148  ObjSelector(std::string name, ObjBase* obj, bool autoDelete) {
      +
      149  me_.first = name;
      +
      150  me_.second = add(me_.first, this, obj, autoDelete);
      +
      151  }
      +
      152 
      +
      156  ObjSelector(ObjBase* obj, bool autoDelete) {
      +
      157  me_.first = obj->type();
      +
      158  me_.second = add(me_.first, this, obj, autoDelete);
      +
      159  }
      +
      160 
      + +
      163  if (me_.second != NULL) {
      +
      164  del(me_.first);
      +
      165  }
      +
      166  }
      +
      167 
      +
      171  static bool write(FILE* f, bool binary, ObjBase* obj, unsigned int fg) {
      +
      172  if (!exist(obj)) return false;
      +
      173  char const* nme = name(obj).c_str();
      +
      174  size_t len = strlen(nme);
      +
      175  if (binary) {
      +
      176  if (fwrite(&len, sizeof(size_t ), 1, f) < 1) return false;
      +
      177  if (fwrite(nme , sizeof(char ), len, f) < len) return false;
      +
      178  if (fwrite(&fg , sizeof(unsigned int), 1, f) < 1) return false;
      +
      179  } else {
      +
      180  if (fprintf(f, "%s %u\n", nme, fg) < 2) return false;
      +
      181  }
      +
      182  return obj->write(f, binary, fg);
      +
      183  }
      +
      184 
      +
      188  static ObjBase* read(FILE* f, bool binary) {
      +
      189  char name[2048];
      +
      190  size_t len;
      +
      191  unsigned int fg;
      +
      192  if (binary) {
      +
      193  if (fread(&len, sizeof(size_t ), 1, f) < 1) return NULL;
      +
      194  if (fread(name, sizeof(char ), len, f) < len) return NULL;
      +
      195  if (fread(&fg , sizeof(unsigned int), 1, f) < 1) return NULL;
      +
      196  name[len] = '\0';
      +
      197  } else {
      +
      198  if (fscanf(f, "%s %u", name, &fg) < 2) return NULL;
      +
      199  }
      +
      200  ObjBase* ret = create(std::string(name));
      +
      201  if (ret != NULL && ret->read(f, binary, fg) == false) {
      +
      202  delete ret;
      +
      203  ret = NULL;
      +
      204  }
      +
      205  return ret;
      +
      206  }
      +
      207 };
      +
      208 
      +
      209 static const size_t kGlobalSeletorID = 0;
      +
      210 
      +
      211 }
      +
      212 
      +
      213 #endif // oo_ObjSelector_H__
      +
      +
      + + + + + diff --git a/doc/html/ObjTypes_8h.html b/doc/html/ObjTypes_8h.html new file mode 100644 index 0000000..789cd0b --- /dev/null +++ b/doc/html/ObjTypes_8h.html @@ -0,0 +1,119 @@ + + + + + + + +Templates -- Meow: meowpp/oo/ObjTypes.h File Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      ObjTypes.h File Reference
      +
      +
      +
      #include "../Self.h"
      +#include "ObjBase.h"
      +#include <cstdlib>
      +#include <cstdio>
      +
      +

      Go to the source code of this file.

      + + + + + + + + + + + + + +

      +Classes

      class  meow::ObjType< Type, ReaderWriter >
       純粹把給定的 Type 包起來, 變成繼承自 ObjBase More...
       
      class  meow::ReaderWriter_int
       
      class  meow::ReaderWriter_size_t
       
      class  meow::ReaderWriter_double
       
      class  meow::ReaderWriter_string
       
      + + + +

      +Namespaces

      namespace  meow
       
      + + + + + + + + + +

      +Typedefs

      typedef ObjType< int,
      +ReaderWriter_int > 
      meow::ObjInt
       
      typedef ObjType< size_t,
      +ReaderWriter_size_t > 
      meow::ObjSizeT
       
      typedef ObjType< double,
      +ReaderWriter_double > 
      meow::ObjDouble
       
      typedef ObjType< std::string,
      +ReaderWriter_string > 
      meow::ObjString
       
      +
      +
      + + + + + diff --git a/doc/html/ObjTypes_8h.js b/doc/html/ObjTypes_8h.js new file mode 100644 index 0000000..1c56482 --- /dev/null +++ b/doc/html/ObjTypes_8h.js @@ -0,0 +1,12 @@ +var ObjTypes_8h = +[ + [ "ObjType", "classmeow_1_1ObjType.html", "classmeow_1_1ObjType" ], + [ "ReaderWriter_int", "classmeow_1_1ReaderWriter__int.html", "classmeow_1_1ReaderWriter__int" ], + [ "ReaderWriter_size_t", "classmeow_1_1ReaderWriter__size__t.html", "classmeow_1_1ReaderWriter__size__t" ], + [ "ReaderWriter_double", "classmeow_1_1ReaderWriter__double.html", "classmeow_1_1ReaderWriter__double" ], + [ "ReaderWriter_string", "classmeow_1_1ReaderWriter__string.html", "classmeow_1_1ReaderWriter__string" ], + [ "ObjDouble", "ObjTypes_8h.html#a936afddaa5716457741832ee501c7a58", null ], + [ "ObjInt", "ObjTypes_8h.html#add07dcc8e06a1394daa3e6402bc40c4b", null ], + [ "ObjSizeT", "ObjTypes_8h.html#a52b9d9ec3b004a9335222e7bf30e521a", null ], + [ "ObjString", "ObjTypes_8h.html#a52d52e58feff5e9f9013279e2dbd2fee", null ] +]; \ No newline at end of file diff --git a/doc/html/ObjTypes_8h_source.html b/doc/html/ObjTypes_8h_source.html new file mode 100644 index 0000000..2131870 --- /dev/null +++ b/doc/html/ObjTypes_8h_source.html @@ -0,0 +1,268 @@ + + + + + + + +Templates -- Meow: meowpp/oo/ObjTypes.h Source File + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      ObjTypes.h
      +
      +
      +Go to the documentation of this file.
      1 #ifndef oo_ObjType_H__
      +
      2 #define oo_ObjType_H__
      +
      3 
      +
      4 #include "../Self.h"
      +
      5 #include "ObjBase.h"
      +
      6 
      +
      7 #include <cstdlib>
      +
      8 #include <cstdio>
      +
      9 
      +
      10 namespace meow {
      +
      11 
      +
      17 template<class Type, class ReaderWriter>
      +
      18 class ObjType: public ObjBase {
      +
      19 private:
      +
      20  struct Myself {
      +
      21  Type data_;
      +
      22  Myself() {
      +
      23  }
      +
      24  ~Myself() {
      +
      25  }
      +
      26  Myself copyFrom(Myself const& b) {
      +
      27  data_ = b.data_;
      +
      28  }
      +
      29  };
      +
      30  Self<data_> const self;
      +
      31 public:
      +
      33  ObjType(): self(true) {
      +
      34  }
      +
      35 
      +
      37  ObjType(ObjType const& a): self(false) {
      +
      38  self().copyFrom(a.self);
      +
      39  }
      +
      40 
      +
      42  ObyType(Type const& t): self(true) {
      +
      43  self().data_ = t;
      +
      44  }
      +
      45 
      + +
      47  }
      +
      48 
      +
      49  ObjType& copyFrom(ObjType const& a) {
      +
      50  self().copyFrom(a.self);
      +
      51  return *this;
      +
      52  }
      +
      53 
      + +
      55  self().referenceFrom(a.self);
      +
      56  return *this;
      +
      57  }
      +
      58 
      +
      59  Type const& access() const {
      +
      60  return self->data_;
      +
      61  }
      +
      62 
      +
      63  Type& modify() {
      +
      64  return self()->data_;
      +
      65  }
      +
      66 
      +
      67  ObjType& operator=(ObjType const& a) {
      +
      68  return copyFrom(a);
      +
      69  }
      +
      70 
      +
      71  Type const& operator()() const {
      +
      72  return access();
      +
      73  }
      +
      74 
      +
      75  Type& operator()() {
      +
      76  return modify();
      +
      77  }
      +
      78 
      +
      79  bool write(FILE* f, bool bin, unsigned int fg) const {
      +
      80  return ReaderWriter::write(f, bin, fg, self->data_);
      +
      81  }
      +
      82 
      +
      83  bool read(FILE* f, bool bin, unsigned int fg) {
      +
      84  return ReaderWriter::read(f, bin, fg, &(self()->data_));
      +
      85  }
      +
      86 
      +
      87  ObjBase* create() const {
      +
      88  return new ObjType();
      +
      89  }
      +
      90 
      +
      91  ObjBase* copyFrom(ObjBase const* b) {
      +
      92  return &(copyFrom(&(ObjType const*)b));
      +
      93  }
      +
      94 
      +
      95  char const* ctype() const {
      +
      96  static char const* ptr = typeid(*this).name();
      +
      97  return ptr;
      +
      98  }
      +
      99 
      +
      100  std::string type() const {
      +
      101  return std::string(ctype());
      +
      102  }
      +
      103 };
      +
      104 
      + +
      106 public:
      +
      107  static bool write(FILE* f, bool bin, unsigned int fg, int const& k) {
      +
      108  if (bin) {
      +
      109  return (fwrite(&k, sizeof(k), 1, f) == 1);
      +
      110  }
      +
      111  else {
      +
      112  return (fprintf(f, "%d\n", k) == 1);
      +
      113  }
      +
      114  }
      +
      115  static bool read(FILE* f, bool bin, unsigned int fg, int* k) {
      +
      116  if (bin) {
      +
      117  return (fread(k, sizeof(k), 1, f) == 1);
      +
      118  }
      +
      119  else {
      +
      120  return (fscanf(f, "%d", k) == 1);
      +
      121  }
      +
      122  }
      +
      123 };
      +
      124 
      + +
      126 public:
      +
      127  static bool write(FILE* f, bool bin, unsigned int fg, size_t const& k) {
      +
      128  if (bin) {
      +
      129  return (fwrite(&k, sizeof(k), 1, f) == 1);
      +
      130  }
      +
      131  else {
      +
      132  return (fprintf(f, "%lu\n", k) == 1);
      +
      133  }
      +
      134  }
      +
      135  static bool read(FILE* f, bool bin, unsigned int fg, size_t* k) {
      +
      136  if (bin) {
      +
      137  return (fread(k, sizeof(k), 1, f) == 1);
      +
      138  }
      +
      139  else {
      +
      140  return (fscanf(f, "%lu", k) == 1);
      +
      141  }
      +
      142  }
      +
      143 };
      +
      144 
      + +
      146 public:
      +
      147  static bool write(FILE* f, bool bin, unsigned int fg, double const& k) {
      +
      148  if (bin) {
      +
      149  return (fwrite(&k, sizeof(k), 1, f) == 1);
      +
      150  }
      +
      151  else {
      +
      152  return (fprintf(f, "%.15f\n", k) == 1);
      +
      153  }
      +
      154  }
      +
      155  static bool read(FILE* f, bool bin, unsigned int fg, double* k) {
      +
      156  if (bin) {
      +
      157  return (fread(k, sizeof(k), 1, f) == 1);
      +
      158  }
      +
      159  else {
      +
      160  return (fscanf(f, "%lf", k) == 1);
      +
      161  }
      +
      162  }
      +
      163 };
      +
      164 
      + +
      166 public:
      +
      167  static bool write(FILE* f, bool bin, unsigned int fg, std::string const& k) {
      +
      168  size_t len = k.size();
      +
      169  char const* buf = k.c_str();
      +
      170  if (bin) {
      +
      171  if (fwrite(&len, sizeof(len) , 1, f) < 1) return false;
      +
      172  if (fwrite( buf, sizeof(char), len, f) < len) return false;
      +
      173  }
      +
      174  else {
      +
      175  if (fprintf(f, "%s\n", buf) < 1) return false;
      +
      176  }
      +
      177  return true;
      +
      178  }
      +
      179  static bool read(FILE* f, bool bin, unsigned int fg, std::string* k) {
      +
      180  size_t len;
      +
      181  char buf[2048];
      +
      182  if (bin) {
      +
      183  if (fread(&len, sizeof(len) , 1, f) < 1) return false;
      +
      184  if (fread( buf, sizeof(char), len, f) < len) return false;
      +
      185  buf[len] = '\0';
      +
      186  }
      +
      187  else {
      +
      188  if (fscanf(f, "%s", buf) < 1) return false;
      +
      189  }
      +
      190  (*k) = buf;
      +
      191  return true;
      +
      192  }
      +
      193 };
      +
      194 
      + + + + +
      199 
      +
      200 }
      +
      201 
      +
      202 #endif // oo_ObjType_H__
      +
      +
      + + + + + diff --git a/doc/html/Photo_8h.html b/doc/html/Photo_8h.html new file mode 100644 index 0000000..4267808 --- /dev/null +++ b/doc/html/Photo_8h.html @@ -0,0 +1,101 @@ + + + + + + + +Templates -- Meow: meowpp/gra/Photo.h File Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      Photo.h File Reference
      +
      +
      +
      #include "../Self.h"
      +#include "../math/utility.h"
      +#include "../math/Matrix.h"
      +#include "../math/Transformations.h"
      +#include "../oo/ObjBase.h"
      +#include <vector>
      +#include <cmath>
      +#include <string>
      +#include <typeinfo>
      +#include <cstdlib>
      +
      +

      Go to the source code of this file.

      + + + + + +

      +Classes

      class  meow::Photo< Pixel >
       底片 More...
       
      + + + +

      +Namespaces

      namespace  meow
       
      +
      +
      + + + + + diff --git a/doc/html/Photo_8h_source.html b/doc/html/Photo_8h_source.html new file mode 100644 index 0000000..714b075 --- /dev/null +++ b/doc/html/Photo_8h_source.html @@ -0,0 +1,287 @@ + + + + + + + +Templates -- Meow: meowpp/gra/Photo.h Source File + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      Photo.h
      +
      +
      +Go to the documentation of this file.
      1 #ifndef gra_Photo_H__
      +
      2 #define gra_Photo_H__
      +
      3 
      +
      4 #include "../Self.h"
      +
      5 
      +
      6 #include "../math/utility.h"
      +
      7 #include "../math/Matrix.h"
      +
      8 #include "../math/Transformations.h"
      +
      9 
      +
      10 #include "../oo/ObjBase.h"
      +
      11 
      +
      12 #include <vector>
      +
      13 #include <cmath>
      +
      14 #include <string>
      +
      15 #include <typeinfo>
      +
      16 #include <cstdlib>
      +
      17 
      +
      18 namespace meow {
      +
      19 
      +
      27 template<class Pixel>
      +
      28 class Photo: public ObjBase {
      +
      29 private:
      +
      30  struct Myself {
      +
      31  Bitmap<Pixel> bmp_;
      + + +
      34  Myself(): proj_(3) {
      +
      35  }
      +
      36  ~Myself() {
      +
      37  }
      +
      38  Myself& copyFrom(Myself const& b) {
      +
      39  bmp_ .copyFrom(b. bmp_);
      +
      40  c_ .copyFrom(b. c_);
      +
      41  proj_.copyFrom(b.proj_);
      +
      42  return *this;
      +
      43  }
      +
      44  };
      +
      45 
      +
      46  Self<Myself> const self;
      +
      47 
      +
      51  Vector2D<double> bitmapCoord(Vector2D<double> const& yx) const {
      +
      52  return Vector2D<double>(yx.x() + center().x(), -yx.y() + center().y());
      +
      53  }
      +
      54 public:
      +
      60  Photo(): self(true) {
      +
      61  self()->proj_.focal(1.0);
      +
      62  }
      +
      63 
      +
      71  Photo(Photo const& b): self(false) {
      +
      72  copyFrom(b);
      +
      73  }
      +
      74 
      +
      82  Photo(Bitmap<Pixel> const& bmp): self(true) {
      +
      83  reset(bmp);
      +
      84  }
      +
      85 
      +
      94  Photo(Bitmap<Pixel> const& bmp, double f): self(true) {
      +
      95  reset(bmp, f);
      +
      96  }
      +
      97 
      +
      107  Photo(Bitmap<Pixel> const& bmp, double f, Vector2D<double> const& c):
      +
      108  self(true) {
      +
      109  reset(bmp, f, c);
      +
      110  }
      +
      111 
      +
      115  ~Photo() {
      +
      116  }
      +
      117 
      +
      123  Photo& copyFrom(Photo const& b) {
      +
      124  self().copyFrom(b.self);
      +
      125  return *this;
      +
      126  }
      +
      127 
      +
      133  Photo& referneceFrom(Photo const& b) {
      +
      134  self().referenceFrom(b.self);
      +
      135  return *this;
      +
      136  }
      +
      137 
      +
      145  void reset(Bitmap<Pixel> const& bmp) {
      +
      146  bitmap(bmp);
      +
      147  focal(sqrt(squ(width()) + squ(height())));
      +
      148  center(Vector2D<double>(bmp.width() / 2, bmp.height() / 2));
      +
      149  }
      +
      150 
      +
      159  void reset(Bitmap<Pixel> const& bmp, double f) {
      +
      160  bitmap(bmp);
      +
      161  focal(f);
      +
      162  center(Vector2D<double>(bmp.width() / 2, bmp.height() / 2));
      +
      163  }
      +
      164 
      +
      172  void reset(Bitmap<Pixel> const& bmp, double f, Vector2D<double> const& c) {
      +
      173  bitmap(bmp);
      +
      174  focal(f);
      +
      175  center(c);
      +
      176  }
      +
      177 
      +
      181  Bitmap<Pixel> const& bitmap() const {
      +
      182  return self->bmp_;
      +
      183  }
      +
      184 
      + +
      189  return self()->bmp_;
      +
      190  }
      +
      191 
      +
      198  Bitmap<Pixel> const& bitmap(Bitmap<Pixel> const& bmp) {
      +
      199  self()->bmp_ = bmp;
      +
      200  return bitmap();
      +
      201  }
      +
      202 
      +
      206  double focal() const {
      +
      207  return self->proj_.focal();
      +
      208  }
      +
      209 
      +
      216  double focal(double f) {
      +
      217  self()->proj_.focal(f);
      +
      218  return focal();
      +
      219  }
      +
      220 
      +
      226  Vector2D<double> const& center() const {
      +
      227  return self->c_;
      +
      228  }
      +
      229 
      + +
      236  return self()->c_;
      +
      237  }
      +
      238 
      + +
      247  self()->c_ = c;
      +
      248  return center();
      +
      249  }
      +
      250 
      +
      254  size_t width() const {
      +
      255  return self->bmp_.width();
      +
      256  }
      +
      257 
      +
      261  size_t height() const {
      +
      262  return self->bmp_.height();
      +
      263  }
      +
      264 
      +
      268  Pixel pixel(size_t y, size_t x) const {
      +
      269  return self->bmp_.pixel(y, x);
      +
      270  }
      +
      271 
      +
      275  Pixel pixel(size_t y, size_t x, Pixel const& p) {
      +
      276  self()->bmp_.pixel(y, x, p);
      +
      277  return pixel(y, x);
      +
      278  }
      +
      279 
      +
      287  bool inside(Vector2D<double> const& yx) const {
      +
      288  Vector2D<double> c = bitmapCoord(yx);
      +
      289  ssize_t h_max = (ssize_t)height() - 1;
      +
      290  ssize_t w_max = (ssize_t)width () - 1;
      +
      291  return (0 <= c.y() && c.y() <= h_max && 0 <= c.x() && c.x() <= w_max);
      +
      292  }
      +
      293 
      +
      301  bool inside(Vector3D<double> const& p) const {
      +
      302  return inside(Vector2D<double>(self->proj_.transformate(p.matrix())));
      +
      303  }
      +
      304 
      +
      314  Pixel color(Vector2D<double> const& yx) const {
      +
      315  if (!inside(yx)) return Pixel(0);
      +
      316  Vector2D<double> c(bitmapCoord(yx));
      +
      317  int y0 = (int)c.y();
      +
      318  int x0 = (int)c.x();
      +
      319  double h[2] = {1 - (c.y() - y0), c.y() - y0};
      +
      320  double w[2] = {1 - (c.x() - x0), c.x() - x0};
      +
      321  Pixel sum(0);
      +
      322  for (int dy = 0; dy < 2; dy++)
      +
      323  for (int dx = 0; dx < 2; dx++) {
      +
      324  sum = sum + bitmap().pixel(
      +
      325  std::min(y0 + dy, (int)height() - 1),
      +
      326  std::min(x0 + dx, (int)width () - 1)) * (w[dy] * h[dx]);
      +
      327  }
      +
      328  return sum;
      +
      329  }
      +
      330 
      +
      339  Pixel color(Vector3D<double> const& p) const {
      +
      340  return color(Vector2D<double>(self->proj_.transformate(p.matrix())));
      +
      341  }
      +
      342 
      +
      346  Photo& operator=(Photo const& b) {
      +
      347  return copyFrom(b);
      +
      348  }
      +
      349 
      +
      354  bool write(FILE* f, bool bin, unsigned int fg) const {
      +
      355  return false;
      +
      356  }
      +
      357 
      +
      362  bool read(FILE* f, bool bin, unsigned int fg) {
      +
      363  return false;
      +
      364  }
      +
      365 
      +
      370  ObjBase* create() const {
      +
      371  return new Photo();
      +
      372  }
      +
      373 
      +
      383  ObjBase* copyFrom(ObjBase const* b) {
      +
      384  return &(copyFrom(*(Photo*)b));
      +
      385  }
      +
      386 
      +
      391  char const* ctype() const{
      +
      392  static char const* ptr = typeid(*this).name();
      +
      393  return ptr;
      +
      394  }
      +
      395 
      +
      400  std::string type() const {
      +
      401  return std::string(ctype());
      +
      402  }
      +
      403 };
      +
      404 
      +
      405 }
      +
      406 
      +
      407 #endif // gra_Photo_H__
      +
      +
      + + + + + diff --git a/doc/html/RGB__Space_8h.html b/doc/html/RGB__Space_8h.html new file mode 100644 index 0000000..6f2ed7e --- /dev/null +++ b/doc/html/RGB__Space_8h.html @@ -0,0 +1,108 @@ + + + + + + + +Templates -- Meow: meowpp/colors/RGB_Space.h File Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      RGB_Space.h File Reference
      +
      +
      +
      #include "Color3_Space.h"
      +#include "../geo/Vectors.h"
      +#include "../math/utility.h"
      +#include <cstdlib>
      +
      +

      Go to the source code of this file.

      + + + + + + + + +

      +Classes

      class  meow::RGBi_Space
       以整數 Red, Green, Blue 三個值所組成的色彩空間 More...
       
      class  meow::RGBf_Space
       以浮點數Red, Green, Blue 三個值所組成的色彩空間 More...
       
      + + + +

      +Namespaces

      namespace  meow
       
      + + + + + + + +

      +Functions

      void meow::colorTransformate (RGBi_Space const &a, RGBf_Space *b)
       RGBi_Space to RGBf_Space More...
       
      void meow::colorTransformate (RGBf_Space const &a, RGBi_Space *b)
       RGBf_Space to RGBi_Space More...
       
      +
      +
      + + + + + diff --git a/doc/html/RGB__Space_8h.js b/doc/html/RGB__Space_8h.js new file mode 100644 index 0000000..5eaf3fb --- /dev/null +++ b/doc/html/RGB__Space_8h.js @@ -0,0 +1,7 @@ +var RGB__Space_8h = +[ + [ "RGBi_Space", "classmeow_1_1RGBi__Space.html", "classmeow_1_1RGBi__Space" ], + [ "RGBf_Space", "classmeow_1_1RGBf__Space.html", "classmeow_1_1RGBf__Space" ], + [ "colorTransformate", "RGB__Space_8h.html#a764c66bb63095b178107b276eb0cc24e", null ], + [ "colorTransformate", "RGB__Space_8h.html#a5612b34e84764e275631d662e5f210cb", null ] +]; \ No newline at end of file diff --git a/doc/html/RGB__Space_8h_source.html b/doc/html/RGB__Space_8h_source.html new file mode 100644 index 0000000..3be6022 --- /dev/null +++ b/doc/html/RGB__Space_8h_source.html @@ -0,0 +1,222 @@ + + + + + + + +Templates -- Meow: meowpp/colors/RGB_Space.h Source File + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      RGB_Space.h
      +
      +
      +Go to the documentation of this file.
      1 #ifndef colors_RGB_Space_H__
      +
      2 #define colors_RGB_Space_H__
      +
      3 
      +
      4 #include "Color3_Space.h"
      +
      5 #include "../geo/Vectors.h"
      +
      6 #include "../math/utility.h"
      +
      7 
      +
      8 #include <cstdlib>
      +
      9 
      +
      10 namespace meow {
      +
      11 
      +
      19 class RGBi_Space: public Color3_Space<int> {
      +
      20 public:
      + +
      22  Vector3D<int>(255, 255, 255),
      +
      23  Vector3D<int>( 0, 0, 0)) {
      +
      24  }
      +
      25  RGBi_Space(int c): Color3_Space<int>(Vector3D<int>( 0, 0, 0),
      +
      26  Vector3D<int>(255, 255, 255),
      +
      27  Vector3D<int>( c, c, c)) {
      +
      28  }
      + +
      30  Color3_Space<int>(Vector3D<int>( 0, 0, 0),
      +
      31  Vector3D<int>(255, 255, 255),
      +
      32  Vector3D<int>(v)) {
      +
      33  }
      + +
      35  }
      + +
      37  }
      +
      38  int const& rgbMin(size_t i) const { return min(i); }
      +
      39  int const& rMin( ) const { return min(0); }
      +
      40  int const& gMin( ) const { return min(1); }
      +
      41  int const& bMin( ) const { return min(2); }
      +
      42  int const& rgbMax(size_t i) const { return max(i); }
      +
      43  int const& rMax( ) const { return max(0); }
      +
      44  int const& gMax( ) const { return max(1); }
      +
      45  int const& bMax( ) const { return max(2); }
      +
      46  int const& rgb(size_t i) const { return val(i); }
      +
      47  int const& r( ) const { return rgb(0); }
      +
      48  int const& g( ) const { return rgb(1); }
      +
      49  int const& b( ) const { return rgb(2); }
      +
      50  int const& rgb(size_t i, int c) { return val(i, c); }
      +
      51  int const& r( int c) { return rgb(0, c); }
      +
      52  int const& g( int c) { return rgb(1, c); }
      +
      53  int const& b( int c) { return rgb(2, c); }
      +
      54  int& rgbGet(size_t i) { return valGet(i); }
      +
      55  int& rGet( ) { return rgbGet(0); }
      +
      56  int& gGet( ) { return rgbGet(1); }
      +
      57  int& bGet( ) { return rgbGet(2); }
      + +
      59  copyFrom(b);
      +
      60  return *this;
      +
      61  }
      +
      62  RGBi_Space operator+(RGBi_Space const& b) const {
      +
      63  return RGBi_Space(val_ + b.val_);
      +
      64  }
      +
      65  RGBi_Space operator-(RGBi_Space const& b) const {
      +
      66  return RGBi_Space(val_ - b.val_);
      +
      67  }
      +
      68  RGBi_Space operator*(int c) const {
      +
      69  return RGBi_Space(val_ * c);
      +
      70  }
      +
      71  RGBi_Space operator/(int c) const {
      +
      72  return RGBi_Space(val_ / c);
      +
      73  }
      +
      74  int operator*(RGBi_Space const& b) const {
      +
      75  return val_ * b.val_;
      +
      76  }
      +
      77 };
      +
      78 
      +
      86 class RGBf_Space: public Color3_Space<double> {
      +
      87 public:
      + +
      89  Vector3D<double>(1.0, 1.0, 1.0),
      +
      90  Vector3D<double>(0.0, 0.0, 0.0)) {
      +
      91  }
      +
      92  RGBf_Space(double c): Color3_Space<double>(Vector3D<double>(0.0, 0.0, 0.0),
      +
      93  Vector3D<double>(1.0, 1.0, 1.0),
      +
      94  Vector3D<double>( c, c, c)) {
      +
      95  }
      + +
      97  Color3_Space<double>(Vector3D<double>(0.0, 0.0, 0.0),
      +
      98  Vector3D<double>(1.0, 1.0, 1.0),
      +
      99  Vector3D<double>(v)) {
      +
      100  }
      + +
      102  }
      + +
      104  }
      +
      105  double const& rgbMin(size_t i) const { return min(i); }
      +
      106  double const& rMin( ) const { return min(0); }
      +
      107  double const& gMin( ) const { return min(1); }
      +
      108  double const& bMin( ) const { return min(2); }
      +
      109  double const& rgbMax(size_t i) const { return max(i); }
      +
      110  double const& rMax( ) const { return max(0); }
      +
      111  double const& gMax( ) const { return max(1); }
      +
      112  double const& bMax( ) const { return max(2); }
      +
      113  double const& rgb(size_t i) const { return val(i); }
      +
      114  double const& r( ) const { return rgb(0); }
      +
      115  double const& g( ) const { return rgb(1); }
      +
      116  double const& b( ) const { return rgb(2); }
      +
      117  double const& rgb(size_t i, double c) { return val(i, c); }
      +
      118  double const& r( double c) { return rgb(0, c); }
      +
      119  double const& g( double c) { return rgb(1, c); }
      +
      120  double const& b( double c) { return rgb(2, c); }
      +
      121  double& rgbGet(size_t i) { return valGet(i); }
      +
      122  double& rGet( ) { return rgbGet(0); }
      +
      123  double& gGet( ) { return rgbGet(1); }
      +
      124  double& bGet( ) { return rgbGet(2); }
      + +
      126  copyFrom(b);
      +
      127  return *this;
      +
      128  }
      + +
      130  return RGBf_Space(val_ + b.val_);
      +
      131  }
      + +
      133  return RGBf_Space(val_ - b.val_);
      +
      134  }
      +
      135  RGBf_Space operator*(double const& c) const {
      +
      136  return RGBf_Space(val_ * c);
      +
      137  }
      +
      138  RGBf_Space operator/(double const& c) const {
      +
      139  return RGBf_Space(val_ / c);
      +
      140  }
      +
      141  double operator*(RGBf_Space const& b) const {
      +
      142  return val_ * b.val_;
      +
      143  }
      +
      144 };
      +
      145 
      +
      149 inline void colorTransformate(RGBi_Space const& a, RGBf_Space* b) {
      +
      150  for (size_t i = 0; i < 3; ++i) {
      +
      151  b->rgb(i, ratioMapping<double>(a.rgbMin(i), a.rgbMax(i), a.rgb(i),
      +
      152  b->rgbMin(i), b->rgbMax(i)));
      +
      153  }
      +
      154 }
      +
      155 
      +
      159 inline void colorTransformate(RGBf_Space const& a, RGBi_Space* b) {
      +
      160  for (size_t i = 0; i < 3; ++i) {
      +
      161  b->rgb(i, ratioMapping<double>(a.rgbMin(i), a.rgbMax(i), a.rgb(i),
      +
      162  b->rgbMin(i), b->rgbMax(i)));
      +
      163  }
      +
      164 }
      +
      165 
      +
      166 } // meow
      +
      167 
      +
      168 #endif // colors_RGB_Space_H__
      +
      +
      + + + + + diff --git a/doc/html/SegmentTree_8h.html b/doc/html/SegmentTree_8h.html new file mode 100644 index 0000000..864b371 --- /dev/null +++ b/doc/html/SegmentTree_8h.html @@ -0,0 +1,95 @@ + + + + + + + +Templates -- Meow: meowpp/dsa/SegmentTree.h File Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      SegmentTree.h File Reference
      +
      +
      +
      #include "../math/utility.h"
      +#include <vector>
      +#include <algorithm>
      +#include <cstdlib>
      +
      +

      Go to the source code of this file.

      + + + + + +

      +Classes

      class  meow::SegmentTree< Value >
       中文名 線段樹 More...
       
      + + + +

      +Namespaces

      namespace  meow
       
      +
      +
      + + + + + diff --git a/doc/html/SegmentTree_8h_source.html b/doc/html/SegmentTree_8h_source.html new file mode 100644 index 0000000..8fcb5f0 --- /dev/null +++ b/doc/html/SegmentTree_8h_source.html @@ -0,0 +1,214 @@ + + + + + + + +Templates -- Meow: meowpp/dsa/SegmentTree.h Source File + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      SegmentTree.h
      +
      +
      +Go to the documentation of this file.
      1 #ifndef dsa_SegmentTree_H__
      +
      2 #define dsa_SegmentTree_H__
      +
      3 
      +
      4 #include "../math/utility.h"
      +
      5 
      +
      6 #include <vector>
      +
      7 #include <algorithm>
      +
      8 
      +
      9 #include <cstdlib>
      +
      10 
      +
      11 namespace meow {
      +
      44 template<class Value>
      +
      45 class SegmentTree {
      +
      46 private:
      +
      47  struct Node {
      +
      48  Value value_;
      +
      49  Value offset_;
      +
      50  bool sameFlage_;
      +
      51  };
      +
      52  //
      +
      53  size_t size_;
      +
      54  std::vector<Node> nodes_;
      +
      55  //
      +
      56  void update(size_t index, size_t size, Value const& value, bool override) {
      +
      57  if (override) {
      +
      58  nodes_[index].value_ = value * size;
      +
      59  nodes_[index].offset_ = value;
      +
      60  nodes_[index].sameFlage_ = true;
      +
      61  }
      +
      62  else {
      +
      63  nodes_[index].value_ = nodes_[index].value_ + value * size;
      +
      64  nodes_[index].offset_ = nodes_[index].offset_ + value;
      +
      65  }
      +
      66  }
      +
      67  void update(size_t l, size_t r, size_t L, size_t R,
      +
      68  size_t index, Value const& value,
      +
      69  bool override) {
      +
      70  if (l == L && r == R) {
      +
      71  update(index, R - L + 1, value, override);
      +
      72  return ;
      +
      73  }
      +
      74  size_t mid = (L + R) / 2;
      +
      75  if (L < R) {
      +
      76  update(index * 2 + 1, mid - L + 1,
      +
      77  nodes_[index].offset_, nodes_[index].sameFlage_);
      +
      78  update(index * 2 + 2, R - mid,
      +
      79  nodes_[index].offset_, nodes_[index].sameFlage_);
      +
      80  nodes_[index].offset_ = Value(0);
      +
      81  nodes_[index].sameFlage_ = false;
      +
      82  }
      +
      83  if (r <= mid) {
      +
      84  update(l, r, L ,mid, index * 2 + 1, value, override);
      +
      85  }
      +
      86  else if (mid + 1 <= l) {
      +
      87  update(l, r, mid + 1,R, index*2 + 2, value, override);
      +
      88  }
      +
      89  else {
      +
      90  update(l, mid , L, mid , index * 2 + 1, value, override);
      +
      91  update( mid + 1, r, mid + 1, R, index * 2 + 2, value, override);
      +
      92  }
      +
      93  nodes_[index].value_ = (
      +
      94  (nodes_[index * 2 + 1].value_ | nodes_[index * 2 + 2].value_)
      +
      95  + nodes_[index].offset_
      +
      96  );
      +
      97  }
      +
      98  Value query(size_t l, size_t r, size_t L, size_t R, size_t index) {
      +
      99  if (l == L && r == R) return nodes_[index].value_;
      +
      100  Value off = nodes_[index].offset_ * (r - l + 1);
      +
      101  if (nodes_[index].sameFlage_) return off;
      +
      102  size_t mid = (L + R) / 2;
      +
      103  if (r <= mid) return query(l, r, L , mid, index * 2 + 1) + off;
      +
      104  else if(mid + 1 <= l) return query(l, r, mid + 1, R, index * 2 + 2) + off;
      +
      105  else{
      +
      106  return ( query(l, mid , L, mid , index * 2 + 1)
      +
      107  | query( mid + 1, r, mid + 1, R, index * 2 + 2)
      +
      108  ) + off;
      +
      109  }
      +
      110  }
      +
      111  //
      +
      112  bool rangeCorrect(ssize_t* first, ssize_t* last) const {
      +
      113  if (*last < *first || *last < 0 || (ssize_t)size_ - 1 < *first)
      +
      114  return false;
      +
      115  *first = inRange((ssize_t)0, (ssize_t)size_ - 1, *first);
      +
      116  *last = inRange((ssize_t)0, (ssize_t)size_ - 1, *last );
      +
      117  return true;
      +
      118  }
      +
      119 public:
      + +
      122  reset(1);
      +
      123  }
      +
      124 
      +
      126  SegmentTree(size_t size) {
      +
      127  reset(size);
      +
      128  }
      +
      129 
      +
      131  SegmentTree(SegmentTree const& tree2):
      +
      132  size_(tree2.size_), nodes_(tree2.nodes_) {
      +
      133  }
      +
      134 
      + +
      139  size_ = b.size_;
      +
      140  nodes_ = b.nodes_;
      +
      141  return *this;
      +
      142  }
      +
      143 
      +
      147  size_t size() const {
      +
      148  return size_;
      +
      149  }
      +
      150 
      +
      154  void reset(size_t size){
      +
      155  size_ = std::max(size, (size_t)1);
      +
      156  nodes_.resize(size * 4);
      +
      157  nodes_[0].sameFlage_ = true;
      +
      158  nodes_[0].value_ = Value(0);
      +
      159  nodes_[0].offset_ = Value(0);
      +
      160  }
      +
      161 
      +
      165  Value query(ssize_t first, ssize_t last) const {
      +
      166  if (rangeCorrect(&first, &last) == false) return Value();
      +
      167  return ((SegmentTree*)this)->query(first, last, 0, size_ - 1, 0);
      +
      168  }
      +
      169 
      +
      173  void override(ssize_t first, ssize_t last, Value const& value) {
      +
      174  if (rangeCorrect(&first, &last) == false) return ;
      +
      175  update(first, last, 0, size_ - 1, 0, value, true);
      +
      176  }
      +
      177 
      +
      181  void offset(ssize_t first, ssize_t last, Value const& delta) {
      +
      182  if (rangeCorrect(&first, &last) == false) return ;
      +
      183  update(first, last, 0, size_ - 1, 0, delta, false);
      +
      184  }
      +
      185 
      + +
      188  return copyFrom(b);
      +
      189  }
      +
      190 };
      +
      191 
      +
      192 }
      +
      193 
      +
      194 #endif // dsa_SegmentTree_H__
      +
      +
      + + + + + diff --git a/doc/html/Self_8h.html b/doc/html/Self_8h.html new file mode 100644 index 0000000..42d79eb --- /dev/null +++ b/doc/html/Self_8h.html @@ -0,0 +1,92 @@ + + + + + + + +Templates -- Meow: meowpp/Self.h File Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      Self.h File Reference
      +
      +
      +
      #include <cstdlib>
      +
      +

      Go to the source code of this file.

      + + + + + +

      +Classes

      class  meow::Self< Data >
       具有copy on write, 且擁有比C++更靈活的reference機制 More...
       
      + + + +

      +Namespaces

      namespace  meow
       
      +
      +
      + + + + + diff --git a/doc/html/Self_8h_source.html b/doc/html/Self_8h_source.html new file mode 100644 index 0000000..2a1333a --- /dev/null +++ b/doc/html/Self_8h_source.html @@ -0,0 +1,191 @@ + + + + + + + +Templates -- Meow: meowpp/Self.h Source File + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      Self.h
      +
      +
      +Go to the documentation of this file.
      1 #ifndef Self_h__
      +
      2 #define Self_h__
      +
      3 
      +
      4 #include <cstdlib>
      +
      5 
      +
      6 namespace meow {
      +
      7 
      +
      68 template<class Data>
      +
      69 class Self {
      +
      70 private:
      +
      71  class Body {
      +
      72  private:
      +
      73  struct Kernel {
      +
      74  Data data_;
      +
      75  int counter_;
      +
      76  Kernel() {
      +
      77  counter_ = 1;
      +
      78  }
      +
      79  Kernel(Data const& data) {
      +
      80  counter_ = 1;
      +
      81  data_.copyFrom(data);
      +
      82  }
      +
      83  };
      +
      84  Kernel *pointer_;
      +
      85  int counter_;
      +
      86  public:
      +
      87  Body() {
      +
      88  counter_ = 1;
      +
      89  pointer_ = new Kernel;
      +
      90  }
      +
      91  Body(Body const& b) {
      +
      92  counter_ = 1;
      +
      93  pointer_ = b.pointer_;
      +
      94  pointer_->counter_++;
      +
      95  }
      +
      96  ~Body() {
      +
      97  pointer_->counter_--;
      +
      98  if (pointer_->counter_ <= 0) {
      +
      99  delete pointer_;
      +
      100  }
      +
      101  }
      +
      102  int attatch() { return ++counter_; }
      +
      103  int detatch() { return --counter_; }
      +
      104  Data const* access() const { return &(pointer_->data_); }
      +
      105  Data * modify() {
      +
      106  if (pointer_->counter_ > 1) {
      +
      107  pointer_->counter_--;
      +
      108  pointer_ = new Kernel(pointer_->data_);
      +
      109  }
      +
      110  return &(pointer_->data_);
      +
      111  }
      +
      112  };
      +
      113  Body* body_;
      +
      114 
      +
      115  void clear(Body* body) {
      +
      116  if (body != NULL) {
      +
      117  if (body->detatch() <= 0) {
      +
      118  delete body;
      +
      119  }
      +
      120  }
      +
      121  }
      +
      122 public:
      +
      130  Self(bool create_body) {
      +
      131  body_ = (create_body ? new Body() : NULL);
      +
      132  }
      +
      133 
      +
      135  Self(Self const& b);
      +
      136 
      +
      138  ~Self() {
      +
      139  clear(body_);
      +
      140  }
      +
      141 
      +
      143  Data const* operator->() const {
      +
      144  return body_->access();
      +
      145  }
      +
      146 
      +
      148  Data* operator->() {
      +
      149  return body_->modify();
      +
      150  }
      +
      151 
      +
      153  Self& operator()() const {
      +
      154  return *((Self*)this);
      +
      155  }
      +
      156 
      +
      166  void copyFrom(Self const& s) {
      +
      167  Body* old = body_;
      +
      168  body_ = new Body(*(s.body_));
      +
      169  clear(old);
      +
      170  }
      +
      171 
      +
      183  void referenceFrom(Self const& s) {
      +
      184  if (body_ != s.body_) {
      +
      185  clear(body_);
      +
      186  body_ = s.body_;
      +
      187  body_->attatch();
      +
      188  }
      +
      189  }
      +
      190 
      +
      197  bool same(Self const& s) const {
      +
      198  return (body_ == s.body_);
      +
      199  }
      +
      200 
      +
      209  bool equal(Self const& s) const {
      +
      210  if (same(s) || body_->access() == s.body_->access()) return true;
      +
      211  return (body_->access()->equal(*(s.body_->access())));
      +
      212  }
      +
      213 
      +
      220  bool referenceLess(Self const& s) const {
      +
      221  return (body_ < s.body_);
      +
      222  }
      +
      223 
      +
      225  void operator=(Self const& a);
      +
      226 };
      +
      227 
      +
      228 } // meow
      +
      229 
      +
      230 #endif // Self_h__
      +
      +
      + + + + + diff --git a/doc/html/SplayTree_8h.html b/doc/html/SplayTree_8h.html new file mode 100644 index 0000000..885f6e5 --- /dev/null +++ b/doc/html/SplayTree_8h.html @@ -0,0 +1,103 @@ + + + + + + + +Templates -- Meow: meowpp/dsa/SplayTree.h File Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      SplayTree.h File Reference
      +
      +
      +
      #include <cstdlib>
      +#include <utility>
      +#include "../math/utility.h"
      +
      +

      Go to the source code of this file.

      + + + + + + + + + + + + + + +

      +Classes

      class  meow::SplayTree< Key, Value >
       是一種神乎其技的資料結構, 維護一堆 Key->Value . 並且支援 一些 std::map 難以快速實踐的操作, 如 split , merge , keyOffset More...
       
      class  meow::SplayTree< Key, Value >::Element
       類似 stliterator ,不過這邊叫做Element More...
       
      class  meow::SplayTree_Range< Key, Value >
       基本上跟SplayTree一樣, 不過這邊結合線段樹, 多了區間操作 (線段樹相關operator定義請見 SegmentTree ) More...
       
      class  meow::SplayTree_Range< Key, Value >::Element
       類似 stliterator ,不過這邊叫做Element More...
       
      + + + +

      +Namespaces

      namespace  meow
       
      +
      +
      + + + + + diff --git a/doc/html/SplayTree_8h_source.html b/doc/html/SplayTree_8h_source.html new file mode 100644 index 0000000..6a5027e --- /dev/null +++ b/doc/html/SplayTree_8h_source.html @@ -0,0 +1,941 @@ + + + + + + + +Templates -- Meow: meowpp/dsa/SplayTree.h Source File + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      SplayTree.h
      +
      +
      +Go to the documentation of this file.
      1 #ifndef dsa_SplayTree_h__
      +
      2 #define dsa_SplayTree_h__
      +
      3 
      +
      4 #include <cstdlib>
      +
      5 #include <utility>
      +
      6 
      +
      7 #include "../math/utility.h"
      +
      8 
      +
      9 namespace meow {
      +
      10 
      +
      36 template<class Key, class Value>
      +
      37 class SplayTree {
      +
      38 private:
      +
      39  struct Node {
      +
      40  Key key_;
      +
      41  Key keyOffset_;
      +
      42  Value value_;
      +
      43  size_t size_;
      +
      44  Node* parent_;
      +
      45  Node* child_[2];
      +
      46 
      +
      47  Node(Key const& key, Value const& value):
      +
      48  key_(key), keyOffset_(0), value_(value) {
      +
      49  size_ = 1;
      +
      50  parent_ = NULL;
      +
      51  child_[0] = NULL;
      +
      52  child_[1] = NULL;
      +
      53  }
      +
      54  //
      +
      55  void keyOffset(Key const& delta) {
      +
      56  key_ = key_ + delta;
      +
      57  keyOffset_ = keyOffset_ + delta;
      +
      58  }
      +
      59  void syncDown() const {
      +
      60  for (size_t i = 0; i < 2; i++) {
      +
      61  if (child_[i] == NULL) continue;
      +
      62  child_[i]->keyOffset(keyOffset_);
      +
      63  }
      +
      64  ((Node*)this)->keyOffset_ = Key(0);
      +
      65  }
      +
      66  void syncUp() const {
      +
      67  ((Node*)this)->size_ = 1;
      +
      68  for (size_t i = 0; i < 2; i++) {
      +
      69  if (child_[i] == NULL) continue;
      +
      70  ((Node*)this)->size_ += child_[i]->size_;
      +
      71  }
      +
      72  }
      +
      73  };
      +
      74 
      +
      75  Node* root_;
      +
      76 
      +
      78  void connect(Node const* parent, size_t left_right, Node const* child) const {
      +
      79  Node* p = (Node*)parent;
      +
      80  Node* c = (Node*)child;
      +
      81  if (p != NULL) p->child_[left_right] = c;
      +
      82  if (c != NULL) c->parent_ = p;
      +
      83  }
      +
      84 
      +
      86  Node const* splay(Node const* node) const {
      +
      87  if (node != NULL && node->parent_ != NULL) {
      +
      88  for (const Node *g_grand, *grand, *parent, *child = node; ; ) {
      +
      89  g_grand = (grand = parent = child->parent_)->parent_;
      +
      90  size_t pc = (parent->child_[0] == child ? 0 : 1);
      +
      91  connect(parent, pc, child->child_[!pc]);
      +
      92  connect(child , !pc, parent);
      +
      93  if (g_grand != NULL) {
      +
      94  g_grand = (grand = g_grand)->parent_;
      +
      95  size_t gp = (grand->child_[0] == parent ? 0 : 1);
      +
      96  Node const* who = (pc == gp ? parent : child);
      +
      97  connect(grand, gp, who->child_[!gp]);
      +
      98  connect(who , !gp, grand);
      +
      99  grand->syncUp();
      +
      100  }
      +
      101  parent->syncUp();
      +
      102  child ->syncUp();
      +
      103  if (g_grand == NULL) {
      +
      104  connect(NULL, 0, child);
      +
      105  break;
      +
      106  }
      +
      107  connect(g_grand, (g_grand->child_[0] == grand ? 0 : 1), child);
      +
      108  }
      +
      109  }
      +
      110  return (((SplayTree*)this)->root_ = (Node*)node);
      +
      111  }
      +
      112 
      +
      113  void clear(Node* node) {
      +
      114  if (node == NULL) return ;
      +
      115  clear(node->child_[0]);
      +
      116  clear(node->child_[1]);
      +
      117  delete node;
      +
      118  }
      +
      119 
      +
      120  Node* dup(Node* node2) {
      +
      121  if (node2 == NULL) return NULL;
      +
      122  node2->syncDown();
      +
      123  Node* node = new Node(node2->key_, node2->value_);
      +
      124  connect(node, 0, dup(node2->child_[0]));
      +
      125  connect(node, 1, dup(node2->child_[1]));
      +
      126  node->syncUp();
      +
      127  return node;
      +
      128  }
      +
      129 
      +
      130  Node const* findKey(Node const* node, Key const& key) const {
      +
      131  Node const* ret = node;
      +
      132  while (node != NULL) {
      +
      133  node->syncDown();
      +
      134  ret = node;
      +
      135  if (!(key < node->key_)) {
      +
      136  if (!(node->key_< key)) break;
      +
      137  node = node->child_[1];
      +
      138  }
      +
      139  else {
      +
      140  node = node->child_[0];
      +
      141  }
      +
      142  }
      +
      143  return ret;
      +
      144  }
      +
      145  Node const* findMinMax(Node const* node, bool minimum) const {
      +
      146  Node const* ret = node;
      +
      147  for (int i = minimum ? 0 : 1; node != NULL; node = node->child_[i]) {
      +
      148  node->syncDown();
      +
      149  ret = node;
      +
      150  }
      +
      151  return ret;
      +
      152  }
      +
      153  Node const* findOrder(Node const* node, size_t order) const {
      +
      154  Node const* ret = node;
      +
      155  while (node != NULL) {
      +
      156  node->syncDown();
      +
      157  ret = node;
      +
      158  size_t ord = 1 + (node->child_[0] == NULL ? 0 : node->child_[0]->size_);
      +
      159  if (ord == order) return ret;
      +
      160  else if(ord < order){ node = node->child_[1]; order -= ord; }
      +
      161  else { node = node->child_[0]; }
      +
      162  }
      +
      163  return ret;
      +
      164  }
      +
      165 
      +
      166  void split(Node* root, Node** left, Node** right) {
      +
      167  if (root == NULL) { *left = NULL; *right = NULL; return ; }
      +
      168  root->syncDown();
      +
      169  *left = root;
      +
      170  *right = root->child_[1];
      +
      171  if (*right != NULL) {
      +
      172  (*left )->child_[1] = NULL;
      +
      173  (*right)->parent_ = NULL;
      +
      174  (*left )->syncUp();
      +
      175  }
      +
      176  }
      +
      177  Node* merge(Node* left, Node* right) {
      +
      178  if (left == NULL) return right;
      +
      179  if (right == NULL) return left ;
      +
      180  left->syncDown();
      +
      181  connect(left, 1, right);
      +
      182  left->syncUp();
      +
      183  return left;
      +
      184  }
      +
      185 public:
      +
      191  class Element{
      +
      192  private:
      +
      193  typedef std::pair<Key const&, Value&> Entry;
      +
      194  Entry* entry_;
      +
      195  Node * node_;
      +
      196  //
      +
      197  void reset(Node* node) {
      +
      198  node_ = node;
      +
      199  delete entry_;
      +
      200  entry_ = (node == NULL ? NULL : new Entry(node->key_, node->value_));
      +
      201  }
      +
      202  public:
      +
      203  Element(): entry_(NULL), node_(NULL) {
      +
      204  }
      +
      205  Element(Node* node): entry_(NULL), node_(NULL) {
      +
      206  reset(node);
      +
      207  }
      +
      208  Element(Element const& element2): entry_(NULL), node_(NULL) {
      +
      209  reset(element2.node_);
      +
      210  }
      + +
      212  delete entry_;
      +
      213  }
      +
      214 
      +
      216  Element& copyFrom(Element const& e) {
      +
      217  reset(e.node_);
      +
      218  return *this;
      +
      219  }
      +
      220 
      +
      222  bool same(Element const& e2) const {
      +
      223  return (node_ == e2.node_);
      +
      224  }
      +
      225 
      +
      227  Element& operator=(Element const& e2) {
      +
      228  return copyFrom(e2);
      +
      229  }
      +
      230 
      +
      232  Entry* operator->() {
      +
      233  return entry_;
      +
      234  }
      +
      235 
      +
      237  Entry& operator*() {
      +
      238  return *entry_;
      +
      239  }
      +
      240 
      +
      242  bool operator==(Element const& e2) const{
      +
      243  return same(e2);
      +
      244  }
      +
      245 
      +
      247  bool operator!=(Element const& e2) const{
      +
      248  return !same(e2);
      +
      249  }
      +
      250  };
      +
      251 
      +
      253  SplayTree(): root_(NULL) {
      +
      254  }
      +
      255 
      +
      257  SplayTree(SplayTree const& tree2):
      +
      258  root_(dup((Node*)(tree2.root_))) {
      +
      259  }
      +
      260 
      + +
      263  clear(root_);
      +
      264  }
      +
      265 
      +
      269  SplayTree& copyFrom(SplayTree const& tree2) {
      +
      270  clear(root_);
      +
      271  root_ = dup((Node*)(tree2.root_));
      +
      272  return *this;
      +
      273  }
      +
      274 
      +
      278  void moveTo(SplayTree* tree2) {
      +
      279  tree2->clear();
      +
      280  tree2->root_ = root_;
      +
      281  root_ = NULL;
      +
      282  }
      +
      283 
      +
      289  Element lowerBound(Key const& key) const {
      +
      290  splay(findKey(root_, key));
      +
      291  if (root_ == NULL || !(root_->key_ < key)) return Element(root_);
      +
      292  if (root_->child_[1] == NULL) return Element(NULL);
      +
      293  splay(findMinMax(root_->child_[1], true));
      +
      294  return Element(root_);
      +
      295  }
      +
      296 
      +
      302  Element upperBound(Key const& key) const {
      +
      303  splay(findKey(root_, key));
      +
      304  if (root_ == NULL || key < root_->key_) return Element(root_);
      +
      305  if (root_->child_[1] == NULL) return Element(NULL);
      +
      306  splay(findMinMax(root_->child_[1], true));
      +
      307  return Element(root_);
      +
      308  }
      +
      309 
      +
      315  Element rLowerBound(Key const& key) const {
      +
      316  splay(findKey(root_, key));
      +
      317  if (root_ == NULL || !(key < root_->key_)) return Element(root_);
      +
      318  if (root_->child_[0] == NULL) return Element(NULL);
      +
      319  splay(findMinMax(root_->child_[0], false));
      +
      320  return Element(root_);
      +
      321  }
      +
      322 
      +
      328  Element rUpperBound(Key const& key) const {
      +
      329  splay(findKey(root_, key));
      +
      330  if (root_ == NULL || root_->key_ < key) return Element(root_);
      +
      331  if (root_->child_[0] == NULL) return Element(NULL);
      +
      332  splay(findMinMax(root_->child_[0], false));
      +
      333  return Element(root_);
      +
      334  }
      +
      335 
      +
      339  Element find(Key const& key) const {
      +
      340  splay(findKey(root_, key));
      +
      341  if (root_ != NULL && !(key < root_->key_) && !(root_->key_ < key)) {
      +
      342  return Element(root_);
      +
      343  }
      +
      344  return Element(NULL);
      +
      345  }
      +
      346 
      +
      352  Element order(size_t order) const {
      +
      353  if (root_ == NULL || order >= root_->size_) return Element(NULL);
      +
      354  splay(findOrder(root_, order + 1));
      +
      355  return Element(root_);
      +
      356  }
      +
      357 
      +
      361  Element first() const {
      +
      362  splay(findMinMax(root_, true));
      +
      363  return Element(root_);
      +
      364  }
      +
      365 
      +
      369  Element last() const {
      +
      370  splay(findMinMax(root_, false));
      +
      371  return Element(root_);
      +
      372  }
      +
      373 
      +
      379  Element end() const {
      +
      380  return Element(NULL);
      +
      381  }
      +
      382 
      +
      386  size_t size() const {
      +
      387  return (root_ == NULL ? 0 : root_->size_);
      +
      388  }
      +
      389 
      +
      393  bool empty() const{
      +
      394  return (size() == 0);
      +
      395  }
      +
      396 
      +
      400  void clear() {
      +
      401  clear(root_);
      +
      402  root_ = NULL;
      +
      403  }
      +
      404 
      +
      411  bool insert(Key const& key, Value const& value) {
      +
      412  if (root_ == NULL) {
      +
      413  root_ = new Node(key, value);
      +
      414  }
      +
      415  else {
      +
      416  Node* parent = (Node*)findKey(root_, key);
      +
      417  if (!(parent->key_ < key) && !(key < parent->key_)) {
      +
      418  splay(parent);
      +
      419  return false;
      +
      420  }
      +
      421  Node* new_node = new Node(key, value);
      +
      422  connect(parent, (parent->key_ < key ? 1 : 0), new_node);
      +
      423  parent->syncUp();
      +
      424  splay(new_node);
      +
      425  }
      +
      426  return true;
      +
      427  }
      +
      428 
      +
      435  bool erase(Key const& key) {
      +
      436  if (root_ == NULL) return false;
      +
      437  Node* body = (Node*)findKey(root_, key);
      +
      438  if (body->key_ < key || key < body->key_) {
      +
      439  splay(body);
      +
      440  return false;
      +
      441  }
      +
      442  Node* ghost;
      +
      443  if (body->child_[1] == NULL) {
      +
      444  ghost = body->child_[0];
      +
      445  if (ghost != NULL) ghost->syncDown();
      +
      446  }
      +
      447  else {
      +
      448  ghost = (Node*)findMinMax(body->child_[1], true);
      +
      449  connect(ghost, 0, body->child_[0]);
      +
      450  if (ghost != body->child_[1]) {
      +
      451  connect(ghost->parent_, 0, ghost->child_[1]);
      +
      452  connect(ghost, 1, body->child_[1]);
      +
      453  for (Node* a = ghost->parent_; a != ghost; a = a->parent_)
      +
      454  a->syncUp();
      +
      455  }
      +
      456  ghost->syncUp();
      +
      457  }
      +
      458  Node* parent = body->parent_;
      +
      459  connect(parent, parent != NULL && parent->child_[0] == body ? 0 : 1, ghost);
      +
      460  delete body;
      +
      461  splay(ghost != NULL ? ghost : parent);
      +
      462  return true;
      +
      463  }
      +
      464 
      +
      468  void keyOffset(Key const& delta) {
      +
      469  if (root_ != NULL) {
      +
      470  root_->keyOffset(delta);
      +
      471  }
      +
      472  }
      +
      473 
      +
      477  void splitOut(Key const& upper_bound, SplayTree* right) {
      +
      478  right->clear();
      +
      479  if (rLowerBound(upper_bound) != end()) {
      +
      480  split(root_, &root_, &(right->root_));
      +
      481  }
      +
      482  else {
      +
      483  right->root_ = root_;
      +
      484  root_ = NULL;
      +
      485  }
      +
      486  }
      +
      487 
      +
      494  bool mergeAfter(SplayTree* tree2) {
      +
      495  if (root_ == NULL || tree2->root_ == NULL ||
      +
      496  last()->first < tree2->first()->first) {
      +
      497  root_ = merge(root_, tree2->root_);
      +
      498  tree2->root_ = NULL;
      +
      499  return true;
      +
      500  }
      +
      501  return false;
      +
      502  }
      +
      503 
      +
      511  bool merge(SplayTree* tree2) {
      +
      512  if (root_ == NULL || tree2->root_ == NULL ||
      +
      513  last()->first < tree2->first()->first) {
      +
      514  root_ = merge(root_, tree2->root_);
      +
      515  }
      +
      516  else if(tree2->last()->first < first()->first) {
      +
      517  root_ = merge(tree2->root_, root_);
      +
      518  }
      +
      519  else {
      +
      520  return false;
      +
      521  }
      +
      522  tree2->root_ = NULL;
      +
      523  return true;
      +
      524  }
      +
      525 
      +
      532  Value& operator[](Key const& key) {
      +
      533  if (find(key) == end()) insert(key, Value());
      +
      534  return root_->value_;
      +
      535  }
      +
      536 
      +
      538  SplayTree& operator=(SplayTree const& tree2) {
      +
      539  return copyFrom(tree2);
      +
      540  }
      +
      541 };
      +
      542 
      +
      568 template<class Key, class Value>
      + +
      570 private:
      +
      571  struct Node {
      +
      572  Value valueOffset_;
      +
      573  Value range_;
      +
      574  Key key_;
      +
      575  Key keyOffset_;
      +
      576  Value value_;
      +
      577  bool same_;
      +
      578  size_t size_;
      +
      579  Node* parent_;
      +
      580  Node* child_[2];
      +
      581 
      +
      582  Node(Key const& key, Value const& value):
      +
      583  valueOffset_(0), range_(value),
      +
      584  key_(key), keyOffset_(0), value_(value) {
      +
      585  same_ = false;
      +
      586  size_ = 1;
      +
      587  parent_ = NULL;
      +
      588  child_[0] = NULL;
      +
      589  child_[1] = NULL;
      +
      590  }
      +
      591  //
      +
      592  void keyOffset(Key const& delta) {
      +
      593  key_ = key_ + delta;
      +
      594  keyOffset_ = keyOffset_ + delta;
      +
      595  }
      +
      596  void valueUpdate(Value const& delta, bool over) {
      +
      597  if(over) {
      +
      598  value_ = delta * size_;
      +
      599  valueOffset_ = delta;
      +
      600  range_ = delta * size_;
      +
      601  same_ = true;
      +
      602  }
      +
      603  else {
      +
      604  value_ = value_ + delta * size_;
      +
      605  valueOffset_ = valueOffset_ + delta;
      +
      606  range_ = range_ + delta * size_;
      +
      607  }
      +
      608  }
      +
      609  void syncDown() const {
      +
      610  for (size_t i = 0; i < 2; i++) {
      +
      611  if (child_[i] == NULL) continue;
      +
      612  child_[i]->keyOffset(keyOffset_);
      +
      613  child_[i]->valueUpdate(valueOffset_, same_);
      +
      614  }
      +
      615  ((Node*)this)->keyOffset_ = Key(0);
      +
      616  ((Node*)this)->valueOffset_ = Value(0);
      +
      617  ((Node*)this)->same_ = false;
      +
      618  }
      +
      619  void syncUp() const {
      +
      620  ((Node*)this)->size_ = 1;
      +
      621  Value* v[3] = {&(((Node*)this)->value_), NULL, NULL};
      +
      622  size_t vct = 1;
      +
      623  for (size_t i = 0; i < 2; i++) {
      +
      624  if (child_[i] == NULL) continue;
      +
      625  ((Node*)this)->size_ += child_[i]->size_;
      +
      626  v[vct++] = &(child_[i]->range_);
      +
      627  }
      +
      628  if (vct == 1) ((Node*)this)->range_ = (*v[0]);
      +
      629  else if(vct == 2) ((Node*)this)->range_ = (*v[0]) | (*v[1]);
      +
      630  else ((Node*)this)->range_ = (*v[0]) | (*v[1]) | (*v[2]);
      +
      631  }
      +
      632  };
      +
      633 
      +
      634  Node* root_;
      +
      635 
      +
      637  void connect(Node const* parent, size_t left_right, Node const* child) const {
      +
      638  Node* p = (Node*)parent;
      +
      639  Node* c = (Node*)child;
      +
      640  if (p != NULL) p->child_[left_right] = c;
      +
      641  if (c != NULL) c->parent_ = p;
      +
      642  }
      +
      643 
      +
      645  Node const* splay(Node const* node) const {
      +
      646  if (node != NULL && node->parent_ != NULL) {
      +
      647  for (const Node *g_grand, *grand, *parent, *child = node; ; ) {
      +
      648  g_grand = (grand = parent = child->parent_)->parent_;
      +
      649  size_t pc = (parent->child_[0] == child ? 0 : 1);
      +
      650  connect(parent, pc, child->child_[!pc]);
      +
      651  connect(child , !pc, parent);
      +
      652  if (g_grand != NULL) {
      +
      653  g_grand = (grand = g_grand)->parent_;
      +
      654  size_t gp = (grand->child_[0] == parent ? 0 : 1);
      +
      655  Node const* who = (pc == gp ? parent : child);
      +
      656  connect(grand, gp, who->child_[!gp]);
      +
      657  connect(who , !gp, grand);
      +
      658  grand->syncUp();
      +
      659  }
      +
      660  parent->syncUp();
      +
      661  child ->syncUp();
      +
      662  if (g_grand == NULL) {
      +
      663  connect(NULL, 0, child);
      +
      664  break;
      +
      665  }
      +
      666  connect(g_grand, (g_grand->child_[0] == grand ? 0 : 1), child);
      +
      667  }
      +
      668  }
      +
      669  return (((SplayTree_Range*)this)->root_ = (Node*)node);
      +
      670  }
      +
      671 
      +
      672  void clear(Node* node) {
      +
      673  if (node == NULL) return ;
      +
      674  clear(node->child_[0]);
      +
      675  clear(node->child_[1]);
      +
      676  delete node;
      +
      677  }
      +
      678 
      +
      679  Node* dup(Node* node2) {
      +
      680  if (node2 == NULL) return NULL;
      +
      681  node2->syncDown();
      +
      682  Node* node = new Node(node2->key_, node2->value_);
      +
      683  connect(node, 0, dup(node2->child_[0]));
      +
      684  connect(node, 1, dup(node2->child_[1]));
      +
      685  node->syncUp();
      +
      686  return node;
      +
      687  }
      +
      688 
      +
      689  Node const* findKey(Node const* node, Key const& key) const {
      +
      690  Node const* ret = node;
      +
      691  while (node != NULL) {
      +
      692  node->syncDown();
      +
      693  ret = node;
      +
      694  if (!(key < node->key_)) {
      +
      695  if (!(node->key_< key)) break;
      +
      696  node = node->child_[1];
      +
      697  }
      +
      698  else {
      +
      699  node = node->child_[0];
      +
      700  }
      +
      701  }
      +
      702  return ret;
      +
      703  }
      +
      704  Node const* findMinMax(Node const* node, bool minimum) const {
      +
      705  Node const* ret = node;
      +
      706  for (int i = minimum ? 0 : 1; node != NULL; node = node->child_[i]) {
      +
      707  node->syncDown();
      +
      708  ret = node;
      +
      709  }
      +
      710  return ret;
      +
      711  }
      +
      712  Node const* findOrder(Node const* node, size_t order) const {
      +
      713  Node const* ret = node;
      +
      714  while (node != NULL) {
      +
      715  node->syncDown();
      +
      716  ret = node;
      +
      717  size_t ord = 1 + (node->child_[0] == NULL ? 0 : node->child_[0]->size_);
      +
      718  if (ord == order) return ret;
      +
      719  else if(ord < order){ node = node->child_[1]; order -= ord; }
      +
      720  else { node = node->child_[0]; }
      +
      721  }
      +
      722  return ret;
      +
      723  }
      +
      724 
      +
      725  void split(Node* root, Node** left, Node** right) {
      +
      726  if (root == NULL) { *left = NULL; *right = NULL; return ; }
      +
      727  root->syncDown();
      +
      728  *left = root;
      +
      729  *right = root->child_[1];
      +
      730  if (*right != NULL) {
      +
      731  (*left )->child_[1] = NULL;
      +
      732  (*right)->parent_ = NULL;
      +
      733  (*left )->syncUp();
      +
      734  }
      +
      735  }
      +
      736  Node* merge(Node* left, Node* right) {
      +
      737  if (left == NULL) return right;
      +
      738  if (right == NULL) return left ;
      +
      739  left->syncDown();
      +
      740  connect(left, 1, right);
      +
      741  left->syncUp();
      +
      742  return left;
      +
      743  }
      +
      744 public:
      +
      750  class Element{
      +
      751  private:
      +
      752  typedef std::pair<Key const&, Value&> Entry;
      +
      753  Entry* entry_;
      +
      754  Node * node_;
      +
      755  //
      +
      756  void reset(Node* node) {
      +
      757  node_ = node;
      +
      758  delete entry_;
      +
      759  entry_ = (node == NULL ? NULL : new Entry(node->key_, node->value_));
      +
      760  }
      +
      761  public:
      +
      762  Element(): entry_(NULL), node_(NULL) {
      +
      763  }
      +
      764  Element(Node* node): entry_(NULL), node_(NULL) {
      +
      765  reset(node);
      +
      766  }
      +
      767  Element(Element const& element2): entry_(NULL), node_(NULL) {
      +
      768  reset(element2.node_);
      +
      769  }
      + +
      771  delete entry_;
      +
      772  }
      +
      773 
      +
      775  Element& copyFrom(Element const& e) {
      +
      776  reset(e.node_);
      +
      777  return *this;
      +
      778  }
      +
      779 
      +
      781  bool same(Element const& e2) const {
      +
      782  return (node_ == e2.node_);
      +
      783  }
      +
      784 
      +
      786  Element& operator=(Element const& e2) {
      +
      787  return copyFrom(e2);
      +
      788  }
      +
      789 
      +
      791  Entry* operator->() {
      +
      792  return entry_;
      +
      793  }
      +
      794 
      +
      796  Entry& operator*() {
      +
      797  return *entry_;
      +
      798  }
      +
      799 
      +
      801  bool operator==(Element const& e2) const{
      +
      802  return same(e2);
      +
      803  }
      +
      804 
      +
      806  bool operator!=(Element const& e2) const{
      +
      807  return !same(e2);
      +
      808  }
      +
      809  };
      +
      810 
      +
      812  SplayTree_Range(): root_(NULL) {
      +
      813  }
      +
      814 
      + +
      817  root_(dup((Node*)(tree2.root_))) {
      +
      818  }
      +
      819 
      + +
      822  clear(root_);
      +
      823  }
      +
      824 
      + +
      829  clear(root_);
      +
      830  root_ = dup((Node*)(tree2.root_));
      +
      831  return *this;
      +
      832  }
      +
      833 
      +
      837  void moveTo(SplayTree_Range* tree2) {
      +
      838  tree2->clear();
      +
      839  tree2->root_ = root_;
      +
      840  root_ = NULL;
      +
      841  }
      +
      842 
      +
      848  Element lowerBound(Key const& key) const {
      +
      849  splay(findKey(root_, key));
      +
      850  if (root_ == NULL || !(root_->key_ < key)) return Element(root_);
      +
      851  if (root_->child_[1] == NULL) return Element(NULL);
      +
      852  splay(findMinMax(root_->child_[1], true));
      +
      853  return Element(root_);
      +
      854  }
      +
      855 
      +
      861  Element upperBound(Key const& key) const {
      +
      862  splay(findKey(root_, key));
      +
      863  if (root_ == NULL || key < root_->key_) return Element(root_);
      +
      864  if (root_->child_[1] == NULL) return Element(NULL);
      +
      865  splay(findMinMax(root_->child_[1], true));
      +
      866  return Element(root_);
      +
      867  }
      +
      868 
      +
      874  Element rLowerBound(Key const& key) const {
      +
      875  splay(findKey(root_, key));
      +
      876  if (root_ == NULL || !(key < root_->key_)) return Element(root_);
      +
      877  if (root_->child_[0] == NULL) return Element(NULL);
      +
      878  splay(findMinMax(root_->child_[0], false));
      +
      879  return Element(root_);
      +
      880  }
      +
      881 
      +
      887  Element rUpperBound(Key const& key) const {
      +
      888  splay(findKey(root_, key));
      +
      889  if (root_ == NULL || root_->key_ < key) return Element(root_);
      +
      890  if (root_->child_[0] == NULL) return Element(NULL);
      +
      891  splay(findMinMax(root_->child_[0], false));
      +
      892  return Element(root_);
      +
      893  }
      +
      894 
      +
      898  Element find(Key const& key) const {
      +
      899  splay(findKey(root_, key));
      +
      900  if (root_ != NULL && !(key < root_->key_) && !(root_->key_ < key)) {
      +
      901  return Element(root_);
      +
      902  }
      +
      903  return Element(NULL);
      +
      904  }
      +
      905 
      +
      911  Element order(size_t order) const {
      +
      912  if (root_ == NULL || order >= root_->size_) return Element(NULL);
      +
      913  splay(findOrder(root_, order + 1));
      +
      914  return Element(root_);
      +
      915  }
      +
      916 
      +
      920  Element first() const {
      +
      921  splay(findMinMax(root_, true));
      +
      922  return Element(root_);
      +
      923  }
      +
      924 
      +
      928  Element last() const {
      +
      929  splay(findMinMax(root_, false));
      +
      930  return Element(root_);
      +
      931  }
      +
      932 
      +
      938  Element end() const {
      +
      939  return Element(NULL);
      +
      940  }
      +
      941 
      +
      945  size_t size() const {
      +
      946  return (root_ == NULL ? 0 : root_->size_);
      +
      947  }
      +
      948 
      +
      952  bool empty() const{
      +
      953  return (size() == 0);
      +
      954  }
      +
      955 
      +
      961  Value query() const {
      +
      962  if (root_ == NULL) return Value(0);
      +
      963  return root_->range_;
      +
      964  }
      +
      965 
      +
      971  Value query(Key const& first, Key const& last) const {
      +
      972  SplayTree_Range* self = (SplayTree_Range*)this;
      +
      973  Node* tmp;
      +
      974  rUpperBound(first);
      +
      975  self->split(self->root_, &tmp, &(self->root_));
      +
      976  upperBound(last);
      +
      977  Value ret(0);
      +
      978  if (root_ != NULL && root_->child_[0] != NULL) {
      +
      979  ret = root_->child_[0]->range_;
      +
      980  }
      +
      981  self->root_ = self->merge(tmp, self->root_);
      +
      982  return ret;
      +
      983  }
      +
      984 
      +
      988  void clear() {
      +
      989  clear(root_);
      +
      990  root_ = NULL;
      +
      991  }
      +
      992 
      +
      999  bool insert(Key const& key, Value const& value) {
      +
      1000  if (root_ == NULL) {
      +
      1001  root_ = new Node(key, value);
      +
      1002  }
      +
      1003  else {
      +
      1004  Node* parent = (Node*)findKey(root_, key);
      +
      1005  if (!(parent->key_ < key) && !(key < parent->key_)) {
      +
      1006  splay(parent);
      +
      1007  return false;
      +
      1008  }
      +
      1009  Node* new_node = new Node(key, value);
      +
      1010  connect(parent, (parent->key_ < key ? 1 : 0), new_node);
      +
      1011  parent->syncUp();
      +
      1012  splay(new_node);
      +
      1013  }
      +
      1014  return true;
      +
      1015  }
      +
      1016 
      +
      1023  bool erase(Key const& key) {
      +
      1024  if (root_ == NULL) return false;
      +
      1025  Node* body = (Node*)findKey(root_, key);
      +
      1026  if (body->key_ < key || key < body->key_) {
      +
      1027  splay(body);
      +
      1028  return false;
      +
      1029  }
      +
      1030  Node* ghost;
      +
      1031  if (body->child_[1] == NULL) {
      +
      1032  ghost = body->child_[0];
      +
      1033  if (ghost != NULL) ghost->syncDown();
      +
      1034  }
      +
      1035  else {
      +
      1036  ghost = (Node*)findMinMax(body->child_[1], true);
      +
      1037  connect(ghost, 0, body->child_[0]);
      +
      1038  if (ghost != body->child_[1]) {
      +
      1039  connect(ghost->parent_, 0, ghost->child_[1]);
      +
      1040  connect(ghost, 1, body->child_[1]);
      +
      1041  for (Node* a = ghost->parent_; a != ghost; a = a->parent_)
      +
      1042  a->syncUp();
      +
      1043  }
      +
      1044  ghost->syncUp();
      +
      1045  }
      +
      1046  Node* parent = body->parent_;
      +
      1047  connect(parent, parent != NULL && parent->child_[0] == body ? 0 : 1, ghost);
      +
      1048  delete body;
      +
      1049  splay(ghost != NULL ? ghost : parent);
      +
      1050  return true;
      +
      1051  }
      +
      1052 
      +
      1056  void keyOffset(Key const& delta) {
      +
      1057  if (root_ != NULL) {
      +
      1058  root_->keyOffset(delta);
      +
      1059  }
      +
      1060  }
      +
      1061 
      +
      1065  void valueOffset(Value const& delta){
      +
      1066  if (root_ != NULL) {
      +
      1067  root_->valueUpdate(delta, false);
      +
      1068  }
      +
      1069  }
      +
      1070 
      +
      1074  void valueOverride(Value const& value){
      +
      1075  if(root_ != NULL){
      +
      1076  root_->valueUpdate(value, true);
      +
      1077  }
      +
      1078  }
      +
      1079 
      +
      1083  void splitOut(Key const& upper_bound, SplayTree_Range* right) {
      +
      1084  right->clear();
      +
      1085  if (rLowerBound(upper_bound) != end()) {
      +
      1086  split(root_, &root_, &(right->root_));
      +
      1087  }
      +
      1088  else {
      +
      1089  right->root_ = root_;
      +
      1090  root_ = NULL;
      +
      1091  }
      +
      1092  }
      +
      1093 
      + +
      1101  if (root_ == NULL || tree2->root_ == NULL ||
      +
      1102  last()->first < tree2->first()->first) {
      +
      1103  root_ = merge(root_, tree2->root_);
      +
      1104  tree2->root_ = NULL;
      +
      1105  return true;
      +
      1106  }
      +
      1107  return false;
      +
      1108  }
      +
      1109 
      +
      1117  bool merge(SplayTree_Range* tree2) {
      +
      1118  if (root_ == NULL || tree2->root_ == NULL ||
      +
      1119  last()->first < tree2->first()->first) {
      +
      1120  root_ = merge(root_, tree2->root_);
      +
      1121  }
      +
      1122  else if(tree2->last()->first < first()->first) {
      +
      1123  root_ = merge(tree2->root_, root_);
      +
      1124  }
      +
      1125  else {
      +
      1126  return false;
      +
      1127  }
      +
      1128  tree2->root_ = NULL;
      +
      1129  return true;
      +
      1130  }
      +
      1131 
      +
      1138  Value& operator[](Key const& key) {
      +
      1139  if (find(key) == end()) insert(key, Value());
      +
      1140  return root_->value_;
      +
      1141  }
      +
      1142 
      + +
      1145  return copyFrom(tree2);
      +
      1146  }
      +
      1147 };
      +
      1148 
      +
      1149 }
      +
      1150 
      +
      1151 #endif // dsa_SplayTree_h__
      +
      +
      + + + + + diff --git a/doc/html/Transformation_8h.html b/doc/html/Transformation_8h.html new file mode 100644 index 0000000..c186c5a --- /dev/null +++ b/doc/html/Transformation_8h.html @@ -0,0 +1,94 @@ + + + + + + + +Templates -- Meow: meowpp/math/Transformation.h File Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      Transformation.h File Reference
      +
      +
      +
      #include "Matrix.h"
      +#include "../Self.h"
      +#include <cstdlib>
      +
      +

      Go to the source code of this file.

      + + + + + +

      +Classes

      class  meow::Transformation< Scalar >
       A base class for implementing kinds of transformations. More...
       
      + + + +

      +Namespaces

      namespace  meow
       
      +
      +
      + + + + + diff --git a/doc/html/Transformation_8h_source.html b/doc/html/Transformation_8h_source.html new file mode 100644 index 0000000..074e8a7 --- /dev/null +++ b/doc/html/Transformation_8h_source.html @@ -0,0 +1,185 @@ + + + + + + + +Templates -- Meow: meowpp/math/Transformation.h Source File + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      Transformation.h
      +
      +
      +Go to the documentation of this file.
      1 #ifndef math_Transformation_H__
      +
      2 #define math_Transformation_H__
      +
      3 
      +
      4 #include "Matrix.h"
      +
      5 #include "../Self.h"
      +
      6 
      +
      7 #include <cstdlib>
      +
      8 
      +
      9 namespace meow {
      +
      10 
      +
      19 template<class Scalar>
      + +
      21 private:
      +
      22  struct Myself {
      +
      23  size_t inputRows_;
      +
      24  size_t inputCols_;
      +
      25  size_t outputRows_;
      +
      26  size_t outputCols_;
      +
      27  size_t psize_;
      +
      28 
      +
      29  Myself& copyFrom(Myself const& b) {
      +
      30  inputRows_ = b. inputRows_;
      +
      31  inputCols_ = b. inputCols_;
      +
      32  outputRows_ = b.outputRows_;
      +
      33  outputCols_ = b.outputCols_;
      +
      34  psize_ = b.psize_;
      +
      35  return *this;
      +
      36  }
      +
      37  };
      +
      38 
      +
      39  Self<Myself> const self;
      +
      40 protected:
      + +
      50  size_t outputRows, size_t outputCols,
      +
      51  size_t psize): self(true) {
      +
      52  self()-> inputRows_ = inputRows;
      +
      53  self()-> inputCols_ = inputCols;
      +
      54  self()->outputRows_ = outputRows;
      +
      55  self()->outputCols_ = outputCols;
      +
      56  self()->psize_ = psize;
      +
      57  }
      +
      58 
      +
      63  Transformation(Transformation const& b): self(false) {
      +
      64  copyFrom(b);
      +
      65  }
      +
      66 
      + +
      74  self().copyFrom(b.self);
      +
      75  return *this;
      +
      76  }
      +
      77 
      + +
      85  self().referenceFrom(b.self);
      +
      86  return *this;
      +
      87  }
      +
      88 public:
      +
      92  virtual ~Transformation() {
      +
      93  }
      +
      94 
      +
      100  size_t inputRows() const {
      +
      101  return self->inputRows_;
      +
      102  }
      +
      103 
      +
      109  size_t inputCols() const {
      +
      110  return self->inputCols_;
      +
      111  }
      +
      112 
      +
      118  size_t outputRows() const {
      +
      119  return self->outputRows_;
      +
      120  }
      +
      121 
      +
      127  size_t outputCols() const {
      +
      128  return self->outputCols_;
      +
      129  }
      +
      130 
      +
      136  size_t parameterSize() const {
      +
      137  return self->psize_;
      +
      138  }
      +
      139 
      +
      146  virtual Scalar parameter(size_t i) const = 0;
      +
      147 
      +
      155  virtual Scalar parameter(size_t i, Scalar const& s) = 0;
      +
      156 
      +
      163  virtual Matrix<Scalar> transformate(Matrix<Scalar> const& x) const = 0;
      +
      164 
      +
      175  virtual Matrix<Scalar> jacobian(Matrix<Scalar> const& x) const {
      +
      176  return Matrix<Scalar>();
      +
      177  }
      +
      178 
      +
      190  virtual Matrix<Scalar> jacobian(Matrix<Scalar> const& x, size_t i) const {
      +
      191  return Matrix<Scalar>();
      +
      192  }
      +
      193 
      +
      199  virtual bool inversable() const { return false; }
      +
      200 
      + +
      208  return Matrix<Scalar>();
      +
      209  }
      +
      210 
      +
      217  virtual Matrix<Scalar> jacobianInv(Matrix<Scalar> const& x) const {
      +
      218  return Matrix<Scalar>();
      +
      219  }
      +
      220 
      +
      228  virtual Matrix<Scalar> jacobianInv(Matrix<Scalar> const& x, size_t i) const {
      +
      229  return Matrix<Scalar>();
      +
      230  }
      +
      231 };
      +
      232 
      +
      233 }
      +
      234 
      +
      235 #endif // math_Transformation_H__
      +
      +
      + + + + + diff --git a/doc/html/Transformations_8h.html b/doc/html/Transformations_8h.html new file mode 100644 index 0000000..13b69a8 --- /dev/null +++ b/doc/html/Transformations_8h.html @@ -0,0 +1,99 @@ + + + + + + + +Templates -- Meow: meowpp/math/Transformations.h File Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      Transformations.h File Reference
      +
      +
      +
      #include "Transformation.h"
      +#include "Matrix.h"
      +#include "utility.h"
      +#include "../Self.h"
      +#include <cstdlib>
      +
      +

      Go to the source code of this file.

      + + + + + + + + +

      +Classes

      class  meow::BallProjection< Scalar >
       A ball projection is to project the given vector to a hyper-sphere. More...
       
      class  meow::PhotoProjection< Scalar >
       A photo projection is a kind of transformation that project point/vector to a flat photo. More...
       
      + + + +

      +Namespaces

      namespace  meow
       
      +
      +
      + + + + + diff --git a/doc/html/Transformations_8h_source.html b/doc/html/Transformations_8h_source.html new file mode 100644 index 0000000..5dd1481 --- /dev/null +++ b/doc/html/Transformations_8h_source.html @@ -0,0 +1,317 @@ + + + + + + + +Templates -- Meow: meowpp/math/Transformations.h Source File + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      Transformations.h
      +
      +
      +Go to the documentation of this file.
      1 #ifndef math_Transformations_H__
      +
      2 #define math_Transformations_H__
      +
      3 
      +
      4 #include "Transformation.h"
      +
      5 #include "Matrix.h"
      +
      6 #include "utility.h"
      +
      7 #include "../Self.h"
      +
      8 
      +
      9 #include <cstdlib>
      +
      10 
      +
      11 namespace meow {
      +
      12 
      +
      49 template<class Scalar>
      +
      50 class BallProjection: public Transformation<Scalar> {
      +
      51 private:
      +
      52  struct Myself {
      +
      53  Scalar radius_;
      +
      54  size_t dimension_;
      +
      55 
      +
      56  Myself() {
      +
      57  }
      +
      58  ~Myself() {
      +
      59  }
      +
      60  Myself& copyFrom(Myself const& b) {
      +
      61  radius_ = b.radius_;
      +
      62  dimension_ = b.dimension_;
      +
      63  return *this;
      +
      64  }
      +
      65  };
      +
      66 
      +
      67  Self<Myself> const self;
      +
      68 public:
      + +
      74  Transformation<Scalar>(b), self(false) {
      +
      75  copyFrom(b);
      +
      76  }
      +
      77 
      +
      82  BallProjection(size_t d): self(true),
      +
      83  Transformation<Scalar>(d, 1, d, 1, 1) {
      +
      84  self()->dimension_ = d;
      +
      85  radius(1);
      +
      86  }
      +
      87 
      +
      93  BallProjection(size_t d, Scalar const& r):
      +
      94  Transformation<Scalar>(d, 1, d, 1, 1), self(true) {
      +
      95  self()->dimension_ = d;
      +
      96  radius(r);
      +
      97  }
      +
      98 
      + + +
      106  copyFrom(b);
      +
      107  return *this;
      +
      108  }
      +
      109 
      + + +
      117  referenceFrom(b);
      +
      118  return *this;
      +
      119  }
      +
      120 
      +
      124  Scalar parameter(size_t i) const {
      +
      125  return radius();
      +
      126  }
      +
      127 
      +
      131  Scalar parameter(size_t i, Scalar const& s) {
      +
      132  return radius(s);
      +
      133  }
      +
      134 
      +
      138  Scalar radius() const {
      +
      139  return self->radius_;
      +
      140  }
      +
      141 
      +
      148  Scalar radius(Scalar const& r) {
      +
      149  self()->radius_ = r;
      +
      150  return radius();
      +
      151  }
      +
      152 
      +
      156  size_t dimension() const {
      +
      157  return self->dimension_;
      +
      158  }
      +
      159 
      +
      160 
      + +
      177  Matrix<Scalar> ret(x);
      +
      178  for (size_t c = 0, C = ret.cols(); c < C; c++) {
      +
      179  Scalar sum(0);
      +
      180  for (size_t i = 0; i < self->dimension_; i++) {
      +
      181  sum = sum + squ(ret(i, c));
      +
      182  }
      +
      183  Scalar len(sqrt(double(sum)));
      +
      184  for (size_t i = 0; i < self->dimension_; i++) {
      +
      185  ret(i, c, ret(i, c) * radius() / len);
      +
      186  }
      +
      187  }
      +
      188  return ret;
      +
      189  }
      +
      190 
      + +
      220  Scalar sum(0);
      +
      221  for(size_t i = 0, I = dimension(); i < I; ++i)
      +
      222  sum = sum + squ(x(i, 0));
      +
      223  Scalar len(sqrt(double(sum)));
      +
      224  Matrix<Scalar> ret(dimension(), dimension(), Scalar(0.0));
      +
      225  for(size_t i = 0, I = dimension(); i < I; ++i)
      +
      226  for(size_t j = 0; j < I; ++j)
      +
      227  if (i == j) {
      +
      228  ret(i, j, radius() * (squ(len) - squ(x(i, 0))) / cub(len));
      +
      229  }
      +
      230  else {
      +
      231  ret(i, j, radius() * (-x(i, 0) * x(j, 0) / cub(len)));
      +
      232  }
      +
      233  return ret;
      +
      234  }
      +
      235 
      +
      264  Matrix<Scalar> jacobian(Matrix<Scalar> const& x, size_t i) const {
      +
      265  Matrix<Scalar> ret(dimension(), 1, Scalar(0.0));
      +
      266  Scalar sum(0);
      +
      267  for(size_t i = 0, I = dimension(); i < I; i++) {
      +
      268  sum = sum + squ(x(i, 0));
      +
      269  }
      +
      270  return ret / Scalar(sqrt(double(sum)));
      +
      271  }
      +
      272 
      + +
      277  return copyFrom(b);
      +
      278  }
      +
      279 
      + +
      284  return transformate(v);
      +
      285  }
      +
      286 };
      +
      287 
      +
      288 
      +
      328 template<class Scalar>
      +
      329 class PhotoProjection: public Transformation<Scalar> {
      +
      330 private:
      +
      331  struct Myself {
      +
      332  Scalar focal_;
      +
      333  size_t dimension_;
      +
      334 
      +
      335  Myself() {
      +
      336  }
      +
      337  ~Myself() {
      +
      338  }
      +
      339  Myself& copyFrom(Myself const& b) {
      +
      340  focal_ = b.focal_;
      +
      341  dimension_ = b.dimension_;
      +
      342  return *this;
      +
      343  }
      +
      344  };
      +
      345 
      +
      346  Self<Myself> const& self;
      +
      347 public:
      + +
      352  Transformation<Scalar>(dimension, 1, dimension, 1, 1), self(true) {
      +
      353  self()->dimension_ = dimension;
      +
      354  focal(1);
      +
      355  }
      +
      356 
      +
      360  PhotoProjection(size_t dimension, Scalar const& f):
      +
      361  Transformation<Scalar>(dimension, 1, dimension, 1, 1), self(true) {
      +
      362  self()->dimension_ = dimension;
      +
      363  focal(f);
      +
      364  }
      +
      365 
      + +
      370  Transformation<Scalar>(p), self(false) {
      +
      371  self().copyFrom(p.self);
      +
      372  }
      +
      373 
      + + +
      381  self().copyFrom(b.self);
      +
      382  return *this;
      +
      383  }
      +
      384 
      + + +
      392  self().referenceFrom(b.self);
      +
      393  return *this;
      +
      394  }
      +
      395 
      +
      399  Scalar parameter(size_t i) const {
      +
      400  return focal();
      +
      401  }
      +
      402 
      +
      406  Scalar parameter(size_t i, Scalar const& s){
      +
      407  return focal(s);
      +
      408  }
      +
      409 
      +
      414  Scalar focal() const {
      +
      415  return self->focal_;
      +
      416  }
      +
      417 
      +
      424  Scalar focal(Scalar const& f){
      +
      425  self()->focal_ = f;
      +
      426  return focal();
      +
      427  }
      +
      428 
      +
      432  size_t dimension() const {
      +
      433  return self->dimension_;
      +
      434  }
      +
      435 
      + +
      454  Matrix<Scalar> ret(x);
      +
      455  for (size_t c = 0, C = ret.cols(); c < C; c++) {
      +
      456  for (size_t i = 0, I = dimension(); i < I; ++i) {
      +
      457  ret(i, c, -ret(i, c) * focal() / ret(I - 1, c));
      +
      458  }
      +
      459  }
      +
      460  return ret;
      +
      461  }
      +
      462 
      + +
      493  Matrix<Scalar> ret(dimension(), dimension(), Scalar(0.0));
      +
      494  for(ssize_t i = 0, I = (ssize_t)dimension() - 1; i < I; i++){
      +
      495  ret(i, i, -focal() / x(I, 0) );
      +
      496  ret(i, dimension() - 1, focal() / squ(x(I, 0)));
      +
      497  }
      +
      498  return ret;
      +
      499  }
      +
      500 
      +
      531  Matrix<Scalar> jacobian(Matrix<Scalar> const& x, size_t i) const{
      +
      532  Matrix<Scalar> ret(dimension(), 1, Scalar(0.0));
      +
      533  for(size_t i = 0, I = dimension(); i < I; ++i) {
      +
      534  ret(i, 0, -x(i, 0) / x(I - 1, 0));
      +
      535  }
      +
      536  return ret;
      +
      537  }
      +
      538 
      + +
      543  return copyFrom(b);
      +
      544  }
      +
      545 
      + +
      550  return transformate(v);
      +
      551  }
      +
      552 };
      +
      553 
      +
      554 }
      +
      555 
      +
      556 #endif // Transformations_H__
      +
      +
      + + + + + diff --git a/doc/html/Usage_8h.html b/doc/html/Usage_8h.html new file mode 100644 index 0000000..d37a5da --- /dev/null +++ b/doc/html/Usage_8h.html @@ -0,0 +1,98 @@ + + + + + + + +Templates -- Meow: meowpp/Usage.h File Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      Usage.h File Reference
      +
      +
      +
      #include "utility.h"
      +#include <cstdlib>
      +#include <string>
      +#include <vector>
      +#include <map>
      +#include <algorithm>
      +#include <unistd.h>
      +
      +

      Go to the source code of this file.

      + + + + + +

      +Classes

      class  meow::Usage
       管理參數設置, 自訂usage document, 分析argc, argv More...
       
      + + + +

      +Namespaces

      namespace  meow
       
      +
      +
      + + + + + diff --git a/doc/html/Usage_8h_source.html b/doc/html/Usage_8h_source.html new file mode 100644 index 0000000..685cf4a --- /dev/null +++ b/doc/html/Usage_8h_source.html @@ -0,0 +1,412 @@ + + + + + + + +Templates -- Meow: meowpp/Usage.h Source File + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      Usage.h
      +
      +
      +Go to the documentation of this file.
      1 #ifndef MEOW_USAGE_H__
      +
      2 #define MEOW_USAGE_H__
      +
      3 
      +
      4 #include "utility.h"
      +
      5 
      +
      6 #include <cstdlib>
      +
      7 
      +
      8 #include <string>
      +
      9 #include <vector>
      +
      10 #include <map>
      +
      11 #include <algorithm>
      +
      12 
      +
      13 extern "C" {
      +
      14 #include <unistd.h>
      +
      15 }
      +
      16 
      +
      17 namespace meow {
      +
      30 class Usage {
      +
      31 private:
      +
      32  typedef std::string String;
      +
      33  typedef std::vector<String> Strings;
      +
      35  class Value {
      +
      36  private:
      +
      37  String value_;
      +
      38  String description_;
      +
      39  public:
      +
      40  Value() {
      +
      41  }
      +
      42  Value(String const& value, String const& description) {
      +
      43  value_ = value;
      +
      44  description_ = stringReplace(description, "<value>", value);
      +
      45  }
      +
      46  String usage() const {
      +
      47  return stringPrintf("%8s%s : %s\n",
      +
      48  " ", value_.c_str(), description_.c_str());
      +
      49  }
      +
      50  String value() const {
      +
      51  return value_;
      +
      52  }
      +
      53  bool operator==(Value const& b) const {
      +
      54  return (value_ == b.value_);
      +
      55  }
      +
      56  };
      +
      57  typedef std::vector<Value> Values;
      +
      59  class Option {
      +
      60  private:
      +
      61  Strings values_;
      +
      62  Values values_accept_;
      +
      63  String value_default_;
      +
      64  String value_type_;
      +
      65  String description_;
      +
      66  bool has_value_;
      +
      67  bool has_setup_;
      +
      68  bool must_setup_;
      +
      69  public:
      +
      70  Option() {
      +
      71  }
      +
      72  Option(String const& description) {
      +
      73  has_setup_ = false;
      +
      74  has_value_ = false;
      +
      75  description_ = description;
      +
      76  must_setup_ = false;
      +
      77  }
      +
      78  Option(String const& description,
      +
      79  String const& type,
      +
      80  String const& default_value,
      +
      81  bool must) {
      +
      82  has_setup_ = false;
      +
      83  has_value_ = true;
      +
      84  description_ = description;
      +
      85  value_type_ = type;
      +
      86  value_default_ = default_value;
      +
      87  must_setup_ = must;
      +
      88  }
      +
      89  Strings const& values() const {
      +
      90  return values_;
      +
      91  }
      +
      92  String value(size_t index) const {
      +
      93  if (!has_value_) return "";
      +
      94  if (!has_setup_ || index >= values_.size()) return value_default_;
      +
      95  return values_[index];
      +
      96  }
      +
      97  ssize_t valueAdd(String const& value) {
      +
      98  if (!has_value_) {
      +
      99  has_setup_ = true;
      +
      100  return 0;
      +
      101  }
      +
      102  if (values_accept_.size() > 0 &&
      +
      103  std::find(values_accept_.begin(), values_accept_.end(),
      +
      104  Value(value, "")) == values_accept_.end())
      +
      105  return -1;
      +
      106  values_.push_back(value);
      +
      107  has_setup_ = true;
      +
      108  return values_.size() - 1;
      +
      109  }
      +
      110  bool valueAcceptAdd(String const& value, String const& description) {
      +
      111  if (!has_value_) return false;
      +
      112  if (std::find(values_accept_.begin(), values_accept_.end(),
      +
      113  Value(value, "")) == values_accept_.end()){
      +
      114  values_accept_.push_back(Value(value, description));
      +
      115  }
      +
      116  return true;
      +
      117  }
      +
      118  bool valueAcceptChk(String const& value){
      +
      119  if (!has_value_) return false;
      +
      120  if (values_accept_.size() == 0) return true;
      +
      121  return (std::find(values_accept_.begin(), values_accept_.end(),
      +
      122  Value(value, "")) != values_accept_.end());
      +
      123  }
      +
      124  bool hasSetup() const{ return has_setup_; }
      +
      125  bool hasValue() const{ return has_value_; }
      +
      126  bool chkSetup() const{ return !(must_setup_ && !has_setup_); }
      +
      127 
      +
      128  String usage(unsigned char opt, bool detail) const {
      +
      129  String ret(stringPrintf("-%c ", opt));
      +
      130  if (!detail) {
      +
      131  if (has_value_) ret += value_type_;
      +
      132  if (!must_setup_) ret = "[" + ret + "]";
      +
      133  } else {
      +
      134  if (has_value_) {
      +
      135  ret += value_type_ + " ";
      +
      136  String default_string("");
      +
      137  if (value_default_ != "")
      +
      138  default_string = "defalut='" + value_default_ + "'";
      +
      139  String optional_string("");
      +
      140  if (!must_setup_)
      +
      141  optional_string = "optional";
      +
      142  String tmp;
      +
      143  if (default_string.size() + optional_string.size() > 0) {
      +
      144  if (default_string.size() > 0 && optional_string.size() > 0) {
      +
      145  ret += "(" + optional_string + ", " + default_string + ")";
      +
      146  } else {
      +
      147  ret += "(" + optional_string + default_string + ")";
      +
      148  }
      +
      149  }
      +
      150  }
      +
      151  ret += "\n";
      +
      152  String accept_string;
      +
      153  for (size_t i = 0; i < values_accept_.size(); i++) {
      +
      154  if (i > 0)
      +
      155  accept_string += (i + 1 < values_accept_.size()
      +
      156  ? ", " : " or ");
      +
      157  accept_string += "'" + values_accept_[i].value() + "'";
      +
      158  }
      +
      159  if (accept_string.size() == 0) accept_string = "... (anything)";
      +
      160  ret += " " + stringReplace(stringReplace(description_,
      +
      161  "<type>",
      +
      162  value_type_),
      +
      163  "<values>",
      +
      164  accept_string) + "\n";
      +
      165  for (size_t i = 0; i < values_accept_.size(); i++) {
      +
      166  ret += values_accept_[i].usage();
      +
      167  }
      +
      168  ret += "\n";
      +
      169  }
      +
      170  return ret;
      +
      171  }
      +
      172  };
      +
      173  typedef std::map<unsigned char, Option> Options;
      +
      174  typedef Options::const_iterator OptionsIterator;
      +
      175  String name_;
      +
      176  Options options_;
      +
      177  Strings usage_begin_;
      +
      178  Strings usage_end_;
      +
      179  Strings proc_arguments_;
      +
      180 public:
      +
      186  Usage() {
      +
      187  }
      +
      188 
      +
      194  Usage(String const& name) {
      +
      195  name_ = name;
      +
      196  }
      +
      197 
      +
      198 
      +
      204  Usage(Usage const& usage) {
      +
      205  name_ = usage.name_;
      +
      206  options_ = usage.options_;
      +
      207  usage_begin_ = usage.usage_begin_;
      +
      208  usage_end_ = usage.usage_end_;
      +
      209  proc_arguments_ = usage.proc_arguments_;
      +
      210  }
      +
      211 
      +
      218  bool import(Usage const& usage) {
      +
      219  for (OptionsIterator
      +
      220  it = usage.options_.begin(); it != usage.options_.end(); ++it) {
      +
      221  if (options_.find(it->first) != options_.end())
      +
      222  return false;
      +
      223  }
      +
      224  for (OptionsIterator
      +
      225  it = usage.options_.begin(); it != usage.options_.end(); ++it) {
      +
      226  options_[it->first] = it->second;
      +
      227  }
      +
      228  for (size_t i = 0; i < usage.usage_begin_.size(); ++i)
      +
      229  usage_begin_.push_back(usage.usage_begin_[i]);
      +
      230  for (size_t i = 0; i < usage.usage_end_.size(); ++i)
      +
      231  usage_end_.push_back(usage.usage_end_[i]);
      +
      232  return true;
      +
      233  }
      +
      234 
      +
      241  bool update(Usage const& usage) {
      +
      242  for (OptionsIterator
      +
      243  it = usage.options_.begin(); it != usage.options_.end(); ++it) {
      +
      244  if (options_.find(it->first) == options_.end()) continue;
      +
      245  for(size_t i = 0, I = it->second.values().size(); i < I; i++){
      +
      246  options_[it->first].valueAdd(it->second.value(i));
      +
      247  }
      +
      248  }
      +
      249  return true;
      +
      250  }
      +
      251 
      +
      259  bool optionAdd(unsigned char opt, String const& des) {
      +
      260  if (options_.find(opt) != options_.end()) return false;
      +
      261  options_[opt] = Option(des);
      +
      262  return true;
      +
      263  }
      +
      264 
      +
      275  bool optionAdd(unsigned char opt, String const& des,
      +
      276  String const& val_type,
      +
      277  String const& val_default,
      +
      278  bool must) {
      +
      279  if (options_.find(opt) != options_.end()) return false;
      +
      280  options_[opt] = Option(des, val_type, val_default, must);
      +
      281  return true;
      +
      282  }
      +
      283 
      +
      292  bool optionValueAcceptAdd(unsigned char opt,
      +
      293  String const& val,
      +
      294  String const& des) {
      +
      295  if (options_.find(opt) == options_.end()) return false;
      +
      296  return options_[opt].valueAcceptAdd(val, des);
      +
      297  }
      +
      298 
      +
      305  bool hasOptionSetup(unsigned char opt) const {
      +
      306  return (options_.find(opt) != options_.end() &&
      +
      307  options_.find(opt)->second.hasSetup());
      +
      308  }
      +
      309 
      +
      316  size_t optionValuesSize(unsigned char opt) const {
      +
      317  if(options_.find(opt) == options_.end()) return 0;
      +
      318  return options_.find(opt)->second.values().size();
      +
      319  }
      +
      320 
      +
      328  String optionValue(unsigned char opt, size_t index) const {
      +
      329  if (options_.find(opt) == options_.end()) {
      +
      330  return String();
      +
      331  }
      +
      332  return options_.find(opt)->second.value(index);
      +
      333  }
      +
      334 
      +
      340  size_t procArgsSize() const {
      +
      341  return proc_arguments_.size();
      +
      342  }
      +
      343 
      +
      350  String procArg(size_t index) const {
      +
      351  if (index >= proc_arguments_.size()) {
      +
      352  return String();
      +
      353  }
      +
      354  return proc_arguments_[index];
      +
      355  }
      +
      356 
      +
      362  Strings const& procArgs() const{
      +
      363  return proc_arguments_;
      +
      364  }
      +
      365 
      +
      371  void usageBeginAdd(String const& des) {
      +
      372  usage_begin_.push_back(stringReplace(des, "<name>", name_));
      +
      373  }
      +
      374 
      +
      380  void usageEndAdd(String const& des) {
      +
      381  usage_end_.push_back(stringReplace(des, "<name>", name_));
      +
      382  }
      +
      383 
      +
      389  String usage() const{
      +
      390  Usage::String out = stringPrintf("USAGE\n %s", name_.c_str());
      +
      391  for (OptionsIterator
      +
      392  it = options_.begin(); it != options_.end(); ++it)
      +
      393  out += " " + it->second.usage(it->first, false);
      +
      394  out += "\n\nDESCRIPTION\n";
      +
      395  for (size_t i = 0; i < usage_begin_.size(); ++i) {
      +
      396  out += " " + usage_begin_[i] + "\n\n";
      +
      397  }
      +
      398  for (OptionsIterator
      +
      399  it = options_.begin(); it != options_.end(); ++it) {
      +
      400  out += it->second.usage(it->first, true);
      +
      401  }
      +
      402  for (size_t i = 0; i < usage_end_.size(); ++i) {
      +
      403  out += " " + usage_end_[i] + "\n\n";
      +
      404  }
      +
      405  return out;
      +
      406  }
      +
      407 
      +
      415  bool arguments(int argc, char** argv, String* errmsg){
      +
      416  opterr = 0;
      +
      417  String s;
      +
      418  OptionsIterator it;
      +
      419  String zzz;
      +
      420  String& err = (errmsg == NULL ? zzz : *errmsg);
      +
      421  for (it = options_.begin(); it != options_.end(); ++it) {
      +
      422  s += (char)(it->first);
      +
      423  if (it->second.hasValue()) s += ":";
      +
      424  }
      +
      425  bool succ = true;
      +
      426  for (int opt; (opt = getopt(argc, argv, s.c_str())) != -1; ) {
      +
      427  if (options_.find(opt) == options_.end()) {
      +
      428  if(options_.find(optopt) == options_.end()){
      +
      429  err += stringPrintf("Unknown option '-%c'\n", optopt);
      +
      430  }else{
      +
      431  err += stringPrintf("No specify argument to '-%c'\n",
      +
      432  optopt);
      +
      433  }
      +
      434  succ = false;
      +
      435  continue;
      +
      436  }
      +
      437  if (options_[opt].valueAdd(optarg == NULL ? "" : optarg) < 0) {
      +
      438  err += stringPrintf("Option argument '%s' to '-%c' is not allowed\n"
      +
      439  , optarg, opt);
      +
      440  succ = false;
      +
      441  continue;
      +
      442  }
      +
      443  }
      +
      444  for (it = options_.begin(); it != options_.end(); it++) {
      +
      445  if (it->second.chkSetup() == false) {
      +
      446  err += stringPrintf("No specify argument to '-%c'\n",
      +
      447  it->first);
      +
      448  succ = false;
      +
      449  continue;
      +
      450  }
      +
      451  }
      +
      452  for (int i = optind; i < argc; i++) {
      +
      453  proc_arguments_.push_back(String(argv[i]));
      +
      454  }
      +
      455  return succ;
      +
      456  }
      +
      457 };
      +
      458 
      +
      459 } // meow
      +
      460 
      +
      461 #endif // MEOW_USAGE_H__
      +
      +
      + + + + + diff --git a/doc/html/VP__Tree_8h.html b/doc/html/VP__Tree_8h.html new file mode 100644 index 0000000..bec433d --- /dev/null +++ b/doc/html/VP__Tree_8h.html @@ -0,0 +1,97 @@ + + + + + + + +Templates -- Meow: meowpp/dsa/VP_Tree.h File Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      VP_Tree.h File Reference
      +
      +
      +
      #include "../math/utility.h"
      +#include <cstdlib>
      +#include <list>
      +#include <vector>
      +#include <stack>
      +#include <queue>
      +
      +

      Go to the source code of this file.

      + + + + + +

      +Classes

      class  meow::VP_Tree< Vector, Scalar >
       跟KD_Tree很像歐 More...
       
      + + + +

      +Namespaces

      namespace  meow
       
      +
      +
      + + + + + diff --git a/doc/html/VP__Tree_8h_source.html b/doc/html/VP__Tree_8h_source.html new file mode 100644 index 0000000..7947eac --- /dev/null +++ b/doc/html/VP__Tree_8h_source.html @@ -0,0 +1,343 @@ + + + + + + + +Templates -- Meow: meowpp/dsa/VP_Tree.h Source File + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      VP_Tree.h
      +
      +
      +Go to the documentation of this file.
      1 #ifndef dsa_VP_Tree_H__
      +
      2 #define dsa_VP_Tree_H__
      +
      3 
      +
      4 #include "../math/utility.h"
      +
      5 
      +
      6 #include <cstdlib>
      +
      7 
      +
      8 #include <list>
      +
      9 #include <vector>
      +
      10 #include <stack>
      +
      11 #include <queue>
      +
      12 
      +
      13 namespace meow {
      +
      14 
      +
      50 template<class Vector, class Scalar>
      +
      51 class VP_Tree {
      +
      52 public:
      +
      53  typedef std::vector<Vector> Vectors;
      +
      54 private:
      +
      55  struct Node {
      +
      56  size_t index_;
      +
      57  Scalar threshold_;
      +
      58  Node* nearChild_;
      +
      59  Node* farChild_;
      +
      60  //
      +
      61  Node(size_t index): index_(index), nearChild_(NULL), farChild_(NULL){
      +
      62  }
      +
      63  };
      +
      64  struct Answer {
      +
      65  size_t index_;
      +
      66  Scalar dist2_;
      +
      67  //
      +
      68  Answer(size_t index, Scalar const& dist2): index_(index), dist2_(dist2){
      +
      69  }
      +
      70  Answer(Answer const& answer2):
      +
      71  index_(answer2.index_), dist2_(answer2.dist2_){
      +
      72  }
      +
      73  };
      +
      74  class AnswerCompare {
      +
      75  private:
      +
      76  Vectors const* vectors_;
      +
      77  bool cmpValue_;
      +
      78  public:
      +
      79  AnswerCompare(Vectors const* vectors, bool cmpValue):
      +
      80  vectors_(vectors), cmpValue_(cmpValue){
      +
      81  }
      +
      82  bool operator()(Answer const& a, Answer const& b) const {
      +
      83  if (a.dist2_ < b.dist2_) return true;
      +
      84  if (b.dist2_ < a.dist2_) return false;
      +
      85  return (cmpValue_ && ((*vectors_)[a.index_] < (*vectors_)[b.index_]));
      +
      86  }
      +
      87  };
      +
      88  typedef std::vector<Answer> AnswerV;
      +
      89  typedef std::priority_queue<Answer, AnswerV, AnswerCompare> Answers;
      +
      90 
      +
      91  Vectors vectors_;
      +
      92  Node* root_;
      +
      93  size_t dimension_;
      +
      94  bool needRebuild_;
      +
      95 
      +
      96  Scalar distance2(Vector const& v1, Vector const& v2) const {
      +
      97  Scalar ret(0);
      +
      98  for (size_t i = 0; i < dimension_; i++) ret += squ(v1[i] - v2[i]);
      +
      99  return ret;
      +
      100  }
      +
      101  int distanceCompare(Scalar const& a2, Scalar const& b2,
      +
      102  Scalar const& c2) const {
      +
      103  if (b2 < 0) {
      +
      104  return -distanceCompare(c2, -b2, a2);
      +
      105  }
      +
      106  Scalar cab(c2 - a2 - b2);
      +
      107  if (cab < Scalar(0)) return 1;
      +
      108  Scalar ab2(Scalar(4) * a2 * b2), cab2(squ(cab));
      +
      109  if ( ab2 < cab2) return -1;
      +
      110  else if (cab2 < ab2) return 1;
      +
      111  else return 0;
      +
      112  }
      +
      113  Scalar split(ssize_t first, ssize_t last, size_t order,
      +
      114  Vector const& center) {
      +
      115  ssize_t first0 = first;
      +
      116  std::vector<Scalar> dist2(last - first + 1);
      +
      117  for (ssize_t i = first; i <= last; i++) {
      +
      118  dist2[i - first0] = distance2(vectors_[i], center);
      +
      119  }
      +
      120  while (first < last) {
      +
      121  size_t thresholdindex_ = first + rand() % (last - first + 1);
      +
      122  Scalar threshold(dist2[thresholdindex_ - first0]);
      +
      123  size_t large_first = last + 1;
      +
      124  for( ssize_t i=first; first<=(ssize_t)large_first-1; large_first--) {
      +
      125  if (threshold < dist2[large_first - 1 - first0]) continue;
      +
      126  while (i < (ssize_t)large_first-1&&!(threshold < dist2[i-first0])) i++;
      +
      127  if (i < (ssize_t)large_first - 1){
      +
      128  std::swap(dist2 [large_first - 1 - first0], dist2 [i - first0]);
      +
      129  std::swap(vectors_[large_first - 1 ], vectors_[i ]);
      +
      130  i++;
      +
      131  }
      +
      132  else {
      +
      133  break;
      +
      134  }
      +
      135  }
      +
      136  if (large_first == (size_t)last + 1) {
      +
      137  std::swap(dist2 [thresholdindex_-first0], dist2 [last-first0]);
      +
      138  std::swap(vectors_[thresholdindex_ ], vectors_[last ]);
      +
      139  if ((ssize_t)order == last - first) {
      +
      140  first = last;
      +
      141  break;
      +
      142  }
      +
      143  last--;
      +
      144  }
      +
      145  else {
      +
      146  if (order < large_first - first) {
      +
      147  last = large_first - 1;
      +
      148  }
      +
      149  else {
      +
      150  order -= large_first - first;
      +
      151  first = large_first;
      +
      152  }
      +
      153  }
      +
      154  }
      +
      155  return dist2[first - first0];
      +
      156  }
      +
      157  //
      +
      158  Node* build(ssize_t first, ssize_t last) {
      +
      159  if (first > last) return NULL;
      +
      160  Node* ret = new Node(first);
      +
      161  if (first < last) {
      +
      162  std::swap(vectors_[first],
      +
      163  vectors_[first + rand() % (last - first + 1)]);
      +
      164  ssize_t mid = (first + 1 + last + 1) / 2;
      +
      165  ret->threshold_ = split(first + 1, last, mid - (first + 1),
      +
      166  vectors_[first]);
      +
      167  ret->nearChild_ = build(first + 1, mid - 1 );
      +
      168  ret->farChild_ = build( mid , last);
      +
      169  }
      +
      170  return ret;
      +
      171  }
      +
      172  void query(Vector const& vector,
      +
      173  size_t k,
      +
      174  AnswerCompare const& cmp,
      +
      175  Node const* node,
      +
      176  Answers* out) const {
      +
      177  if (node == NULL) return ;
      +
      178  Scalar dist2 = distance2(vector, vectors_[node->index_]);
      +
      179  Answer my_ans(node->index_, dist2);
      +
      180  if (out->size() < k || cmp(my_ans, out->top())) {
      +
      181  out->push(my_ans);
      +
      182  if (out->size() > k) {
      +
      183  out->pop();
      +
      184  }
      +
      185  }
      +
      186  if (node->nearChild_ == NULL && node->farChild_ == NULL) return ;
      +
      187  if (out->size() < k || distanceCompare(dist2, -out->top().dist2_,
      +
      188  node->threshold_) <= 0) {
      +
      189  query(vector, k, cmp, node->nearChild_, out);
      +
      190  }
      +
      191  if (out->size() < k || distanceCompare(dist2, out->top().dist2_,
      +
      192  node->threshold_) >= 0) {
      +
      193  query(vector, k, cmp, node->farChild_, out);
      +
      194  }
      +
      195  }
      +
      196  void clear(Node* root) {
      +
      197  if(root == NULL) return ;
      +
      198  clear(root->nearChild_);
      +
      199  clear(root->farChild_);
      +
      200  delete root;
      +
      201  }
      +
      202  Node* dup(Node* root) {
      +
      203  if(root == NULL) return ;
      +
      204  Node* ret = new Node(root->index_);
      +
      205  ret->threshold_ = root->threshold_;
      +
      206  ret->nearChild_ = dup(root->nearChild_);
      +
      207  ret->farChild_ = dup(root->farChild_ );
      +
      208  return ret;
      +
      209  }
      +
      210 public:
      +
      212  VP_Tree(): root_(NULL), vectors_(0), dimension_(1), needRebuild_(false){
      +
      213  reset(0);
      +
      214  }
      +
      215 
      +
      217  VP_Tree(VP_Tree const& tree2):
      +
      218  vectors_(tree2.vectors_),
      +
      219  root_(dup(tree2.root_)),
      +
      220  dimension_(tree2.dimension_),
      +
      221  needRebuild_(tree2.needRebuild_) {
      +
      222  }
      +
      223 
      +
      225  VP_Tree(size_t dimension):
      +
      226  vectors_(0),
      +
      227  root_(NULL),
      +
      228  dimension_(0),
      +
      229  needRebuild_(false) {
      +
      230  reset(dimension);
      +
      231  }
      +
      232 
      + +
      235  clear(root_);
      +
      236  }
      +
      237 
      +
      241  VP_Tree& copyFrom(VP_Tree const& tree2) {
      +
      242  reset(tree2.dimension_);
      +
      243  vectors_ = tree2.vectors_;
      +
      244  root_ = dup(tree2.root_);
      +
      245  needRebuild_ = tree2.needRebuild_;
      +
      246  return *this;
      +
      247  }
      +
      248 
      +
      252  void insert(Vector const& vector) {
      +
      253  vectors_.push_back(vector);
      +
      254  needRebuild_ = true;
      +
      255  }
      +
      256 
      +
      260  bool erase (Vector const& vector) {
      +
      261  for (ssize_t i = 0, I = vectors_.size(); i < I; i++) {
      +
      262  if (vectors_[i] == vector) {
      +
      263  if (i != I - 1) std::swap(vectors_[i], vectors_[I - 1]);
      +
      264  needRebuild_ = true;
      +
      265  vectors_.pop_back();
      +
      266  return true;
      +
      267  }
      +
      268  }
      +
      269  return false;
      +
      270  }
      +
      271 
      +
      275  void build() {
      +
      276  if (needRebuild_) {
      +
      277  forceBuild();
      +
      278  }
      +
      279  }
      +
      280 
      +
      284  void forceBuild() {
      +
      285  root_ = build(0, (size_t)vectors_.size() - 1);
      +
      286  needRebuild_ = false;
      +
      287  }
      +
      288 
      +
      296  Vectors query(Vector const& vector,
      +
      297  size_t nearestNumber,
      +
      298  bool compareWholeVector) const {
      +
      299  ((VP_Tree*)this)->build();
      +
      300  AnswerCompare cmp(&vectors_, compareWholeVector);
      +
      301  Answers answers(cmp);
      +
      302  query(vector, nearestNumber, cmp, root_, &answers);
      +
      303  std::stack<Answer> rev;
      +
      304  for ( ; !answers.empty(); answers.pop()) rev.push(answers.top());
      +
      305  Vectors ret;
      +
      306  for ( ; !rev.empty(); rev.pop()) ret.push_back(vectors_[rev.top().index_]);
      +
      307  return ret;
      +
      308  }
      +
      309 
      +
      313  void clear() {
      +
      314  clear(root_);
      +
      315  vectors_.clear();
      +
      316  root_ = NULL;
      +
      317  needRebuild_ = false;
      +
      318  }
      +
      319 
      +
      323  size_t reset(size_t dimension) {
      +
      324  clear();
      +
      325  dimension_ = std::max((size_t)1, dimension);
      +
      326  return dimension_;
      +
      327  }
      +
      328 
      +
      330  VP_Tree& operator=(VP_Tree const& tree2) {
      +
      331  return copyFrom(tree2);
      +
      332  }
      +
      333 };
      +
      334 
      +
      335 }
      +
      336 
      +
      337 #endif // dsa_VP_Tree_H__
      +
      +
      + + + + + diff --git a/doc/html/Vector_8h.html b/doc/html/Vector_8h.html new file mode 100644 index 0000000..c549420 --- /dev/null +++ b/doc/html/Vector_8h.html @@ -0,0 +1,96 @@ + + + + + + + +Templates -- Meow: meowpp/math/Vector.h File Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      Vector.h File Reference
      +
      +
      +
      #include "../Self.h"
      +#include "Matrix.h"
      +#include "utility.h"
      +#include <vector>
      +#include <cmath>
      +
      +

      Go to the source code of this file.

      + + + + + +

      +Classes

      class  meow::Vector< Scalar >
       vector More...
       
      + + + +

      +Namespaces

      namespace  meow
       
      +
      +
      + + + + + diff --git a/doc/html/Vector_8h_source.html b/doc/html/Vector_8h_source.html new file mode 100644 index 0000000..9cf6d8f --- /dev/null +++ b/doc/html/Vector_8h_source.html @@ -0,0 +1,252 @@ + + + + + + + +Templates -- Meow: meowpp/math/Vector.h Source File + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      Vector.h
      +
      +
      +Go to the documentation of this file.
      1 #ifndef math_Vector_H__
      +
      2 #define math_Vector_H__
      +
      3 
      +
      4 #include "../Self.h"
      +
      5 #include "Matrix.h"
      +
      6 #include "utility.h"
      +
      7 
      +
      8 #include <vector>
      +
      9 
      +
      10 #include <cmath>
      +
      11 
      +
      12 namespace meow {
      +
      13 
      +
      19 template<class Scalar>
      +
      20 class Vector {
      +
      21 private:
      +
      22  Matrix<Scalar> matrix_;
      +
      23 public:
      +
      29  Vector(){
      +
      30  }
      +
      31 
      +
      39  Vector(Vector const& v) {
      +
      40  matrix_.copyFrom(v.matrix_);
      +
      41  }
      +
      42 
      +
      50  Vector(Matrix<Scalar> const& m) {
      +
      51  matrix_.copyFrom(m.col(0));
      +
      52  }
      +
      53 
      +
      62  Vector(Matrix<Scalar> const& m, size_t i) {
      +
      63  matrix_.copyFrom(m.col(i));
      +
      64  }
      +
      65 
      +
      73  Vector(std::vector<Scalar> const& v) {
      +
      74  matrix_.size(v.size(), 1, Scalar(0));
      +
      75  for (size_t i = 0, I = v.size(); i < I; i++) {
      +
      76  matrix_.entry(i, 0, v[i]);
      +
      77  }
      +
      78  }
      +
      79 
      +
      88  Vector(size_t d, Scalar const& e) {
      +
      89  matrix_.reset(d, 1, e);
      +
      90  }
      +
      91 
      + +
      94  }
      +
      95 
      +
      97  Vector& copyFrom(Vector const& v) {
      +
      98  matrix_.copyFrom(v.matrix_);
      +
      99  return *this;
      +
      100  }
      +
      101 
      + +
      104  matrix_.referenceFrom(v.matrix_);
      +
      105  return *this;
      +
      106  }
      +
      107 
      +
      109  Matrix<Scalar> const& matrix() const {
      +
      110  return matrix_;
      +
      111  }
      +
      112 
      +
      114  size_t dimension() const {
      +
      115  return matrix_.rows();
      +
      116  }
      +
      117 
      +
      125  size_t dimension(size_t d, Scalar const& s) {
      +
      126  matrix_.rows(d, s);
      +
      127  return dimension();
      +
      128  }
      +
      129 
      +
      134  bool valid() const {
      +
      135  return (dimension() > 0);
      +
      136  }
      +
      137 
      +
      139  Scalar entry(size_t i) const {
      +
      140  return matrix_.entry(i, 0);
      +
      141  }
      +
      142 
      +
      149  Scalar entry(size_t i, Scalar const& s) {
      +
      150  matrix_.entry(i, 0, s);
      +
      151  return entry(i);
      +
      152  }
      +
      153 
      +
      161  void entries(size_t i, size_t j, Scalar const& s) {
      +
      162  for (size_t it = i; it <= j; it++) {
      +
      163  matrix_.entry(it, 0, s);
      +
      164  }
      +
      165  }
      +
      166 
      +
      168  Vector subVector(size_t i, size_t j) {
      +
      169  return Vector(matrix_.subMatrix(i, 0, j, 0));
      +
      170  }
      +
      171 
      +
      173  Vector positive() const {
      +
      174  return *this;
      +
      175  }
      +
      176 
      +
      178  Vector negative() const {
      +
      179  return Vector(matrix_.negative());
      +
      180  }
      +
      181 
      +
      183  Vector add(Vector const& v) const {
      +
      184  return Vector(matrix_.add(v.matrix_));
      +
      185  }
      +
      186 
      +
      188  Vector sub(Vector const& v) const {
      +
      189  return Vector(matrix_.sub(v.matrix_));
      +
      190  }
      +
      191 
      +
      193  Vector mul(Scalar const& s) const {
      +
      194  return Vector(matrix_.mul(s));
      +
      195  }
      +
      196 
      +
      198  Vector div(Scalar const& s) const {
      +
      199  return Vector(matrix_.div(s));
      +
      200  }
      +
      201 
      +
      203  Scalar dot(Vector const& v) const {
      +
      204  return matrix_.transpose().mul(v.matrix_).entry(0, 0);
      +
      205  }
      +
      206 
      +
      208  Scalar length() const {
      +
      209  return Scalar(sqrt((double)length2()));
      +
      210  }
      +
      211 
      +
      213  Scalar length2() const {
      +
      214  return dot(*this);
      +
      215  }
      +
      216 
      +
      218  Vector normalize() const {
      +
      219  return div(length());
      +
      220  }
      +
      221 
      + +
      224  copyFrom(normalize());
      +
      225  return *this;
      +
      226  }
      +
      227 
      +
      229  Vector& operator=(Vector const& v) {
      +
      230  return copyFrom(v);
      +
      231  }
      +
      232 
      +
      234  Scalar operator()(size_t i) const {
      +
      235  return entry(i);
      +
      236  }
      +
      237 
      +
      239  Vector operator+() const {
      +
      240  return positive();
      +
      241  }
      +
      242 
      +
      244  Vector operator-() const {
      +
      245  return negative();
      +
      246  }
      +
      247 
      +
      249  Vector operator+(Vector const& v) const {
      +
      250  return add(v);
      +
      251  }
      +
      252 
      +
      254  Vector operator-(Vector const& v) const {
      +
      255  return sub(v);
      +
      256  }
      +
      257 
      +
      259  Scalar operator*(Vector const& v) const {
      +
      260  return dot(v);
      +
      261  }
      +
      262 
      +
      264  Vector operator*(Scalar const& s) const {
      +
      265  return mul(s);
      +
      266  }
      +
      267 
      +
      269  Vector operator/(Scalar const& s) const {
      +
      270  return div(s);
      +
      271  }
      +
      272 };
      +
      273 
      +
      274 }
      +
      275 
      +
      276 #endif // math_Vector_H__
      +
      +
      + + + + + diff --git a/doc/html/Vectors_8h.html b/doc/html/Vectors_8h.html new file mode 100644 index 0000000..eefe7df --- /dev/null +++ b/doc/html/Vectors_8h.html @@ -0,0 +1,98 @@ + + + + + + + +Templates -- Meow: meowpp/geo/Vectors.h File Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      Vectors.h File Reference
      +
      +
      +
      #include "../math/utility.h"
      +#include "../math/Vector.h"
      +#include "../math/Matrix.h"
      +#include <cmath>
      +
      +

      Go to the source code of this file.

      + + + + + + + + +

      +Classes

      class  meow::Vector2D< Scalar >
       2D's vector More...
       
      class  meow::Vector3D< Scalar >
       3D's vector More...
       
      + + + +

      +Namespaces

      namespace  meow
       
      +
      +
      + + + + + diff --git a/doc/html/Vectors_8h_source.html b/doc/html/Vectors_8h_source.html new file mode 100644 index 0000000..10da370 --- /dev/null +++ b/doc/html/Vectors_8h_source.html @@ -0,0 +1,493 @@ + + + + + + + +Templates -- Meow: meowpp/geo/Vectors.h Source File + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      Vectors.h
      +
      +
      +Go to the documentation of this file.
      1 #ifndef geo_Vectors_H__
      +
      2 #define geo_Vectors_H__
      +
      3 
      +
      4 #include "../math/utility.h"
      +
      5 #include "../math/Vector.h"
      +
      6 #include "../math/Matrix.h"
      +
      7 
      +
      8 #include <cmath>
      +
      9 
      +
      10 namespace meow{
      +
      11 
      +
      17 template<class Scalar>
      +
      18 class Vector2D {
      +
      19 private:
      +
      20  Scalar x_, y_;
      +
      21 public:
      +
      23  Vector2D(): x_(0), y_(0) {
      +
      24  }
      +
      25 
      +
      27  Vector2D(Vector2D const& v): x_(v.x_), y_(v.y_) {
      +
      28  }
      +
      29 
      +
      31  Vector2D(Scalar const& s): x_(s), y_(s) {
      +
      32  }
      +
      33 
      +
      35  Vector2D(Scalar const& sx, Scalar const& sy): x_(sx), y_(sy) {
      +
      36  }
      +
      37 
      +
      39  Vector2D(Vector<Scalar> const& v): x_(v(0)), y_(v(1)) {
      +
      40  }
      +
      41 
      +
      43  Vector2D(Vector<Scalar> const& v, size_t i): x_(v(i)), y_(v(i + 1)) {
      +
      44  }
      +
      45 
      + +
      48  }
      +
      49 
      +
      51  Vector2D& copyFrom(Vector2D const& v) {
      +
      52  return xy(v.x(), v.y());
      +
      53  }
      +
      54 
      +
      56  Scalar const& x() const {
      +
      57  return x_;
      +
      58  }
      +
      59 
      +
      61  Scalar& xGet() {
      +
      62  return x_;
      +
      63  }
      +
      64 
      +
      66  Scalar& yGet() {
      +
      67  return y_;
      +
      68  }
      +
      69 
      +
      71  Scalar const& y() const {
      +
      72  return y_;
      +
      73  }
      +
      74 
      +
      76  Scalar const& x(Scalar const& s) {
      +
      77  x_ = s;
      +
      78  return x();
      +
      79  }
      +
      80 
      +
      82  Scalar const& y(Scalar const& s) {
      +
      83  y_ = s;
      +
      84  return y();
      +
      85  }
      +
      86 
      +
      88  Vector2D& xy(Scalar const& sx, Scalar const& sy){
      +
      89  x(sx);
      +
      90  y(sy);
      +
      91  return *this;
      +
      92  }
      +
      93 
      +
      95  Vector2D positive() const {
      +
      96  return *this;
      +
      97  }
      +
      98 
      +
      100  Vector2D negative() const {
      +
      101  return Vector2D(-x(), -y());
      +
      102  }
      +
      103 
      +
      105  Vector2D right()const{
      +
      106  return Vector2D(-y(), x());
      +
      107  }
      +
      108 
      +
      110  Vector2D add(Vector2D const& v) const {
      +
      111  return Vector2D(x() + v.x(), y() + v.y());
      +
      112  }
      +
      113 
      +
      115  Vector2D& added(Vector2D const& v) {
      +
      116  return xy(x() + v.x(), y() + v.y());
      +
      117  }
      +
      118 
      +
      120  Vector2D sub(Vector2D const& v) const {
      +
      121  return Vector2D(x() - v.x(), y() - v.y());
      +
      122  }
      +
      123 
      +
      125  Vector2D& subed(Vector2D const& v) {
      +
      126  return xy(x() - v.x(), y() - v.y());
      +
      127  }
      +
      128 
      +
      130  Vector2D mul(Scalar const& s) const {
      +
      131  return Vector2D(x() * s, y() * s);
      +
      132  }
      +
      133 
      +
      135  Vector2D& muled(Scalar const& s) {
      +
      136  return xy(x() * s, y() * s);
      +
      137  }
      +
      138 
      +
      140  Vector2D div(Scalar const& s) const {
      +
      141  return Vector2D(x() / s, y() / s);
      +
      142  }
      +
      143 
      +
      145  Vector2D& dived(Scalar const& s) {
      +
      146  return xy(x() / s, y() / s);
      +
      147  }
      +
      148 
      +
      150  Scalar mul(Vector2D const& v) const {
      +
      151  return dot(v);
      +
      152  }
      +
      153 
      +
      155  Scalar dot(Vector2D const& v) const {
      +
      156  return x() * v.x() + y() * v.y();
      +
      157  }
      +
      158 
      +
      160  Scalar cross(Vector2D const& v) const {
      +
      161  return x() * v.y() - y() * v.x();
      +
      162  }
      +
      163 
      +
      165  Scalar length() const {
      +
      166  return Scalar(sqrt(double(length2())));
      +
      167  }
      +
      168 
      +
      170  Scalar length2() const {
      +
      171  return dot(*this);
      +
      172  }
      +
      173 
      +
      175  Vector2D normalize() const {
      +
      176  return div(length());
      +
      177  }
      +
      178 
      + +
      181  return dived(length());
      +
      182  }
      +
      183 
      +
      185  Vector2D rotate(Scalar const& theta) const {
      +
      186  Scalar cs(cos(-double(theta)));
      +
      187  Scalar sn(sin(-double(theta)));
      +
      188  Vector2D<Scalar> new_x(cs, sn);
      +
      189  return Vector2D(new_x.dot(*this), new_x.cross(*this));
      +
      190  }
      +
      191 
      +
      193  Vector2D& rotated(Scalar const& theta) {
      +
      194  return copyFrom(rotate(theta));
      +
      195  }
      +
      196 
      +
      198  Vector2D reflect(Vector2D const& v) const {
      +
      199  return v.mul(v.dot(*this) * 2 / v.length2()).sub(*this);
      +
      200  }
      +
      201 
      + +
      204  return copyFrom(reflecte(v));
      +
      205  }
      +
      206 
      + +
      209  static Matrix<Scalar> ret(2, 1, Scalar(0));
      +
      210  ret(0, 0, x());
      +
      211  ret(1, 0, y());
      +
      212  return ret;
      +
      213  }
      +
      214 
      +
      216  Matrix<Scalar> matrix(Scalar const& homo) const {
      +
      217  static Matrix<Scalar> ret(3, 1, Scalar(0));
      +
      218  ret(0, 0, x());
      +
      219  ret(1, 0, y());
      +
      220  ret(2, 0, homo);
      +
      221  return ret;
      +
      222  }
      +
      223 
      +
      224  Scalar const& operator()(size_t n) const {
      +
      225  return (n == 0 ? x() : y());
      +
      226  }
      +
      227 
      +
      228  Vector2D& operator()(Scalar const& sx, Scalar const& sy) {
      +
      229  return xy(sx, sy);
      +
      230  }
      +
      231 
      +
      232  Vector2D operator+() const { return positive(); }
      +
      233  Vector2D operator-() const { return negative(); }
      +
      234  Vector2D operator~() const { return right (); }
      +
      235 
      +
      236  Vector2D operator+(Vector2D const& v) const { return add(v); }
      +
      237  Vector2D operator-(Vector2D const& v) const { return sub(v); }
      +
      238  Vector2D operator*(Scalar const& s) const { return mul(s); }
      +
      239  Vector2D operator/(Scalar const& s) const { return div(s); }
      +
      240  Scalar operator*(Vector2D const& v) const { return mul(v); }
      +
      241 
      +
      242  Vector2D& operator=(Vector2D const& v) { return copyFrom(v); }
      +
      243  Vector2D& operator+=(Vector2D const& v) { return added(v); }
      +
      244  Vector2D& operator-=(Vector2D const& v) { return subed(v); }
      +
      245  Vector2D& operator*=(Scalar const& s) { return muled(s); }
      +
      246  Vector2D& operator/=(Scalar const& s) { return dived(s); }
      +
      247 };
      +
      248 
      +
      254 template<class Scalar>
      +
      255 class Vector3D{
      +
      256 private:
      +
      257  Scalar x_, y_, z_;
      +
      258 public:
      +
      260  Vector3D(): x_(0), y_(0), z_(0) {
      +
      261  }
      +
      262 
      +
      264  Vector3D(Vector3D const& v): x_(v.x_), y_(v.y_), z_(v.z_) {
      +
      265  }
      +
      266 
      +
      268  Vector3D(Scalar const& s): x_(s), y_(s), z_(s) {
      +
      269  }
      +
      270 
      +
      272  Vector3D(Scalar const& sx,
      +
      273  Scalar const& sy,
      +
      274  Scalar const& sz): x_(sx), y_(sy), z_(sz) {
      +
      275  }
      +
      276 
      +
      278  Vector3D(Vector<Scalar> const& v): x_(v(0)), y_(v(1)), z_(v(2)) {
      +
      279  }
      +
      280 
      +
      282  Vector3D(Vector<Scalar> const& v, size_t i): x_(v(i)), y_(v(i+1)), z_(v(i+2)){
      +
      283  }
      +
      284 
      + +
      287  }
      +
      288 
      + +
      291  return xyz(v.x(), v.y(), v.z());
      +
      292  }
      +
      293 
      +
      295  Scalar const& x() const{
      +
      296  return x_;
      +
      297  }
      +
      298 
      +
      300  Scalar const& y() const{
      +
      301  return y_;
      +
      302  }
      +
      303 
      +
      305  Scalar const& z() const{
      +
      306  return z_;
      +
      307  }
      +
      308 
      +
      310  Scalar& xGet() {
      +
      311  return x_;
      +
      312  }
      +
      313 
      +
      315  Scalar& yGet() {
      +
      316  return y_;
      +
      317  }
      +
      318 
      +
      320  Scalar& zGet() {
      +
      321  return z_;
      +
      322  }
      +
      323 
      +
      325  Scalar const& x(Scalar const& s) {
      +
      326  x_ = s;
      +
      327  return x();
      +
      328  }
      +
      329 
      +
      331  Scalar const& y(Scalar const& s) {
      +
      332  y_ = s;
      +
      333  return y();
      +
      334  }
      +
      335 
      +
      337  Scalar const& z(Scalar const& s) {
      +
      338  z_ = s;
      +
      339  return z();
      +
      340  }
      +
      341 
      +
      343  Vector3D& xyz(Scalar const& sx, Scalar const& sy, Scalar const& sz) {
      +
      344  x(sx);
      +
      345  y(sy);
      +
      346  z(sz);
      +
      347  return *this;
      +
      348  }
      +
      349 
      +
      351  Vector3D positive() const {
      +
      352  return *this;
      +
      353  }
      +
      354 
      +
      356  Vector3D negative() const {
      +
      357  return Vector3D(-x(), -y(), -z());
      +
      358  }
      +
      359 
      +
      361  Vector3D add(Vector3D const& v) const {
      +
      362  return Vector3D(x() + v.x(), y() + v.y(), z() + v.z());
      +
      363  }
      +
      364 
      +
      366  Vector3D& added(Vector3D const& v) {
      +
      367  return xyz(x() + v.x(), y() + v.y(), z() + v.z());
      +
      368  }
      +
      369 
      +
      371  Vector3D sub(Vector3D const& v) const {
      +
      372  return Vector3D(x() - v.x(), y() - v.y(), z() - v.z());
      +
      373  }
      +
      374 
      +
      376  Vector3D& subed(Vector3D const& v) {
      +
      377  return xyz(x() - v.x(), y() - v.y(), z() - v.z());
      +
      378  }
      +
      379 
      +
      381  Vector3D mul(Scalar const& s) const {
      +
      382  return Vector3D(x() * s, y() * s, z() * s);
      +
      383  }
      +
      384 
      +
      386  Vector3D& muled(Scalar const& s) {
      +
      387  return xyz(x() * s, y() * s, z() * s);
      +
      388  }
      +
      389 
      +
      391  Vector3D div(Scalar const& s) const {
      +
      392  return Vector3D(x() / s, y() / s, z() / s);
      +
      393  }
      +
      394 
      +
      396  Vector3D& dived(Scalar const& s) {
      +
      397  return xyz(x() / s, y() / s, z() / s);
      +
      398  }
      +
      399 
      +
      401  Scalar mul(Vector3D const& v) const {
      +
      402  return dot(v);
      +
      403  }
      +
      404 
      +
      406  Scalar dot(Vector3D const& v) const {
      +
      407  return x() * v.x() + y() * v.y() + z() * v.z();
      +
      408  }
      +
      409 
      +
      411  Vector3D cross(Vector3D const& v) const {
      +
      412  return Vector3D(y() * v.z() - z() * v.y(),
      +
      413  z() * v.x() - x() * v.z(),
      +
      414  x() * v.y() - y() * v.x());
      +
      415  }
      +
      416 
      +
      418  Vector3D& crossed(Vector3D const& v) {
      +
      419  return copyFrom(cross(v));
      +
      420  }
      +
      421 
      +
      423  Scalar length() const {
      +
      424  return Scalar(sqrt(double(length2())));
      +
      425  }
      +
      426 
      +
      428  Scalar length2() const {
      +
      429  return dot(*this);
      +
      430  }
      +
      431 
      +
      433  Vector3D normalize() const {
      +
      434  return div(length());
      +
      435  }
      +
      436 
      + +
      439  return dived(length());
      +
      440  }
      +
      441 
      +
      443  Vector3D rotate(Vector3D const& axis, double theta) const {
      +
      444  Vector3D a(axis.normalize());
      +
      445  Vector3D xx(sub(a) .mul(cos(theta)));
      +
      446  Vector3D yy(a.cross(*this).mul(sin(theta)));
      +
      447  return a.mul(a.dot(*this)).add(xx).add(yy);
      +
      448  }
      +
      449 
      +
      451  Vector3D& rotated(Vector3D const& axis, double theta) {
      +
      452  return copyFrom(rotate(axis, theta));
      +
      453  }
      +
      454 
      +
      456  Vector3D reflect(Vector3D const& v) const {
      +
      457  return v.mul(v.dot(*this) * 2 / v.length2()).sub(*this);
      +
      458  }
      +
      459 
      + +
      462  return copyFrom(reflecte(v));
      +
      463  }
      +
      464 
      + +
      467  static Matrix<Scalar> ret(3, 1, Scalar(0));
      +
      468  ret(0, 0, x());
      +
      469  ret(1, 0, y());
      +
      470  ret(2, 0, z());
      +
      471  return ret;
      +
      472  }
      +
      473 
      +
      475  Matrix<Scalar> matrix(Scalar const& homo) const {
      +
      476  static Matrix<Scalar> ret(4, 1, Scalar(0));
      +
      477  ret(0, 0, x());
      +
      478  ret(1, 0, y());
      +
      479  ret(2, 0, z());
      +
      480  ret(3, 0, homo);
      +
      481  return ret;
      +
      482  }
      +
      483 
      +
      484  Scalar const& operator()(size_t n) const {
      +
      485  return (n == 0 ? x() : (n == 1 ? y() : z()));
      +
      486  }
      +
      487 
      +
      488  Vector3D& operator()(Scalar const& sx, Scalar const& sy, Scalar const& sz) {
      +
      489  return xyz(sx, sy, sz);
      +
      490  }
      +
      491 
      +
      492  Vector3D operator+() const { return positive(); }
      +
      493  Vector3D operator-() const { return negative(); }
      +
      494 
      +
      495  Vector3D operator+(Vector3D const& v) const { return add(v); }
      +
      496  Vector3D operator-(Vector3D const& v) const { return sub(v); }
      +
      497  Vector3D operator*(Scalar const& s) const { return mul(s); }
      +
      498  Vector3D operator/(Scalar const& s) const { return div(s); }
      +
      499  Scalar operator*(Vector3D const& v) const { return mul(v); }
      +
      500 
      +
      501  Vector3D& operator=(Vector3D const& v) { return copyFrom(v); }
      +
      502  Vector3D& operator+=(Vector3D const& v) { return added(v); }
      +
      503  Vector3D& operator-=(Vector3D const& v) { return subed(v); }
      +
      504  Vector3D& operator*=(Scalar const& s) { return muled(s); }
      +
      505  Vector3D& operator/=(Scalar const& s) { return dived(s); }
      +
      506 };
      +
      507 
      +
      508 }
      +
      509 
      +
      510 #endif // geo_Vectors_H__
      +
      +
      + + + + + diff --git a/doc/html/ViewPort_8h.html b/doc/html/ViewPort_8h.html new file mode 100644 index 0000000..edbb0f6 --- /dev/null +++ b/doc/html/ViewPort_8h.html @@ -0,0 +1,92 @@ + + + + + + + +Templates -- Meow: meowpp/gra/ViewPort.h File Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      ViewPort.h File Reference
      +
      +
      +
      #include "../oo/ObjBase.h"
      +
      +

      Go to the source code of this file.

      + + + + + +

      +Classes

      class  meow::ViewPort
       未完待續 More...
       
      + + + +

      +Namespaces

      namespace  meow
       
      +
      +
      + + + + + diff --git a/doc/html/ViewPort_8h_source.html b/doc/html/ViewPort_8h_source.html new file mode 100644 index 0000000..c4e3cf5 --- /dev/null +++ b/doc/html/ViewPort_8h_source.html @@ -0,0 +1,90 @@ + + + + + + + +Templates -- Meow: meowpp/gra/ViewPort.h Source File + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      ViewPort.h
      +
      +
      +Go to the documentation of this file.
      1 #ifndef gra_ViewPort_H__
      +
      2 #define gra_ViewPort_H__
      +
      3 
      +
      4 #include "../oo/ObjBase.h"
      +
      5 
      +
      6 namespace meow {
      +
      7 
      +
      11 class ViewPort: public ObjBase {
      +
      12 
      +
      13 };
      +
      14 
      +
      15 
      +
      16 }
      +
      17 
      +
      18 #endif // gra_ViewPort_H__
      +
      19 
      +
      +
      + + + + + diff --git a/doc/html/WatchBall_8h.html b/doc/html/WatchBall_8h.html new file mode 100644 index 0000000..2fb1ba2 --- /dev/null +++ b/doc/html/WatchBall_8h.html @@ -0,0 +1,98 @@ + + + + + + + +Templates -- Meow: meowpp/gra/WatchBall.h File Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      WatchBall.h File Reference
      +
      +
      +
      #include "Camera.h"
      +#include "../Self.h"
      +#include "../geo/Vectors.h"
      +#include "../math/LinearTransformations.h"
      +#include "../oo/ObjBase.h"
      +#include <cmath>
      +#include <vector>
      +
      +

      Go to the source code of this file.

      + + + + + +

      +Classes

      class  meow::WatchBall< Pixel >
       多個camera, 一個offset, 一個rotation More...
       
      + + + +

      +Namespaces

      namespace  meow
       
      +
      +
      + + + + + diff --git a/doc/html/WatchBall_8h_source.html b/doc/html/WatchBall_8h_source.html new file mode 100644 index 0000000..f8f9240 --- /dev/null +++ b/doc/html/WatchBall_8h_source.html @@ -0,0 +1,239 @@ + + + + + + + +Templates -- Meow: meowpp/gra/WatchBall.h Source File + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      WatchBall.h
      +
      +
      +Go to the documentation of this file.
      1 #ifndef gra_WatchBall_H__
      +
      2 #define gra_WatchBall_H__
      +
      3 
      +
      4 #include "Camera.h"
      +
      5 
      +
      6 #include "../Self.h"
      +
      7 #include "../geo/Vectors.h"
      +
      8 #include "../math/LinearTransformations.h"
      +
      9 #include "../oo/ObjBase.h"
      +
      10 
      +
      11 #include <cmath>
      +
      12 #include <vector>
      +
      13 
      +
      14 namespace meow {
      +
      15 
      +
      21 template<class Pixel>
      +
      22 class WatchBall: public ObjBase {
      +
      23 public:
      +
      24  typedef std::vector<Camera<Pixel> > Cameras;
      +
      25 private:
      +
      26  struct Myself {
      +
      27  Cameras cameras_;
      +
      28  Vector3D<double> offset_;
      +
      29 
      +
      30  Myself() {
      +
      31  }
      +
      32  ~Myself() {
      +
      33  }
      +
      34  Myself& copyFrom(Myself const& b) {
      +
      35  cameras_ = b.cameras_;
      +
      36  offset_ = b. offset_;
      +
      37  return *this;
      +
      38  }
      +
      39  };
      +
      40 
      +
      41  Self<Myself> const self;
      +
      42 public:
      +
      46  WatchBall(): self(true) {
      +
      47  }
      +
      48 
      +
      52  WatchBall(WatchBall const& b): self(false) {
      +
      53  copyFrom(b);
      +
      54  }
      +
      55 
      + +
      60  }
      +
      61 
      + +
      66  self().copyFrom(b.self);
      +
      67  return *this;
      +
      68  }
      +
      69 
      + +
      74  self().referenceFrom(b.self);
      +
      75  return *this;
      +
      76  }
      +
      77 
      +
      81  size_t cameraSize() const {
      +
      82  return self->cameras_.size();
      +
      83  }
      +
      84 
      +
      88  Cameras const& cameras() const {
      +
      89  return self->cameras_;
      +
      90  }
      +
      91 
      + +
      96  return self()->cameras_;
      +
      97  }
      +
      98 
      +
      102  Cameras const& cameras(Cameras const& c) {
      +
      103  self()->cameras_ = c;
      +
      104  return cameras();
      +
      105  }
      +
      106 
      +
      110  Camera<Pixel> const& camera(size_t i) const {
      +
      111  return cameras()[i];
      +
      112  }
      +
      113 
      +
      117  Camera<Pixel>& camera(size_t i) {
      +
      118  return cameras()[i];
      +
      119  }
      +
      120 
      +
      124  Camera<Pixel> const& camera(size_t i, Camera<Pixel> const& c) {
      +
      125  cameras()[i] = c;
      +
      126  return camera(i);
      +
      127  }
      +
      128 
      +
      132  Vector3D<double> const& offset() const {
      +
      133  return self->offset_;
      +
      134  }
      +
      135 
      + +
      140  return self()->offset_;
      +
      141  }
      +
      142 
      + +
      147  self()->offset_ = ofs;
      +
      148  return offset();
      +
      149  }
      +
      150 
      +
      154  Pixel color(Vector3D<double> p) const {
      +
      155  Vector3D<double> p2(p - offset());
      +
      156  Pixel sum(0);
      +
      157  double ct = 0;
      +
      158  for (size_t i = 0, I = cameraSize(); i < I; ++i) {
      +
      159  if (camera(i).inside(p2)) {
      +
      160  sum = sum + camera(i).color(p2);
      +
      161  ++ct;
      +
      162  }
      +
      163  }
      +
      164  return (ct > 0 ? sum / ct : sum);
      +
      165  }
      +
      166 
      +
      172  Bitmap<Pixel> expand(double radius) const {
      +
      173  radius = std::max(radius, 0.5);
      +
      174  size_t height = std::max<size_t>(1, 2.0 * radius);
      +
      175  size_t width = 2.0* PI * radius;
      +
      176  Bitmap<Pixel> ret(height, width, Pixel(0));
      +
      177  for (size_t i = 0; i < height; ++i) {
      +
      178  for (size_t j = 0; j < width; ++j) {
      +
      179  double theta = (1.0 * j / width - 0.5) * 2 * PI;
      +
      180  double phi = asin(-(1.0 * i / height - 0.5) * 2.0);
      +
      181  ret.pixel(i, j, color(Vector3D<double>(
      +
      182  sin(-theta) * cos(phi),
      +
      183  sin(phi),
      +
      184  cos(-theta) * cos(phi)
      +
      185  )));
      +
      186  }
      +
      187  }
      +
      188  return ret;
      +
      189  }
      +
      190 
      + +
      195  return copyFrom(b);
      +
      196  }
      +
      197 
      +
      202  bool write(FILE* f, bool bin, unsigned int fg) const {
      +
      203  return false;
      +
      204  }
      +
      205 
      +
      210  bool read(FILE* f, bool bin, unsigned int fg) {
      +
      211  return false;
      +
      212  }
      +
      213 
      +
      218  ObjBase* create() const {
      +
      219  return new WatchBall();
      +
      220  }
      +
      221 
      +
      231  ObjBase* copyFrom(ObjBase const* b) {
      +
      232  return &(copyFrom(*(WatchBall*)b));
      +
      233  }
      +
      234 
      +
      239  char const* ctype() const{
      +
      240  static char const* ptr = typeid(*this).name();
      +
      241  return ptr;
      +
      242  }
      +
      243 
      +
      248  std::string type() const {
      +
      249  return std::string(ctype());
      +
      250  }
      +
      251 };
      +
      252 
      +
      253 }
      +
      254 
      +
      255 #endif // gra_WatchBall_H__
      +
      +
      + + + + + diff --git a/doc/html/YUV__Space_8h.html b/doc/html/YUV__Space_8h.html new file mode 100644 index 0000000..5638f11 --- /dev/null +++ b/doc/html/YUV__Space_8h.html @@ -0,0 +1,112 @@ + + + + + + + +Templates -- Meow: meowpp/colors/YUV_Space.h File Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      YUV_Space.h File Reference
      +
      +
      +
      #include "Color3_Space.h"
      +#include "../geo/Vectors.h"
      +#include "RGB_Space.h"
      +#include "../math/utility.h"
      +#include <cstdlib>
      +
      +

      Go to the source code of this file.

      + + + + + +

      +Classes

      class  meow::YUVf_Space
       以浮點數Y(亮度), U(色度), V(濃度) 三個值所組成的色彩空間 More...
       
      + + + +

      +Namespaces

      namespace  meow
       
      + + + + + + + + + + + + + +

      +Functions

      void meow::colorTransformate (RGBf_Space const &rgb, YUVf_Space *yuv)
       RGBf_Space to YUVf_Space More...
       
      void meow::colorTransformate (YUVf_Space const &yuv, RGBf_Space *rgb)
       YUVf_Space to RGBf_Space More...
       
      void meow::colorTransformate (RGBi_Space const &rgb, YUVf_Space *yuv)
       RGBi_Space to YUVf_Space More...
       
      void meow::colorTransformate (YUVf_Space const &yuv, RGBi_Space *rgb)
       YUVf_Space to RGBi_Space More...
       
      +
      +
      + + + + + diff --git a/doc/html/YUV__Space_8h.js b/doc/html/YUV__Space_8h.js new file mode 100644 index 0000000..b4dd998 --- /dev/null +++ b/doc/html/YUV__Space_8h.js @@ -0,0 +1,8 @@ +var YUV__Space_8h = +[ + [ "YUVf_Space", "classmeow_1_1YUVf__Space.html", "classmeow_1_1YUVf__Space" ], + [ "colorTransformate", "YUV__Space_8h.html#a6ebfe120c658a6320de42c449e485e54", null ], + [ "colorTransformate", "YUV__Space_8h.html#ab4756ef949554840f60a762661acc103", null ], + [ "colorTransformate", "YUV__Space_8h.html#a91f42614ccd31fdb9a3d8529f65198fd", null ], + [ "colorTransformate", "YUV__Space_8h.html#af4d344590a86168090c2f2322289f080", null ] +]; \ No newline at end of file diff --git a/doc/html/YUV__Space_8h_source.html b/doc/html/YUV__Space_8h_source.html new file mode 100644 index 0000000..18b29df --- /dev/null +++ b/doc/html/YUV__Space_8h_source.html @@ -0,0 +1,186 @@ + + + + + + + +Templates -- Meow: meowpp/colors/YUV_Space.h Source File + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      YUV_Space.h
      +
      +
      +Go to the documentation of this file.
      1 #ifndef colors_YUV_Space_H__
      +
      2 #define colors_YUV_Space_H__
      +
      3 
      +
      4 #include "Color3_Space.h"
      +
      5 #include "../geo/Vectors.h"
      +
      6 
      +
      7 #include "RGB_Space.h"
      +
      8 #include "../math/utility.h"
      +
      9 
      +
      10 #include <cstdlib>
      +
      11 
      +
      12 namespace meow {
      +
      13 
      +
      21 class YUVf_Space: public Color3_Space<double> {
      +
      22 public:
      + +
      24  Vector3D<double>(1.0, 1.0, 1.0),
      +
      25  Vector3D<double>(0.0, 0.0, 0.0)) {
      +
      26  }
      +
      27  YUVf_Space(double c): Color3_Space<double>(Vector3D<double>(0.0, 0.0, 0.0),
      +
      28  Vector3D<double>(1.0, 1.0, 1.0),
      +
      29  Vector3D<double>( c, c, c)) {
      +
      30  }
      + +
      32  Color3_Space<double>(Vector3D<double>(0.0, 0.0, 0.0),
      +
      33  Vector3D<double>(1.0, 1.0, 1.0),
      +
      34  Vector3D<double>(v)) {
      +
      35  }
      +
      36  YUVf_Space(YUV_Space const& b): Color3_Space<double>(b) {
      +
      37  }
      + +
      39  }
      +
      40  double const& yuvMin(size_t i) const { return min(i); }
      +
      41  double const& yMin( ) const { return min(0); }
      +
      42  double const& uMin( ) const { return min(1); }
      +
      43  double const& vMin( ) const { return min(2); }
      +
      44  double const& yuvMax(size_t i) const { return max(i); }
      +
      45  double const& yMax( ) const { return max(0); }
      +
      46  double const& uMax( ) const { return max(1); }
      +
      47  double const& vMax( ) const { return max(2); }
      +
      48  double const& yuv(size_t i) const { return val(i); }
      +
      49  double const& y( ) const { return yuv(0); }
      +
      50  double const& u( ) const { return yuv(1); }
      +
      51  double const& v( ) const { return yuv(2); }
      +
      52  double const& yuv(size_t i, double c) { return val(i, c); }
      +
      53  double const& y( double c) { return yuv(0, c); }
      +
      54  double const& u( double c) { return yuv(1, c); }
      +
      55  double const& v( double c) { return yuv(2, c); }
      +
      56  double& yuvGet(size_t i) { return valGet(i); }
      +
      57  double& yGet( ) { return yuvGet(0); }
      +
      58  double& uGet( ) { return yuvGet(1); }
      +
      59  double& vGet( ) { return yuvGet(2); }
      + +
      61  copyFrom(b);
      +
      62  return *this;
      +
      63  }
      +
      64  YUVf_Space operator+(YUVf_Space const& b) const {
      +
      65  return YUVf_Space(val_ + b.val_);
      +
      66  }
      +
      67  YUVf_Space operator-(YUVf_Space const& b) const {
      +
      68  return YUVf_Space(val_ - b.val_);
      +
      69  }
      +
      70  YUVf_Space operator*(double const& c) const {
      +
      71  return YUVf_Space(val_ * c);
      +
      72  }
      +
      73  YUVf_Space operator/(double const& c) const {
      +
      74  return YUVf_Space(val_ / c);
      +
      75  }
      +
      76  double operator*(YUVf_Space const& b) const {
      +
      77  return val_ * b.val_;
      +
      78  }
      +
      79 };
      +
      80 
      +
      84 inline void colorTransformate(RGBf_Space const& rgb, YUVf_Space* yuv) {
      +
      85  double r = normalize(rgb.rMin(), rgb.rMax(), rgb.r());
      +
      86  double g = normalize(rgb.gMin(), rgb.gMax(), rgb.g());
      +
      87  double b = normalize(rgb.bMin(), rgb.bMax(), rgb.b());
      +
      88  double y = 0.299 * r + 0.587 * g + 0.114 * b;
      +
      89  double u = -0.169 * r - 0.331 * g + 0.500 * b + 0.5;
      +
      90  double v = 0.500 * r - 0.419 * g - 0.081 * b + 0.5;
      +
      91  yuv->y(denormalize(yuv->yMin(), yuv->yMax(), y));
      +
      92  yuv->u(denormalize(yuv->uMin(), yuv->uMax(), u));
      +
      93  yuv->v(denormalize(yuv->vMin(), yuv->vMax(), v));
      +
      94 }
      +
      95 
      +
      99 inline void colorTransformate(YUVf_Space const& yuv, RGBf_Space* rgb) {
      +
      100  double y = normalize(yuv.yMin(),yuv.yMax(),yuv.y());
      +
      101  double u = normalize(yuv.uMin(),yuv.uMax(),yuv.u());
      +
      102  double v = normalize(yuv.vMin(),yuv.vMax(),yuv.v());
      +
      103  double r = y - 0.00093 * (u - 0.5) + 1.401687 * (v - 0.5);
      +
      104  double g = y - 0.34370 * (u - 0.5) - 0.714170 * (v - 0.5);
      +
      105  double b = y + 1.77216 * (u - 0.5) - 0.000990 * (v - 0.5);
      +
      106  rgb->r(denormalize(rgb->rMin(), rgb->rMax(), r));
      +
      107  rgb->g(denormalize(rgb->gMin(), rgb->gMax(), g));
      +
      108  rgb->b(denormalize(rgb->bMin(), rgb->bMax(), b));
      +
      109 }
      +
      110 
      +
      114 inline void colorTransformate(RGBi_Space const& rgb, YUVf_Space* yuv) {
      +
      115  RGBf_Space tmp;
      +
      116  tmp.copyFrom(rgb);
      +
      117  colorTransformate(tmp, yuv);
      +
      118 }
      +
      119 
      +
      123 inline void colorTransformate(YUVf_Space const& yuv, RGBi_Space* rgb) {
      +
      124  RGBf_Space tmp;
      +
      125  colorTransformate(yuv, &tmp);
      +
      126  rgb->copyFrom(tmp);
      +
      127 }
      +
      128 
      +
      129 } // meow
      +
      130 
      +
      131 #endif // colors_YUV_H__
      +
      +
      + + + + + diff --git a/doc/html/annotated.html b/doc/html/annotated.html new file mode 100644 index 0000000..60d509c --- /dev/null +++ b/doc/html/annotated.html @@ -0,0 +1,128 @@ + + + + + + + +Templates -- Meow: Class List + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      Class List
      +
      +
      +
      Here are the classes, structs, unions and interfaces with brief descriptions:
      +
      [detail level 123]
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      \Nmeow
       oCColor3_Space以三個channel所組成的色彩空間
       oCHSLf_Space以浮點數Y(亮度), U(色度), V(濃度) 三個值所組成的色彩空間
       oCHSVf_Space以浮點數Y(亮度), U(色度), V(濃度) 三個值所組成的色彩空間
       oCRGBi_Space以整數 Red, Green, Blue 三個值所組成的色彩空間
       oCRGBf_Space以浮點數Red, Green, Blue 三個值所組成的色彩空間
       oCYUVf_Space以浮點數Y(亮度), U(色度), V(濃度) 三個值所組成的色彩空間
       oCBinaryIndexTree極度簡化的 SegmentTree 已無區間更新的操作
       oCDisjointSet用來維護一堆互斥集的資訊
       oCHashTableList一個當key相撞時會用list解決的hash_table
       oCKD_Treek-dimension tree
       oCMergeableHeap一個用 左偏樹 實作的 Maximum-Heap , 除了原本heap有的功能外, 還支援 merge 功能
       oCSegmentTree中文名 線段樹
       oCSplayTree是一種神乎其技的資料結構, 維護一堆 Key->Value . 並且支援 一些 std::map 難以快速實踐的操作, 如 split , merge , keyOffset
       |\CElement類似 stliterator ,不過這邊叫做Element
       oCSplayTree_Range基本上跟SplayTree一樣, 不過這邊結合線段樹, 多了區間操作 (線段樹相關operator定義請見 SegmentTree )
       |\CElement類似 stliterator ,不過這邊叫做Element
       oCVP_Tree跟KD_Tree很像歐
       oCVector2D2D's vector
       oCVector3D3D's vector
       oCBitmap二維點陣資料
       oCCameraCamera
       oCFeaturePoint特徵點
       oCFeaturePointsDetector
       oCFeaturePointsDetector_HarrisHarris corner detect
       oCFeaturePointIndexPair
       oCFeaturePointsMatch
       oCFeaturePointsMatch_K_Match
       oCIdentityPoints把一個 std::map<ID,Vector<Scalar> > 包起來
       oCPhoto底片
       oCViewPort未完待續
       oCWatchBall多個camera, 一個offset, 一個rotation
       oCLinearTransformationA base class for implementing kinds of linear transformations
       oCRotation3DRotation a point/vector alone an axis with given angle in 3D world
       oCMatrixmatrix
       oCTransformationA base class for implementing kinds of transformations
       oCBallProjectionA ball projection is to project the given vector to a hyper-sphere
       oCPhotoProjectionA photo projection is a kind of transformation that project point/vector to a flat photo
       oCVectorvector
       oCObjArray純粹把 std::vector 包起來, 變成繼承自 ObjBase
       oCObjBase一切物件的Base, 並要求每個物件都要有read, write, create, ... 等功能
       oCObjDictionary純粹把 std::map 包起來, 變成繼承自 ObjBase
       oCObjProperties目前擺爛中
       oCObjSelector利用register的概念, 達到runtime用string選擇要new的class
       oCObjType純粹把給定的 Type 包起來, 變成繼承自 ObjBase
       oCReaderWriter_int
       oCReaderWriter_size_t
       oCReaderWriter_double
       oCReaderWriter_string
       oCSelf具有copy on write, 且擁有比C++更靈活的reference機制
       \CUsage管理參數設置, 自訂usage document, 分析argc, argv
      +
      +
      +
      + + + + + diff --git a/doc/html/annotated.js b/doc/html/annotated.js new file mode 100644 index 0000000..ce01a24 --- /dev/null +++ b/doc/html/annotated.js @@ -0,0 +1,4 @@ +var annotated = +[ + [ "meow", "namespacemeow.html", "namespacemeow" ] +]; \ No newline at end of file diff --git a/doc/html/bc_s.png b/doc/html/bc_s.png new file mode 100644 index 0000000..65fcaab Binary files /dev/null and b/doc/html/bc_s.png differ diff --git a/doc/html/bdwn.png b/doc/html/bdwn.png new file mode 100644 index 0000000..27f7167 Binary files /dev/null and b/doc/html/bdwn.png differ diff --git a/doc/html/classdouble.html b/doc/html/classdouble.html new file mode 100644 index 0000000..21468fa --- /dev/null +++ b/doc/html/classdouble.html @@ -0,0 +1,74 @@ + + + + + + + +Templates -- Meow: double Class Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      double Class Reference
      +
      +
      +
      The documentation for this class was generated from the following files:
      +
      + + + + + diff --git a/doc/html/classes.html b/doc/html/classes.html new file mode 100644 index 0000000..04b522a --- /dev/null +++ b/doc/html/classes.html @@ -0,0 +1,116 @@ + + + + + + + +Templates -- Meow: Class Index + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      Class Index
      +
      +
      +
      B | C | D | E | F | H | I | K | L | M | O | P | R | S | T | U | V | W | Y
      + + + + + + + + + + + + + + + + + + + + + +
        B  
      +
      FeaturePointIndexPair (meow)   
        M  
      +
      ReaderWriter_int (meow)   
        V  
      +
      FeaturePointsDetector (meow)   ReaderWriter_size_t (meow)   
      BallProjection (meow)   FeaturePointsDetector_Harris (meow)   Matrix (meow)   ReaderWriter_string (meow)   Vector (meow)   
      BinaryIndexTree (meow)   FeaturePointsMatch (meow)   MergeableHeap (meow)   RGBf_Space (meow)   Vector2D (meow)   
      Bitmap (meow)   FeaturePointsMatch_K_Match (meow)   
        O  
      +
      RGBi_Space (meow)   Vector3D (meow)   
        C  
      +
        H  
      +
      Rotation3D (meow)   ViewPort (meow)   
      ObjArray (meow)   
        S  
      +
      VP_Tree (meow)   
      Camera (meow)   HashTableList (meow)   ObjBase (meow)   
        W  
      +
      Color3_Space (meow)   HSLf_Space (meow)   ObjDictionary (meow)   SegmentTree (meow)   
        D  
      +
      HSVf_Space (meow)   ObjProperties (meow)   Self (meow)   WatchBall (meow)   
        I  
      +
      ObjSelector (meow)   SplayTree (meow)   
        Y  
      +
      DisjointSet (meow)   ObjType (meow)   SplayTree_Range (meow)   
        E  
      +
      IdentityPoints (meow)   
        P  
      +
        T  
      +
      YUVf_Space (meow)   
        K  
      +
      SplayTree_Range::Element (meow)   Photo (meow)   Transformation (meow)   
      SplayTree::Element (meow)   KD_Tree (meow)   PhotoProjection (meow)   
        U  
      +
        F  
      +
        L  
      +
        R  
      +
      Usage (meow)   
      FeaturePoint (meow)   LinearTransformation (meow)   ReaderWriter_double (meow)   
      +
      B | C | D | E | F | H | I | K | L | M | O | P | R | S | T | U | V | W | Y
      +
      +
      + + + + + diff --git a/doc/html/classint.html b/doc/html/classint.html new file mode 100644 index 0000000..f73ed3c --- /dev/null +++ b/doc/html/classint.html @@ -0,0 +1,74 @@ + + + + + + + +Templates -- Meow: int Class Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      int Class Reference
      +
      +
      +
      The documentation for this class was generated from the following files:
      +
      + + + + + diff --git a/doc/html/classmeow_1_1BallProjection-members.html b/doc/html/classmeow_1_1BallProjection-members.html new file mode 100644 index 0000000..46af04d --- /dev/null +++ b/doc/html/classmeow_1_1BallProjection-members.html @@ -0,0 +1,105 @@ + + + + + + + +Templates -- Meow: Member List + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      meow::BallProjection< Scalar > Member List
      +
      +
      + +

      This is the complete list of members for meow::BallProjection< Scalar >, including all inherited members.

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      BallProjection(BallProjection const &b)meow::BallProjection< Scalar >inline
      BallProjection(size_t d)meow::BallProjection< Scalar >inline
      BallProjection(size_t d, Scalar const &r)meow::BallProjection< Scalar >inline
      copyFrom(BallProjection const &b)meow::BallProjection< Scalar >inline
      meow::Transformation::copyFrom(Transformation const &b)meow::Transformation< Scalar >inlineprotected
      dimension() const meow::BallProjection< Scalar >inline
      inputCols() const meow::Transformation< Scalar >inline
      inputRows() const meow::Transformation< Scalar >inline
      inversable() const meow::Transformation< Scalar >inlinevirtual
      jacobian(Matrix< Scalar > const &x) const meow::BallProjection< Scalar >inlinevirtual
      jacobian(Matrix< Scalar > const &x, size_t i) const meow::BallProjection< Scalar >inlinevirtual
      jacobianInv(Matrix< Scalar > const &x) const meow::Transformation< Scalar >inlinevirtual
      jacobianInv(Matrix< Scalar > const &x, size_t i) const meow::Transformation< Scalar >inlinevirtual
      operator()(Matrix< Scalar > const &v) const meow::BallProjection< Scalar >inline
      operator=(BallProjection const &b)meow::BallProjection< Scalar >inline
      outputCols() const meow::Transformation< Scalar >inline
      outputRows() const meow::Transformation< Scalar >inline
      parameter(size_t i) const meow::BallProjection< Scalar >inlinevirtual
      parameter(size_t i, Scalar const &s)meow::BallProjection< Scalar >inlinevirtual
      parameterSize() const meow::Transformation< Scalar >inline
      radius() const meow::BallProjection< Scalar >inline
      radius(Scalar const &r)meow::BallProjection< Scalar >inline
      referenceFrom(BallProjection const &b)meow::BallProjection< Scalar >inline
      meow::Transformation::referenceFrom(Transformation const &b)meow::Transformation< Scalar >inlineprotected
      transformate(Matrix< Scalar > const &x) const meow::BallProjection< Scalar >inlinevirtual
      transformateInv(Matrix< Scalar > const &x) const meow::Transformation< Scalar >inlinevirtual
      Transformation(size_t inputRows, size_t inputCols, size_t outputRows, size_t outputCols, size_t psize)meow::Transformation< Scalar >inlineprotected
      Transformation(Transformation const &b)meow::Transformation< Scalar >inlineprotected
      ~Transformation()meow::Transformation< Scalar >inlinevirtual
      +
      + + + + + diff --git a/doc/html/classmeow_1_1BallProjection.html b/doc/html/classmeow_1_1BallProjection.html new file mode 100644 index 0000000..1ae29d6 --- /dev/null +++ b/doc/html/classmeow_1_1BallProjection.html @@ -0,0 +1,745 @@ + + + + + + + +Templates -- Meow: meow::BallProjection< Scalar > Class Template Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      meow::BallProjection< Scalar > Class Template Reference
      +
      +
      + +

      A ball projection is to project the given vector to a hyper-sphere. + More...

      + +

      #include "Transformations.h"

      +
      +Inheritance diagram for meow::BallProjection< Scalar >:
      +
      +
      + + +meow::Transformation< Scalar > + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      +Public Member Functions

       BallProjection (BallProjection const &b)
       
       BallProjection (size_t d)
       
       BallProjection (size_t d, Scalar const &r)
       
      BallProjectioncopyFrom (BallProjection const &b)
       Copy settings from another one. More...
       
      BallProjectionreferenceFrom (BallProjection const &b)
       Reference settings from another one. More...
       
      Scalar parameter (size_t i) const
       same as radius() More...
       
      Scalar parameter (size_t i, Scalar const &s)
       same as radius(s) More...
       
      Scalar radius () const
       Return the value of the radius. More...
       
      Scalar radius (Scalar const &r)
       Setup the radius. More...
       
      size_t dimension () const
       Get the dimension of this projection. More...
       
      Matrix< Scalar > transformate (Matrix< Scalar > const &x) const
       Project the input vector(s) onto the hyper-sphere and return it. More...
       
      Matrix< Scalar > jacobian (Matrix< Scalar > const &x) const
       Return the jacobian matrix (derivate by the input vector) of this projection. More...
       
      Matrix< Scalar > jacobian (Matrix< Scalar > const &x, size_t i) const
       Return the jacobian matrix (derivate by radius) of this projection. More...
       
      BallProjectionoperator= (BallProjection const &b)
       Same as copyFrom(b) More...
       
      Matrix< Scalar > operator() (Matrix< Scalar > const &v) const
       Same as transformate(v) More...
       
      - Public Member Functions inherited from meow::Transformation< Scalar >
      virtual ~Transformation ()
       
      size_t inputRows () const
       Return the number of rows of the input matrix. More...
       
      size_t inputCols () const
       Return the number of columns of the input matrix. More...
       
      size_t outputRows () const
       Return the number of rows of the output matrix. More...
       
      size_t outputCols () const
       Return the number of columns of the output matrix. More...
       
      size_t parameterSize () const
       Return the number of parameters. More...
       
      virtual bool inversable () const
       Return whether this transformation is inversable or not. More...
       
      virtual Matrix< Scalar > transformateInv (Matrix< Scalar > const &x) const
       Do the inverse transformation. More...
       
      virtual Matrix< Scalar > jacobianInv (Matrix< Scalar > const &x) const
       Return the jacobian matrix of the inverse transformation. More...
       
      virtual Matrix< Scalar > jacobianInv (Matrix< Scalar > const &x, size_t i) const
       Return the jacobian matrix of the inverse transformation. More...
       
      + + + + + + + + + + + + +

      +Additional Inherited Members

      - Protected Member Functions inherited from meow::Transformation< Scalar >
       Transformation (size_t inputRows, size_t inputCols, size_t outputRows, size_t outputCols, size_t psize)
       
       Transformation (Transformation const &b)
       
      TransformationcopyFrom (Transformation const &b)
       Copy from the specified one. More...
       
      TransformationreferenceFrom (Transformation const &b)
       Ceference from the specified one. More...
       
      +

      Detailed Description

      +

      template<class Scalar>
      +class meow::BallProjection< Scalar >

      + +

      A ball projection is to project the given vector to a hyper-sphere.

      +

      Assume:

      +
        +
      • The dimension of a ball projection is $ N $
      • +
      • The radius of the hyper-sphere is $ R $
      • +
      +

      Then the transformation is like below:
      +

      +

      +\[ \left[ \begin{array}{c} x_1 \\ x_2 \\ x_3 \\ . \\ . \\ . \\ x_N \\ \end{array} \right] \stackrel{transformate}{\rightarrow} \left[ \begin{array}{c} \frac{x_1 \times R}{L} \\ \frac{x_2 \times R}{L} \\ \frac{x_3 \times R}{L} \\ . \\ . \\ . \\ \frac{x_N \times R}{L} \\ \end{array} \right] \\ \] +

      +

      where $ L=\sqrt{x_1^2 + x_2^2 + x_3^2 + ... + x_N^2 } $

      +
      Author
      cat_leopard
      +

      Constructor & Destructor Documentation

      + +
      +
      +
      +template<class Scalar >
      + + + + + +
      + + + + + + + + +
      meow::BallProjection< Scalar >::BallProjection (BallProjection< Scalar > const & b)
      +
      +inline
      +
      +

      Constructor, copy settings from given BallProjection

      +
      Parameters
      + + +
      [in]banother ball projection class
      +
      +
      + +
      +
      + +
      +
      +
      +template<class Scalar >
      + + + + + +
      + + + + + + + + +
      meow::BallProjection< Scalar >::BallProjection (size_t d)
      +
      +inline
      +
      +

      Constructor and setup, radius = 1

      +
      Parameters
      + + +
      [in]dDimension of the input/output vector
      +
      +
      + +
      +
      + +
      +
      +
      +template<class Scalar >
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      meow::BallProjection< Scalar >::BallProjection (size_t d,
      Scalar const & r 
      )
      +
      +inline
      +
      +

      Constructor and setup

      +
      Parameters
      + + + +
      [in]dDimension of the input/output vector
      [in]rRadius of the hyper-sphere
      +
      +
      + +
      +
      +

      Member Function Documentation

      + +
      +
      +
      +template<class Scalar >
      + + + + + +
      + + + + + + + + +
      BallProjection& meow::BallProjection< Scalar >::copyFrom (BallProjection< Scalar > const & b)
      +
      +inline
      +
      + +

      Copy settings from another one.

      +
      Parameters
      + + +
      [in]bAnother one
      +
      +
      +
      Returns
      *this
      + +
      +
      + +
      +
      +
      +template<class Scalar >
      + + + + + +
      + + + + + + + +
      size_t meow::BallProjection< Scalar >::dimension () const
      +
      +inline
      +
      + +

      Get the dimension of this projection.

      + +
      +
      + +
      +
      +
      +template<class Scalar >
      + + + + + +
      + + + + + + + + +
      Matrix<Scalar> meow::BallProjection< Scalar >::jacobian (Matrix< Scalar > const & x) const
      +
      +inlinevirtual
      +
      + +

      Return the jacobian matrix (derivate by the input vector) of this projection.

      +

      This method only allow a vector-like matrix be input. Assume:

      +
        +
      • The dimension of a ball projection is $ N $
      • +
      • The length of the input vector is $ L=\sqrt{x_1^2+x_2^2+...+x_N^2} $
      • +
      • The radius of the hyper-sphere is $ R $
      • +
      +

      Then the jacobian matrix is like below:
      +

      +

      +\[ \frac{R}{L^3} \times \left[ \begin{array}{ccccc} L^2-x_1^2 & -x_1x_2 & -x_1x_3 & ... & -x_1x_N \\ -x_2x_1 & L^2-x_2^2 & -x_2x_3 & ... & -x_2x_N \\ -x_3x_1 & -x_3x_2 & L^2-x_3^2 & ... & -x_3x_N \\ . & . & . & & . \\ . & . & . & & . \\ . & . & . & & . \\ -x_Nx_1 & -x_Nx_2 & -x_Nx_3 & ... & L^2-x_N^2 \\ \end{array} \right] \] +

      +
      Parameters
      + + +
      [in]xThe input matrix.
      +
      +
      +
      Returns
      The output matrix.
      + +

      Reimplemented from meow::Transformation< Scalar >.

      + +
      +
      + +
      +
      +
      +template<class Scalar >
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      Matrix<Scalar> meow::BallProjection< Scalar >::jacobian (Matrix< Scalar > const & x,
      size_t i 
      ) const
      +
      +inlinevirtual
      +
      + +

      Return the jacobian matrix (derivate by radius) of this projection.

      +

      This method only allow a vector-like matrix be input. Assume:

      +
        +
      • The dimension of a ball projection is $ N $
      • +
      • The length of the input vector is $ L=\sqrt{x_1^2+x_2^2+...+x_N^2} $
      • +
      • The radius of the hyper-sphere is $ R $
      • +
      +

      Then the jacobian matrix is like below:
      +

      +

      +\[ R \times \left[ \begin{array}{c} \frac{x_1}{L} \\ \frac{x_2}{L} \\ \frac{x_3}{L} \\ . \\ . \\ . \\ \frac{x_N}{L} \\ \end{array} \right] \] +

      +
      Parameters
      + + + +
      [in]xThe input matrix.
      [in]iUseless parameter
      +
      +
      +
      Returns
      The output matrix.
      + +

      Reimplemented from meow::Transformation< Scalar >.

      + +
      +
      + +
      +
      +
      +template<class Scalar >
      + + + + + +
      + + + + + + + + +
      Matrix<Scalar> meow::BallProjection< Scalar >::operator() (Matrix< Scalar > const & v) const
      +
      +inline
      +
      + +

      Same as transformate(v)

      + +
      +
      + +
      +
      +
      +template<class Scalar >
      + + + + + +
      + + + + + + + + +
      BallProjection& meow::BallProjection< Scalar >::operator= (BallProjection< Scalar > const & b)
      +
      +inline
      +
      + +

      Same as copyFrom(b)

      + +
      +
      + +
      +
      +
      +template<class Scalar >
      + + + + + +
      + + + + + + + + +
      Scalar meow::BallProjection< Scalar >::parameter (size_t i) const
      +
      +inlinevirtual
      +
      + +

      same as radius()

      + +

      Implements meow::Transformation< Scalar >.

      + +
      +
      + +
      +
      +
      +template<class Scalar >
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      Scalar meow::BallProjection< Scalar >::parameter (size_t i,
      Scalar const & s 
      )
      +
      +inlinevirtual
      +
      + +

      same as radius(s)

      + +

      Implements meow::Transformation< Scalar >.

      + +
      +
      + +
      +
      +
      +template<class Scalar >
      + + + + + +
      + + + + + + + +
      Scalar meow::BallProjection< Scalar >::radius () const
      +
      +inline
      +
      + +

      Return the value of the radius.

      + +
      +
      + +
      +
      +
      +template<class Scalar >
      + + + + + +
      + + + + + + + + +
      Scalar meow::BallProjection< Scalar >::radius (Scalar const & r)
      +
      +inline
      +
      + +

      Setup the radius.

      +
      Parameters
      + + +
      [in]rNew value of the radius
      +
      +
      +
      Returns
      New radius
      + +
      +
      + +
      +
      +
      +template<class Scalar >
      + + + + + +
      + + + + + + + + +
      BallProjection& meow::BallProjection< Scalar >::referenceFrom (BallProjection< Scalar > const & b)
      +
      +inline
      +
      + +

      Reference settings from another one.

      +
      Parameters
      + + +
      [in]bAnother one
      +
      +
      +
      Returns
      *this
      + +
      +
      + +
      +
      +
      +template<class Scalar >
      + + + + + +
      + + + + + + + + +
      Matrix<Scalar> meow::BallProjection< Scalar >::transformate (Matrix< Scalar > const & x) const
      +
      +inlinevirtual
      +
      + +

      Project the input vector(s) onto the hyper-sphere and return it.

      +

      If the number of columns of the input matrix is larger than 1, this method will think that you want to transform multiple vector once and the number of columns of the output matrix will be the same of the number of columns of the input one.

      +
      Parameters
      + + +
      [in]xThe input matrix.
      +
      +
      +
      Returns
      The output matrix.
      +
      Note
      Take into account that too much safty checking will lead to inefficient, this method will not checking whether the dimension of the input vector/matrix is right. So be sure the data is valid before you call this method.
      + +

      Implements meow::Transformation< Scalar >.

      + +
      +
      +
      The documentation for this class was generated from the following file: +
      +
      + + + + + diff --git a/doc/html/classmeow_1_1BallProjection.js b/doc/html/classmeow_1_1BallProjection.js new file mode 100644 index 0000000..077a394 --- /dev/null +++ b/doc/html/classmeow_1_1BallProjection.js @@ -0,0 +1,18 @@ +var classmeow_1_1BallProjection = +[ + [ "BallProjection", "classmeow_1_1BallProjection.html#a1efa5c200a9d5605453b47e3856ccf28", null ], + [ "BallProjection", "classmeow_1_1BallProjection.html#af7e722b66c6bbc7245726902b6849850", null ], + [ "BallProjection", "classmeow_1_1BallProjection.html#a9d9d151e138e50c2bb4cd3d039fb0808", null ], + [ "copyFrom", "classmeow_1_1BallProjection.html#aec71a15af880bdaea8042986c11e2187", null ], + [ "dimension", "classmeow_1_1BallProjection.html#a3eff2f36a83ba683da6bc9bb82699b30", null ], + [ "jacobian", "classmeow_1_1BallProjection.html#a4fb7773f5566e93435ba56defbb7efc6", null ], + [ "jacobian", "classmeow_1_1BallProjection.html#ad2d62da97dd4b527c254e62a1ec949d8", null ], + [ "operator()", "classmeow_1_1BallProjection.html#a4f2e133f911088b7e13cabc52b3e6b92", null ], + [ "operator=", "classmeow_1_1BallProjection.html#a8e7e0ddd31c51bbaa934f77aee760f18", null ], + [ "parameter", "classmeow_1_1BallProjection.html#adf2bcb2f82e9f7e2136b187317ba3211", null ], + [ "parameter", "classmeow_1_1BallProjection.html#a288814dc861482dd70129a698b1a2d7e", null ], + [ "radius", "classmeow_1_1BallProjection.html#a82416bac8768d0f40fc09e8cd3896bc8", null ], + [ "radius", "classmeow_1_1BallProjection.html#a5e4bbc9cf477002fab2dad6f37e2553c", null ], + [ "referenceFrom", "classmeow_1_1BallProjection.html#adaf8d494c1177664f49bb63a5d2f36b0", null ], + [ "transformate", "classmeow_1_1BallProjection.html#a2573c364dd1e0d7de32b1e2afc0bb1b5", null ] +]; \ No newline at end of file diff --git a/doc/html/classmeow_1_1BallProjection.png b/doc/html/classmeow_1_1BallProjection.png new file mode 100644 index 0000000..a10be19 Binary files /dev/null and b/doc/html/classmeow_1_1BallProjection.png differ diff --git a/doc/html/classmeow_1_1BinaryIndexTree-members.html b/doc/html/classmeow_1_1BinaryIndexTree-members.html new file mode 100644 index 0000000..594a5c3 --- /dev/null +++ b/doc/html/classmeow_1_1BinaryIndexTree-members.html @@ -0,0 +1,82 @@ + + + + + + + +Templates -- Meow: Member List + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      meow::BinaryIndexTree< Value > Member List
      +
      +
      + +

      This is the complete list of members for meow::BinaryIndexTree< Value >, including all inherited members.

      + + + + + + + +
      BinaryIndexTree()meow::BinaryIndexTree< Value >inline
      BinaryIndexTree(size_t size, Value const &value)meow::BinaryIndexTree< Value >inline
      BinaryIndexTree(BinaryIndexTree const &tree2)meow::BinaryIndexTree< Value >inline
      query(ssize_t index) const meow::BinaryIndexTree< Value >inline
      reset(size_t size, Value const &init)meow::BinaryIndexTree< Value >inline
      update(size_t index, Value const &value)meow::BinaryIndexTree< Value >inline
      +
      + + + + + diff --git a/doc/html/classmeow_1_1BinaryIndexTree.html b/doc/html/classmeow_1_1BinaryIndexTree.html new file mode 100644 index 0000000..761997a --- /dev/null +++ b/doc/html/classmeow_1_1BinaryIndexTree.html @@ -0,0 +1,353 @@ + + + + + + + +Templates -- Meow: meow::BinaryIndexTree< Value > Class Template Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      meow::BinaryIndexTree< Value > Class Template Reference
      +
      +
      + +

      極度簡化的 SegmentTree 已無區間更新的操作 + More...

      + +

      #include "BinaryIndexTree.h"

      + + + + + + + + + + + + + + + + + + + + +

      +Public Member Functions

       BinaryIndexTree ()
       constructor More...
       
       BinaryIndexTree (size_t size, Value const &value)
       constructor More...
       
       BinaryIndexTree (BinaryIndexTree const &tree2)
       constructor More...
       
      void reset (size_t size, Value const &init)
       將資料洗掉, 重設 More...
       
      void update (size_t index, Value const &value)
       將array中第 index (從零算起)個element多加上指定的值 More...
       
      Value query (ssize_t index) const
       詢問 0~index 的區間值 More...
       
      +

      Detailed Description

      +

      template<class Value>
      +class meow::BinaryIndexTree< Value >

      + +

      極度簡化的 SegmentTree 已無區間更新的操作

      +

      一般來說只能用在維護區間總和, 維護區間最大值只有在特殊情況才可以, 即 針對每個元素, 每次update() 的值一定會大於等於原本的值 . 若要用區間最大值 , 則 Valueoperator+ 要寫成 std::max(...)

      +
      Author
      cat_leopard
      +

      Constructor & Destructor Documentation

      + +
      +
      +
      +template<class Value >
      + + + + + +
      + + + + + + + +
      meow::BinaryIndexTree< Value >::BinaryIndexTree ()
      +
      +inline
      +
      + +

      constructor

      + +
      +
      + +
      +
      +
      +template<class Value >
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      meow::BinaryIndexTree< Value >::BinaryIndexTree (size_t size,
      Value const & value 
      )
      +
      +inline
      +
      + +

      constructor

      +
      Parameters
      + + + +
      [in]size要維護的區間大小 [0,size)
      [in]value預設值
      +
      +
      + +
      +
      + +
      +
      +
      +template<class Value >
      + + + + + +
      + + + + + + + + +
      meow::BinaryIndexTree< Value >::BinaryIndexTree (BinaryIndexTree< Value > const & tree2)
      +
      +inline
      +
      + +

      constructor

      +

      將另一個 BinaryIndexTree 原封不動的複製過來

      +
      Parameters
      + + +
      [in]tree2另外一個 BinaryIndexTree
      +
      +
      + +
      +
      +

      Member Function Documentation

      + +
      +
      +
      +template<class Value >
      + + + + + +
      + + + + + + + + +
      Value meow::BinaryIndexTree< Value >::query (ssize_t index) const
      +
      +inline
      +
      + +

      詢問 0~index 的區間值

      +

      時間複雜度O(logN)

      +
      Parameters
      + + +
      [in]index指定的index
      +
      +
      +
      Returns
      區間值
      + +
      +
      + +
      +
      +
      +template<class Value >
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      void meow::BinaryIndexTree< Value >::reset (size_t size,
      Value const & init 
      )
      +
      +inline
      +
      + +

      將資料洗掉, 重設

      +

      時間複雜度O(N)

      +
      Parameters
      + + + +
      [in]size要維護的區間大小 [0,size)
      [in]init預設值
      +
      +
      +
      Returns
      + +
      +
      + +
      +
      +
      +template<class Value >
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      void meow::BinaryIndexTree< Value >::update (size_t index,
      Value const & value 
      )
      +
      +inline
      +
      + +

      將array中第 index (從零算起)個element多加上指定的值

      +

      時間複雜度O(logN)

      +
      Parameters
      + + + +
      [in]index指定的index
      [in]value指定的值
      +
      +
      +
      Returns
      + +
      +
      +
      The documentation for this class was generated from the following file: +
      +
      + + + + + diff --git a/doc/html/classmeow_1_1BinaryIndexTree.js b/doc/html/classmeow_1_1BinaryIndexTree.js new file mode 100644 index 0000000..582ffab --- /dev/null +++ b/doc/html/classmeow_1_1BinaryIndexTree.js @@ -0,0 +1,9 @@ +var classmeow_1_1BinaryIndexTree = +[ + [ "BinaryIndexTree", "classmeow_1_1BinaryIndexTree.html#afe34f33091c5c8267f1d219ff40824c4", null ], + [ "BinaryIndexTree", "classmeow_1_1BinaryIndexTree.html#a355a4eacbfbe2112720d529efdbad021", null ], + [ "BinaryIndexTree", "classmeow_1_1BinaryIndexTree.html#a8323caade12e478be1e47b7612a60b8f", null ], + [ "query", "classmeow_1_1BinaryIndexTree.html#a99f7d954c32c0292a9dda4b74abe5833", null ], + [ "reset", "classmeow_1_1BinaryIndexTree.html#a5634a9420ee864860bbf8605b9e17c32", null ], + [ "update", "classmeow_1_1BinaryIndexTree.html#a3a4f1799b20d5dab24d8cc584db5d32d", null ] +]; \ No newline at end of file diff --git a/doc/html/classmeow_1_1Bitmap-members.html b/doc/html/classmeow_1_1Bitmap-members.html new file mode 100644 index 0000000..2512219 --- /dev/null +++ b/doc/html/classmeow_1_1Bitmap-members.html @@ -0,0 +1,112 @@ + + + + + + + +Templates -- Meow: Member List + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      meow::Bitmap< Pixel > Member List
      +
      +
      + +

      This is the complete list of members for meow::Bitmap< Pixel >, including all inherited members.

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Bitmap()meow::Bitmap< Pixel >inline
      Bitmap(Bitmap const &b)meow::Bitmap< Pixel >inline
      Bitmap(size_t h, size_t w, Pixel const &p)meow::Bitmap< Pixel >inline
      clear()meow::Bitmap< Pixel >inline
      copyFrom(Bitmap const &b)meow::Bitmap< Pixel >inline
      copyFrom(ObjBase const *b)meow::Bitmap< Pixel >inlinevirtual
      create() const meow::Bitmap< Pixel >inlinevirtual
      ctype() const meow::Bitmap< Pixel >inlinevirtual
      ctypeBase()meow::ObjBaseinlinestatic
      gaussian(double radiusY, double radiusX) const meow::Bitmap< Pixel >inline
      gaussianed(double radiusY, double radiusX)meow::Bitmap< Pixel >inline
      gradiancedX(double radiusY, double radiusX)meow::Bitmap< Pixel >inline
      gradiancedY(double radiusY, double radiusX)meow::Bitmap< Pixel >inline
      gradianceX(double radiusY, double radiusX) const meow::Bitmap< Pixel >inline
      gradianceY(double radiusY, double radiusX) const meow::Bitmap< Pixel >inline
      height() const meow::Bitmap< Pixel >inline
      height(size_t h2, Pixel const &p)meow::Bitmap< Pixel >inline
      ObjBase()meow::ObjBaseinlineprotected
      operator()(size_t y, size_t x) const meow::Bitmap< Pixel >inline
      operator()(size_t y, size_t x, Pixel const &p) const meow::Bitmap< Pixel >inline
      operator=(Bitmap const &b)meow::Bitmap< Pixel >inline
      pixel(size_t y, size_t x) const meow::Bitmap< Pixel >inline
      pixel(size_t y, size_t x, Pixel const &p)meow::Bitmap< Pixel >inline
      pixels(ssize_t yFirst, ssize_t yLast, ssize_t xFirst, ssize_t xLast, Pixel const &p)meow::Bitmap< Pixel >inline
      read(FILE *f, bool bin, unsigned int fg)meow::Bitmap< Pixel >inlinevirtual
      referenceFrom(Bitmap const &b)meow::Bitmap< Pixel >inline
      reset(size_t h, size_t w, Pixel const &p)meow::Bitmap< Pixel >inline
      size() const meow::Bitmap< Pixel >inline
      size(size_t h2, size_t w2, Pixel const &p)meow::Bitmap< Pixel >inline
      type() const meow::Bitmap< Pixel >inlinevirtual
      typeBase()meow::ObjBaseinlinestatic
      width() const meow::Bitmap< Pixel >inline
      width(size_t w2, Pixel const &p)meow::Bitmap< Pixel >inline
      write(FILE *f, bool bin, unsigned int fg) const meow::Bitmap< Pixel >inlinevirtual
      ~Bitmap()meow::Bitmap< Pixel >inline
      ~ObjBase()meow::ObjBaseinlinevirtual
      +
      + + + + + diff --git a/doc/html/classmeow_1_1Bitmap.html b/doc/html/classmeow_1_1Bitmap.html new file mode 100644 index 0000000..3c865f3 --- /dev/null +++ b/doc/html/classmeow_1_1Bitmap.html @@ -0,0 +1,1489 @@ + + + + + + + +Templates -- Meow: meow::Bitmap< Pixel > Class Template Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      meow::Bitmap< Pixel > Class Template Reference
      +
      +
      + +

      二維點陣資料 + More...

      + +

      #include "Bitmap.h"

      +
      +Inheritance diagram for meow::Bitmap< Pixel >:
      +
      +
      + + +meow::ObjBase + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      +Public Member Functions

       Bitmap ()
       constructor, 產生一個空的Bitmap More...
       
       Bitmap (Bitmap const &b)
       constructor, 複製一個bitmap More...
       
       Bitmap (size_t h, size_t w, Pixel const &p)
       constructor, 指定寬高, 預設Pixel More...
       
       ~Bitmap ()
       destructor More...
       
      BitmapcopyFrom (Bitmap const &b)
       複製 More...
       
      BitmapreferenceFrom (Bitmap const &b)
       reference More...
       
      void reset (size_t h, size_t w, Pixel const &p)
       全部重設 More...
       
      void clear ()
       清除資料, 寬高階規零 More...
       
      size_t height () const
       回傳高度 More...
       
      size_t width () const
       回傳寬度 More...
       
      size_t size () const
       回傳高度乘以寬度 More...
       
      size_t height (size_t h2, Pixel const &p)
       修改高度 More...
       
      size_t width (size_t w2, Pixel const &p)
       修改寬度 More...
       
      size_t size (size_t h2, size_t w2, Pixel const &p)
       修改寬高 More...
       
      Pixel pixel (size_t y, size_t x) const
       取得 (y, x) 的pixel More...
       
      Pixel pixel (size_t y, size_t x, Pixel const &p)
       修改 (y, x) 的pixel More...
       
      void pixels (ssize_t yFirst, ssize_t yLast, ssize_t xFirst, ssize_t xLast, Pixel const &p)
       區塊修改 More...
       
      Bitmap gaussian (double radiusY, double radiusX) const
       回傳高斯模糊 More...
       
      Bitmap< Pixel > & gaussianed (double radiusY, double radiusX)
       把自己高斯模糊 More...
       
      Bitmap< Pixel > gradianceX (double radiusY, double radiusX) const
       回傳對x偏微分 More...
       
      Bitmap< Pixel > & gradiancedX (double radiusY, double radiusX)
       把自己對x偏微分 More...
       
      Bitmap< Pixel > gradianceY (double radiusY, double radiusX) const
       回傳對y偏微分 More...
       
      Bitmap< Pixel > & gradiancedY (double radiusY, double radiusX)
       把自己對y偏微分 More...
       
      Bitmapoperator= (Bitmap const &b)
       same as copyFrom(b) More...
       
      Pixel operator() (size_t y, size_t x) const
       same as pixel(y, x) More...
       
      Pixel const & operator() (size_t y, size_t x, Pixel const &p) const
       same as pixel(y, x, p) More...
       
      bool write (FILE *f, bool bin, unsigned int fg) const
       將資料寫入檔案 More...
       
      bool read (FILE *f, bool bin, unsigned int fg)
       將資料讀入 More...
       
      ObjBasecreate () const
       new一個自己 More...
       
      ObjBasecopyFrom (ObjBase const *b)
       複製資料 More...
       
      char const * ctype () const
       回傳class的type More...
       
      std::string type () const
       回傳class的type More...
       
      - Public Member Functions inherited from meow::ObjBase
      virtual ~ObjBase ()
       
      + + + + + + + + + +

      +Additional Inherited Members

      - Static Public Member Functions inherited from meow::ObjBase
      static char const * ctypeBase ()
       
      static std::string typeBase ()
       
      - Protected Member Functions inherited from meow::ObjBase
       ObjBase ()
       
      +

      Detailed Description

      +

      template<class Pixel>
      +class meow::Bitmap< Pixel >

      + +

      二維點陣資料

      +
      Author
      cat_leopard
      +

      Constructor & Destructor Documentation

      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + +
      meow::Bitmap< Pixel >::Bitmap ()
      +
      +inline
      +
      + +

      constructor, 產生一個空的Bitmap

      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + +
      meow::Bitmap< Pixel >::Bitmap (Bitmap< Pixel > const & b)
      +
      +inline
      +
      + +

      constructor, 複製一個bitmap

      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      meow::Bitmap< Pixel >::Bitmap (size_t h,
      size_t w,
      Pixel const & p 
      )
      +
      +inline
      +
      + +

      constructor, 指定寬高, 預設Pixel

      +
      Parameters
      + + + + +
      [in]h
      [in]w
      [in]p預設pixel
      +
      +
      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + +
      meow::Bitmap< Pixel >::~Bitmap ()
      +
      +inline
      +
      + +

      destructor

      + +
      +
      +

      Member Function Documentation

      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + +
      void meow::Bitmap< Pixel >::clear ()
      +
      +inline
      +
      + +

      清除資料, 寬高階規零

      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + +
      Bitmap& meow::Bitmap< Pixel >::copyFrom (Bitmap< Pixel > const & b)
      +
      +inline
      +
      + +

      複製

      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + +
      ObjBase* meow::Bitmap< Pixel >::copyFrom (ObjBase const * b)
      +
      +inlinevirtual
      +
      + +

      複製資料

      +
      輸入型別是 \c ObjBase \c const*
      +這裡假設實體其實是 \c Bitmap.
      +事實上這個method就只是幫忙轉型然後呼叫原本的\c copyFrom
      +
      Parameters
      + + +
      [in]b資料來源
      +
      +
      +
      Returns
      this
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + +
      ObjBase* meow::Bitmap< Pixel >::create () const
      +
      +inlinevirtual
      +
      + +

      new一個自己

      +
      Returns
      一個new出來的Bitmap<Pixel>
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + +
      char const* meow::Bitmap< Pixel >::ctype () const
      +
      +inlinevirtual
      +
      + +

      回傳class的type

      +
      Returns
      char const* 形式的typename
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      Bitmap meow::Bitmap< Pixel >::gaussian (double radiusY,
      double radiusX 
      ) const
      +
      +inline
      +
      + +

      回傳高斯模糊

      +
      Parameters
      + + + +
      [in]radiusY高斯模糊的Y軸方向的sigma
      [in]radiusX高斯模糊的X軸方向的sigma
      +
      +
      +
      Returns
      一個Bitmap , 是自己被高斯模糊後的結果
      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      Bitmap<Pixel>& meow::Bitmap< Pixel >::gaussianed (double radiusY,
      double radiusX 
      )
      +
      +inline
      +
      + +

      把自己高斯模糊

      +
      Parameters
      + + + +
      [in]radiusY高斯模糊的Y軸方向的sigma
      [in]radiusX高斯模糊的X軸方向的sigma
      +
      +
      +
      Returns
      *this
      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      Bitmap<Pixel>& meow::Bitmap< Pixel >::gradiancedX (double radiusY,
      double radiusX 
      )
      +
      +inline
      +
      + +

      把自己對x偏微分

      +
      Parameters
      + + + +
      [in]radiusY高斯模糊的Y軸方向的sigma
      [in]radiusX高斯模糊的X軸方向的sigma
      +
      +
      +
      Returns
      *this
      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      Bitmap<Pixel>& meow::Bitmap< Pixel >::gradiancedY (double radiusY,
      double radiusX 
      )
      +
      +inline
      +
      + +

      把自己對y偏微分

      +
      Parameters
      + + + +
      [in]radiusY高斯模糊的Y軸方向的sigma
      [in]radiusX高斯模糊的X軸方向的sigma
      +
      +
      +
      Returns
      *this
      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      Bitmap<Pixel> meow::Bitmap< Pixel >::gradianceX (double radiusY,
      double radiusX 
      ) const
      +
      +inline
      +
      + +

      回傳對x偏微分

      +
      Parameters
      + + + +
      [in]radiusY高斯模糊的Y軸方向的sigma
      [in]radiusX高斯模糊的X軸方向的sigma
      +
      +
      +
      Returns
      一個Bitmap , 是自己被偏微分後的結果
      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      Bitmap<Pixel> meow::Bitmap< Pixel >::gradianceY (double radiusY,
      double radiusX 
      ) const
      +
      +inline
      +
      + +

      回傳對y偏微分

      +
      Parameters
      + + + +
      [in]radiusY高斯模糊的Y軸方向的sigma
      [in]radiusX高斯模糊的X軸方向的sigma
      +
      +
      +
      Returns
      一個Bitmap , 是自己被偏微分後的結果
      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + +
      size_t meow::Bitmap< Pixel >::height () const
      +
      +inline
      +
      + +

      回傳高度

      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      size_t meow::Bitmap< Pixel >::height (size_t h2,
      Pixel const & p 
      )
      +
      +inline
      +
      + +

      修改高度

      +
      Parameters
      + + + +
      [in]h2新的高
      [in]p如果高有變大, 則新長出來的地方用此 pixel填補
      +
      +
      +
      Returns
      新的高
      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      Pixel meow::Bitmap< Pixel >::operator() (size_t y,
      size_t x 
      ) const
      +
      +inline
      +
      + +

      same as pixel(y, x)

      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      Pixel const& meow::Bitmap< Pixel >::operator() (size_t y,
      size_t x,
      Pixel const & p 
      ) const
      +
      +inline
      +
      + +

      same as pixel(y, x, p)

      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + +
      Bitmap& meow::Bitmap< Pixel >::operator= (Bitmap< Pixel > const & b)
      +
      +inline
      +
      + +

      same as copyFrom(b)

      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      Pixel meow::Bitmap< Pixel >::pixel (size_t y,
      size_t x 
      ) const
      +
      +inline
      +
      + +

      取得 (y, x) 的pixel

      +
      Parameters
      + + + +
      [in]y
      [in]x
      +
      +
      +
      Returns
      該pixel 的 constant reference
      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      Pixel meow::Bitmap< Pixel >::pixel (size_t y,
      size_t x,
      Pixel const & p 
      )
      +
      +inline
      +
      + +

      修改 (y, x) 的pixel

      +
      Parameters
      + + + + +
      [in]y
      [in]x
      [in]p指定的顏色
      +
      +
      +
      Returns
      該pixel 的 constant reference
      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      void meow::Bitmap< Pixel >::pixels (ssize_t yFirst,
      ssize_t yLast,
      ssize_t xFirst,
      ssize_t xLast,
      Pixel const & p 
      )
      +
      +inline
      +
      + +

      區塊修改

      +

      一口氣將一個矩形區塊修改成指定的顏色

      +
      Parameters
      + + + + + + +
      [in]yFirsty軸方向最小值(含)
      [in]yLasty軸方向最大值(含)
      [in]xFirstx軸方向最小值(含)
      [in]xLastx軸方向最大值(含)
      [in]p指定的顏色
      +
      +
      +
      Returns
      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      bool meow::Bitmap< Pixel >::read (FILE * f,
      bool bin,
      unsigned int fg 
      )
      +
      +inlinevirtual
      +
      + +

      將資料讀入

      +
      Note
      未完成, 輸入參數 fg 無用
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + +
      Bitmap& meow::Bitmap< Pixel >::referenceFrom (Bitmap< Pixel > const & b)
      +
      +inline
      +
      + +

      reference

      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      void meow::Bitmap< Pixel >::reset (size_t h,
      size_t w,
      Pixel const & p 
      )
      +
      +inline
      +
      + +

      全部重設

      +
      Parameters
      + + + + +
      [in]h
      [in]w
      [in]p預設pixel
      +
      +
      +
      Returns
      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + +
      size_t meow::Bitmap< Pixel >::size () const
      +
      +inline
      +
      + +

      回傳高度乘以寬度

      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      size_t meow::Bitmap< Pixel >::size (size_t h2,
      size_t w2,
      Pixel const & p 
      )
      +
      +inline
      +
      + +

      修改寬高

      +
      Parameters
      + + + + +
      [in]h2新的高
      [in]w2新的寬
      [in]p如果寬or高有變大, 則新長出來的地方用此 pixel填補
      +
      +
      +
      Returns
      新的size
      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + +
      std::string meow::Bitmap< Pixel >::type () const
      +
      +inlinevirtual
      +
      + +

      回傳class的type

      +
      Returns
      std::string 形式的typename
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + +
      size_t meow::Bitmap< Pixel >::width () const
      +
      +inline
      +
      + +

      回傳寬度

      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      size_t meow::Bitmap< Pixel >::width (size_t w2,
      Pixel const & p 
      )
      +
      +inline
      +
      + +

      修改寬度

      +
      Parameters
      + + + +
      [in]w2新的寬
      [in]p如果寬有變大, 則新長出來的地方用此 pixel填補
      +
      +
      +
      Returns
      新的寬
      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      bool meow::Bitmap< Pixel >::write (FILE * f,
      bool bin,
      unsigned int fg 
      ) const
      +
      +inlinevirtual
      +
      + +

      將資料寫入檔案

      +
      Note
      未完成, 輸入參數 fg 無用
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      +
      The documentation for this class was generated from the following file: +
      +
      + + + + + diff --git a/doc/html/classmeow_1_1Bitmap.js b/doc/html/classmeow_1_1Bitmap.js new file mode 100644 index 0000000..5130be9 --- /dev/null +++ b/doc/html/classmeow_1_1Bitmap.js @@ -0,0 +1,35 @@ +var classmeow_1_1Bitmap = +[ + [ "Bitmap", "classmeow_1_1Bitmap.html#ab313e096befabd933633cb75b870f75c", null ], + [ "Bitmap", "classmeow_1_1Bitmap.html#a2621e8833933b59c0e82e8776f1a6f11", null ], + [ "Bitmap", "classmeow_1_1Bitmap.html#af4c9896dc2cdc714be5106bef45430c8", null ], + [ "~Bitmap", "classmeow_1_1Bitmap.html#a73386b915d50c06f8e15cb6b53e9eb0e", null ], + [ "clear", "classmeow_1_1Bitmap.html#a573af36148f56209f9b537ee446e2867", null ], + [ "copyFrom", "classmeow_1_1Bitmap.html#a5e08b5d3c78c91b33b83da02b658539b", null ], + [ "copyFrom", "classmeow_1_1Bitmap.html#a998a6a9607f8552ace65cce0d251042c", null ], + [ "create", "classmeow_1_1Bitmap.html#a07b1eb689498112691ca72e8c6ae453f", null ], + [ "ctype", "classmeow_1_1Bitmap.html#af8debba04055594b8507c77b3dbd0ff7", null ], + [ "gaussian", "classmeow_1_1Bitmap.html#a499f3f0ceb101cb92ea8cd030b3d9952", null ], + [ "gaussianed", "classmeow_1_1Bitmap.html#a0aae89f4f8dbc1ba2b8f43e29a4a592e", null ], + [ "gradiancedX", "classmeow_1_1Bitmap.html#a1630de00aebe37d58e04d6b9fc69eafb", null ], + [ "gradiancedY", "classmeow_1_1Bitmap.html#ae8d8985bd64971590862b165e2949faf", null ], + [ "gradianceX", "classmeow_1_1Bitmap.html#aaf5c0c592084c80bce532801f4cdeb22", null ], + [ "gradianceY", "classmeow_1_1Bitmap.html#aa08c848b01a304f4569f0e45f3ccee12", null ], + [ "height", "classmeow_1_1Bitmap.html#a2290360ab49bdf1f33dc717fce71d5df", null ], + [ "height", "classmeow_1_1Bitmap.html#a3887d1c54026fe8ed27fd21a294d8d0a", null ], + [ "operator()", "classmeow_1_1Bitmap.html#a646c781896c74a7af4814da06cabf9e5", null ], + [ "operator()", "classmeow_1_1Bitmap.html#a6ebb5310e9e24cee25fc748a0b9fef28", null ], + [ "operator=", "classmeow_1_1Bitmap.html#aba3ea0e5f48b63363c91ae4168dbd0bb", null ], + [ "pixel", "classmeow_1_1Bitmap.html#ac8f41ae97e068549565e9ac83ffef888", null ], + [ "pixel", "classmeow_1_1Bitmap.html#afe97efe50d112a71ee45da6d2bc3e9dc", null ], + [ "pixels", "classmeow_1_1Bitmap.html#a17f92dec30f314d832f040257d6d5584", null ], + [ "read", "classmeow_1_1Bitmap.html#a3b13a4923d68de65bb7e21712185bec8", null ], + [ "referenceFrom", "classmeow_1_1Bitmap.html#affd5f41b44fa6afc55f2a3eb3f01cc4d", null ], + [ "reset", "classmeow_1_1Bitmap.html#ae7bcc670d666a784d6e5e8f14b74aa3d", null ], + [ "size", "classmeow_1_1Bitmap.html#a13b986e9310eb100c100fd62fa548233", null ], + [ "size", "classmeow_1_1Bitmap.html#aef0bc77675e4652f885baf03cbcc25ef", null ], + [ "type", "classmeow_1_1Bitmap.html#a7f282d9a1ebb07ca5fe12d8ae73121d1", null ], + [ "width", "classmeow_1_1Bitmap.html#ad8476258a0f9deefdb7170d53949d3ed", null ], + [ "width", "classmeow_1_1Bitmap.html#a49731792bf45d5c230da50e3897e3061", null ], + [ "write", "classmeow_1_1Bitmap.html#aad700e26eae54cb653919c165dcc98dd", null ] +]; \ No newline at end of file diff --git a/doc/html/classmeow_1_1Bitmap.png b/doc/html/classmeow_1_1Bitmap.png new file mode 100644 index 0000000..4fb3487 Binary files /dev/null and b/doc/html/classmeow_1_1Bitmap.png differ diff --git a/doc/html/classmeow_1_1Camera-members.html b/doc/html/classmeow_1_1Camera-members.html new file mode 100644 index 0000000..fdfc708 --- /dev/null +++ b/doc/html/classmeow_1_1Camera-members.html @@ -0,0 +1,106 @@ + + + + + + + +Templates -- Meow: Member List + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      meow::Camera< Pixel > Member List
      +
      +
      + +

      This is the complete list of members for meow::Camera< Pixel >, including all inherited members.

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      boundleAdjustment2D(std::vector< Camera > *cs, double threshold)meow::Camera< Pixel >inlinestatic
      Camera()meow::Camera< Pixel >inline
      Camera(Camera const &b)meow::Camera< Pixel >inline
      color(Vector3D< double > p) const meow::Camera< Pixel >inline
      copyFrom(Camera const &b)meow::Camera< Pixel >inline
      copyFrom(ObjBase const *b)meow::Camera< Pixel >inlinevirtual
      create() const meow::Camera< Pixel >inlinevirtual
      ctype() const meow::Camera< Pixel >inlinevirtual
      ctypeBase()meow::ObjBaseinlinestatic
      fixedPoints2D() const meow::Camera< Pixel >inline
      fixedPoints2D(FixedPoints2D const &fps2d) const meow::Camera< Pixel >inline
      fixedPoints2D(int i)meow::Camera< Pixel >inline
      FixedPoints2D typedefmeow::Camera< Pixel >
      fixedPoints2DGet() const meow::Camera< Pixel >inline
      inside(Vector3D< double > p) const meow::Camera< Pixel >inline
      ObjBase()meow::ObjBaseinlineprotected
      operator=(Camera const &b)meow::Camera< Pixel >inline
      photo() const meow::Camera< Pixel >inline
      photo(Photo< Pixel > const &pho)meow::Camera< Pixel >inline
      photoGet()meow::Camera< Pixel >inline
      read(FILE *f, bool bin, unsigned int fg)meow::Camera< Pixel >inlinevirtual
      referenceFrom(Camera const &b)meow::Camera< Pixel >inline
      rotation() const meow::Camera< Pixel >inline
      rotation(Rotation3D< double > const &rot)meow::Camera< Pixel >inline
      rotationGet()meow::Camera< Pixel >inline
      type() const meow::Camera< Pixel >inlinevirtual
      typeBase()meow::ObjBaseinlinestatic
      write(FILE *f, bool bin, unsigned int fg) const meow::Camera< Pixel >inlinevirtual
      ~Camera()meow::Camera< Pixel >inline
      ~ObjBase()meow::ObjBaseinlinevirtual
      +
      + + + + + diff --git a/doc/html/classmeow_1_1Camera.html b/doc/html/classmeow_1_1Camera.html new file mode 100644 index 0000000..ae442d8 --- /dev/null +++ b/doc/html/classmeow_1_1Camera.html @@ -0,0 +1,988 @@ + + + + + + + +Templates -- Meow: meow::Camera< Pixel > Class Template Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      meow::Camera< Pixel > Class Template Reference
      +
      +
      + +

      Camera. + More...

      + +

      #include "Camera.h"

      +
      +Inheritance diagram for meow::Camera< Pixel >:
      +
      +
      + + +meow::ObjBase + +
      + + + + +

      +Public Types

      typedef IdentityPoints< int,
      +double
      FixedPoints2D
       
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      +Public Member Functions

       Camera ()
       constructor More...
       
       Camera (Camera const &b)
       copy constructor More...
       
       ~Camera ()
       destructor More...
       
      CameracopyFrom (Camera const &b)
       複製資料 More...
       
      CamerareferenceFrom (Camera const &b)
       參照 More...
       
      Photo< Pixel > const & photo () const
       取得 photo More...
       
      Photo< Pixel > & photoGet ()
       取得 photo (non-constant) More...
       
      Photo< Pixel > const & photo (Photo< Pixel > const &pho)
       設定 photo More...
       
      Rotation3D< double > const & rotation () const
       取得rotation More...
       
      Rotation3D< double > & rotationGet ()
       取得rotation (non-constant) More...
       
      Rotation3D< double > const & rotation (Rotation3D< double > const &rot)
       設定rotation More...
       
      FixedPoints2D const & fixedPoints2D () const
       取得所有FixedPoint More...
       
      FixedPoints2DfixedPoints2DGet () const
       取得所有FixedPoint(non-constant reference) More...
       
      FixedPoints2D const & fixedPoints2D (FixedPoints2D const &fps2d) const
       設定FixedPoint More...
       
      Vector< doublefixedPoints2D (int i)
       取得編號為i的fixed points 2d More...
       
      bool inside (Vector3D< double > p) const
       詢問某點是否在底片範圍內 More...
       
      Pixel color (Vector3D< double > p) const
       取得底片color More...
       
      Cameraoperator= (Camera const &b)
       same as copyFrom(b) More...
       
      bool write (FILE *f, bool bin, unsigned int fg) const
       將資料寫入檔案 More...
       
      bool read (FILE *f, bool bin, unsigned int fg)
       將資料讀入 More...
       
      ObjBasecreate () const
       new一個自己 More...
       
      ObjBasecopyFrom (ObjBase const *b)
       複製資料 More...
       
      char const * ctype () const
       回傳class的type More...
       
      std::string type () const
       回傳class的type More...
       
      - Public Member Functions inherited from meow::ObjBase
      virtual ~ObjBase ()
       
      + + + + + + + + + +

      +Static Public Member Functions

      static double boundleAdjustment2D (std::vector< Camera > *cs, double threshold)
       將數台camera用fixed points做boundle adjustment More...
       
      - Static Public Member Functions inherited from meow::ObjBase
      static char const * ctypeBase ()
       
      static std::string typeBase ()
       
      + + + + +

      +Additional Inherited Members

      - Protected Member Functions inherited from meow::ObjBase
       ObjBase ()
       
      +

      Detailed Description

      +

      template<class Pixel>
      +class meow::Camera< Pixel >

      + +

      Camera.

      +

      實際上就是一個 Photo 加上一個 Rotation3D. 另外附有 fixedPoint, 可以用來定位時參考

      +
      Author
      cat_leopard
      +

      Member Typedef Documentation

      + +
      +
      +
      +template<class Pixel>
      + + + + +
      typedef IdentityPoints<int, double> meow::Camera< Pixel >::FixedPoints2D
      +
      + +
      +
      +

      Constructor & Destructor Documentation

      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + +
      meow::Camera< Pixel >::Camera ()
      +
      +inline
      +
      + +

      constructor

      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + +
      meow::Camera< Pixel >::Camera (Camera< Pixel > const & b)
      +
      +inline
      +
      + +

      copy constructor

      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + +
      meow::Camera< Pixel >::~Camera ()
      +
      +inline
      +
      + +

      destructor

      + +
      +
      +

      Member Function Documentation

      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      static double meow::Camera< Pixel >::boundleAdjustment2D (std::vector< Camera< Pixel > > * cs,
      double threshold 
      )
      +
      +inlinestatic
      +
      + +

      將數台camera用fixed points做boundle adjustment

      +
      Parameters
      + + + +
      [in]cs要調整的cameras
      [in]threshold允許誤差值
      +
      +
      +
      Returns
      誤差值
      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + +
      Pixel meow::Camera< Pixel >::color (Vector3D< doublep) const
      +
      +inline
      +
      + +

      取得底片color

      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + +
      Camera& meow::Camera< Pixel >::copyFrom (Camera< Pixel > const & b)
      +
      +inline
      +
      + +

      複製資料

      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + +
      ObjBase* meow::Camera< Pixel >::copyFrom (ObjBase const * b)
      +
      +inlinevirtual
      +
      + +

      複製資料

      +
      輸入型別是 \c ObjBase \c const*
      +事實上這個method就只是幫忙轉型然後呼叫原本的\c copyFrom
      +
      Parameters
      + + +
      [in]b資料來源
      +
      +
      +
      Returns
      this
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + +
      ObjBase* meow::Camera< Pixel >::create () const
      +
      +inlinevirtual
      +
      + +

      new一個自己

      +
      Returns
      一個new出來的pointer
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + +
      char const* meow::Camera< Pixel >::ctype () const
      +
      +inlinevirtual
      +
      + +

      回傳class的type

      +
      Returns
      char const* 形式的typename
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + +
      FixedPoints2D const& meow::Camera< Pixel >::fixedPoints2D () const
      +
      +inline
      +
      + +

      取得所有FixedPoint

      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + +
      FixedPoints2D const& meow::Camera< Pixel >::fixedPoints2D (FixedPoints2D const & fps2d) const
      +
      +inline
      +
      + +

      設定FixedPoint

      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + +
      Vector<double> meow::Camera< Pixel >::fixedPoints2D (int i)
      +
      +inline
      +
      + +

      取得編號為i的fixed points 2d

      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + +
      FixedPoints2D& meow::Camera< Pixel >::fixedPoints2DGet () const
      +
      +inline
      +
      + +

      取得所有FixedPoint(non-constant reference)

      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + +
      bool meow::Camera< Pixel >::inside (Vector3D< doublep) const
      +
      +inline
      +
      + +

      詢問某點是否在底片範圍內

      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + +
      Camera& meow::Camera< Pixel >::operator= (Camera< Pixel > const & b)
      +
      +inline
      +
      + +

      same as copyFrom(b)

      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + +
      Photo<Pixel> const& meow::Camera< Pixel >::photo () const
      +
      +inline
      +
      + +

      取得 photo

      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + +
      Photo<Pixel> const& meow::Camera< Pixel >::photo (Photo< Pixel > const & pho)
      +
      +inline
      +
      + +

      設定 photo

      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + +
      Photo<Pixel>& meow::Camera< Pixel >::photoGet ()
      +
      +inline
      +
      + +

      取得 photo (non-constant)

      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      bool meow::Camera< Pixel >::read (FILE * f,
      bool bin,
      unsigned int fg 
      )
      +
      +inlinevirtual
      +
      + +

      將資料讀入

      +
      Note
      未完成
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + +
      Camera& meow::Camera< Pixel >::referenceFrom (Camera< Pixel > const & b)
      +
      +inline
      +
      + +

      參照

      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + +
      Rotation3D<double> const& meow::Camera< Pixel >::rotation () const
      +
      +inline
      +
      + +

      取得rotation

      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + +
      Rotation3D<double> const& meow::Camera< Pixel >::rotation (Rotation3D< double > const & rot)
      +
      +inline
      +
      + +

      設定rotation

      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + +
      Rotation3D<double>& meow::Camera< Pixel >::rotationGet ()
      +
      +inline
      +
      + +

      取得rotation (non-constant)

      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + +
      std::string meow::Camera< Pixel >::type () const
      +
      +inlinevirtual
      +
      + +

      回傳class的type

      +
      Returns
      std::string 形式的typename
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      bool meow::Camera< Pixel >::write (FILE * f,
      bool bin,
      unsigned int fg 
      ) const
      +
      +inlinevirtual
      +
      + +

      將資料寫入檔案

      +
      Note
      未完成
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      +
      The documentation for this class was generated from the following file: +
      +
      + + + + + diff --git a/doc/html/classmeow_1_1Camera.js b/doc/html/classmeow_1_1Camera.js new file mode 100644 index 0000000..78142e3 --- /dev/null +++ b/doc/html/classmeow_1_1Camera.js @@ -0,0 +1,29 @@ +var classmeow_1_1Camera = +[ + [ "FixedPoints2D", "classmeow_1_1Camera.html#a2f9b65351e07acd6e98a53689c49cb84", null ], + [ "Camera", "classmeow_1_1Camera.html#a2f1f9f82751c73193952f22ffdd0cc43", null ], + [ "Camera", "classmeow_1_1Camera.html#ab05f55e6b0eb28065c27a89393ccce19", null ], + [ "~Camera", "classmeow_1_1Camera.html#a0f29b943c2f6b4c68c4b00b6a3056d63", null ], + [ "boundleAdjustment2D", "classmeow_1_1Camera.html#af291cd0bd6253338e05f60bea9878b64", null ], + [ "color", "classmeow_1_1Camera.html#aa446aa03bc2cb675649c11114e1298b4", null ], + [ "copyFrom", "classmeow_1_1Camera.html#ad6351e87de51e00981b7befff91b6b6d", null ], + [ "copyFrom", "classmeow_1_1Camera.html#a5dff4c1129c6d74de1938bea9309a408", null ], + [ "create", "classmeow_1_1Camera.html#ad3ec34460c84a4a20cf3cb418db76dc3", null ], + [ "ctype", "classmeow_1_1Camera.html#a80ef6d606e9f79255b043c5c17cc4a18", null ], + [ "fixedPoints2D", "classmeow_1_1Camera.html#a2fde4fdfcb105e8a44b3333c78f55b6b", null ], + [ "fixedPoints2D", "classmeow_1_1Camera.html#a298f81d18e2339db23ed5339f59b7986", null ], + [ "fixedPoints2D", "classmeow_1_1Camera.html#a0073158eeefdc6ae662f5127485aa79e", null ], + [ "fixedPoints2DGet", "classmeow_1_1Camera.html#aa6bfaf360ab9b78adfde7005747368d4", null ], + [ "inside", "classmeow_1_1Camera.html#a55e165212b212a58b0090b1496a1a40a", null ], + [ "operator=", "classmeow_1_1Camera.html#adc22e067c44d2cf143c3cf4cba9abdbf", null ], + [ "photo", "classmeow_1_1Camera.html#a78d30a42c1b67fafd3847f8757c10136", null ], + [ "photo", "classmeow_1_1Camera.html#adecd4f466208aeb53713532ef576bdee", null ], + [ "photoGet", "classmeow_1_1Camera.html#aedd341c40cf8c5ef656bd02d9a1a266b", null ], + [ "read", "classmeow_1_1Camera.html#aaa82f998dfc1acde6607650ab6514492", null ], + [ "referenceFrom", "classmeow_1_1Camera.html#ae00aa539b7d6be9254db1072627d204e", null ], + [ "rotation", "classmeow_1_1Camera.html#a1dc458ca5ce2e2f441e6601d7223d370", null ], + [ "rotation", "classmeow_1_1Camera.html#aba398741215e99868380dff84e6aaee3", null ], + [ "rotationGet", "classmeow_1_1Camera.html#a54891144105d5e29a33b98d2fdf799e5", null ], + [ "type", "classmeow_1_1Camera.html#ae009c09a5e6b5ebdab09dd304f2eca32", null ], + [ "write", "classmeow_1_1Camera.html#acb6443a3ce77804575ec55209b3a1960", null ] +]; \ No newline at end of file diff --git a/doc/html/classmeow_1_1Camera.png b/doc/html/classmeow_1_1Camera.png new file mode 100644 index 0000000..18ad5af Binary files /dev/null and b/doc/html/classmeow_1_1Camera.png differ diff --git a/doc/html/classmeow_1_1Color3__Space-members.html b/doc/html/classmeow_1_1Color3__Space-members.html new file mode 100644 index 0000000..d8e07b1 --- /dev/null +++ b/doc/html/classmeow_1_1Color3__Space-members.html @@ -0,0 +1,95 @@ + + + + + + + +Templates -- Meow: Member List + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      meow::Color3_Space< T > Member List
      +
      +
      + +

      This is the complete list of members for meow::Color3_Space< T >, including all inherited members.

      + + + + + + + + + + + + + + + + + + + + +
      Color3_Space(Vector3D< T > const &min_bound, Vector3D< T > const &max_bound, Vector3D< T > const &init_value)meow::Color3_Space< T >inlineprotected
      Color3_Space(Color3_Space const &b)meow::Color3_Space< T >inlineprotected
      copyFrom(Color3_Space< T > const &b)meow::Color3_Space< T >inline
      copyFrom(Color3_Space< T2 > const &b)meow::Color3_Space< T >inline
      matrix() const meow::Color3_Space< T >inline
      max(size_t id) const meow::Color3_Space< T >inline
      max_meow::Color3_Space< T >protected
      maxV() const meow::Color3_Space< T >inline
      min(size_t id) const meow::Color3_Space< T >inline
      min_meow::Color3_Space< T >protected
      minV() const meow::Color3_Space< T >inline
      val(size_t id) const meow::Color3_Space< T >inline
      val(size_t i, T const &c)meow::Color3_Space< T >inline
      val_meow::Color3_Space< T >protected
      valGet(size_t id)meow::Color3_Space< T >inline
      valV() const meow::Color3_Space< T >inline
      valV(Vector3D< T > const &vv)meow::Color3_Space< T >inline
      valVGet()meow::Color3_Space< T >inline
      ~Color3_Space()meow::Color3_Space< T >inlinevirtual
      +
      + + + + + diff --git a/doc/html/classmeow_1_1Color3__Space.html b/doc/html/classmeow_1_1Color3__Space.html new file mode 100644 index 0000000..41da7ad --- /dev/null +++ b/doc/html/classmeow_1_1Color3__Space.html @@ -0,0 +1,649 @@ + + + + + + + +Templates -- Meow: meow::Color3_Space< T > Class Template Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      meow::Color3_Space< T > Class Template Reference
      +
      +
      + +

      以三個channel所組成的色彩空間 + More...

      + +

      #include "Color3_Space.h"

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      +Public Member Functions

      virtual ~Color3_Space ()
       
      Color3_Space< T > & copyFrom (Color3_Space< T > const &b)
       
      template<class T2 >
      Color3_Space< T > & copyFrom (Color3_Space< T2 > const &b)
       
      Vector3D< T > const & minV () const
       
      Vector3D< T > const & maxV () const
       
      Vector3D< T > const & valV () const
       
      Vector3D< T > const & valV (Vector3D< T > const &vv)
       
      Vector3D< T > & valVGet ()
       
      T const & min (size_t id) const
       
      T const & max (size_t id) const
       
      T const & val (size_t id) const
       
      T const & val (size_t i, T const &c)
       
      T & valGet (size_t id)
       
      Matrix< T > matrix () const
       
      + + + + + +

      +Protected Member Functions

       Color3_Space (Vector3D< T > const &min_bound, Vector3D< T > const &max_bound, Vector3D< T > const &init_value)
       
       Color3_Space (Color3_Space const &b)
       
      + + + + + + + +

      +Protected Attributes

      Vector3D< T > min_
       
      Vector3D< T > max_
       
      Vector3D< T > val_
       
      +

      Detailed Description

      +

      template<class T>
      +class meow::Color3_Space< T >

      + +

      以三個channel所組成的色彩空間

      +
      Author
      cat_leopard
      +

      Constructor & Destructor Documentation

      + +
      +
      +
      +template<class T>
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      meow::Color3_Space< T >::Color3_Space (Vector3D< T > const & min_bound,
      Vector3D< T > const & max_bound,
      Vector3D< T > const & init_value 
      )
      +
      +inlineprotected
      +
      + +
      +
      + +
      +
      +
      +template<class T>
      + + + + + +
      + + + + + + + + +
      meow::Color3_Space< T >::Color3_Space (Color3_Space< T > const & b)
      +
      +inlineprotected
      +
      + +
      +
      + +
      +
      +
      +template<class T>
      + + + + + +
      + + + + + + + +
      virtual meow::Color3_Space< T >::~Color3_Space ()
      +
      +inlinevirtual
      +
      + +
      +
      +

      Member Function Documentation

      + +
      +
      +
      +template<class T>
      + + + + + +
      + + + + + + + + +
      Color3_Space<T>& meow::Color3_Space< T >::copyFrom (Color3_Space< T > const & b)
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class T>
      +
      +template<class T2 >
      + + + + + +
      + + + + + + + + +
      Color3_Space<T>& meow::Color3_Space< T >::copyFrom (Color3_Space< T2 > const & b)
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class T>
      + + + + + +
      + + + + + + + +
      Matrix<T> meow::Color3_Space< T >::matrix () const
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class T>
      + + + + + +
      + + + + + + + + +
      T const& meow::Color3_Space< T >::max (size_t id) const
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class T>
      + + + + + +
      + + + + + + + +
      Vector3D<T> const& meow::Color3_Space< T >::maxV () const
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class T>
      + + + + + +
      + + + + + + + + +
      T const& meow::Color3_Space< T >::min (size_t id) const
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class T>
      + + + + + +
      + + + + + + + +
      Vector3D<T> const& meow::Color3_Space< T >::minV () const
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class T>
      + + + + + +
      + + + + + + + + +
      T const& meow::Color3_Space< T >::val (size_t id) const
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class T>
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      T const& meow::Color3_Space< T >::val (size_t i,
      T const & c 
      )
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class T>
      + + + + + +
      + + + + + + + + +
      T& meow::Color3_Space< T >::valGet (size_t id)
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class T>
      + + + + + +
      + + + + + + + +
      Vector3D<T> const& meow::Color3_Space< T >::valV () const
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class T>
      + + + + + +
      + + + + + + + + +
      Vector3D<T> const& meow::Color3_Space< T >::valV (Vector3D< T > const & vv)
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class T>
      + + + + + +
      + + + + + + + +
      Vector3D<T>& meow::Color3_Space< T >::valVGet ()
      +
      +inline
      +
      + +
      +
      +

      Member Data Documentation

      + +
      +
      +
      +template<class T>
      + + + + + +
      + + + + +
      Vector3D<T> meow::Color3_Space< T >::max_
      +
      +protected
      +
      + +
      +
      + +
      +
      +
      +template<class T>
      + + + + + +
      + + + + +
      Vector3D<T> meow::Color3_Space< T >::min_
      +
      +protected
      +
      + +
      +
      + +
      +
      +
      +template<class T>
      + + + + + +
      + + + + +
      Vector3D<T> meow::Color3_Space< T >::val_
      +
      +protected
      +
      + +
      +
      +
      The documentation for this class was generated from the following file: +
      +
      + + + + + diff --git a/doc/html/classmeow_1_1Color3__Space.js b/doc/html/classmeow_1_1Color3__Space.js new file mode 100644 index 0000000..b6bfd11 --- /dev/null +++ b/doc/html/classmeow_1_1Color3__Space.js @@ -0,0 +1,22 @@ +var classmeow_1_1Color3__Space = +[ + [ "Color3_Space", "classmeow_1_1Color3__Space.html#a982a7211fded8d108aee66a536fb8736", null ], + [ "Color3_Space", "classmeow_1_1Color3__Space.html#a8017c0aae500a4a57938ae04576caa83", null ], + [ "~Color3_Space", "classmeow_1_1Color3__Space.html#a3fa85d4369b9db8d8209d244a643b49f", null ], + [ "copyFrom", "classmeow_1_1Color3__Space.html#aa5c43cb67d674223a0a2361ac8de55c1", null ], + [ "copyFrom", "classmeow_1_1Color3__Space.html#ab8be12bacd0e877151189383654029c8", null ], + [ "matrix", "classmeow_1_1Color3__Space.html#a1f11ba476ffb0ed16ef1b8d06954b6f0", null ], + [ "max", "classmeow_1_1Color3__Space.html#aa6661a1aaaf985a4b2d68db88ec93d2f", null ], + [ "maxV", "classmeow_1_1Color3__Space.html#a0bdfe0eaab4a77cdc8a1359518630a07", null ], + [ "min", "classmeow_1_1Color3__Space.html#a3351aea64c4ca1596694d6b95dce56df", null ], + [ "minV", "classmeow_1_1Color3__Space.html#a318eedb2acaba5f3a8c79a651c53e676", null ], + [ "val", "classmeow_1_1Color3__Space.html#af08839264f6ea6dc50cf6175d26afa6e", null ], + [ "val", "classmeow_1_1Color3__Space.html#ae3f57f9651bb80041ce77ec052fdc436", null ], + [ "valGet", "classmeow_1_1Color3__Space.html#ac2efb0be959fc60f786bdcdc8a1fd8b2", null ], + [ "valV", "classmeow_1_1Color3__Space.html#a1c58ba0912a91e71dee240fad6291216", null ], + [ "valV", "classmeow_1_1Color3__Space.html#aa7638e03124b2304d4d34b57be4b0028", null ], + [ "valVGet", "classmeow_1_1Color3__Space.html#a665fe525c47913fb5bca765446adaaab", null ], + [ "max_", "classmeow_1_1Color3__Space.html#a3e006b5c37185c8b0f4d383b6b095dac", null ], + [ "min_", "classmeow_1_1Color3__Space.html#ab00eca747ea06269fddd3586dd1bca46", null ], + [ "val_", "classmeow_1_1Color3__Space.html#aa134d705ea25b1f64db8bef07d1757ae", null ] +]; \ No newline at end of file diff --git a/doc/html/classmeow_1_1DisjointSet-members.html b/doc/html/classmeow_1_1DisjointSet-members.html new file mode 100644 index 0000000..f13c362 --- /dev/null +++ b/doc/html/classmeow_1_1DisjointSet-members.html @@ -0,0 +1,83 @@ + + + + + + + +Templates -- Meow: Member List + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      meow::DisjointSet Member List
      +
      +
      + +

      This is the complete list of members for meow::DisjointSet, including all inherited members.

      + + + + + + + + +
      DisjointSet()meow::DisjointSetinline
      DisjointSet(size_t n)meow::DisjointSetinline
      DisjointSet(DisjointSet const &dsj)meow::DisjointSetinline
      merge(size_t a, size_t b)meow::DisjointSetinline
      reset(size_t n)meow::DisjointSetinline
      root(size_t a) const meow::DisjointSetinline
      size() const meow::DisjointSetinline
      +
      + + + + + diff --git a/doc/html/classmeow_1_1DisjointSet.html b/doc/html/classmeow_1_1DisjointSet.html new file mode 100644 index 0000000..380e979 --- /dev/null +++ b/doc/html/classmeow_1_1DisjointSet.html @@ -0,0 +1,352 @@ + + + + + + + +Templates -- Meow: meow::DisjointSet Class Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      meow::DisjointSet Class Reference
      +
      +
      + +

      用來維護一堆互斥集的資訊 + More...

      + +

      #include "DisjointSet.h"

      + + + + + + + + + + + + + + + + + + + + + + + +

      +Public Member Functions

       DisjointSet ()
       constructor More...
       
       DisjointSet (size_t n)
       constructor More...
       
       DisjointSet (DisjointSet const &dsj)
       constructor More...
       
      size_t root (size_t a) const
       回傳指定的number所在的 集合的編號 More...
       
      size_t size () const
       回傳總element數 More...
       
      void reset (size_t n)
       重設 More...
       
      size_t merge (size_t a, size_t b)
       合併 More...
       
      +

      Detailed Description

      +

      用來維護一堆互斥集的資訊

      +

      DisjointSet 是個 輕量級Data Dtructure, 用來維護一堆互斥集的資訊.
      + 相關資料可參考 演算法筆記

      +
      Note
        +
      • 時間複雜度 非常快 表示它真的算的超級快, 可以視為常數時間
      • +
      • 預設值所有 number 所在的集合的編號就是 number 本身, 即沒有任兩個數在同一個set裡面
      • +
      +
      +
      Author
      cat_leopard
      +

      Constructor & Destructor Documentation

      + +
      +
      + + + + + +
      + + + + + + + +
      meow::DisjointSet::DisjointSet ()
      +
      +inline
      +
      + +

      constructor

      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      meow::DisjointSet::DisjointSet (size_t n)
      +
      +inline
      +
      + +

      constructor

      +
      Parameters
      + + +
      [in]nelements數
      +
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      meow::DisjointSet::DisjointSet (DisjointSet const & dsj)
      +
      +inline
      +
      + +

      constructor

      +

      將另一個 DisjointSet 原封不動的複製過來

      +
      Parameters
      + + +
      [in]dsj另一個 DisjointSet
      +
      +
      + +
      +
      +

      Member Function Documentation

      + +
      +
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      size_t meow::DisjointSet::merge (size_t a,
      size_t b 
      )
      +
      +inline
      +
      + +

      合併

      +

      number1 所在的集合 跟 number2 所在的集合 合併, 並回傳合併後新的集合的編號.
      + 時間複雜度非常快

      +
      Parameters
      + + + +
      [in]a即上述number1
      [in]b即上述number2
      +
      +
      +
      Returns
      新的編號
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      void meow::DisjointSet::reset (size_t n)
      +
      +inline
      +
      + +

      重設

      +

      清空, 並且設定總集合大小為 n

      +
      Parameters
      + + +
      [in]n重新設定的集合大小 n
      +
      +
      +
      Returns
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      size_t meow::DisjointSet::root (size_t a) const
      +
      +inline
      +
      + +

      回傳指定的number所在的 集合的編號

      +

      時間複雜度 超級快

      +
      Parameters
      + + +
      [in]a指定的number
      +
      +
      +
      Returns
      集合的編號
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      size_t meow::DisjointSet::size () const
      +
      +inline
      +
      + +

      回傳總element數

      +
      Returns
      總element數
      + +
      +
      +
      The documentation for this class was generated from the following file: +
      +
      + + + + + diff --git a/doc/html/classmeow_1_1DisjointSet.js b/doc/html/classmeow_1_1DisjointSet.js new file mode 100644 index 0000000..79c8bdf --- /dev/null +++ b/doc/html/classmeow_1_1DisjointSet.js @@ -0,0 +1,10 @@ +var classmeow_1_1DisjointSet = +[ + [ "DisjointSet", "classmeow_1_1DisjointSet.html#a8c55a16b0320c28854ed59795bc2bf3d", null ], + [ "DisjointSet", "classmeow_1_1DisjointSet.html#af86aee43ff23d616c1c065c0825d000c", null ], + [ "DisjointSet", "classmeow_1_1DisjointSet.html#ade3ec2924018ac0fd6693e3ae966516f", null ], + [ "merge", "classmeow_1_1DisjointSet.html#a410399290f718332f5c3df1854182198", null ], + [ "reset", "classmeow_1_1DisjointSet.html#a232841a6d2daeb2b974cd7cb7fe6bfb7", null ], + [ "root", "classmeow_1_1DisjointSet.html#a0b66ca7c5e19f640b521630f06b313c1", null ], + [ "size", "classmeow_1_1DisjointSet.html#a1738123f2c0456bec373d4a8422d62b5", null ] +]; \ No newline at end of file diff --git a/doc/html/classmeow_1_1FeaturePoint-members.html b/doc/html/classmeow_1_1FeaturePoint-members.html new file mode 100644 index 0000000..826119f --- /dev/null +++ b/doc/html/classmeow_1_1FeaturePoint-members.html @@ -0,0 +1,106 @@ + + + + + + + +Templates -- Meow: Member List + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      meow::FeaturePoint< Scalar, Description > Member List
      +
      +
      + +

      This is the complete list of members for meow::FeaturePoint< Scalar, Description >, including all inherited members.

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      copyFrom(FeaturePoint const &fp)meow::FeaturePoint< Scalar, Description >inline
      copyFrom(ObjBase const &b)meow::FeaturePoint< Scalar, Description >inline
      meow::ObjBase::copyFrom(ObjBase const *b)meow::ObjBaseinlinevirtual
      create() const meow::FeaturePoint< Scalar, Description >inlinevirtual
      ctype() const meow::FeaturePoint< Scalar, Description >inlinevirtual
      ctypeBase()meow::ObjBaseinlinestatic
      description() const meow::FeaturePoint< Scalar, Description >inline
      description(Vector< Description > const &d)meow::FeaturePoint< Scalar, Description >inline
      description(size_t i) const meow::FeaturePoint< Scalar, Description >inline
      description(size_t i, Description const &d)meow::FeaturePoint< Scalar, Description >inline
      descriptionGet()meow::FeaturePoint< Scalar, Description >inline
      FeaturePoint()meow::FeaturePoint< Scalar, Description >inline
      FeaturePoint(size_t pDim, size_t dDim)meow::FeaturePoint< Scalar, Description >inline
      FeaturePoint(FeaturePoint const &fp)meow::FeaturePoint< Scalar, Description >inline
      ObjBase()meow::ObjBaseinlineprotected
      operator()(size_t i) const meow::FeaturePoint< Scalar, Description >inline
      operator=(FeaturePoint const &fp)meow::FeaturePoint< Scalar, Description >inline
      operator[](size_t i) const meow::FeaturePoint< Scalar, Description >inline
      position() const meow::FeaturePoint< Scalar, Description >inline
      position(Vector< Scalar > const &p) const meow::FeaturePoint< Scalar, Description >inline
      position(size_t index) const meow::FeaturePoint< Scalar, Description >inline
      position(size_t i, Scalar const &s)meow::FeaturePoint< Scalar, Description >inline
      positionGet()meow::FeaturePoint< Scalar, Description >inline
      read(FILE *f, bool bin, unsigned int fg)meow::FeaturePoint< Scalar, Description >inlinevirtual
      referenceFrom(FeaturePoint const &fp)meow::FeaturePoint< Scalar, Description >inline
      type() const meow::FeaturePoint< Scalar, Description >inlinevirtual
      typeBase()meow::ObjBaseinlinestatic
      write(FILE *f, bool bin, unsigned int fg) const meow::FeaturePoint< Scalar, Description >inlinevirtual
      ~FeaturePoint()meow::FeaturePoint< Scalar, Description >inline
      ~ObjBase()meow::ObjBaseinlinevirtual
      +
      + + + + + diff --git a/doc/html/classmeow_1_1FeaturePoint.html b/doc/html/classmeow_1_1FeaturePoint.html new file mode 100644 index 0000000..ded740b --- /dev/null +++ b/doc/html/classmeow_1_1FeaturePoint.html @@ -0,0 +1,942 @@ + + + + + + + +Templates -- Meow: meow::FeaturePoint< Scalar, Description > Class Template Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      meow::FeaturePoint< Scalar, Description > Class Template Reference
      +
      +
      + +

      特徵點 + More...

      + +

      #include "FeaturePoint.h"

      +
      +Inheritance diagram for meow::FeaturePoint< Scalar, Description >:
      +
      +
      + + +meow::ObjBase + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      +Public Member Functions

       FeaturePoint ()
       constructor More...
       
       FeaturePoint (size_t pDim, size_t dDim)
       constructor More...
       
       FeaturePoint (FeaturePoint const &fp)
       constructor More...
       
       ~FeaturePoint ()
       destructor More...
       
      FeaturePointcopyFrom (FeaturePoint const &fp)
       複製 More...
       
      FeaturePointreferenceFrom (FeaturePoint const &fp)
       參照 More...
       
      Vector< Scalar > const & position () const
       回傳position More...
       
      Vector< Description > const & description () const
       回傳description More...
       
      Vector< Scalar > const & position (Vector< Scalar > const &p) const
       修改position More...
       
      Vector< Description > const & description (Vector< Description > const &d)
       修改description More...
       
      Scalar position (size_t index) const
       回傳position的第i個scalar More...
       
      Description description (size_t i) const
       回傳description的第i個Description More...
       
      Scalar position (size_t i, Scalar const &s)
       修改position的第i個scalar More...
       
      Description description (size_t i, Description const &d)
       修改description的第i個Description More...
       
      Vector< Scalar > & positionGet ()
       取得position More...
       
      Vector< Description > & descriptionGet ()
       取得description More...
       
      FeaturePointoperator= (FeaturePoint const &fp)
       same as copyFrom(fp) More...
       
      Scalar const & operator() (size_t i) const
       same as position(i) More...
       
      Description operator[] (size_t i) const
       same as description(i) More...
       
      bool write (FILE *f, bool bin, unsigned int fg) const
       
      bool read (FILE *f, bool bin, unsigned int fg)
       
      ObjBasecreate () const
       
      ObjBasecopyFrom (ObjBase const &b)
       
      char const * ctype () const
       
      std::string type () const
       
      - Public Member Functions inherited from meow::ObjBase
      virtual ~ObjBase ()
       
      virtual ObjBasecopyFrom (ObjBase const *b)
       
      + + + + + + + + + +

      +Additional Inherited Members

      - Static Public Member Functions inherited from meow::ObjBase
      static char const * ctypeBase ()
       
      static std::string typeBase ()
       
      - Protected Member Functions inherited from meow::ObjBase
       ObjBase ()
       
      +

      Detailed Description

      +

      template<class Scalar, class Description>
      +class meow::FeaturePoint< Scalar, Description >

      + +

      特徵點

      +
      Author
      cat_leopard
      +

      Constructor & Destructor Documentation

      + +
      +
      +
      +template<class Scalar , class Description >
      + + + + + +
      + + + + + + + +
      meow::FeaturePoint< Scalar, Description >::FeaturePoint ()
      +
      +inline
      +
      + +

      constructor

      + +
      +
      + +
      +
      +
      +template<class Scalar , class Description >
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      meow::FeaturePoint< Scalar, Description >::FeaturePoint (size_t pDim,
      size_t dDim 
      )
      +
      +inline
      +
      + +

      constructor

      + +
      +
      + +
      +
      +
      +template<class Scalar , class Description >
      + + + + + +
      + + + + + + + + +
      meow::FeaturePoint< Scalar, Description >::FeaturePoint (FeaturePoint< Scalar, Description > const & fp)
      +
      +inline
      +
      + +

      constructor

      + +
      +
      + +
      +
      +
      +template<class Scalar , class Description >
      + + + + + +
      + + + + + + + +
      meow::FeaturePoint< Scalar, Description >::~FeaturePoint ()
      +
      +inline
      +
      + +

      destructor

      + +
      +
      +

      Member Function Documentation

      + +
      +
      +
      +template<class Scalar , class Description >
      + + + + + +
      + + + + + + + + +
      FeaturePoint& meow::FeaturePoint< Scalar, Description >::copyFrom (FeaturePoint< Scalar, Description > const & fp)
      +
      +inline
      +
      + +

      複製

      + +
      +
      + +
      +
      +
      +template<class Scalar , class Description >
      + + + + + +
      + + + + + + + + +
      ObjBase* meow::FeaturePoint< Scalar, Description >::copyFrom (ObjBase const & b)
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Scalar , class Description >
      + + + + + +
      + + + + + + + +
      ObjBase* meow::FeaturePoint< Scalar, Description >::create () const
      +
      +inlinevirtual
      +
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<class Scalar , class Description >
      + + + + + +
      + + + + + + + +
      char const* meow::FeaturePoint< Scalar, Description >::ctype () const
      +
      +inlinevirtual
      +
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<class Scalar , class Description >
      + + + + + +
      + + + + + + + +
      Vector<Description> const& meow::FeaturePoint< Scalar, Description >::description () const
      +
      +inline
      +
      + +

      回傳description

      + +
      +
      + +
      +
      +
      +template<class Scalar , class Description >
      + + + + + +
      + + + + + + + + +
      Vector<Description> const& meow::FeaturePoint< Scalar, Description >::description (Vector< Description > const & d)
      +
      +inline
      +
      + +

      修改description

      + +
      +
      + +
      +
      +
      +template<class Scalar , class Description >
      + + + + + +
      + + + + + + + + +
      Description meow::FeaturePoint< Scalar, Description >::description (size_t i) const
      +
      +inline
      +
      + +

      回傳description的第i個Description

      + +
      +
      + +
      +
      +
      +template<class Scalar , class Description >
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      Description meow::FeaturePoint< Scalar, Description >::description (size_t i,
      Description const & d 
      )
      +
      +inline
      +
      + +

      修改description的第i個Description

      + +
      +
      + +
      +
      +
      +template<class Scalar , class Description >
      + + + + + +
      + + + + + + + +
      Vector<Description>& meow::FeaturePoint< Scalar, Description >::descriptionGet ()
      +
      +inline
      +
      + +

      取得description

      + +
      +
      + +
      +
      +
      +template<class Scalar , class Description >
      + + + + + +
      + + + + + + + + +
      Scalar const& meow::FeaturePoint< Scalar, Description >::operator() (size_t i) const
      +
      +inline
      +
      + +

      same as position(i)

      + +
      +
      + +
      +
      +
      +template<class Scalar , class Description >
      + + + + + +
      + + + + + + + + +
      FeaturePoint& meow::FeaturePoint< Scalar, Description >::operator= (FeaturePoint< Scalar, Description > const & fp)
      +
      +inline
      +
      + +

      same as copyFrom(fp)

      + +
      +
      + +
      +
      +
      +template<class Scalar , class Description >
      + + + + + +
      + + + + + + + + +
      Description meow::FeaturePoint< Scalar, Description >::operator[] (size_t i) const
      +
      +inline
      +
      + +

      same as description(i)

      + +
      +
      + +
      +
      +
      +template<class Scalar , class Description >
      + + + + + +
      + + + + + + + +
      Vector<Scalar> const& meow::FeaturePoint< Scalar, Description >::position () const
      +
      +inline
      +
      + +

      回傳position

      + +
      +
      + +
      +
      +
      +template<class Scalar , class Description >
      + + + + + +
      + + + + + + + + +
      Vector<Scalar> const& meow::FeaturePoint< Scalar, Description >::position (Vector< Scalar > const & p) const
      +
      +inline
      +
      + +

      修改position

      + +
      +
      + +
      +
      +
      +template<class Scalar , class Description >
      + + + + + +
      + + + + + + + + +
      Scalar meow::FeaturePoint< Scalar, Description >::position (size_t index) const
      +
      +inline
      +
      + +

      回傳position的第i個scalar

      + +
      +
      + +
      +
      +
      +template<class Scalar , class Description >
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      Scalar meow::FeaturePoint< Scalar, Description >::position (size_t i,
      Scalar const & s 
      )
      +
      +inline
      +
      + +

      修改position的第i個scalar

      + +
      +
      + +
      +
      +
      +template<class Scalar , class Description >
      + + + + + +
      + + + + + + + +
      Vector<Scalar>& meow::FeaturePoint< Scalar, Description >::positionGet ()
      +
      +inline
      +
      + +

      取得position

      + +
      +
      + +
      +
      +
      +template<class Scalar , class Description >
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      bool meow::FeaturePoint< Scalar, Description >::read (FILE * f,
      bool bin,
      unsigned int fg 
      )
      +
      +inlinevirtual
      +
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<class Scalar , class Description >
      + + + + + +
      + + + + + + + + +
      FeaturePoint& meow::FeaturePoint< Scalar, Description >::referenceFrom (FeaturePoint< Scalar, Description > const & fp)
      +
      +inline
      +
      + +

      參照

      + +
      +
      + +
      +
      +
      +template<class Scalar , class Description >
      + + + + + +
      + + + + + + + +
      std::string meow::FeaturePoint< Scalar, Description >::type () const
      +
      +inlinevirtual
      +
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<class Scalar , class Description >
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      bool meow::FeaturePoint< Scalar, Description >::write (FILE * f,
      bool bin,
      unsigned int fg 
      ) const
      +
      +inlinevirtual
      +
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      +
      The documentation for this class was generated from the following file: +
      +
      + + + + + diff --git a/doc/html/classmeow_1_1FeaturePoint.js b/doc/html/classmeow_1_1FeaturePoint.js new file mode 100644 index 0000000..59e2985 --- /dev/null +++ b/doc/html/classmeow_1_1FeaturePoint.js @@ -0,0 +1,28 @@ +var classmeow_1_1FeaturePoint = +[ + [ "FeaturePoint", "classmeow_1_1FeaturePoint.html#a26dab8fef1872435a64fe1cdfba35fd8", null ], + [ "FeaturePoint", "classmeow_1_1FeaturePoint.html#a6d2ba1cdc942272027767b1ccde483a3", null ], + [ "FeaturePoint", "classmeow_1_1FeaturePoint.html#ad1ba9d0f99f650299347678c54ee08fa", null ], + [ "~FeaturePoint", "classmeow_1_1FeaturePoint.html#a1ce1b82f9c46a33cd0983f502fe166a3", null ], + [ "copyFrom", "classmeow_1_1FeaturePoint.html#af4eb7b53a35a3011954d6d92e364db19", null ], + [ "copyFrom", "classmeow_1_1FeaturePoint.html#a989fc819567e6b430a36351216a1b4b4", null ], + [ "create", "classmeow_1_1FeaturePoint.html#a7244e348b529719748d1643a6f11adbf", null ], + [ "ctype", "classmeow_1_1FeaturePoint.html#a1ffb238473ef9f745eb79670fc46da13", null ], + [ "description", "classmeow_1_1FeaturePoint.html#a563bdbbea5b633b86666c7e340affbee", null ], + [ "description", "classmeow_1_1FeaturePoint.html#ac8b9a335b295c6ee26d3eb2fc2d946ad", null ], + [ "description", "classmeow_1_1FeaturePoint.html#aaeda2a79560fb65c74da0141927991bd", null ], + [ "description", "classmeow_1_1FeaturePoint.html#a9ec56431823d26785924bda1c9e534f9", null ], + [ "descriptionGet", "classmeow_1_1FeaturePoint.html#ab1137db2819c486688872d4af14c4ef6", null ], + [ "operator()", "classmeow_1_1FeaturePoint.html#ab214706427b962a1404ee8fcfefd6465", null ], + [ "operator=", "classmeow_1_1FeaturePoint.html#a2bab58e7d4bb768cd5140db86c448f4c", null ], + [ "operator[]", "classmeow_1_1FeaturePoint.html#a54b483836901fd5ad6b3c115f3afda69", null ], + [ "position", "classmeow_1_1FeaturePoint.html#ad1f47bfe65ca5174e4e17291aab74cb7", null ], + [ "position", "classmeow_1_1FeaturePoint.html#a9c2983fb889eb6ffa1e38f233c78e743", null ], + [ "position", "classmeow_1_1FeaturePoint.html#a1ab9595d5babd2eb1c3b51202b28cdf9", null ], + [ "position", "classmeow_1_1FeaturePoint.html#a9c0722f2de0ea4a34f5f52e477bace9b", null ], + [ "positionGet", "classmeow_1_1FeaturePoint.html#adb4e1f091fb82cdb2fbb6ed50bd3415a", null ], + [ "read", "classmeow_1_1FeaturePoint.html#a48908e47535a5528207f8dff2db85ba4", null ], + [ "referenceFrom", "classmeow_1_1FeaturePoint.html#af5e944e79a1dfe6644fe429577734bc4", null ], + [ "type", "classmeow_1_1FeaturePoint.html#ab6ee7c5a267d5c64e3b021b0397880d1", null ], + [ "write", "classmeow_1_1FeaturePoint.html#a54a0ca59d340d0bcd969609a0682d2d9", null ] +]; \ No newline at end of file diff --git a/doc/html/classmeow_1_1FeaturePoint.png b/doc/html/classmeow_1_1FeaturePoint.png new file mode 100644 index 0000000..628ad32 Binary files /dev/null and b/doc/html/classmeow_1_1FeaturePoint.png differ diff --git a/doc/html/classmeow_1_1FeaturePointsDetector-members.html b/doc/html/classmeow_1_1FeaturePointsDetector-members.html new file mode 100644 index 0000000..a7ae5f6 --- /dev/null +++ b/doc/html/classmeow_1_1FeaturePointsDetector-members.html @@ -0,0 +1,89 @@ + + + + + + + +Templates -- Meow: Member List + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      meow::FeaturePointsDetector< Pixel > Member List
      +
      +
      + +

      This is the complete list of members for meow::FeaturePointsDetector< Pixel >, including all inherited members.

      + + + + + + + + + + + + + + +
      copyFrom(ObjBase const *b)meow::ObjBaseinlinevirtual
      create() const meow::ObjBaseinlinevirtual
      ctype() const meow::ObjBaseinlinevirtual
      ctypeBase()meow::ObjBaseinlinestatic
      detect(Bitmap< Pixel > const &__bitmap) const =0meow::FeaturePointsDetector< Pixel >pure virtual
      FeaturePointsDetector()meow::FeaturePointsDetector< Pixel >inlineprotected
      ObjBase()meow::ObjBaseinlineprotected
      read(FILE *f, bool bin, unsigned int fg)meow::ObjBaseinlinevirtual
      type() const meow::ObjBaseinlinevirtual
      typeBase()meow::ObjBaseinlinestatic
      write(FILE *f, bool bin, unsigned int fg) const meow::ObjBaseinlinevirtual
      ~FeaturePointsDetector()meow::FeaturePointsDetector< Pixel >inlinevirtual
      ~ObjBase()meow::ObjBaseinlinevirtual
      +
      + + + + + diff --git a/doc/html/classmeow_1_1FeaturePointsDetector.html b/doc/html/classmeow_1_1FeaturePointsDetector.html new file mode 100644 index 0000000..19fd234 --- /dev/null +++ b/doc/html/classmeow_1_1FeaturePointsDetector.html @@ -0,0 +1,213 @@ + + + + + + + +Templates -- Meow: meow::FeaturePointsDetector< Pixel > Class Template Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      meow::FeaturePointsDetector< Pixel > Class Template Referenceabstract
      +
      +
      + +

      #include "FeaturePointsDetector.h"

      +
      +Inheritance diagram for meow::FeaturePointsDetector< Pixel >:
      +
      +
      + + +meow::ObjBase +meow::FeaturePointsDetector_Harris< Pixel > + +
      + + + + + + + + + + + + + + + + + + + + + +

      +Public Member Functions

      virtual ~FeaturePointsDetector ()
       
      virtual std::vector
      +< FeaturePoint< double, double > > 
      detect (Bitmap< Pixel > const &__bitmap) const =0
       
      - Public Member Functions inherited from meow::ObjBase
      virtual ~ObjBase ()
       
      virtual bool write (FILE *f, bool bin, unsigned int fg) const
       
      virtual bool read (FILE *f, bool bin, unsigned int fg)
       
      virtual ObjBasecreate () const
       
      virtual ObjBasecopyFrom (ObjBase const *b)
       
      virtual char const * ctype () const
       
      virtual std::string type () const
       
      + + + + + + +

      +Protected Member Functions

       FeaturePointsDetector ()
       
      - Protected Member Functions inherited from meow::ObjBase
       ObjBase ()
       
      + + + + + + +

      +Additional Inherited Members

      - Static Public Member Functions inherited from meow::ObjBase
      static char const * ctypeBase ()
       
      static std::string typeBase ()
       
      +

      Constructor & Destructor Documentation

      + +
      +
      +
      +template<class Pixel >
      + + + + + +
      + + + + + + + +
      meow::FeaturePointsDetector< Pixel >::FeaturePointsDetector ()
      +
      +inlineprotected
      +
      + +
      +
      + +
      +
      +
      +template<class Pixel >
      + + + + + +
      + + + + + + + +
      virtual meow::FeaturePointsDetector< Pixel >::~FeaturePointsDetector ()
      +
      +inlinevirtual
      +
      + +
      +
      +

      Member Function Documentation

      + +
      +
      +
      +template<class Pixel >
      + + + + + +
      + + + + + + + + +
      virtual std::vector<FeaturePoint<double, double> > meow::FeaturePointsDetector< Pixel >::detect (Bitmap< Pixel > const & __bitmap) const
      +
      +pure virtual
      +
      +
      +
      The documentation for this class was generated from the following file: +
      +
      + + + + + diff --git a/doc/html/classmeow_1_1FeaturePointsDetector.js b/doc/html/classmeow_1_1FeaturePointsDetector.js new file mode 100644 index 0000000..293b708 --- /dev/null +++ b/doc/html/classmeow_1_1FeaturePointsDetector.js @@ -0,0 +1,6 @@ +var classmeow_1_1FeaturePointsDetector = +[ + [ "FeaturePointsDetector", "classmeow_1_1FeaturePointsDetector.html#ad8ce3d515825b6e3b8c4865ebe7c8d76", null ], + [ "~FeaturePointsDetector", "classmeow_1_1FeaturePointsDetector.html#adea2550181cf483dff301c8bbaa9977f", null ], + [ "detect", "classmeow_1_1FeaturePointsDetector.html#a1018fe88eac5ab1ceab046f908d0fe07", null ] +]; \ No newline at end of file diff --git a/doc/html/classmeow_1_1FeaturePointsDetector.png b/doc/html/classmeow_1_1FeaturePointsDetector.png new file mode 100644 index 0000000..574efa4 Binary files /dev/null and b/doc/html/classmeow_1_1FeaturePointsDetector.png differ diff --git a/doc/html/classmeow_1_1FeaturePointsDetector__Harris-members.html b/doc/html/classmeow_1_1FeaturePointsDetector__Harris-members.html new file mode 100644 index 0000000..381b8fc --- /dev/null +++ b/doc/html/classmeow_1_1FeaturePointsDetector__Harris-members.html @@ -0,0 +1,112 @@ + + + + + + + +Templates -- Meow: Member List + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      meow::FeaturePointsDetector_Harris< Pixel > Member List
      +
      +
      + +

      This is the complete list of members for meow::FeaturePointsDetector_Harris< Pixel >, including all inherited members.

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      copyFrom(FPD_Harris const &fps)meow::FeaturePointsDetector_Harris< Pixel >inline
      copyFrom(ObjBase const *b)meow::FeaturePointsDetector_Harris< Pixel >inlinevirtual
      create() const meow::FeaturePointsDetector_Harris< Pixel >inlinevirtual
      ctype() const meow::FeaturePointsDetector_Harris< Pixel >inlinevirtual
      ctypeBase()meow::ObjBaseinlinestatic
      detect(Bitmap< Pixel > const &bmp) const meow::FeaturePointsDetector_Harris< Pixel >inlinevirtual
      FeaturePointsDetector()meow::FeaturePointsDetector< Pixel >inlineprotected
      FPD_Harris()meow::FeaturePointsDetector_Harris< Pixel >inline
      FPD_Harris(FPD_Harris const &fps)meow::FeaturePointsDetector_Harris< Pixel >inline
      MyFeaturePoint typedefmeow::FeaturePointsDetector_Harris< Pixel >
      MyFeaturePoints typedefmeow::FeaturePointsDetector_Harris< Pixel >
      ObjBase()meow::ObjBaseinlineprotected
      operator()(Bitmap< Pixel > const &bmp) const meow::FeaturePointsDetector_Harris< Pixel >inline
      operator=(FPD_Harris const &fps)meow::FeaturePointsDetector_Harris< Pixel >inline
      paramB() const meow::FeaturePointsDetector_Harris< Pixel >inline
      paramB(size_t b)meow::FeaturePointsDetector_Harris< Pixel >inline
      paramG() const meow::FeaturePointsDetector_Harris< Pixel >inline
      paramG(double g)meow::FeaturePointsDetector_Harris< Pixel >inline
      paramK() const meow::FeaturePointsDetector_Harris< Pixel >inline
      paramK(double k)meow::FeaturePointsDetector_Harris< Pixel >inline
      paramL() const meow::FeaturePointsDetector_Harris< Pixel >inline
      paramL(double l)meow::FeaturePointsDetector_Harris< Pixel >inline
      paramN() const meow::FeaturePointsDetector_Harris< Pixel >inline
      paramN(double n)meow::FeaturePointsDetector_Harris< Pixel >inline
      paramR() const meow::FeaturePointsDetector_Harris< Pixel >inline
      paramR(double r)meow::FeaturePointsDetector_Harris< Pixel >inline
      paramW() const meow::FeaturePointsDetector_Harris< Pixel >inline
      paramW(double w)meow::FeaturePointsDetector_Harris< Pixel >inline
      read(FILE *f, bool bin, unsigned int fg)meow::FeaturePointsDetector_Harris< Pixel >inlinevirtual
      referenceFrom(FPD_Harris const &fps)meow::FeaturePointsDetector_Harris< Pixel >inline
      type() const meow::FeaturePointsDetector_Harris< Pixel >inlinevirtual
      typeBase()meow::ObjBaseinlinestatic
      write(FILE *f, bool bin, unsigned int fg) const meow::FeaturePointsDetector_Harris< Pixel >inlinevirtual
      ~FeaturePointsDetector()meow::FeaturePointsDetector< Pixel >inlinevirtual
      ~FPD_Harris()meow::FeaturePointsDetector_Harris< Pixel >inline
      ~ObjBase()meow::ObjBaseinlinevirtual
      +
      + + + + + diff --git a/doc/html/classmeow_1_1FeaturePointsDetector__Harris.html b/doc/html/classmeow_1_1FeaturePointsDetector__Harris.html new file mode 100644 index 0000000..4d94944 --- /dev/null +++ b/doc/html/classmeow_1_1FeaturePointsDetector__Harris.html @@ -0,0 +1,1088 @@ + + + + + + + +Templates -- Meow: meow::FeaturePointsDetector_Harris< Pixel > Class Template Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      meow::FeaturePointsDetector_Harris< Pixel > Class Template Reference
      +
      +
      + +

      Harris corner detect. + More...

      + +

      #include "FeaturePointsDetector_Harris.h"

      +
      +Inheritance diagram for meow::FeaturePointsDetector_Harris< Pixel >:
      +
      +
      + + +meow::FeaturePointsDetector< Pixel > +meow::ObjBase + +
      + + + + + + +

      +Public Types

      typedef FeaturePoint< double,
      +double
      MyFeaturePoint
       
      typedef std::vector
      +< MyFeaturePoint
      MyFeaturePoints
       
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      +Public Member Functions

       FPD_Harris ()
       constructor 使用預設參數 More...
       
       FPD_Harris (FPD_Harris const &fps)
       constructor 參數複製自另一個 FeaturePointsDetector_Harris More...
       
       ~FPD_Harris ()
       解構子 More...
       
      FPD_HarriscopyFrom (FPD_Harris const &fps)
       複製 More...
       
      FPD_HarrisreferenceFrom (FPD_Harris const &fps)
       參照 More...
       
      double paramK () const
       K. More...
       
      double paramR () const
       R. More...
       
      double paramW () const
       W. More...
       
      double paramN () const
       N. More...
       
      double paramG () const
       G. More...
       
      double paramL () const
       L. More...
       
      size_t paramB () const
       bound More...
       
      double paramK (double k)
       K. More...
       
      double paramR (double r)
       R. More...
       
      double paramW (double w)
       W. More...
       
      double paramN (double n)
       N. More...
       
      double paramL (double l)
       L. More...
       
      double paramG (double g)
       G. More...
       
      size_t paramB (size_t b)
       B. More...
       
      MyFeaturePoints detect (Bitmap< Pixel > const &bmp) const
       找出特徵點 More...
       
      FPD_Harrisoperator= (FPD_Harris const &fps)
       same as copyFrom(fps) More...
       
      MyFeaturePoints operator() (Bitmap< Pixel > const &bmp) const
       same as detect(bmp) More...
       
      bool write (FILE *f, bool bin, unsigned int fg) const
       寫到檔案裡 More...
       
      bool read (FILE *f, bool bin, unsigned int fg)
       將資料讀入 More...
       
      ObjBasecreate () const
       new一個自己 More...
       
      ObjBasecopyFrom (ObjBase const *b)
       複製資料 More...
       
      char const * ctype () const
       回傳class的type More...
       
      std::string type () const
       回傳class的type More...
       
      - Public Member Functions inherited from meow::FeaturePointsDetector< Pixel >
      virtual ~FeaturePointsDetector ()
       
      - Public Member Functions inherited from meow::ObjBase
      virtual ~ObjBase ()
       
      + + + + + + + + + +

      +Additional Inherited Members

      - Static Public Member Functions inherited from meow::ObjBase
      static char const * ctypeBase ()
       
      static std::string typeBase ()
       
      - Protected Member Functions inherited from meow::FeaturePointsDetector< Pixel >
       FeaturePointsDetector ()
       
      +

      Detailed Description

      +

      template<class Pixel>
      +class meow::FeaturePointsDetector_Harris< Pixel >

      + +

      Harris corner detect.

      +
      Author
      cat_leopard
      +

      Member Typedef Documentation

      + +
      +
      +
      +template<class Pixel >
      + + + + +
      typedef FeaturePoint<double, double> meow::FeaturePointsDetector_Harris< Pixel >::MyFeaturePoint
      +
      + +
      +
      + +
      +
      +
      +template<class Pixel >
      + + + + +
      typedef std::vector<MyFeaturePoint> meow::FeaturePointsDetector_Harris< Pixel >::MyFeaturePoints
      +
      + +
      +
      +

      Constructor & Destructor Documentation

      + +
      +
      +
      +template<class Pixel >
      + + + + + +
      + + + + + + + +
      meow::FeaturePointsDetector_Harris< Pixel >::~FPD_Harris ()
      +
      +inline
      +
      + +

      解構子

      + +
      +
      +

      Member Function Documentation

      + +
      +
      +
      +template<class Pixel >
      + + + + + +
      + + + + + + + + +
      FPD_Harris& meow::FeaturePointsDetector_Harris< Pixel >::copyFrom (FPD_Harris const & fps)
      +
      +inline
      +
      + +

      複製

      + +
      +
      + +
      +
      +
      +template<class Pixel >
      + + + + + +
      + + + + + + + + +
      ObjBase* meow::FeaturePointsDetector_Harris< Pixel >::copyFrom (ObjBase const * b)
      +
      +inlinevirtual
      +
      + +

      複製資料

      +
      輸入型別是 \c ObjBase \c const*
      +這裡假設實體其實是 \c FeaturePointsDetector_Harris.
      +事實上這個method就只是幫忙轉型然後呼叫原本的\c copyFrom
      +
      Parameters
      + + +
      [in]b資料來源
      +
      +
      +
      Returns
      this
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<class Pixel >
      + + + + + +
      + + + + + + + +
      ObjBase* meow::FeaturePointsDetector_Harris< Pixel >::create () const
      +
      +inlinevirtual
      +
      + +

      new一個自己

      +
      Returns
      一個new出來的FeaturePointsDetector_Harris<Pixel>
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<class Pixel >
      + + + + + +
      + + + + + + + +
      char const* meow::FeaturePointsDetector_Harris< Pixel >::ctype () const
      +
      +inlinevirtual
      +
      + +

      回傳class的type

      +
      Returns
      char const* 形式的typename
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<class Pixel >
      + + + + + +
      + + + + + + + + +
      MyFeaturePoints meow::FeaturePointsDetector_Harris< Pixel >::detect (Bitmap< Pixel > const & bmp) const
      +
      +inlinevirtual
      +
      + +

      找出特徵點

      +
      Parameters
      + + +
      [in]bmp要抓特徵點的點陣圖
      +
      +
      +
      Returns
      std::vector<FeaturePoint<double,double>> 型態的一堆特徵點
      + +

      Implements meow::FeaturePointsDetector< Pixel >.

      + +
      +
      + +
      +
      +
      +template<class Pixel >
      + + + + + +
      + + + + + + + +
      meow::FeaturePointsDetector_Harris< Pixel >::FPD_Harris ()
      +
      +inline
      +
      + +

      constructor 使用預設參數

      + +
      +
      + +
      +
      +
      +template<class Pixel >
      + + + + + +
      + + + + + + + + +
      meow::FeaturePointsDetector_Harris< Pixel >::FPD_Harris (FPD_Harris const & fps)
      +
      +inline
      +
      + +

      constructor 參數複製自另一個 FeaturePointsDetector_Harris

      + +
      +
      + +
      +
      +
      +template<class Pixel >
      + + + + + +
      + + + + + + + + +
      MyFeaturePoints meow::FeaturePointsDetector_Harris< Pixel >::operator() (Bitmap< Pixel > const & bmp) const
      +
      +inline
      +
      + +

      same as detect(bmp)

      + +
      +
      + +
      +
      +
      +template<class Pixel >
      + + + + + +
      + + + + + + + + +
      FPD_Harris& meow::FeaturePointsDetector_Harris< Pixel >::operator= (FPD_Harris const & fps)
      +
      +inline
      +
      + +

      same as copyFrom(fps)

      + +
      +
      + +
      +
      +
      +template<class Pixel >
      + + + + + +
      + + + + + + + +
      size_t meow::FeaturePointsDetector_Harris< Pixel >::paramB () const
      +
      +inline
      +
      + +

      bound

      + +
      +
      + +
      +
      +
      +template<class Pixel >
      + + + + + +
      + + + + + + + + +
      size_t meow::FeaturePointsDetector_Harris< Pixel >::paramB (size_t b)
      +
      +inline
      +
      + +

      B.

      + +
      +
      + +
      +
      +
      +template<class Pixel >
      + + + + + +
      + + + + + + + +
      double meow::FeaturePointsDetector_Harris< Pixel >::paramG () const
      +
      +inline
      +
      + +

      G.

      + +
      +
      + +
      +
      +
      +template<class Pixel >
      + + + + + +
      + + + + + + + + +
      double meow::FeaturePointsDetector_Harris< Pixel >::paramG (double g)
      +
      +inline
      +
      + +

      G.

      + +
      +
      + +
      +
      +
      +template<class Pixel >
      + + + + + +
      + + + + + + + +
      double meow::FeaturePointsDetector_Harris< Pixel >::paramK () const
      +
      +inline
      +
      + +

      K.

      + +
      +
      + +
      +
      +
      +template<class Pixel >
      + + + + + +
      + + + + + + + + +
      double meow::FeaturePointsDetector_Harris< Pixel >::paramK (double k)
      +
      +inline
      +
      + +

      K.

      + +
      +
      + +
      +
      +
      +template<class Pixel >
      + + + + + +
      + + + + + + + +
      double meow::FeaturePointsDetector_Harris< Pixel >::paramL () const
      +
      +inline
      +
      + +

      L.

      + +
      +
      + +
      +
      +
      +template<class Pixel >
      + + + + + +
      + + + + + + + + +
      double meow::FeaturePointsDetector_Harris< Pixel >::paramL (double l)
      +
      +inline
      +
      + +

      L.

      + +
      +
      + +
      +
      +
      +template<class Pixel >
      + + + + + +
      + + + + + + + +
      double meow::FeaturePointsDetector_Harris< Pixel >::paramN () const
      +
      +inline
      +
      + +

      N.

      + +
      +
      + +
      +
      +
      +template<class Pixel >
      + + + + + +
      + + + + + + + + +
      double meow::FeaturePointsDetector_Harris< Pixel >::paramN (double n)
      +
      +inline
      +
      + +

      N.

      + +
      +
      + +
      +
      +
      +template<class Pixel >
      + + + + + +
      + + + + + + + +
      double meow::FeaturePointsDetector_Harris< Pixel >::paramR () const
      +
      +inline
      +
      + +

      R.

      + +
      +
      + +
      +
      +
      +template<class Pixel >
      + + + + + +
      + + + + + + + + +
      double meow::FeaturePointsDetector_Harris< Pixel >::paramR (double r)
      +
      +inline
      +
      + +

      R.

      + +
      +
      + +
      +
      +
      +template<class Pixel >
      + + + + + +
      + + + + + + + +
      double meow::FeaturePointsDetector_Harris< Pixel >::paramW () const
      +
      +inline
      +
      + +

      W.

      + +
      +
      + +
      +
      +
      +template<class Pixel >
      + + + + + +
      + + + + + + + + +
      double meow::FeaturePointsDetector_Harris< Pixel >::paramW (double w)
      +
      +inline
      +
      + +

      W.

      + +
      +
      + +
      +
      +
      +template<class Pixel >
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      bool meow::FeaturePointsDetector_Harris< Pixel >::read (FILE * f,
      bool bin,
      unsigned int fg 
      )
      +
      +inlinevirtual
      +
      + +

      將資料讀入

      +

      未完成

      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<class Pixel >
      + + + + + +
      + + + + + + + + +
      FPD_Harris& meow::FeaturePointsDetector_Harris< Pixel >::referenceFrom (FPD_Harris const & fps)
      +
      +inline
      +
      + +

      參照

      + +
      +
      + +
      +
      +
      +template<class Pixel >
      + + + + + +
      + + + + + + + +
      std::string meow::FeaturePointsDetector_Harris< Pixel >::type () const
      +
      +inlinevirtual
      +
      + +

      回傳class的type

      +
      Returns
      std::string 形式的typename
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<class Pixel >
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      bool meow::FeaturePointsDetector_Harris< Pixel >::write (FILE * f,
      bool bin,
      unsigned int fg 
      ) const
      +
      +inlinevirtual
      +
      + +

      寫到檔案裡

      +

      未完成

      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      +
      The documentation for this class was generated from the following file: +
      +
      + + + + + diff --git a/doc/html/classmeow_1_1FeaturePointsDetector__Harris.js b/doc/html/classmeow_1_1FeaturePointsDetector__Harris.js new file mode 100644 index 0000000..db94af4 --- /dev/null +++ b/doc/html/classmeow_1_1FeaturePointsDetector__Harris.js @@ -0,0 +1,33 @@ +var classmeow_1_1FeaturePointsDetector__Harris = +[ + [ "MyFeaturePoint", "classmeow_1_1FeaturePointsDetector__Harris.html#a6d7cd13c351d03b759fc007da55533bd", null ], + [ "MyFeaturePoints", "classmeow_1_1FeaturePointsDetector__Harris.html#ae965b4c2726644be2310cbf153ec8343", null ], + [ "~FPD_Harris", "classmeow_1_1FeaturePointsDetector__Harris.html#ad64fc165235876aa681023c3880f708b", null ], + [ "copyFrom", "classmeow_1_1FeaturePointsDetector__Harris.html#aa0bcd7cc0afbe1dc6fa06eef32c9c1f3", null ], + [ "copyFrom", "classmeow_1_1FeaturePointsDetector__Harris.html#a51ea4943d3c0515466a801ec63ba44ea", null ], + [ "create", "classmeow_1_1FeaturePointsDetector__Harris.html#ae7a96030ea8d06322b632c89eb65655d", null ], + [ "ctype", "classmeow_1_1FeaturePointsDetector__Harris.html#a00be866b3cf9bd2469e0eef32a3b2287", null ], + [ "detect", "classmeow_1_1FeaturePointsDetector__Harris.html#a73c79a7194bd8438685d6d252f9acf2c", null ], + [ "FPD_Harris", "classmeow_1_1FeaturePointsDetector__Harris.html#a0f9868d0d8e412908bc28ba56b6eaf9c", null ], + [ "FPD_Harris", "classmeow_1_1FeaturePointsDetector__Harris.html#a6c985645f3e3c3d649edb72c08168cf3", null ], + [ "operator()", "classmeow_1_1FeaturePointsDetector__Harris.html#ac3d52bb2286377febbe692480e9afa75", null ], + [ "operator=", "classmeow_1_1FeaturePointsDetector__Harris.html#aab9f554d028c13587d29abe0dc5fa1bd", null ], + [ "paramB", "classmeow_1_1FeaturePointsDetector__Harris.html#a40f5a7ac2425243fd637ba6ed400820a", null ], + [ "paramB", "classmeow_1_1FeaturePointsDetector__Harris.html#a5033d1d9c34d0ab2f12408b9c9c33bc8", null ], + [ "paramG", "classmeow_1_1FeaturePointsDetector__Harris.html#a956719ee4c4620233bb38983b8acf908", null ], + [ "paramG", "classmeow_1_1FeaturePointsDetector__Harris.html#a0faf2dae43fe1e07b145c04c13e9083f", null ], + [ "paramK", "classmeow_1_1FeaturePointsDetector__Harris.html#a5ba64f79bf3a94d7cf7a3a5a20dceabf", null ], + [ "paramK", "classmeow_1_1FeaturePointsDetector__Harris.html#aa5053b3bfc11a7333f84183fef1c0297", null ], + [ "paramL", "classmeow_1_1FeaturePointsDetector__Harris.html#a24e273bd865b89568e70b4f65bf56806", null ], + [ "paramL", "classmeow_1_1FeaturePointsDetector__Harris.html#a0a905f8e6562eca76dbdeee6899c5fec", null ], + [ "paramN", "classmeow_1_1FeaturePointsDetector__Harris.html#a6670eebe33689042e0e01911763197f2", null ], + [ "paramN", "classmeow_1_1FeaturePointsDetector__Harris.html#af987b2022023708f61c6c7d4bb78e255", null ], + [ "paramR", "classmeow_1_1FeaturePointsDetector__Harris.html#a05ec8973f1ea8611c19f7184d3ad5422", null ], + [ "paramR", "classmeow_1_1FeaturePointsDetector__Harris.html#acdb6ae069a9ef7e3f55c3a9666f97cfd", null ], + [ "paramW", "classmeow_1_1FeaturePointsDetector__Harris.html#afc8cb8cd55dec0769f9cc3486d431772", null ], + [ "paramW", "classmeow_1_1FeaturePointsDetector__Harris.html#a084adc4ffa9b035c1b83da55e496b683", null ], + [ "read", "classmeow_1_1FeaturePointsDetector__Harris.html#a3bf522cf08285d1afbaca76c643ea4a7", null ], + [ "referenceFrom", "classmeow_1_1FeaturePointsDetector__Harris.html#aedd26ad4f5ce224bf925271d467aaf06", null ], + [ "type", "classmeow_1_1FeaturePointsDetector__Harris.html#ae13f041624113e4b87d49befc2e1d77a", null ], + [ "write", "classmeow_1_1FeaturePointsDetector__Harris.html#a83d9ec3557a4251dc98dae1ab7146a14", null ] +]; \ No newline at end of file diff --git a/doc/html/classmeow_1_1FeaturePointsDetector__Harris.png b/doc/html/classmeow_1_1FeaturePointsDetector__Harris.png new file mode 100644 index 0000000..58efc53 Binary files /dev/null and b/doc/html/classmeow_1_1FeaturePointsDetector__Harris.png differ diff --git a/doc/html/classmeow_1_1FeaturePointsMatch-members.html b/doc/html/classmeow_1_1FeaturePointsMatch-members.html new file mode 100644 index 0000000..fb9e40e --- /dev/null +++ b/doc/html/classmeow_1_1FeaturePointsMatch-members.html @@ -0,0 +1,94 @@ + + + + + + + +Templates -- Meow: Member List + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      meow::FeaturePointsMatch< Scalar, Description > Member List
      +
      +
      + +

      This is the complete list of members for meow::FeaturePointsMatch< Scalar, Description >, including all inherited members.

      + + + + + + + + + + + + + + + + + + + +
      copyFrom(ObjBase const *b)meow::ObjBaseinlinevirtual
      create() const meow::ObjBaseinlinevirtual
      ctype() const meow::ObjBaseinlinevirtual
      ctypeBase()meow::ObjBaseinlinestatic
      FeaturePoints typedefmeow::FeaturePointsMatch< Scalar, Description >
      FeaturePointsMatch()meow::FeaturePointsMatch< Scalar, Description >inlineprotected
      FeaturePointss typedefmeow::FeaturePointsMatch< Scalar, Description >
      match(size_t dimension, FeaturePoints const &from, FeaturePoints const &to) const =0meow::FeaturePointsMatch< Scalar, Description >pure virtual
      match(size_t dimension, FeaturePoints const &from, FeaturePointss const &to) const =0meow::FeaturePointsMatch< Scalar, Description >pure virtual
      match(size_t dimension, FeaturePointss const &from, FeaturePointss const &to) const =0meow::FeaturePointsMatch< Scalar, Description >pure virtual
      match(size_t dimension, FeaturePointss const &fpss) const =0meow::FeaturePointsMatch< Scalar, Description >pure virtual
      ObjBase()meow::ObjBaseinlineprotected
      read(FILE *f, bool bin, unsigned int fg)meow::ObjBaseinlinevirtual
      type() const meow::ObjBaseinlinevirtual
      typeBase()meow::ObjBaseinlinestatic
      write(FILE *f, bool bin, unsigned int fg) const meow::ObjBaseinlinevirtual
      ~FeaturePointsMatch()meow::FeaturePointsMatch< Scalar, Description >inlinevirtual
      ~ObjBase()meow::ObjBaseinlinevirtual
      +
      + + + + + diff --git a/doc/html/classmeow_1_1FeaturePointsMatch.html b/doc/html/classmeow_1_1FeaturePointsMatch.html new file mode 100644 index 0000000..3579ba2 --- /dev/null +++ b/doc/html/classmeow_1_1FeaturePointsMatch.html @@ -0,0 +1,400 @@ + + + + + + + +Templates -- Meow: meow::FeaturePointsMatch< Scalar, Description > Class Template Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      meow::FeaturePointsMatch< Scalar, Description > Class Template Referenceabstract
      +
      +
      + +

      #include "FeaturePointsMatch.h"

      +
      +Inheritance diagram for meow::FeaturePointsMatch< Scalar, Description >:
      +
      +
      + + +meow::ObjBase +meow::FeaturePointsMatch_K_Match< Scalar, Description > + +
      + + + + + + +

      +Public Types

      typedef std::vector
      +< FeaturePoint< Scalar,
      +Description > > 
      FeaturePoints
       
      typedef std::vector
      +< FeaturePoints
      FeaturePointss
       
      + + + + + + + + + + + + + + + + + + + + + + + + + + +

      +Public Member Functions

      virtual ~FeaturePointsMatch ()
       
      virtual FeaturePointIndexPairs match (size_t dimension, FeaturePoints const &from, FeaturePoints const &to) const =0
       
      virtual FeaturePointIndexPairs match (size_t dimension, FeaturePoints const &from, FeaturePointss const &to) const =0
       
      virtual FeaturePointIndexPairs match (size_t dimension, FeaturePointss const &from, FeaturePointss const &to) const =0
       
      virtual FeaturePointIndexPairs match (size_t dimension, FeaturePointss const &fpss) const =0
       
      - Public Member Functions inherited from meow::ObjBase
      virtual ~ObjBase ()
       
      virtual bool write (FILE *f, bool bin, unsigned int fg) const
       
      virtual bool read (FILE *f, bool bin, unsigned int fg)
       
      virtual ObjBasecreate () const
       
      virtual ObjBasecopyFrom (ObjBase const *b)
       
      virtual char const * ctype () const
       
      virtual std::string type () const
       
      + + + + + + +

      +Protected Member Functions

       FeaturePointsMatch ()
       
      - Protected Member Functions inherited from meow::ObjBase
       ObjBase ()
       
      + + + + + + +

      +Additional Inherited Members

      - Static Public Member Functions inherited from meow::ObjBase
      static char const * ctypeBase ()
       
      static std::string typeBase ()
       
      +

      Member Typedef Documentation

      + +
      +
      +
      +template<class Scalar , class Description >
      + + + + +
      typedef std::vector<FeaturePoint<Scalar, Description> > meow::FeaturePointsMatch< Scalar, Description >::FeaturePoints
      +
      + +
      +
      + +
      +
      +
      +template<class Scalar , class Description >
      + + + + +
      typedef std::vector<FeaturePoints > meow::FeaturePointsMatch< Scalar, Description >::FeaturePointss
      +
      + +
      +
      +

      Constructor & Destructor Documentation

      + +
      +
      +
      +template<class Scalar , class Description >
      + + + + + +
      + + + + + + + +
      meow::FeaturePointsMatch< Scalar, Description >::FeaturePointsMatch ()
      +
      +inlineprotected
      +
      + +
      +
      + +
      +
      +
      +template<class Scalar , class Description >
      + + + + + +
      + + + + + + + +
      virtual meow::FeaturePointsMatch< Scalar, Description >::~FeaturePointsMatch ()
      +
      +inlinevirtual
      +
      + +
      +
      +

      Member Function Documentation

      + +
      +
      +
      +template<class Scalar , class Description >
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      virtual FeaturePointIndexPairs meow::FeaturePointsMatch< Scalar, Description >::match (size_t dimension,
      FeaturePoints const & from,
      FeaturePoints const & to 
      ) const
      +
      +pure virtual
      +
      +
      + +
      +
      +
      +template<class Scalar , class Description >
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      virtual FeaturePointIndexPairs meow::FeaturePointsMatch< Scalar, Description >::match (size_t dimension,
      FeaturePoints const & from,
      FeaturePointss const & to 
      ) const
      +
      +pure virtual
      +
      +
      + +
      +
      +
      +template<class Scalar , class Description >
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      virtual FeaturePointIndexPairs meow::FeaturePointsMatch< Scalar, Description >::match (size_t dimension,
      FeaturePointss const & from,
      FeaturePointss const & to 
      ) const
      +
      +pure virtual
      +
      +
      + +
      +
      +
      +template<class Scalar , class Description >
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      virtual FeaturePointIndexPairs meow::FeaturePointsMatch< Scalar, Description >::match (size_t dimension,
      FeaturePointss const & fpss 
      ) const
      +
      +pure virtual
      +
      +
      +
      The documentation for this class was generated from the following file: +
      +
      + + + + + diff --git a/doc/html/classmeow_1_1FeaturePointsMatch.js b/doc/html/classmeow_1_1FeaturePointsMatch.js new file mode 100644 index 0000000..284df9e --- /dev/null +++ b/doc/html/classmeow_1_1FeaturePointsMatch.js @@ -0,0 +1,11 @@ +var classmeow_1_1FeaturePointsMatch = +[ + [ "FeaturePoints", "classmeow_1_1FeaturePointsMatch.html#aabbd59cc0e43b1b436f9e61205d39e72", null ], + [ "FeaturePointss", "classmeow_1_1FeaturePointsMatch.html#a20914f57403c2a810601320b6a0f0715", null ], + [ "FeaturePointsMatch", "classmeow_1_1FeaturePointsMatch.html#a474b17d1df14547565c6536a73e8484d", null ], + [ "~FeaturePointsMatch", "classmeow_1_1FeaturePointsMatch.html#a8b90a39f83d8b86e324eab3cb45064a2", null ], + [ "match", "classmeow_1_1FeaturePointsMatch.html#aa16339c126971f455938bbb70ec2626a", null ], + [ "match", "classmeow_1_1FeaturePointsMatch.html#a474944b0cb2371aabb0f41164afa90fd", null ], + [ "match", "classmeow_1_1FeaturePointsMatch.html#ae5a6610fe39f727fc9f6ca0f5603ed6b", null ], + [ "match", "classmeow_1_1FeaturePointsMatch.html#ae7bd29fe1ddfca20ee140268f354ccba", null ] +]; \ No newline at end of file diff --git a/doc/html/classmeow_1_1FeaturePointsMatch.png b/doc/html/classmeow_1_1FeaturePointsMatch.png new file mode 100644 index 0000000..e90c12e Binary files /dev/null and b/doc/html/classmeow_1_1FeaturePointsMatch.png differ diff --git a/doc/html/classmeow_1_1FeaturePointsMatch__K__Match-members.html b/doc/html/classmeow_1_1FeaturePointsMatch__K__Match-members.html new file mode 100644 index 0000000..e7322f2 --- /dev/null +++ b/doc/html/classmeow_1_1FeaturePointsMatch__K__Match-members.html @@ -0,0 +1,103 @@ + + + + + + + +Templates -- Meow: Member List + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      meow::FeaturePointsMatch_K_Match< Scalar, Description > Member List
      +
      +
      + +

      This is the complete list of members for meow::FeaturePointsMatch_K_Match< Scalar, Description >, including all inherited members.

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      copyFrom(FPMKM const &m)meow::FeaturePointsMatch_K_Match< Scalar, Description >inline
      copyFrom(ObjBase const *ptr)meow::FeaturePointsMatch_K_Match< Scalar, Description >inlinevirtual
      create() const meow::FeaturePointsMatch_K_Match< Scalar, Description >inlinevirtual
      ctype() const meow::FeaturePointsMatch_K_Match< Scalar, Description >inlinevirtual
      ctypeBase()meow::ObjBaseinlinestatic
      FeaturePoints typedefmeow::FeaturePointsMatch_K_Match< Scalar, Description >
      FeaturePointsMatch()meow::FeaturePointsMatch< Scalar, Description >inlineprotected
      FeaturePointss typedefmeow::FeaturePointsMatch_K_Match< Scalar, Description >
      FPMKM()meow::FeaturePointsMatch_K_Match< Scalar, Description >inline
      FPMKM(FPMKM const &m)meow::FeaturePointsMatch_K_Match< Scalar, Description >inline
      FPMKM(size_t k)meow::FeaturePointsMatch_K_Match< Scalar, Description >inline
      match(size_t dimension, FeaturePoints const &from, FeaturePoints const &to) const meow::FeaturePointsMatch_K_Match< Scalar, Description >inlinevirtual
      match(size_t dimension, FeaturePoints const &from, FeaturePointss const &to) const meow::FeaturePointsMatch_K_Match< Scalar, Description >inlinevirtual
      match(size_t dimension, FeaturePointss const &from, FeaturePointss const &to) const meow::FeaturePointsMatch_K_Match< Scalar, Description >inlinevirtual
      match(size_t dimension, FeaturePointss const &fpss) const meow::FeaturePointsMatch_K_Match< Scalar, Description >inlinevirtual
      ObjBase()meow::ObjBaseinlineprotected
      operator=(FPMKM const &b)meow::FeaturePointsMatch_K_Match< Scalar, Description >inline
      paramK() const meow::FeaturePointsMatch_K_Match< Scalar, Description >inline
      paramK(size_t k)meow::FeaturePointsMatch_K_Match< Scalar, Description >inline
      read(FILE *f, bool bin, unsigned int fg)meow::FeaturePointsMatch_K_Match< Scalar, Description >inlinevirtual
      referenceFrom(FPMKM const &m)meow::FeaturePointsMatch_K_Match< Scalar, Description >inline
      type() const meow::FeaturePointsMatch_K_Match< Scalar, Description >inlinevirtual
      typeBase()meow::ObjBaseinlinestatic
      write(FILE *f, bool bin, unsigned int fg) const meow::FeaturePointsMatch_K_Match< Scalar, Description >inlinevirtual
      ~FeaturePointsMatch()meow::FeaturePointsMatch< Scalar, Description >inlinevirtual
      ~FPMKM()meow::FeaturePointsMatch_K_Match< Scalar, Description >inline
      ~ObjBase()meow::ObjBaseinlinevirtual
      +
      + + + + + diff --git a/doc/html/classmeow_1_1FeaturePointsMatch__K__Match.html b/doc/html/classmeow_1_1FeaturePointsMatch__K__Match.html new file mode 100644 index 0000000..82c809b --- /dev/null +++ b/doc/html/classmeow_1_1FeaturePointsMatch__K__Match.html @@ -0,0 +1,800 @@ + + + + + + + +Templates -- Meow: meow::FeaturePointsMatch_K_Match< Scalar, Description > Class Template Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      meow::FeaturePointsMatch_K_Match< Scalar, Description > Class Template Reference
      +
      +
      + +

      #include "FeaturePointsMatch_K_Match.h"

      +
      +Inheritance diagram for meow::FeaturePointsMatch_K_Match< Scalar, Description >:
      +
      +
      + + +meow::FeaturePointsMatch< Scalar, Description > +meow::ObjBase + +
      + + + + + + + + + + + +

      +Public Types

      typedef std::vector
      +< FeaturePoint< Scalar,
      +Description > > 
      FeaturePoints
       
      typedef std::vector
      +< FeaturePoints
      FeaturePointss
       
      - Public Types inherited from meow::FeaturePointsMatch< Scalar, Description >
      typedef std::vector
      +< FeaturePoint< Scalar,
      +Description > > 
      FeaturePoints
       
      typedef std::vector
      +< FeaturePoints
      FeaturePointss
       
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      +Public Member Functions

       FPMKM ()
       
       FPMKM (FPMKM const &m)
       
       FPMKM (size_t k)
       
       ~FPMKM ()
       
      FPMKMcopyFrom (FPMKM const &m)
       
      FPMKMreferenceFrom (FPMKM const &m)
       
      size_t paramK () const
       
      size_t paramK (size_t k)
       
      FeaturePointIndexPairs match (size_t dimension, FeaturePoints const &from, FeaturePoints const &to) const
       
      FeaturePointIndexPairs match (size_t dimension, FeaturePoints const &from, FeaturePointss const &to) const
       
      FeaturePointIndexPairs match (size_t dimension, FeaturePointss const &from, FeaturePointss const &to) const
       
      FeaturePointIndexPairs match (size_t dimension, FeaturePointss const &fpss) const
       
      FPMKMoperator= (FPMKM const &b)
       
      bool write (FILE *f, bool bin, unsigned int fg) const
       
      bool read (FILE *f, bool bin, unsigned int fg)
       
      ObjBasecreate () const
       
      ObjBasecopyFrom (ObjBase const *ptr)
       
      char const * ctype () const
       
      std::string type () const
       
      - Public Member Functions inherited from meow::FeaturePointsMatch< Scalar, Description >
      virtual ~FeaturePointsMatch ()
       
      - Public Member Functions inherited from meow::ObjBase
      virtual ~ObjBase ()
       
      + + + + + + + + + +

      +Additional Inherited Members

      - Static Public Member Functions inherited from meow::ObjBase
      static char const * ctypeBase ()
       
      static std::string typeBase ()
       
      - Protected Member Functions inherited from meow::FeaturePointsMatch< Scalar, Description >
       FeaturePointsMatch ()
       
      +

      Member Typedef Documentation

      + +
      +
      +
      +template<class Scalar , class Description >
      + + + + +
      typedef std::vector<FeaturePoint<Scalar, Description> > meow::FeaturePointsMatch_K_Match< Scalar, Description >::FeaturePoints
      +
      + +
      +
      + +
      +
      +
      +template<class Scalar , class Description >
      + + + + +
      typedef std::vector<FeaturePoints > meow::FeaturePointsMatch_K_Match< Scalar, Description >::FeaturePointss
      +
      + +
      +
      +

      Constructor & Destructor Documentation

      + +
      +
      +
      +template<class Scalar , class Description >
      + + + + + +
      + + + + + + + +
      meow::FeaturePointsMatch_K_Match< Scalar, Description >::~FPMKM ()
      +
      +inline
      +
      + +
      +
      +

      Member Function Documentation

      + +
      +
      +
      +template<class Scalar , class Description >
      + + + + + +
      + + + + + + + + +
      FPMKM& meow::FeaturePointsMatch_K_Match< Scalar, Description >::copyFrom (FPMKM const & m)
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Scalar , class Description >
      + + + + + +
      + + + + + + + + +
      ObjBase* meow::FeaturePointsMatch_K_Match< Scalar, Description >::copyFrom (ObjBase const * ptr)
      +
      +inlinevirtual
      +
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<class Scalar , class Description >
      + + + + + +
      + + + + + + + +
      ObjBase* meow::FeaturePointsMatch_K_Match< Scalar, Description >::create () const
      +
      +inlinevirtual
      +
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<class Scalar , class Description >
      + + + + + +
      + + + + + + + +
      char const* meow::FeaturePointsMatch_K_Match< Scalar, Description >::ctype () const
      +
      +inlinevirtual
      +
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<class Scalar , class Description >
      + + + + + +
      + + + + + + + +
      meow::FeaturePointsMatch_K_Match< Scalar, Description >::FPMKM ()
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Scalar , class Description >
      + + + + + +
      + + + + + + + + +
      meow::FeaturePointsMatch_K_Match< Scalar, Description >::FPMKM (FPMKM const & m)
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Scalar , class Description >
      + + + + + +
      + + + + + + + + +
      meow::FeaturePointsMatch_K_Match< Scalar, Description >::FPMKM (size_t k)
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Scalar , class Description >
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      FeaturePointIndexPairs meow::FeaturePointsMatch_K_Match< Scalar, Description >::match (size_t dimension,
      FeaturePoints const & from,
      FeaturePoints const & to 
      ) const
      +
      +inlinevirtual
      +
      +
      + +
      +
      +
      +template<class Scalar , class Description >
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      FeaturePointIndexPairs meow::FeaturePointsMatch_K_Match< Scalar, Description >::match (size_t dimension,
      FeaturePoints const & from,
      FeaturePointss const & to 
      ) const
      +
      +inlinevirtual
      +
      +
      + +
      +
      +
      +template<class Scalar , class Description >
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      FeaturePointIndexPairs meow::FeaturePointsMatch_K_Match< Scalar, Description >::match (size_t dimension,
      FeaturePointss const & from,
      FeaturePointss const & to 
      ) const
      +
      +inlinevirtual
      +
      +
      + +
      +
      +
      +template<class Scalar , class Description >
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      FeaturePointIndexPairs meow::FeaturePointsMatch_K_Match< Scalar, Description >::match (size_t dimension,
      FeaturePointss const & fpss 
      ) const
      +
      +inlinevirtual
      +
      +
      + +
      +
      +
      +template<class Scalar , class Description >
      + + + + + +
      + + + + + + + + +
      FPMKM& meow::FeaturePointsMatch_K_Match< Scalar, Description >::operator= (FPMKM const & b)
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Scalar , class Description >
      + + + + + +
      + + + + + + + +
      size_t meow::FeaturePointsMatch_K_Match< Scalar, Description >::paramK () const
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Scalar , class Description >
      + + + + + +
      + + + + + + + + +
      size_t meow::FeaturePointsMatch_K_Match< Scalar, Description >::paramK (size_t k)
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Scalar , class Description >
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      bool meow::FeaturePointsMatch_K_Match< Scalar, Description >::read (FILE * f,
      bool bin,
      unsigned int fg 
      )
      +
      +inlinevirtual
      +
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<class Scalar , class Description >
      + + + + + +
      + + + + + + + + +
      FPMKM& meow::FeaturePointsMatch_K_Match< Scalar, Description >::referenceFrom (FPMKM const & m)
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Scalar , class Description >
      + + + + + +
      + + + + + + + +
      std::string meow::FeaturePointsMatch_K_Match< Scalar, Description >::type () const
      +
      +inlinevirtual
      +
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<class Scalar , class Description >
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      bool meow::FeaturePointsMatch_K_Match< Scalar, Description >::write (FILE * f,
      bool bin,
      unsigned int fg 
      ) const
      +
      +inlinevirtual
      +
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      +
      The documentation for this class was generated from the following file: +
      +
      + + + + + diff --git a/doc/html/classmeow_1_1FeaturePointsMatch__K__Match.js b/doc/html/classmeow_1_1FeaturePointsMatch__K__Match.js new file mode 100644 index 0000000..eac598a --- /dev/null +++ b/doc/html/classmeow_1_1FeaturePointsMatch__K__Match.js @@ -0,0 +1,24 @@ +var classmeow_1_1FeaturePointsMatch__K__Match = +[ + [ "FeaturePoints", "classmeow_1_1FeaturePointsMatch__K__Match.html#aa32d28d84f9b83a28d2fa2d2c2cb8244", null ], + [ "FeaturePointss", "classmeow_1_1FeaturePointsMatch__K__Match.html#a92fe94701cf2c24812c8ea54e81a1b8a", null ], + [ "~FPMKM", "classmeow_1_1FeaturePointsMatch__K__Match.html#ac9b46623e4ce1005936db8631d91df50", null ], + [ "copyFrom", "classmeow_1_1FeaturePointsMatch__K__Match.html#a2c5ee9a105e6c74bf54e061f5cc04c21", null ], + [ "copyFrom", "classmeow_1_1FeaturePointsMatch__K__Match.html#ab5aa47ae36052a5916515a2e504f2c53", null ], + [ "create", "classmeow_1_1FeaturePointsMatch__K__Match.html#aaa320097355fccd00677bd0413935ee5", null ], + [ "ctype", "classmeow_1_1FeaturePointsMatch__K__Match.html#a2c89f6a79cba1b477c31e294ec7d9c71", null ], + [ "FPMKM", "classmeow_1_1FeaturePointsMatch__K__Match.html#a6e657c4cb57c418e39ed91b35aae448c", null ], + [ "FPMKM", "classmeow_1_1FeaturePointsMatch__K__Match.html#aa67e41546eb54e64fea560f5d0e50586", null ], + [ "FPMKM", "classmeow_1_1FeaturePointsMatch__K__Match.html#a42dcafedd8ed16536de65bedbda0a0ed", null ], + [ "match", "classmeow_1_1FeaturePointsMatch__K__Match.html#a2ff2134f80203305304dd4a406bfbdba", null ], + [ "match", "classmeow_1_1FeaturePointsMatch__K__Match.html#a08db3f32030af64ac738a21ac915e5bb", null ], + [ "match", "classmeow_1_1FeaturePointsMatch__K__Match.html#aee934fd68801d6612cfabe4742d3f1cb", null ], + [ "match", "classmeow_1_1FeaturePointsMatch__K__Match.html#ae8ea7cbe57606eac89b5709058ea8f61", null ], + [ "operator=", "classmeow_1_1FeaturePointsMatch__K__Match.html#a11beaa0b96effbc990c3d7d3c6922e9a", null ], + [ "paramK", "classmeow_1_1FeaturePointsMatch__K__Match.html#a4583b168a21acc27691d32b86f291534", null ], + [ "paramK", "classmeow_1_1FeaturePointsMatch__K__Match.html#acd541d95ffe2de170c757b401fc00013", null ], + [ "read", "classmeow_1_1FeaturePointsMatch__K__Match.html#a207813017b7eab06672ec324968e6caa", null ], + [ "referenceFrom", "classmeow_1_1FeaturePointsMatch__K__Match.html#a881f9a17c264659c2604a79c1ae81286", null ], + [ "type", "classmeow_1_1FeaturePointsMatch__K__Match.html#ab10e50514ac4b0de505800b1894dbb0a", null ], + [ "write", "classmeow_1_1FeaturePointsMatch__K__Match.html#acbdc25595aeb8280c11543fec230e1a6", null ] +]; \ No newline at end of file diff --git a/doc/html/classmeow_1_1FeaturePointsMatch__K__Match.png b/doc/html/classmeow_1_1FeaturePointsMatch__K__Match.png new file mode 100644 index 0000000..c0b0925 Binary files /dev/null and b/doc/html/classmeow_1_1FeaturePointsMatch__K__Match.png differ diff --git a/doc/html/classmeow_1_1HSLf__Space-members.html b/doc/html/classmeow_1_1HSLf__Space-members.html new file mode 100644 index 0000000..528f0a6 --- /dev/null +++ b/doc/html/classmeow_1_1HSLf__Space-members.html @@ -0,0 +1,126 @@ + + + + + + + +Templates -- Meow: Member List + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      meow::HSLf_Space Member List
      +
      +
      + +

      This is the complete list of members for meow::HSLf_Space, including all inherited members.

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Color3_Space(Vector3D< double > const &min_bound, Vector3D< double > const &max_bound, Vector3D< double > const &init_value)meow::Color3_Space< double >inlineprotected
      Color3_Space(Color3_Space const &b)meow::Color3_Space< double >inlineprotected
      copyFrom(Color3_Space< double > const &b)meow::Color3_Space< double >inline
      copyFrom(Color3_Space< T2 > const &b)meow::Color3_Space< double >inline
      h() const meow::HSLf_Spaceinline
      h(double c)meow::HSLf_Spaceinline
      hGet()meow::HSLf_Spaceinline
      hMax() const meow::HSLf_Spaceinline
      hMin() const meow::HSLf_Spaceinline
      hsl(size_t i) const meow::HSLf_Spaceinline
      hsl(size_t i, double c)meow::HSLf_Spaceinline
      HSLf_Space()meow::HSLf_Spaceinline
      HSLf_Space(double c)meow::HSLf_Spaceinline
      HSLf_Space(Vector3D< double > const &v)meow::HSLf_Spaceinline
      HSLf_Space(HSL_Space const &b)meow::HSLf_Spaceinline
      hslGet(size_t i)meow::HSLf_Spaceinline
      hslMax(size_t i) const meow::HSLf_Spaceinline
      hslMin(size_t i) const meow::HSLf_Spaceinline
      l() const meow::HSLf_Spaceinline
      l(double c)meow::HSLf_Spaceinline
      lGet()meow::HSLf_Spaceinline
      lMax() const meow::HSLf_Spaceinline
      lMin() const meow::HSLf_Spaceinline
      matrix() constmeow::Color3_Space< double >inline
      max(size_t id) constmeow::Color3_Space< double >inline
      max_meow::Color3_Space< double >protected
      maxV() constmeow::Color3_Space< double >inline
      min(size_t id) constmeow::Color3_Space< double >inline
      min_meow::Color3_Space< double >protected
      minV() constmeow::Color3_Space< double >inline
      operator*(double const &c) const meow::HSLf_Spaceinline
      operator*(HSLf_Space const &b) const meow::HSLf_Spaceinline
      operator+(HSLf_Space const &b) const meow::HSLf_Spaceinline
      operator-(HSLf_Space const &b) const meow::HSLf_Spaceinline
      operator/(double const &c) const meow::HSLf_Spaceinline
      operator=(HSLf_Space const &b)meow::HSLf_Spaceinline
      s() const meow::HSLf_Spaceinline
      s(double c)meow::HSLf_Spaceinline
      sGet()meow::HSLf_Spaceinline
      sMax() const meow::HSLf_Spaceinline
      sMin() const meow::HSLf_Spaceinline
      val(size_t id) constmeow::Color3_Space< double >inline
      val(size_t i, doubleconst &c)meow::Color3_Space< double >inline
      val_meow::Color3_Space< double >protected
      valGet(size_t id)meow::Color3_Space< double >inline
      valV() constmeow::Color3_Space< double >inline
      valV(Vector3D< double > const &vv)meow::Color3_Space< double >inline
      valVGet()meow::Color3_Space< double >inline
      ~Color3_Space()meow::Color3_Space< double >inlinevirtual
      ~HSLf_Space()meow::HSLf_Spaceinline
      +
      + + + + + diff --git a/doc/html/classmeow_1_1HSLf__Space.html b/doc/html/classmeow_1_1HSLf__Space.html new file mode 100644 index 0000000..63668cb --- /dev/null +++ b/doc/html/classmeow_1_1HSLf__Space.html @@ -0,0 +1,950 @@ + + + + + + + +Templates -- Meow: meow::HSLf_Space Class Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      meow::HSLf_Space Class Reference
      +
      +
      + +

      以浮點數Y(亮度), U(色度), V(濃度) 三個值所組成的色彩空間 + More...

      + +

      #include "HSL_Space.h"

      +
      +Inheritance diagram for meow::HSLf_Space:
      +
      +
      + + +meow::Color3_Space< double > + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      +Public Member Functions

       HSLf_Space ()
       
       HSLf_Space (double c)
       
       HSLf_Space (Vector3D< double > const &v)
       
       HSLf_Space (HSL_Space const &b)
       
       ~HSLf_Space ()
       
      double const & hslMin (size_t i) const
       
      double const & hMin () const
       
      double const & sMin () const
       
      double const & lMin () const
       
      double const & hslMax (size_t i) const
       
      double const & hMax () const
       
      double const & sMax () const
       
      double const & lMax () const
       
      double const & hsl (size_t i) const
       
      double const & h () const
       
      double const & s () const
       
      double const & l () const
       
      double const & hsl (size_t i, double c)
       
      double const & h (double c)
       
      double const & s (double c)
       
      double const & l (double c)
       
      doublehslGet (size_t i)
       
      doublehGet ()
       
      doublesGet ()
       
      doublelGet ()
       
      HSLf_Spaceoperator= (HSLf_Space const &b)
       
      HSLf_Space operator+ (HSLf_Space const &b) const
       
      HSLf_Space operator- (HSLf_Space const &b) const
       
      HSLf_Space operator* (double const &c) const
       
      HSLf_Space operator/ (double const &c) const
       
      double operator* (HSLf_Space const &b) const
       
      - Public Member Functions inherited from meow::Color3_Space< double >
      virtual ~Color3_Space ()
       
      Color3_Space< double > & copyFrom (Color3_Space< double > const &b)
       
      Color3_Space< double > & copyFrom (Color3_Space< T2 > const &b)
       
      Vector3D< double > const & minV () const
       
      Vector3D< double > const & maxV () const
       
      Vector3D< double > const & valV () const
       
      Vector3D< double > const & valV (Vector3D< double > const &vv)
       
      Vector3D< double > & valVGet ()
       
      doubleconst & min (size_t id) const
       
      doubleconst & max (size_t id) const
       
      doubleconst & val (size_t id) const
       
      doubleconst & val (size_t i, doubleconst &c)
       
      doublevalGet (size_t id)
       
      Matrix< doublematrix () const
       
      + + + + + + + + + + + + + +

      +Additional Inherited Members

      - Protected Member Functions inherited from meow::Color3_Space< double >
       Color3_Space (Vector3D< double > const &min_bound, Vector3D< double > const &max_bound, Vector3D< double > const &init_value)
       
       Color3_Space (Color3_Space const &b)
       
      - Protected Attributes inherited from meow::Color3_Space< double >
      Vector3D< doublemin_
       
      Vector3D< doublemax_
       
      Vector3D< doubleval_
       
      +

      Detailed Description

      +

      以浮點數Y(亮度), U(色度), V(濃度) 三個值所組成的色彩空間

      +

      其中範圍都介於0.0~1.0之間

      +
      Author
      cat_leopard
      +

      Constructor & Destructor Documentation

      + +
      +
      + + + + + +
      + + + + + + + +
      meow::HSLf_Space::HSLf_Space ()
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      meow::HSLf_Space::HSLf_Space (double c)
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      meow::HSLf_Space::HSLf_Space (Vector3D< double > const & v)
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      meow::HSLf_Space::HSLf_Space (HSL_Space const & b)
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      meow::HSLf_Space::~HSLf_Space ()
      +
      +inline
      +
      + +
      +
      +

      Member Function Documentation

      + +
      +
      + + + + + +
      + + + + + + + +
      double const& meow::HSLf_Space::h () const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      double const& meow::HSLf_Space::h (double c)
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      double& meow::HSLf_Space::hGet ()
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      double const& meow::HSLf_Space::hMax () const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      double const& meow::HSLf_Space::hMin () const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      double const& meow::HSLf_Space::hsl (size_t i) const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      double const& meow::HSLf_Space::hsl (size_t i,
      double c 
      )
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      double& meow::HSLf_Space::hslGet (size_t i)
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      double const& meow::HSLf_Space::hslMax (size_t i) const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      double const& meow::HSLf_Space::hslMin (size_t i) const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      double const& meow::HSLf_Space::l () const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      double const& meow::HSLf_Space::l (double c)
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      double& meow::HSLf_Space::lGet ()
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      double const& meow::HSLf_Space::lMax () const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      double const& meow::HSLf_Space::lMin () const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      HSLf_Space meow::HSLf_Space::operator* (double const & c) const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      double meow::HSLf_Space::operator* (HSLf_Space const & b) const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      HSLf_Space meow::HSLf_Space::operator+ (HSLf_Space const & b) const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      HSLf_Space meow::HSLf_Space::operator- (HSLf_Space const & b) const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      HSLf_Space meow::HSLf_Space::operator/ (double const & c) const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      HSLf_Space& meow::HSLf_Space::operator= (HSLf_Space const & b)
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      double const& meow::HSLf_Space::s () const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      double const& meow::HSLf_Space::s (double c)
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      double& meow::HSLf_Space::sGet ()
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      double const& meow::HSLf_Space::sMax () const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      double const& meow::HSLf_Space::sMin () const
      +
      +inline
      +
      + +
      +
      +
      The documentation for this class was generated from the following file: +
      +
      + + + + + diff --git a/doc/html/classmeow_1_1HSLf__Space.js b/doc/html/classmeow_1_1HSLf__Space.js new file mode 100644 index 0000000..73f82e9 --- /dev/null +++ b/doc/html/classmeow_1_1HSLf__Space.js @@ -0,0 +1,34 @@ +var classmeow_1_1HSLf__Space = +[ + [ "HSLf_Space", "classmeow_1_1HSLf__Space.html#a5920c0fc93e0481957c629c47d302849", null ], + [ "HSLf_Space", "classmeow_1_1HSLf__Space.html#aa210413146f56ae8106649f879139128", null ], + [ "HSLf_Space", "classmeow_1_1HSLf__Space.html#ad7dea28eaf17078b39008e96b7df7d8f", null ], + [ "HSLf_Space", "classmeow_1_1HSLf__Space.html#a5c5eb948c40916f2f49c5004d84776b5", null ], + [ "~HSLf_Space", "classmeow_1_1HSLf__Space.html#a1859ba937aa097dcd627b7b2349a262f", null ], + [ "h", "classmeow_1_1HSLf__Space.html#a1aca0fee7322efd313d6b070b580d0ad", null ], + [ "h", "classmeow_1_1HSLf__Space.html#a8379a7dec9f95eac7908b6b4c0aff98e", null ], + [ "hGet", "classmeow_1_1HSLf__Space.html#a12fa00864b6e4ed1b129f3d98506772d", null ], + [ "hMax", "classmeow_1_1HSLf__Space.html#a145882c607f9029859eb418ce979b64c", null ], + [ "hMin", "classmeow_1_1HSLf__Space.html#ae8cdb0610e7c4c7c8cae0071e89190a1", null ], + [ "hsl", "classmeow_1_1HSLf__Space.html#a7bfcdff0e263e1fc668378e62fcc7bbe", null ], + [ "hsl", "classmeow_1_1HSLf__Space.html#a28f6cd1737415fb043fccacc39686efe", null ], + [ "hslGet", "classmeow_1_1HSLf__Space.html#ae5299a5b58224fcf600812cbcebb7031", null ], + [ "hslMax", "classmeow_1_1HSLf__Space.html#a93487838e17ee5ff1e586d0253ada7c6", null ], + [ "hslMin", "classmeow_1_1HSLf__Space.html#ae97959215ff50cc62af6a309226a0061", null ], + [ "l", "classmeow_1_1HSLf__Space.html#ae7e4b58fd85ace76a0979a3c7e14407c", null ], + [ "l", "classmeow_1_1HSLf__Space.html#a639c043bb6ba788ad2ea183e59643cdf", null ], + [ "lGet", "classmeow_1_1HSLf__Space.html#a5dd4d3ea93f86b627d51936b7388da44", null ], + [ "lMax", "classmeow_1_1HSLf__Space.html#a93c3d32fd0bc4aab24835409688cdf72", null ], + [ "lMin", "classmeow_1_1HSLf__Space.html#a41ab2ddd1544632a138e2660e4c9152a", null ], + [ "operator*", "classmeow_1_1HSLf__Space.html#a4cdbbac5bcfbcd5546e41d1c1480fad4", null ], + [ "operator*", "classmeow_1_1HSLf__Space.html#abc883a59f2eeeffc84a9560558cd6619", null ], + [ "operator+", "classmeow_1_1HSLf__Space.html#a98d1df6b95a2893d02251119ef186b02", null ], + [ "operator-", "classmeow_1_1HSLf__Space.html#aa6fcf6ef67c2f37e998486e36dc4a0aa", null ], + [ "operator/", "classmeow_1_1HSLf__Space.html#a88eb3f94b211a3e29c80c334f0f8e963", null ], + [ "operator=", "classmeow_1_1HSLf__Space.html#a3d4ccb8d33991e2edb64904669d2a21c", null ], + [ "s", "classmeow_1_1HSLf__Space.html#a8f7487b203cd3be19b08a6c80d33d5d2", null ], + [ "s", "classmeow_1_1HSLf__Space.html#ae6de1c7bf42d04c0f982a58df3bdb4d3", null ], + [ "sGet", "classmeow_1_1HSLf__Space.html#adb7cc82245b20e389d02224ac99444f2", null ], + [ "sMax", "classmeow_1_1HSLf__Space.html#ac04d25efca77d6e53ddb5de801593ea2", null ], + [ "sMin", "classmeow_1_1HSLf__Space.html#aa6f73697310484b178c2dac3acdf4f4b", null ] +]; \ No newline at end of file diff --git a/doc/html/classmeow_1_1HSLf__Space.png b/doc/html/classmeow_1_1HSLf__Space.png new file mode 100644 index 0000000..727f9e3 Binary files /dev/null and b/doc/html/classmeow_1_1HSLf__Space.png differ diff --git a/doc/html/classmeow_1_1HSVf__Space-members.html b/doc/html/classmeow_1_1HSVf__Space-members.html new file mode 100644 index 0000000..0109697 --- /dev/null +++ b/doc/html/classmeow_1_1HSVf__Space-members.html @@ -0,0 +1,126 @@ + + + + + + + +Templates -- Meow: Member List + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      meow::HSVf_Space Member List
      +
      +
      + +

      This is the complete list of members for meow::HSVf_Space, including all inherited members.

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Color3_Space(Vector3D< double > const &min_bound, Vector3D< double > const &max_bound, Vector3D< double > const &init_value)meow::Color3_Space< double >inlineprotected
      Color3_Space(Color3_Space const &b)meow::Color3_Space< double >inlineprotected
      copyFrom(Color3_Space< double > const &b)meow::Color3_Space< double >inline
      copyFrom(Color3_Space< T2 > const &b)meow::Color3_Space< double >inline
      h() const meow::HSVf_Spaceinline
      h(double c)meow::HSVf_Spaceinline
      hGet()meow::HSVf_Spaceinline
      hMax() const meow::HSVf_Spaceinline
      hMin() const meow::HSVf_Spaceinline
      hsv(size_t i) const meow::HSVf_Spaceinline
      hsv(size_t i, double c)meow::HSVf_Spaceinline
      HSVf_Space()meow::HSVf_Spaceinline
      HSVf_Space(double c)meow::HSVf_Spaceinline
      HSVf_Space(Vector3D< double > const &v)meow::HSVf_Spaceinline
      HSVf_Space(HSV_Space const &b)meow::HSVf_Spaceinline
      hsvGet(size_t i)meow::HSVf_Spaceinline
      hsvMax(size_t i) const meow::HSVf_Spaceinline
      hsvMin(size_t i) const meow::HSVf_Spaceinline
      matrix() constmeow::Color3_Space< double >inline
      max(size_t id) constmeow::Color3_Space< double >inline
      max_meow::Color3_Space< double >protected
      maxV() constmeow::Color3_Space< double >inline
      min(size_t id) constmeow::Color3_Space< double >inline
      min_meow::Color3_Space< double >protected
      minV() constmeow::Color3_Space< double >inline
      operator*(double const &c) const meow::HSVf_Spaceinline
      operator*(HSVf_Space const &b) const meow::HSVf_Spaceinline
      operator+(HSVf_Space const &b) const meow::HSVf_Spaceinline
      operator-(HSVf_Space const &b) const meow::HSVf_Spaceinline
      operator/(double const &c) const meow::HSVf_Spaceinline
      operator=(HSVf_Space const &b)meow::HSVf_Spaceinline
      s() const meow::HSVf_Spaceinline
      s(double c)meow::HSVf_Spaceinline
      sGet()meow::HSVf_Spaceinline
      sMax() const meow::HSVf_Spaceinline
      sMin() const meow::HSVf_Spaceinline
      v() const meow::HSVf_Spaceinline
      v(double c)meow::HSVf_Spaceinline
      val(size_t id) constmeow::Color3_Space< double >inline
      val(size_t i, doubleconst &c)meow::Color3_Space< double >inline
      val_meow::Color3_Space< double >protected
      valGet(size_t id)meow::Color3_Space< double >inline
      valV() constmeow::Color3_Space< double >inline
      valV(Vector3D< double > const &vv)meow::Color3_Space< double >inline
      valVGet()meow::Color3_Space< double >inline
      vGet()meow::HSVf_Spaceinline
      vMax() const meow::HSVf_Spaceinline
      vMin() const meow::HSVf_Spaceinline
      ~Color3_Space()meow::Color3_Space< double >inlinevirtual
      ~HSVf_Space()meow::HSVf_Spaceinline
      +
      + + + + + diff --git a/doc/html/classmeow_1_1HSVf__Space.html b/doc/html/classmeow_1_1HSVf__Space.html new file mode 100644 index 0000000..7d362bd --- /dev/null +++ b/doc/html/classmeow_1_1HSVf__Space.html @@ -0,0 +1,950 @@ + + + + + + + +Templates -- Meow: meow::HSVf_Space Class Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      meow::HSVf_Space Class Reference
      +
      +
      + +

      以浮點數Y(亮度), U(色度), V(濃度) 三個值所組成的色彩空間 + More...

      + +

      #include "HSV_Space.h"

      +
      +Inheritance diagram for meow::HSVf_Space:
      +
      +
      + + +meow::Color3_Space< double > + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      +Public Member Functions

       HSVf_Space ()
       
       HSVf_Space (double c)
       
       HSVf_Space (Vector3D< double > const &v)
       
       HSVf_Space (HSV_Space const &b)
       
       ~HSVf_Space ()
       
      double const & hsvMin (size_t i) const
       
      double const & hMin () const
       
      double const & sMin () const
       
      double const & vMin () const
       
      double const & hsvMax (size_t i) const
       
      double const & hMax () const
       
      double const & sMax () const
       
      double const & vMax () const
       
      double const & hsv (size_t i) const
       
      double const & h () const
       
      double const & s () const
       
      double const & v () const
       
      double const & hsv (size_t i, double c)
       
      double const & h (double c)
       
      double const & s (double c)
       
      double const & v (double c)
       
      doublehsvGet (size_t i)
       
      doublehGet ()
       
      doublesGet ()
       
      doublevGet ()
       
      HSVf_Spaceoperator= (HSVf_Space const &b)
       
      HSVf_Space operator+ (HSVf_Space const &b) const
       
      HSVf_Space operator- (HSVf_Space const &b) const
       
      HSVf_Space operator* (double const &c) const
       
      HSVf_Space operator/ (double const &c) const
       
      double operator* (HSVf_Space const &b) const
       
      - Public Member Functions inherited from meow::Color3_Space< double >
      virtual ~Color3_Space ()
       
      Color3_Space< double > & copyFrom (Color3_Space< double > const &b)
       
      Color3_Space< double > & copyFrom (Color3_Space< T2 > const &b)
       
      Vector3D< double > const & minV () const
       
      Vector3D< double > const & maxV () const
       
      Vector3D< double > const & valV () const
       
      Vector3D< double > const & valV (Vector3D< double > const &vv)
       
      Vector3D< double > & valVGet ()
       
      doubleconst & min (size_t id) const
       
      doubleconst & max (size_t id) const
       
      doubleconst & val (size_t id) const
       
      doubleconst & val (size_t i, doubleconst &c)
       
      doublevalGet (size_t id)
       
      Matrix< doublematrix () const
       
      + + + + + + + + + + + + + +

      +Additional Inherited Members

      - Protected Member Functions inherited from meow::Color3_Space< double >
       Color3_Space (Vector3D< double > const &min_bound, Vector3D< double > const &max_bound, Vector3D< double > const &init_value)
       
       Color3_Space (Color3_Space const &b)
       
      - Protected Attributes inherited from meow::Color3_Space< double >
      Vector3D< doublemin_
       
      Vector3D< doublemax_
       
      Vector3D< doubleval_
       
      +

      Detailed Description

      +

      以浮點數Y(亮度), U(色度), V(濃度) 三個值所組成的色彩空間

      +

      其中範圍都介於0.0~1.0之間

      +
      Author
      cat_leopard
      +

      Constructor & Destructor Documentation

      + +
      +
      + + + + + +
      + + + + + + + +
      meow::HSVf_Space::HSVf_Space ()
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      meow::HSVf_Space::HSVf_Space (double c)
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      meow::HSVf_Space::HSVf_Space (Vector3D< double > const & v)
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      meow::HSVf_Space::HSVf_Space (HSV_Space const & b)
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      meow::HSVf_Space::~HSVf_Space ()
      +
      +inline
      +
      + +
      +
      +

      Member Function Documentation

      + +
      +
      + + + + + +
      + + + + + + + +
      double const& meow::HSVf_Space::h () const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      double const& meow::HSVf_Space::h (double c)
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      double& meow::HSVf_Space::hGet ()
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      double const& meow::HSVf_Space::hMax () const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      double const& meow::HSVf_Space::hMin () const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      double const& meow::HSVf_Space::hsv (size_t i) const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      double const& meow::HSVf_Space::hsv (size_t i,
      double c 
      )
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      double& meow::HSVf_Space::hsvGet (size_t i)
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      double const& meow::HSVf_Space::hsvMax (size_t i) const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      double const& meow::HSVf_Space::hsvMin (size_t i) const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      HSVf_Space meow::HSVf_Space::operator* (double const & c) const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      double meow::HSVf_Space::operator* (HSVf_Space const & b) const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      HSVf_Space meow::HSVf_Space::operator+ (HSVf_Space const & b) const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      HSVf_Space meow::HSVf_Space::operator- (HSVf_Space const & b) const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      HSVf_Space meow::HSVf_Space::operator/ (double const & c) const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      HSVf_Space& meow::HSVf_Space::operator= (HSVf_Space const & b)
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      double const& meow::HSVf_Space::s () const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      double const& meow::HSVf_Space::s (double c)
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      double& meow::HSVf_Space::sGet ()
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      double const& meow::HSVf_Space::sMax () const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      double const& meow::HSVf_Space::sMin () const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      double const& meow::HSVf_Space::v () const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      double const& meow::HSVf_Space::v (double c)
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      double& meow::HSVf_Space::vGet ()
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      double const& meow::HSVf_Space::vMax () const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      double const& meow::HSVf_Space::vMin () const
      +
      +inline
      +
      + +
      +
      +
      The documentation for this class was generated from the following file: +
      +
      + + + + + diff --git a/doc/html/classmeow_1_1HSVf__Space.js b/doc/html/classmeow_1_1HSVf__Space.js new file mode 100644 index 0000000..37da8fc --- /dev/null +++ b/doc/html/classmeow_1_1HSVf__Space.js @@ -0,0 +1,34 @@ +var classmeow_1_1HSVf__Space = +[ + [ "HSVf_Space", "classmeow_1_1HSVf__Space.html#aa27859136b4695a1923b0451eabb6e74", null ], + [ "HSVf_Space", "classmeow_1_1HSVf__Space.html#a8b92ab84b9fe888ee6f06d55b4368cb3", null ], + [ "HSVf_Space", "classmeow_1_1HSVf__Space.html#a27eb3acfdc06d03d88f5f3d1ae1cb7cc", null ], + [ "HSVf_Space", "classmeow_1_1HSVf__Space.html#a882530369f9c06287328337fa7c6fcda", null ], + [ "~HSVf_Space", "classmeow_1_1HSVf__Space.html#a662428fed0f4f2beddc16d5af52b228c", null ], + [ "h", "classmeow_1_1HSVf__Space.html#a234e37a7fe30be5d6c99b41d99d67016", null ], + [ "h", "classmeow_1_1HSVf__Space.html#a400aceb17358373551aba79aac046e88", null ], + [ "hGet", "classmeow_1_1HSVf__Space.html#ae142d6dfee8ac3f1e8471792911dca46", null ], + [ "hMax", "classmeow_1_1HSVf__Space.html#a9c477bb3f4bd4a6e275454b5c17f70af", null ], + [ "hMin", "classmeow_1_1HSVf__Space.html#a55d7dc460276eedec803905bc896e3f4", null ], + [ "hsv", "classmeow_1_1HSVf__Space.html#a0013ba6629d7ed35617c01b577078502", null ], + [ "hsv", "classmeow_1_1HSVf__Space.html#aa5d83feefbbd4dee3d2642bd4782ee63", null ], + [ "hsvGet", "classmeow_1_1HSVf__Space.html#a1425760cfd045ecab3ecadd6e9060744", null ], + [ "hsvMax", "classmeow_1_1HSVf__Space.html#a017762ec97277e45f7bf1678b805b5ec", null ], + [ "hsvMin", "classmeow_1_1HSVf__Space.html#ae7f41bf982b0e89a829598ed0e6fa9de", null ], + [ "operator*", "classmeow_1_1HSVf__Space.html#a205e6c509f76312faeb75ffd3e0436c1", null ], + [ "operator*", "classmeow_1_1HSVf__Space.html#a5fa3457961d84b052bade3435cae2260", null ], + [ "operator+", "classmeow_1_1HSVf__Space.html#af31230b50cb0e7534c6668d48eee1462", null ], + [ "operator-", "classmeow_1_1HSVf__Space.html#a31d3e70dc358f146a109c049a0776cca", null ], + [ "operator/", "classmeow_1_1HSVf__Space.html#ae8368184fb8579d83d4f883191b8502e", null ], + [ "operator=", "classmeow_1_1HSVf__Space.html#a96d429221b88c5e568813d8a42c49af0", null ], + [ "s", "classmeow_1_1HSVf__Space.html#a9fa2946d82a60f47487364bbbbfb824f", null ], + [ "s", "classmeow_1_1HSVf__Space.html#aa38bd8f828839f4cefb08251125b7dbe", null ], + [ "sGet", "classmeow_1_1HSVf__Space.html#aa3a78aa9771124051ddeb73ecc0ae3c2", null ], + [ "sMax", "classmeow_1_1HSVf__Space.html#a2aedcabd4c079b5662502642c919b974", null ], + [ "sMin", "classmeow_1_1HSVf__Space.html#a042f969c34c4b708ef7c9ed2f914825b", null ], + [ "v", "classmeow_1_1HSVf__Space.html#ae8ffcdef1e7978832081db18ebedeffa", null ], + [ "v", "classmeow_1_1HSVf__Space.html#a163e91d4a36c40295e0d59e56881c9b7", null ], + [ "vGet", "classmeow_1_1HSVf__Space.html#a681393735e63a1de944373b071ebef18", null ], + [ "vMax", "classmeow_1_1HSVf__Space.html#ad603b398c6e50a238a87c0aad890ab2c", null ], + [ "vMin", "classmeow_1_1HSVf__Space.html#afb8087a590e96a0da95793acf5d0228e", null ] +]; \ No newline at end of file diff --git a/doc/html/classmeow_1_1HSVf__Space.png b/doc/html/classmeow_1_1HSVf__Space.png new file mode 100644 index 0000000..42c160a Binary files /dev/null and b/doc/html/classmeow_1_1HSVf__Space.png differ diff --git a/doc/html/classmeow_1_1HashTableList-members.html b/doc/html/classmeow_1_1HashTableList-members.html new file mode 100644 index 0000000..171a82a --- /dev/null +++ b/doc/html/classmeow_1_1HashTableList-members.html @@ -0,0 +1,95 @@ + + + + + + + +Templates -- Meow: Member List + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      meow::HashTableList< Data, HashFunc > Member List
      +
      + +
      + + + + + diff --git a/doc/html/classmeow_1_1HashTableList.html b/doc/html/classmeow_1_1HashTableList.html new file mode 100644 index 0000000..63141de --- /dev/null +++ b/doc/html/classmeow_1_1HashTableList.html @@ -0,0 +1,700 @@ + + + + + + + +Templates -- Meow: meow::HashTableList< Data, HashFunc > Class Template Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      meow::HashTableList< Data, HashFunc > Class Template Reference
      +
      +
      + +

      一個當key相撞時會用list解決的hash_table + More...

      + +

      #include "HashTable.h"

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      +Public Member Functions

       HashTableList ()
       constructor More...
       
       HashTableList (size_t size, HashFunc const &func)
       constructor More...
       
       ~HashTableList ()
       destructor More...
       
      HashTableListcopyFrom (HashTableList const &b)
       copy More...
       
      void clear ()
       清除資料 More...
       
      void reset (size_t size, HashFunc const &func)
       清除資料, 指定新的size與hash function More...
       
      size_t tableSize () const
       回傳table size More...
       
      size_t size () const
       回傳目前有多少element在其中 More...
       
      HashFunc const & func () const
       回傳hash function More...
       
      bool add (Data const &e)
       加入新的element More...
       
      bool add (HashTableList const &h)
       把給定的HashTableList中所有的element全加進來 More...
       
      bool del (Data const &e)
       刪除element More...
       
      bool del (HashTableList const &h)
       刪除有出現在給定的的HashTableList中的element More...
       
      bool exist (Data const &e) const
       查看某element是否已經擁有 More...
       
      std::vector< Data > all () const
       回傳所有存下來的資料 More...
       
      std::vector< Data > all (size_t index) const
       回傳所有存下來且key為index的資料 More...
       
      HashTableListoperator= (HashTableList const &h)
       same as copyFrom(h) More...
       
      HashTableListoperator+= (HashTableList const &h)
       same as add(h) More...
       
      HashTableListoperator-= (HashTableList const &h)
       same as del(h) More...
       
      +

      Detailed Description

      +

      template<class Data, class HashFunc>
      +class meow::HashTableList< Data, HashFunc >

      + +

      一個當key相撞時會用list解決的hash_table

      +
      Author
      cat_leopard
      +

      Constructor & Destructor Documentation

      + +
      +
      +
      +template<class Data , class HashFunc >
      + + + + + +
      + + + + + + + +
      meow::HashTableList< Data, HashFunc >::HashTableList ()
      +
      +inline
      +
      + +

      constructor

      + +
      +
      + +
      +
      +
      +template<class Data , class HashFunc >
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      meow::HashTableList< Data, HashFunc >::HashTableList (size_t size,
      HashFunc const & func 
      )
      +
      +inline
      +
      + +

      constructor

      +

      設定table size, hash function

      + +
      +
      + +
      +
      +
      +template<class Data , class HashFunc >
      + + + + + +
      + + + + + + + +
      meow::HashTableList< Data, HashFunc >::~HashTableList ()
      +
      +inline
      +
      + +

      destructor

      + +
      +
      +

      Member Function Documentation

      + +
      +
      +
      +template<class Data , class HashFunc >
      + + + + + +
      + + + + + + + + +
      bool meow::HashTableList< Data, HashFunc >::add (Data const & e)
      +
      +inline
      +
      + +

      加入新的element

      + +
      +
      + +
      +
      +
      +template<class Data , class HashFunc >
      + + + + + +
      + + + + + + + + +
      bool meow::HashTableList< Data, HashFunc >::add (HashTableList< Data, HashFunc > const & h)
      +
      +inline
      +
      + +

      把給定的HashTableList中所有的element全加進來

      + +
      +
      + +
      +
      +
      +template<class Data , class HashFunc >
      + + + + + +
      + + + + + + + +
      std::vector<Data> meow::HashTableList< Data, HashFunc >::all () const
      +
      +inline
      +
      + +

      回傳所有存下來的資料

      + +
      +
      + +
      +
      +
      +template<class Data , class HashFunc >
      + + + + + +
      + + + + + + + + +
      std::vector<Data> meow::HashTableList< Data, HashFunc >::all (size_t index) const
      +
      +inline
      +
      + +

      回傳所有存下來且key為index的資料

      + +
      +
      + +
      +
      +
      +template<class Data , class HashFunc >
      + + + + + +
      + + + + + + + +
      void meow::HashTableList< Data, HashFunc >::clear ()
      +
      +inline
      +
      + +

      清除資料

      + +
      +
      + +
      +
      +
      +template<class Data , class HashFunc >
      + + + + + +
      + + + + + + + + +
      HashTableList& meow::HashTableList< Data, HashFunc >::copyFrom (HashTableList< Data, HashFunc > const & b)
      +
      +inline
      +
      + +

      copy

      + +
      +
      + +
      +
      +
      +template<class Data , class HashFunc >
      + + + + + +
      + + + + + + + + +
      bool meow::HashTableList< Data, HashFunc >::del (Data const & e)
      +
      +inline
      +
      + +

      刪除element

      + +
      +
      + +
      +
      +
      +template<class Data , class HashFunc >
      + + + + + +
      + + + + + + + + +
      bool meow::HashTableList< Data, HashFunc >::del (HashTableList< Data, HashFunc > const & h)
      +
      +inline
      +
      + +

      刪除有出現在給定的的HashTableList中的element

      + +
      +
      + +
      +
      +
      +template<class Data , class HashFunc >
      + + + + + +
      + + + + + + + + +
      bool meow::HashTableList< Data, HashFunc >::exist (Data const & e) const
      +
      +inline
      +
      + +

      查看某element是否已經擁有

      + +
      +
      + +
      +
      +
      +template<class Data , class HashFunc >
      + + + + + +
      + + + + + + + +
      HashFunc const& meow::HashTableList< Data, HashFunc >::func () const
      +
      +inline
      +
      + +

      回傳hash function

      + +
      +
      + +
      +
      +
      +template<class Data , class HashFunc >
      + + + + + +
      + + + + + + + + +
      HashTableList& meow::HashTableList< Data, HashFunc >::operator+= (HashTableList< Data, HashFunc > const & h)
      +
      +inline
      +
      + +

      same as add(h)

      + +
      +
      + +
      +
      +
      +template<class Data , class HashFunc >
      + + + + + +
      + + + + + + + + +
      HashTableList& meow::HashTableList< Data, HashFunc >::operator-= (HashTableList< Data, HashFunc > const & h)
      +
      +inline
      +
      + +

      same as del(h)

      + +
      +
      + +
      +
      +
      +template<class Data , class HashFunc >
      + + + + + +
      + + + + + + + + +
      HashTableList& meow::HashTableList< Data, HashFunc >::operator= (HashTableList< Data, HashFunc > const & h)
      +
      +inline
      +
      + +

      same as copyFrom(h)

      + +
      +
      + +
      +
      +
      +template<class Data , class HashFunc >
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      void meow::HashTableList< Data, HashFunc >::reset (size_t size,
      HashFunc const & func 
      )
      +
      +inline
      +
      + +

      清除資料, 指定新的size與hash function

      + +
      +
      + +
      +
      +
      +template<class Data , class HashFunc >
      + + + + + +
      + + + + + + + +
      size_t meow::HashTableList< Data, HashFunc >::size () const
      +
      +inline
      +
      + +

      回傳目前有多少element在其中

      + +
      +
      + +
      +
      +
      +template<class Data , class HashFunc >
      + + + + + +
      + + + + + + + +
      size_t meow::HashTableList< Data, HashFunc >::tableSize () const
      +
      +inline
      +
      + +

      回傳table size

      + +
      +
      +
      The documentation for this class was generated from the following file: +
      +
      + + + + + diff --git a/doc/html/classmeow_1_1HashTableList.js b/doc/html/classmeow_1_1HashTableList.js new file mode 100644 index 0000000..15cba61 --- /dev/null +++ b/doc/html/classmeow_1_1HashTableList.js @@ -0,0 +1,22 @@ +var classmeow_1_1HashTableList = +[ + [ "HashTableList", "classmeow_1_1HashTableList.html#a327ccf67321d9b5061dbe01c287bd7e3", null ], + [ "HashTableList", "classmeow_1_1HashTableList.html#a0ac878f202fd1aba101df32a481e177c", null ], + [ "~HashTableList", "classmeow_1_1HashTableList.html#ad460ece4097203d379e95c835a10d79d", null ], + [ "add", "classmeow_1_1HashTableList.html#a6d7a0c3ac05a355cc9e1c60856ebd781", null ], + [ "add", "classmeow_1_1HashTableList.html#a490a3325017696441fdc4ab8db517871", null ], + [ "all", "classmeow_1_1HashTableList.html#a2cdacf0bac46df21b852c3cb91cd44c3", null ], + [ "all", "classmeow_1_1HashTableList.html#af3ac22fd18ce14878e881331883397b8", null ], + [ "clear", "classmeow_1_1HashTableList.html#a79da4ec6056713e2993e367aac2e6220", null ], + [ "copyFrom", "classmeow_1_1HashTableList.html#a3d769d64e448f0bdbe52514e06b73f54", null ], + [ "del", "classmeow_1_1HashTableList.html#a63cc363a99ee99024a32133cf0331325", null ], + [ "del", "classmeow_1_1HashTableList.html#a25fa6ad234486128f2b0357bfabf5206", null ], + [ "exist", "classmeow_1_1HashTableList.html#a65227191dccd021a0802810ffe007040", null ], + [ "func", "classmeow_1_1HashTableList.html#aaf4154c2534c861455149261c0194f00", null ], + [ "operator+=", "classmeow_1_1HashTableList.html#a7bef8d0510d33a06507881a872c62156", null ], + [ "operator-=", "classmeow_1_1HashTableList.html#a3c3e1ad9bf9993ded4a6904f07abb920", null ], + [ "operator=", "classmeow_1_1HashTableList.html#a9f9493e2044df374ac9e650303fdf212", null ], + [ "reset", "classmeow_1_1HashTableList.html#ac7417270658997ef1cb33221fba8d6e8", null ], + [ "size", "classmeow_1_1HashTableList.html#af8d49492c5f35bb18706e9fb72d18157", null ], + [ "tableSize", "classmeow_1_1HashTableList.html#a2f72023134f79ce5c7e889779a20762e", null ] +]; \ No newline at end of file diff --git a/doc/html/classmeow_1_1IdentityPoints-members.html b/doc/html/classmeow_1_1IdentityPoints-members.html new file mode 100644 index 0000000..1f70589 --- /dev/null +++ b/doc/html/classmeow_1_1IdentityPoints-members.html @@ -0,0 +1,111 @@ + + + + + + + +Templates -- Meow: Member List + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      meow::IdentityPoints< ID, Scalar > Member List
      +
      +
      + +

      This is the complete list of members for meow::IdentityPoints< ID, Scalar >, including all inherited members.

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      clear()meow::IdentityPoints< ID, Scalar >inline
      copyFrom(IdentityPoints const &b)meow::IdentityPoints< ID, Scalar >inline
      copyFrom(ObjBase const *b)meow::IdentityPoints< ID, Scalar >inlinevirtual
      create() const meow::IdentityPoints< ID, Scalar >inlinevirtual
      ctype() const meow::IdentityPoints< ID, Scalar >inlinevirtual
      ctypeBase()meow::ObjBaseinlinestatic
      dimension() const meow::IdentityPoints< ID, Scalar >inline
      dimension(size_t dim)meow::IdentityPoints< ID, Scalar >inline
      dimension(size_t dim, Scalar const &init_value)meow::IdentityPoints< ID, Scalar >inline
      empty() const meow::IdentityPoints< ID, Scalar >inline
      exist(ID const &id) const meow::IdentityPoints< ID, Scalar >inline
      identityPoint(ID const &id) const meow::IdentityPoints< ID, Scalar >inline
      identityPoint(ID const &id, Vector< Scalar > const &b)meow::IdentityPoints< ID, Scalar >inline
      identityPointAdd(ID const &id, Vector< Scalar > const &b)meow::IdentityPoints< ID, Scalar >inline
      identityPointDel(ID const &id)meow::IdentityPoints< ID, Scalar >inline
      identityPointGet(ID const &id)meow::IdentityPoints< ID, Scalar >inline
      IdentityPoints()meow::IdentityPoints< ID, Scalar >inline
      IdentityPoints(IdentityPoints const &b)meow::IdentityPoints< ID, Scalar >inline
      identityPoints() const meow::IdentityPoints< ID, Scalar >inline
      identityPoints(IdentityPointsMap const &points)meow::IdentityPoints< ID, Scalar >inline
      identityPointsAdd(IdentityPointsMap const &points)meow::IdentityPoints< ID, Scalar >inline
      identityPointsDel(std::set< ID > const &ids)meow::IdentityPoints< ID, Scalar >inline
      IdentityPointsMap typedefmeow::IdentityPoints< ID, Scalar >
      IdentityPointsMapIter typedefmeow::IdentityPoints< ID, Scalar >
      IdentityPointsMapIterK typedefmeow::IdentityPoints< ID, Scalar >
      ObjBase()meow::ObjBaseinlineprotected
      operator=(IdentityPoints const &b)meow::IdentityPoints< ID, Scalar >inline
      read(FILE *f, bool bin, unsigned int fg)meow::IdentityPoints< ID, Scalar >inlinevirtual
      referenceFrom(IdentityPoints const &b)meow::IdentityPoints< ID, Scalar >inline
      size() const meow::IdentityPoints< ID, Scalar >inline
      type() const meow::IdentityPoints< ID, Scalar >inlinevirtual
      typeBase()meow::ObjBaseinlinestatic
      write(FILE *f, bool bin, unsigned int fg) const meow::IdentityPoints< ID, Scalar >inlinevirtual
      ~IdentityPoints()meow::IdentityPoints< ID, Scalar >inline
      ~ObjBase()meow::ObjBaseinlinevirtual
      +
      + + + + + diff --git a/doc/html/classmeow_1_1IdentityPoints.html b/doc/html/classmeow_1_1IdentityPoints.html new file mode 100644 index 0000000..c2fc819 --- /dev/null +++ b/doc/html/classmeow_1_1IdentityPoints.html @@ -0,0 +1,1123 @@ + + + + + + + +Templates -- Meow: meow::IdentityPoints< ID, Scalar > Class Template Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      meow::IdentityPoints< ID, Scalar > Class Template Reference
      +
      +
      + +

      把一個 std::map<ID,Vector<Scalar> > 包起來 + More...

      + +

      #include "IdentityPoints.h"

      +
      +Inheritance diagram for meow::IdentityPoints< ID, Scalar >:
      +
      +
      + + +meow::ObjBase + +
      + + + + + + + + +

      +Public Types

      typedef std::map< ID, Vector
      +< Scalar > > 
      IdentityPointsMap
       
      typedef IdentityPointsMap::iterator IdentityPointsMapIter
       
      typedef
      +IdentityPointsMap::const_iterator 
      IdentityPointsMapIterK
       
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      +Public Member Functions

       IdentityPoints ()
       constructor More...
       
       IdentityPoints (IdentityPoints const &b)
       constructor, 並且複製資料 More...
       
       ~IdentityPoints ()
       destructor More...
       
      IdentityPointscopyFrom (IdentityPoints const &b)
       複製資料 More...
       
      IdentityPointsreferenceFrom (IdentityPoints const &b)
       參照 More...
       
      void clear ()
       清除一切identity points More...
       
      size_t size () const
       回傳有幾個identity points More...
       
      bool empty () const
       回傳是否沒有identity points More...
       
      bool exist (ID const &id) const
       檢查某id是否有使用 More...
       
      size_t dimension () const
       回傳dimension More...
       
      size_t dimension (size_t dim)
       設定dimension, 並且清空資料 More...
       
      size_t dimension (size_t dim, Scalar const &init_value)
       設定dimension, 並且針對每個identity point指定重設dimension More...
       
      IdentityPointsMap const & identityPoints () const
       取得所有identity points More...
       
      IdentityPointsMap const & identityPoints (IdentityPointsMap const &points)
       設定所有identity points More...
       
      IdentityPointsMap const & identityPointsAdd (IdentityPointsMap const &points)
       加入identity Points More...
       
      IdentityPointsMap const & identityPointsDel (std::set< ID > const &ids)
       移除identity Points More...
       
      Vector< Scalar > identityPoint (ID const &id) const
       取得一個identity point More...
       
      Vector< Scalar > identityPoint (ID const &id, Vector< Scalar > const &b)
       修改一個identity point More...
       
      Vector< Scalar > identityPointAdd (ID const &id, Vector< Scalar > const &b)
       新增一個identity point More...
       
      void identityPointDel (ID const &id)
       刪除一個identity point More...
       
      Vector< Scalar > & identityPointGet (ID const &id)
       取得一個identity point, non-constant reference More...
       
      IdentityPointsoperator= (IdentityPoints const &b)
       same as copyFrom(b) More...
       
      bool write (FILE *f, bool bin, unsigned int fg) const
       將資料寫入檔案 More...
       
      bool read (FILE *f, bool bin, unsigned int fg)
       將資料讀入 More...
       
      ObjBasecreate () const
       new一個自己 More...
       
      ObjBasecopyFrom (ObjBase const *b)
       複製資料 More...
       
      char const * ctype () const
       回傳class的type More...
       
      std::string type () const
       回傳class的type More...
       
      - Public Member Functions inherited from meow::ObjBase
      virtual ~ObjBase ()
       
      + + + + + + + + + +

      +Additional Inherited Members

      - Static Public Member Functions inherited from meow::ObjBase
      static char const * ctypeBase ()
       
      static std::string typeBase ()
       
      - Protected Member Functions inherited from meow::ObjBase
       ObjBase ()
       
      +

      Detailed Description

      +

      template<class ID, class Scalar>
      +class meow::IdentityPoints< ID, Scalar >

      + +

      把一個 std::map<ID,Vector<Scalar> > 包起來

      +
      Author
      cat_leopard
      +

      Member Typedef Documentation

      + +
      +
      +
      +template<class ID, class Scalar>
      + + + + +
      typedef std::map<ID, Vector<Scalar> > meow::IdentityPoints< ID, Scalar >::IdentityPointsMap
      +
      + +
      +
      + +
      +
      +
      +template<class ID, class Scalar>
      + + + + +
      typedef IdentityPointsMap:: iterator meow::IdentityPoints< ID, Scalar >::IdentityPointsMapIter
      +
      + +
      +
      + +
      +
      +
      +template<class ID, class Scalar>
      + + + + +
      typedef IdentityPointsMap::const_iterator meow::IdentityPoints< ID, Scalar >::IdentityPointsMapIterK
      +
      + +
      +
      +

      Constructor & Destructor Documentation

      + +
      +
      +
      +template<class ID, class Scalar>
      + + + + + +
      + + + + + + + +
      meow::IdentityPoints< ID, Scalar >::IdentityPoints ()
      +
      +inline
      +
      + +

      constructor

      + +
      +
      + +
      +
      +
      +template<class ID, class Scalar>
      + + + + + +
      + + + + + + + + +
      meow::IdentityPoints< ID, Scalar >::IdentityPoints (IdentityPoints< ID, Scalar > const & b)
      +
      +inline
      +
      + +

      constructor, 並且複製資料

      + +
      +
      + +
      +
      +
      +template<class ID, class Scalar>
      + + + + + +
      + + + + + + + +
      meow::IdentityPoints< ID, Scalar >::~IdentityPoints ()
      +
      +inline
      +
      + +

      destructor

      + +
      +
      +

      Member Function Documentation

      + +
      +
      +
      +template<class ID, class Scalar>
      + + + + + +
      + + + + + + + +
      void meow::IdentityPoints< ID, Scalar >::clear ()
      +
      +inline
      +
      + +

      清除一切identity points

      + +
      +
      + +
      +
      +
      +template<class ID, class Scalar>
      + + + + + +
      + + + + + + + + +
      IdentityPoints& meow::IdentityPoints< ID, Scalar >::copyFrom (IdentityPoints< ID, Scalar > const & b)
      +
      +inline
      +
      + +

      複製資料

      + +
      +
      + +
      +
      +
      +template<class ID, class Scalar>
      + + + + + +
      + + + + + + + + +
      ObjBase* meow::IdentityPoints< ID, Scalar >::copyFrom (ObjBase const * b)
      +
      +inlinevirtual
      +
      + +

      複製資料

      +
      輸入型別是 \c ObjBase \c const*
      +這裡假設實體其實是 \c Bitmap.
      +事實上這個method就只是幫忙轉型然後呼叫原本的\c copyFrom
      +
      Parameters
      + + +
      [in]b資料來源
      +
      +
      +
      Returns
      this
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<class ID, class Scalar>
      + + + + + +
      + + + + + + + +
      ObjBase* meow::IdentityPoints< ID, Scalar >::create () const
      +
      +inlinevirtual
      +
      + +

      new一個自己

      +
      Returns
      一個new出來的Bitmap<Pixel>
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<class ID, class Scalar>
      + + + + + +
      + + + + + + + +
      char const* meow::IdentityPoints< ID, Scalar >::ctype () const
      +
      +inlinevirtual
      +
      + +

      回傳class的type

      +
      Returns
      char const* 形式的typename
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<class ID, class Scalar>
      + + + + + +
      + + + + + + + +
      size_t meow::IdentityPoints< ID, Scalar >::dimension () const
      +
      +inline
      +
      + +

      回傳dimension

      + +
      +
      + +
      +
      +
      +template<class ID, class Scalar>
      + + + + + +
      + + + + + + + + +
      size_t meow::IdentityPoints< ID, Scalar >::dimension (size_t dim)
      +
      +inline
      +
      + +

      設定dimension, 並且清空資料

      + +
      +
      + +
      +
      +
      +template<class ID, class Scalar>
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      size_t meow::IdentityPoints< ID, Scalar >::dimension (size_t dim,
      Scalar const & init_value 
      )
      +
      +inline
      +
      + +

      設定dimension, 並且針對每個identity point指定重設dimension

      + +
      +
      + +
      +
      +
      +template<class ID, class Scalar>
      + + + + + +
      + + + + + + + +
      bool meow::IdentityPoints< ID, Scalar >::empty () const
      +
      +inline
      +
      + +

      回傳是否沒有identity points

      + +
      +
      + +
      +
      +
      +template<class ID, class Scalar>
      + + + + + +
      + + + + + + + + +
      bool meow::IdentityPoints< ID, Scalar >::exist (ID const & id) const
      +
      +inline
      +
      + +

      檢查某id是否有使用

      + +
      +
      + +
      +
      +
      +template<class ID, class Scalar>
      + + + + + +
      + + + + + + + + +
      Vector<Scalar> meow::IdentityPoints< ID, Scalar >::identityPoint (ID const & id) const
      +
      +inline
      +
      + +

      取得一個identity point

      + +
      +
      + +
      +
      +
      +template<class ID, class Scalar>
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      Vector<Scalar> meow::IdentityPoints< ID, Scalar >::identityPoint (ID const & id,
      Vector< Scalar > const & b 
      )
      +
      +inline
      +
      + +

      修改一個identity point

      + +
      +
      + +
      +
      +
      +template<class ID, class Scalar>
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      Vector<Scalar> meow::IdentityPoints< ID, Scalar >::identityPointAdd (ID const & id,
      Vector< Scalar > const & b 
      )
      +
      +inline
      +
      + +

      新增一個identity point

      + +
      +
      + +
      +
      +
      +template<class ID, class Scalar>
      + + + + + +
      + + + + + + + + +
      void meow::IdentityPoints< ID, Scalar >::identityPointDel (ID const & id)
      +
      +inline
      +
      + +

      刪除一個identity point

      + +
      +
      + +
      +
      +
      +template<class ID, class Scalar>
      + + + + + +
      + + + + + + + + +
      Vector<Scalar>& meow::IdentityPoints< ID, Scalar >::identityPointGet (ID const & id)
      +
      +inline
      +
      + +

      取得一個identity point, non-constant reference

      + +
      +
      + +
      +
      +
      +template<class ID, class Scalar>
      + + + + + +
      + + + + + + + +
      IdentityPointsMap const& meow::IdentityPoints< ID, Scalar >::identityPoints () const
      +
      +inline
      +
      + +

      取得所有identity points

      + +
      +
      + +
      +
      +
      +template<class ID, class Scalar>
      + + + + + +
      + + + + + + + + +
      IdentityPointsMap const& meow::IdentityPoints< ID, Scalar >::identityPoints (IdentityPointsMap const & points)
      +
      +inline
      +
      + +

      設定所有identity points

      + +
      +
      + +
      +
      +
      +template<class ID, class Scalar>
      + + + + + +
      + + + + + + + + +
      IdentityPointsMap const& meow::IdentityPoints< ID, Scalar >::identityPointsAdd (IdentityPointsMap const & points)
      +
      +inline
      +
      + +

      加入identity Points

      + +
      +
      + +
      +
      +
      +template<class ID, class Scalar>
      + + + + + +
      + + + + + + + + +
      IdentityPointsMap const& meow::IdentityPoints< ID, Scalar >::identityPointsDel (std::set< ID > const & ids)
      +
      +inline
      +
      + +

      移除identity Points

      + +
      +
      + +
      +
      +
      +template<class ID, class Scalar>
      + + + + + +
      + + + + + + + + +
      IdentityPoints& meow::IdentityPoints< ID, Scalar >::operator= (IdentityPoints< ID, Scalar > const & b)
      +
      +inline
      +
      + +

      same as copyFrom(b)

      + +
      +
      + +
      +
      +
      +template<class ID, class Scalar>
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      bool meow::IdentityPoints< ID, Scalar >::read (FILE * f,
      bool bin,
      unsigned int fg 
      )
      +
      +inlinevirtual
      +
      + +

      將資料讀入

      +
      Note
      未完成
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<class ID, class Scalar>
      + + + + + +
      + + + + + + + + +
      IdentityPoints& meow::IdentityPoints< ID, Scalar >::referenceFrom (IdentityPoints< ID, Scalar > const & b)
      +
      +inline
      +
      + +

      參照

      + +
      +
      + +
      +
      +
      +template<class ID, class Scalar>
      + + + + + +
      + + + + + + + +
      size_t meow::IdentityPoints< ID, Scalar >::size () const
      +
      +inline
      +
      + +

      回傳有幾個identity points

      + +
      +
      + +
      +
      +
      +template<class ID, class Scalar>
      + + + + + +
      + + + + + + + +
      std::string meow::IdentityPoints< ID, Scalar >::type () const
      +
      +inlinevirtual
      +
      + +

      回傳class的type

      +
      Returns
      std::string 形式的typename
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<class ID, class Scalar>
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      bool meow::IdentityPoints< ID, Scalar >::write (FILE * f,
      bool bin,
      unsigned int fg 
      ) const
      +
      +inlinevirtual
      +
      + +

      將資料寫入檔案

      +
      Note
      未完成
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      +
      The documentation for this class was generated from the following file: +
      +
      + + + + + diff --git a/doc/html/classmeow_1_1IdentityPoints.js b/doc/html/classmeow_1_1IdentityPoints.js new file mode 100644 index 0000000..5d133e8 --- /dev/null +++ b/doc/html/classmeow_1_1IdentityPoints.js @@ -0,0 +1,34 @@ +var classmeow_1_1IdentityPoints = +[ + [ "IdentityPointsMap", "classmeow_1_1IdentityPoints.html#adf552ad8e91278d3ba67ab149611b634", null ], + [ "IdentityPointsMapIter", "classmeow_1_1IdentityPoints.html#af0d41f58b9dfa0f63fdd3085defd6386", null ], + [ "IdentityPointsMapIterK", "classmeow_1_1IdentityPoints.html#a577f4fbc69ba3a99d2b0deabcdd1f72c", null ], + [ "IdentityPoints", "classmeow_1_1IdentityPoints.html#ab3566725696aa78c8b4f85892b6dacc4", null ], + [ "IdentityPoints", "classmeow_1_1IdentityPoints.html#a803396e9f4cb1fc6d35b60cc70bcc50a", null ], + [ "~IdentityPoints", "classmeow_1_1IdentityPoints.html#ab32aa1152834a8f95625ccdc6f26b0c6", null ], + [ "clear", "classmeow_1_1IdentityPoints.html#ac9b4356b0c73a799ad97384a4688db66", null ], + [ "copyFrom", "classmeow_1_1IdentityPoints.html#ae1ea1968aad3345a61257ba5db970429", null ], + [ "copyFrom", "classmeow_1_1IdentityPoints.html#a6b17e68e14290ebfdcdd59a0724cdc41", null ], + [ "create", "classmeow_1_1IdentityPoints.html#a464d62354fc3d12767b71632f9b27524", null ], + [ "ctype", "classmeow_1_1IdentityPoints.html#ae90d4c4d8125919ae8807d89790bed61", null ], + [ "dimension", "classmeow_1_1IdentityPoints.html#a19da7e561a7216146da2d974434a0c68", null ], + [ "dimension", "classmeow_1_1IdentityPoints.html#a4133a7d9107e92a54d7d602ff8df4a87", null ], + [ "dimension", "classmeow_1_1IdentityPoints.html#a3955912afecde0f268cb1c6ec6a876ce", null ], + [ "empty", "classmeow_1_1IdentityPoints.html#a58a91f88750306e4ede279dabd7a1791", null ], + [ "exist", "classmeow_1_1IdentityPoints.html#a171499ffe3d474aa3632b1a31b6402a0", null ], + [ "identityPoint", "classmeow_1_1IdentityPoints.html#aabf2528a2d24a68d3a859f239383701f", null ], + [ "identityPoint", "classmeow_1_1IdentityPoints.html#a22cc708e09447d1c059d8f7a07fa34cc", null ], + [ "identityPointAdd", "classmeow_1_1IdentityPoints.html#a8ad5a9cc2cfa2a9a32bf90b47cc42d94", null ], + [ "identityPointDel", "classmeow_1_1IdentityPoints.html#ad6df062b618a5b7dae5723eea1eb1403", null ], + [ "identityPointGet", "classmeow_1_1IdentityPoints.html#a4a87edebfe33238c687ff6d6485c53f3", null ], + [ "identityPoints", "classmeow_1_1IdentityPoints.html#a312db9235d0a92aa6c297757079f6dd7", null ], + [ "identityPoints", "classmeow_1_1IdentityPoints.html#aa812c3c2040fa9c5aa863fd34983c276", null ], + [ "identityPointsAdd", "classmeow_1_1IdentityPoints.html#af7b65433eccc4d45af938a577a5b5946", null ], + [ "identityPointsDel", "classmeow_1_1IdentityPoints.html#a442f6744170780c61801706bb45c74f5", null ], + [ "operator=", "classmeow_1_1IdentityPoints.html#a8c2bcc67932db294e3b4e9f665ff505d", null ], + [ "read", "classmeow_1_1IdentityPoints.html#a66b8a6b980dad9b2cb71cb0823304c51", null ], + [ "referenceFrom", "classmeow_1_1IdentityPoints.html#a7ec681b9849372eb14ed46734a4f885e", null ], + [ "size", "classmeow_1_1IdentityPoints.html#a48e856fca0660a5f56a13ccea992e3ea", null ], + [ "type", "classmeow_1_1IdentityPoints.html#a6ce521c18a45b50bd8b75201480b97f7", null ], + [ "write", "classmeow_1_1IdentityPoints.html#a7ecba020418b86d76db75e9f636aae9a", null ] +]; \ No newline at end of file diff --git a/doc/html/classmeow_1_1IdentityPoints.png b/doc/html/classmeow_1_1IdentityPoints.png new file mode 100644 index 0000000..35251db Binary files /dev/null and b/doc/html/classmeow_1_1IdentityPoints.png differ diff --git a/doc/html/classmeow_1_1KD__Tree-members.html b/doc/html/classmeow_1_1KD__Tree-members.html new file mode 100644 index 0000000..c03b60f --- /dev/null +++ b/doc/html/classmeow_1_1KD__Tree-members.html @@ -0,0 +1,87 @@ + + + + + + + +Templates -- Meow: Member List + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      meow::KD_Tree< Vector, Scalar > Member List
      +
      +
      + +

      This is the complete list of members for meow::KD_Tree< Vector, Scalar >, including all inherited members.

      + + + + + + + + + + + + +
      build()meow::KD_Tree< Vector, Scalar >inline
      clear()meow::KD_Tree< Vector, Scalar >inline
      erase(Vector const &v)meow::KD_Tree< Vector, Scalar >inline
      forceBuild()meow::KD_Tree< Vector, Scalar >inline
      insert(Vector const &v)meow::KD_Tree< Vector, Scalar >inline
      KD_Tree()meow::KD_Tree< Vector, Scalar >inline
      KD_Tree(size_t dimension)meow::KD_Tree< Vector, Scalar >inline
      query(Vector const &v, size_t nearestNumber, bool compareWholeVector) const meow::KD_Tree< Vector, Scalar >inline
      reset(size_t dimension)meow::KD_Tree< Vector, Scalar >inline
      Vectors typedefmeow::KD_Tree< Vector, Scalar >
      ~KD_Tree()meow::KD_Tree< Vector, Scalar >inline
      +
      + + + + + diff --git a/doc/html/classmeow_1_1KD__Tree.html b/doc/html/classmeow_1_1KD__Tree.html new file mode 100644 index 0000000..9124cf0 --- /dev/null +++ b/doc/html/classmeow_1_1KD__Tree.html @@ -0,0 +1,463 @@ + + + + + + + +Templates -- Meow: meow::KD_Tree< Vector, Scalar > Class Template Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      meow::KD_Tree< Vector, Scalar > Class Template Reference
      +
      +
      + +

      k-dimension tree + More...

      + +

      #include "KD_Tree.h"

      + + + + + +

      +Public Types

      typedef std::vector< VectorVectors
       Custom Type: Vectors is std::vector<Vector> More...
       
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      +Public Member Functions

       KD_Tree ()
       constructor, with dimension = 1 More...
       
       KD_Tree (size_t dimension)
       constructor, given dimension More...
       
       ~KD_Tree ()
       destructor More...
       
      void insert (Vector const &v)
       將給定的Vector加到set中 More...
       
      bool erase (Vector const &v)
       將給定的Vector從set移除 More...
       
      void build ()
       檢查至今是否有 insert/erase 被呼叫來決定是否 rebuild() More...
       
      void forceBuild ()
       重新建樹 More...
       
      Vectors query (Vector const &v, size_t nearestNumber, bool compareWholeVector) const
       查找 More...
       
      void clear ()
       清空所有資料 More...
       
      void reset (size_t dimension)
       清空所有資料並重新給定維度 More...
       
      +

      Detailed Description

      +

      template<class Vector, class Scalar>
      +class meow::KD_Tree< Vector, Scalar >

      + +

      k-dimension tree

      +

      全名k-dimension tree, 用來維護由N個K維度向量所成的集合, 並可於該set中查找 前i個離給定向量最接近的向量

      +

      Template Class Operators Request

      + + + + + + + + + + + + + + + +
      const?TypenameOperator Parameters Return Type Description
      const Vector operator[] (size_t n) Scalar 取得第 n 維度量
      const Vector operator< (Vector v) bool 權重比較
      const Scalar operator* (Scalar s) Scalar 相乘
      const Scalar operator+ (Scalar s) Scalar 相加
      const Scalar operator- (Scalar s) Scalar 相差
      const Scalar operator< (Scalar s) bool 大小比較
      +
      Note
      : 此資料結構只有在 N >> 2 K 時才比較有優勢, 當 K 逐漸變大時, 所花時間會跟暴搜沒兩樣
      +
      Author
      cat_leopard
      +

      Member Typedef Documentation

      + +
      +
      +
      +template<class Vector , class Scalar >
      + + + + +
      typedef std::vector<Vector> meow::KD_Tree< Vector, Scalar >::Vectors
      +
      + +

      Custom Type: Vectors is std::vector<Vector>

      + +
      +
      +

      Constructor & Destructor Documentation

      + +
      +
      +
      +template<class Vector , class Scalar >
      + + + + + +
      + + + + + + + +
      meow::KD_Tree< Vector, Scalar >::KD_Tree ()
      +
      +inline
      +
      + +

      constructor, with dimension = 1

      + +
      +
      + +
      +
      +
      +template<class Vector , class Scalar >
      + + + + + +
      + + + + + + + + +
      meow::KD_Tree< Vector, Scalar >::KD_Tree (size_t dimension)
      +
      +inline
      +
      + +

      constructor, given dimension

      + +
      +
      + +
      +
      +
      +template<class Vector , class Scalar >
      + + + + + +
      + + + + + + + +
      meow::KD_Tree< Vector, Scalar >::~KD_Tree ()
      +
      +inline
      +
      + +

      destructor

      + +
      +
      +

      Member Function Documentation

      + +
      +
      +
      +template<class Vector , class Scalar >
      + + + + + +
      + + + + + + + +
      void meow::KD_Tree< Vector, Scalar >::build ()
      +
      +inline
      +
      + +

      檢查至今是否有 insert/erase 被呼叫來決定是否 rebuild()

      + +
      +
      + +
      +
      +
      +template<class Vector , class Scalar >
      + + + + + +
      + + + + + + + +
      void meow::KD_Tree< Vector, Scalar >::clear ()
      +
      +inline
      +
      + +

      清空所有資料

      + +
      +
      + +
      +
      +
      +template<class Vector , class Scalar >
      + + + + + +
      + + + + + + + + +
      bool meow::KD_Tree< Vector, Scalar >::erase (Vector const & v)
      +
      +inline
      +
      + +

      將給定的Vector從set移除

      + +
      +
      + +
      +
      +
      +template<class Vector , class Scalar >
      + + + + + +
      + + + + + + + +
      void meow::KD_Tree< Vector, Scalar >::forceBuild ()
      +
      +inline
      +
      + +

      重新建樹

      + +
      +
      + +
      +
      +
      +template<class Vector , class Scalar >
      + + + + + +
      + + + + + + + + +
      void meow::KD_Tree< Vector, Scalar >::insert (Vector const & v)
      +
      +inline
      +
      + +

      將給定的Vector加到set中

      + +
      +
      + +
      +
      +
      +template<class Vector , class Scalar >
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      Vectors meow::KD_Tree< Vector, Scalar >::query (Vector const & v,
      size_t nearestNumber,
      bool compareWholeVector 
      ) const
      +
      +inline
      +
      + +

      查找

      +

      於set中找尋距離指定向量前 i 近的向量, 並依照由近而遠的順序排序. 如果有兩個向量v1,v2 距離一樣, 且 cmptrue , 則直接依照 v1<v2 來決定誰在前面. 最後回傳一陣列包含所有解.

      + +
      +
      + +
      +
      +
      +template<class Vector , class Scalar >
      + + + + + +
      + + + + + + + + +
      void meow::KD_Tree< Vector, Scalar >::reset (size_t dimension)
      +
      +inline
      +
      + +

      清空所有資料並重新給定維度

      + +
      +
      +
      The documentation for this class was generated from the following file: +
      +
      + + + + + diff --git a/doc/html/classmeow_1_1KD__Tree.js b/doc/html/classmeow_1_1KD__Tree.js new file mode 100644 index 0000000..5d484c0 --- /dev/null +++ b/doc/html/classmeow_1_1KD__Tree.js @@ -0,0 +1,14 @@ +var classmeow_1_1KD__Tree = +[ + [ "Vectors", "classmeow_1_1KD__Tree.html#afc143e90dba569c51b6eb146ba9df7f8", null ], + [ "KD_Tree", "classmeow_1_1KD__Tree.html#a782840070cd90370c37d72e8a39765f9", null ], + [ "KD_Tree", "classmeow_1_1KD__Tree.html#aafecfa34e96615249e11e9ba1b85fdc7", null ], + [ "~KD_Tree", "classmeow_1_1KD__Tree.html#a6ffacb6d4020cfb1c127b68f3f427ee4", null ], + [ "build", "classmeow_1_1KD__Tree.html#abdeb11a064dc06f80437126d6744b022", null ], + [ "clear", "classmeow_1_1KD__Tree.html#a586afb8e59665a951ab0a9deae2fde40", null ], + [ "erase", "classmeow_1_1KD__Tree.html#adb0aaa5a70a7255935d8a4326c454434", null ], + [ "forceBuild", "classmeow_1_1KD__Tree.html#a09bf16356618fde6d256a843b87f44b6", null ], + [ "insert", "classmeow_1_1KD__Tree.html#ad1af6def42b23b9b4acef03d32774b9e", null ], + [ "query", "classmeow_1_1KD__Tree.html#a10e1cac9c14e047d77fb95eaf0b49bd8", null ], + [ "reset", "classmeow_1_1KD__Tree.html#a45be7cf06442b1a75902faa266950121", null ] +]; \ No newline at end of file diff --git a/doc/html/classmeow_1_1LinearTransformation-members.html b/doc/html/classmeow_1_1LinearTransformation-members.html new file mode 100644 index 0000000..3cf37cd --- /dev/null +++ b/doc/html/classmeow_1_1LinearTransformation-members.html @@ -0,0 +1,104 @@ + + + + + + + +Templates -- Meow: Member List + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      meow::LinearTransformation< Scalar > Member List
      +
      +
      + +

      This is the complete list of members for meow::LinearTransformation< Scalar >, including all inherited members.

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      copyFrom(LinearTransformation const &b)meow::LinearTransformation< Scalar >inlineprotected
      meow::Transformation::copyFrom(Transformation const &b)meow::Transformation< Scalar >inlineprotected
      inputCols() const meow::Transformation< Scalar >inline
      inputRows() const meow::Transformation< Scalar >inline
      inversable() const meow::Transformation< Scalar >inlinevirtual
      jacobian(Matrix< Scalar > const &x) const meow::Transformation< Scalar >inlinevirtual
      jacobian(Matrix< Scalar > const &x, size_t i) const meow::Transformation< Scalar >inlinevirtual
      jacobianInv(Matrix< Scalar > const &x) const meow::Transformation< Scalar >inlinevirtual
      jacobianInv(Matrix< Scalar > const &x, size_t i) const meow::Transformation< Scalar >inlinevirtual
      LinearTransformation(size_t inputRows, size_t outputRows, size_t psize)meow::LinearTransformation< Scalar >inlineprotected
      LinearTransformation(size_t inputRows, size_t outputRows, size_t psize, Matrix< Scalar > const &m)meow::LinearTransformation< Scalar >inlineprotected
      LinearTransformation(LinearTransformation const &b)meow::LinearTransformation< Scalar >inlineprotected
      matrix(Matrix< Scalar > const &m)meow::LinearTransformation< Scalar >inlineprotected
      matrix() const meow::LinearTransformation< Scalar >inlinevirtual
      matrixInv() const meow::LinearTransformation< Scalar >inlinevirtual
      outputCols() const meow::Transformation< Scalar >inline
      outputRows() const meow::Transformation< Scalar >inline
      parameter(size_t i) const =0meow::Transformation< Scalar >pure virtual
      parameter(size_t i, Scalar const &s)=0meow::Transformation< Scalar >pure virtual
      parameterSize() const meow::Transformation< Scalar >inline
      referenceFrom(LinearTransformation const &b)meow::LinearTransformation< Scalar >inlineprotected
      meow::Transformation::referenceFrom(Transformation const &b)meow::Transformation< Scalar >inlineprotected
      transformate(Matrix< Scalar > const &x) const =0meow::Transformation< Scalar >pure virtual
      transformateInv(Matrix< Scalar > const &x) const meow::Transformation< Scalar >inlinevirtual
      Transformation(size_t inputRows, size_t inputCols, size_t outputRows, size_t outputCols, size_t psize)meow::Transformation< Scalar >inlineprotected
      Transformation(Transformation const &b)meow::Transformation< Scalar >inlineprotected
      ~LinearTransformation()meow::LinearTransformation< Scalar >inlinevirtual
      ~Transformation()meow::Transformation< Scalar >inlinevirtual
      +
      + + + + + diff --git a/doc/html/classmeow_1_1LinearTransformation.html b/doc/html/classmeow_1_1LinearTransformation.html new file mode 100644 index 0000000..1e16279 --- /dev/null +++ b/doc/html/classmeow_1_1LinearTransformation.html @@ -0,0 +1,503 @@ + + + + + + + +Templates -- Meow: meow::LinearTransformation< Scalar > Class Template Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      meow::LinearTransformation< Scalar > Class Template Reference
      +
      +
      + +

      A base class for implementing kinds of linear transformations. + More...

      + +

      #include "LinearTransformation.h"

      +
      +Inheritance diagram for meow::LinearTransformation< Scalar >:
      +
      +
      + + +meow::Transformation< Scalar > +meow::Rotation3D< Scalar > + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      +Public Member Functions

      virtual ~LinearTransformation ()
       
      virtual Matrix< Scalar > const & matrix () const
       Return the matrix form of this transformation. More...
       
      virtual Matrix< Scalar > matrixInv () const
       Return the inverse of the matrix form of this transformate. More...
       
      - Public Member Functions inherited from meow::Transformation< Scalar >
      virtual ~Transformation ()
       
      size_t inputRows () const
       Return the number of rows of the input matrix. More...
       
      size_t inputCols () const
       Return the number of columns of the input matrix. More...
       
      size_t outputRows () const
       Return the number of rows of the output matrix. More...
       
      size_t outputCols () const
       Return the number of columns of the output matrix. More...
       
      size_t parameterSize () const
       Return the number of parameters. More...
       
      virtual Scalar parameter (size_t i) const =0
       Get the i -th parameter. More...
       
      virtual Scalar parameter (size_t i, Scalar const &s)=0
       Setup the i -th parameter. More...
       
      virtual Matrix< Scalar > transformate (Matrix< Scalar > const &x) const =0
       Do transformate. More...
       
      virtual Matrix< Scalar > jacobian (Matrix< Scalar > const &x) const
       Calculate the jacobian matrix (derivate by the input matrix) of the transformation. More...
       
      virtual Matrix< Scalar > jacobian (Matrix< Scalar > const &x, size_t i) const
       Calculate the jacobian matrix (derivate by the i -th parameter) of the transformation. More...
       
      virtual bool inversable () const
       Return whether this transformation is inversable or not. More...
       
      virtual Matrix< Scalar > transformateInv (Matrix< Scalar > const &x) const
       Do the inverse transformation. More...
       
      virtual Matrix< Scalar > jacobianInv (Matrix< Scalar > const &x) const
       Return the jacobian matrix of the inverse transformation. More...
       
      virtual Matrix< Scalar > jacobianInv (Matrix< Scalar > const &x, size_t i) const
       Return the jacobian matrix of the inverse transformation. More...
       
      + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      +Protected Member Functions

       LinearTransformation (size_t inputRows, size_t outputRows, size_t psize)
       
       LinearTransformation (size_t inputRows, size_t outputRows, size_t psize, Matrix< Scalar > const &m)
       
       LinearTransformation (LinearTransformation const &b)
       
      LinearTransformationcopyFrom (LinearTransformation const &b)
       Copy settings, matrix from another LinearTransformation. More...
       
      LinearTransformationreferenceFrom (LinearTransformation const &b)
       Reference settings, matrix from another LinearTransformation. More...
       
      Matrix< Scalar > const & matrix (Matrix< Scalar > const &m)
       Setup the matrix. More...
       
      - Protected Member Functions inherited from meow::Transformation< Scalar >
       Transformation (size_t inputRows, size_t inputCols, size_t outputRows, size_t outputCols, size_t psize)
       
       Transformation (Transformation const &b)
       
      TransformationcopyFrom (Transformation const &b)
       Copy from the specified one. More...
       
      TransformationreferenceFrom (Transformation const &b)
       Ceference from the specified one. More...
       
      +

      Detailed Description

      +

      template<class Scalar>
      +class meow::LinearTransformation< Scalar >

      + +

      A base class for implementing kinds of linear transformations.

      +

      Because all linear transformations belong to transformations, this class inherit to Transformation.

      +
      Author
      cat_leopard
      +

      Constructor & Destructor Documentation

      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      meow::LinearTransformation< Scalar >::LinearTransformation (size_t inputRows,
      size_t outputRows,
      size_t psize 
      )
      +
      +inlineprotected
      +
      +

      Constructor with input/output size gived

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      meow::LinearTransformation< Scalar >::LinearTransformation (size_t inputRows,
      size_t outputRows,
      size_t psize,
      Matrix< Scalar > const & m 
      )
      +
      +inlineprotected
      +
      +

      Constructor with input/output size gived and a inital matrix

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      meow::LinearTransformation< Scalar >::LinearTransformation (LinearTransformation< Scalar > const & b)
      +
      +inlineprotected
      +
      +

      Constructor with another LinearTransformation

      +
      Parameters
      + + +
      [in]banother LinearTransformation
      +
      +
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      virtual meow::LinearTransformation< Scalar >::~LinearTransformation ()
      +
      +inlinevirtual
      +
      +

      Destructor

      + +
      +
      +

      Member Function Documentation

      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      LinearTransformation& meow::LinearTransformation< Scalar >::copyFrom (LinearTransformation< Scalar > const & b)
      +
      +inlineprotected
      +
      + +

      Copy settings, matrix from another LinearTransformation.

      +
      Parameters
      + + +
      [in]banother LinearTransformation
      +
      +
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Matrix<Scalar> const& meow::LinearTransformation< Scalar >::matrix (Matrix< Scalar > const & m)
      +
      +inlineprotected
      +
      + +

      Setup the matrix.

      +
      Parameters
      + + +
      [in]mmatrix
      +
      +
      +
      Returns
      new matrix
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      virtual Matrix<Scalar> const& meow::LinearTransformation< Scalar >::matrix () const
      +
      +inlinevirtual
      +
      + +

      Return the matrix form of this transformation.

      +
      Returns
      A matrix
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      virtual Matrix<Scalar> meow::LinearTransformation< Scalar >::matrixInv () const
      +
      +inlinevirtual
      +
      + +

      Return the inverse of the matrix form of this transformate.

      +
      Returns
      A matrix (may be invalid)
      + +

      Reimplemented in meow::Rotation3D< Scalar >, and meow::Rotation3D< double >.

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      LinearTransformation& meow::LinearTransformation< Scalar >::referenceFrom (LinearTransformation< Scalar > const & b)
      +
      +inlineprotected
      +
      + +

      Reference settings, matrix from another LinearTransformation.

      +
      Parameters
      + + +
      [in]banother LinearTransformation
      +
      +
      + +
      +
      +
      The documentation for this class was generated from the following file: +
      +
      + + + + + diff --git a/doc/html/classmeow_1_1LinearTransformation.js b/doc/html/classmeow_1_1LinearTransformation.js new file mode 100644 index 0000000..bdc2ffd --- /dev/null +++ b/doc/html/classmeow_1_1LinearTransformation.js @@ -0,0 +1,12 @@ +var classmeow_1_1LinearTransformation = +[ + [ "LinearTransformation", "classmeow_1_1LinearTransformation.html#a2c5d98a8bf1dc09c9284d40db9534a6e", null ], + [ "LinearTransformation", "classmeow_1_1LinearTransformation.html#a799ed3fafc41010b87807b46e9b9c222", null ], + [ "LinearTransformation", "classmeow_1_1LinearTransformation.html#a4d73d74510c76bdbe176a8d498be185e", null ], + [ "~LinearTransformation", "classmeow_1_1LinearTransformation.html#ad21d0eb275d3ac9ce780e4ccf2c78bcb", null ], + [ "copyFrom", "classmeow_1_1LinearTransformation.html#afb3ea3e2653152b7b5a8bbad952d3f0e", null ], + [ "matrix", "classmeow_1_1LinearTransformation.html#a9227417bd74bb950e1c732e5948befc0", null ], + [ "matrix", "classmeow_1_1LinearTransformation.html#aeab1cf88fc67a1857504bd2fb18519f5", null ], + [ "matrixInv", "classmeow_1_1LinearTransformation.html#a60ead2898f321c5d77d099e1dc3e103c", null ], + [ "referenceFrom", "classmeow_1_1LinearTransformation.html#a573c034e179570f7a1c41f0c1de54c87", null ] +]; \ No newline at end of file diff --git a/doc/html/classmeow_1_1LinearTransformation.png b/doc/html/classmeow_1_1LinearTransformation.png new file mode 100644 index 0000000..b5e4974 Binary files /dev/null and b/doc/html/classmeow_1_1LinearTransformation.png differ diff --git a/doc/html/classmeow_1_1Matrix-members.html b/doc/html/classmeow_1_1Matrix-members.html new file mode 100644 index 0000000..25240af --- /dev/null +++ b/doc/html/classmeow_1_1Matrix-members.html @@ -0,0 +1,121 @@ + + + + + + + +Templates -- Meow: Member List + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      meow::Matrix< Entry > Member List
      +
      +
      + +

      This is the complete list of members for meow::Matrix< Entry >, including all inherited members.

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      add(Matrix const &m) const meow::Matrix< Entry >inline
      col(size_t c) const meow::Matrix< Entry >inline
      cols() const meow::Matrix< Entry >inline
      cols(size_t c, Entry const &e)meow::Matrix< Entry >inline
      copyFrom(Matrix const &m)meow::Matrix< Entry >inline
      div(Entry const &s) const meow::Matrix< Entry >inline
      entries(ssize_t rFirst, ssize_t rLast, ssize_t cFirst, ssize_t cLast, Entry const &e)meow::Matrix< Entry >inline
      entry(size_t r, size_t c) const meow::Matrix< Entry >inline
      entry(size_t r, size_t c, Entry const &e)meow::Matrix< Entry >inline
      identitied()meow::Matrix< Entry >inline
      identity() const meow::Matrix< Entry >inline
      inverse() const meow::Matrix< Entry >inline
      inversed()meow::Matrix< Entry >inline
      Matrix()meow::Matrix< Entry >inline
      Matrix(Matrix const &m)meow::Matrix< Entry >inline
      Matrix(size_t r, size_t c, Entry const &e)meow::Matrix< Entry >inline
      mul(Matrix const &m) const meow::Matrix< Entry >inline
      mul(Entry const &s) const meow::Matrix< Entry >inline
      negative() const meow::Matrix< Entry >inline
      operator()(size_t r, size_t c) const meow::Matrix< Entry >inline
      operator()(size_t r, size_t c, Entry const &e)meow::Matrix< Entry >inline
      operator*(Matrix const &m) const meow::Matrix< Entry >inline
      operator*(Entry const &s) const meow::Matrix< Entry >inline
      operator+() const meow::Matrix< Entry >inline
      operator+(Matrix const &m) const meow::Matrix< Entry >inline
      operator-() const meow::Matrix< Entry >inline
      operator-(Matrix const &m) const meow::Matrix< Entry >inline
      operator/(Entry const &s) const meow::Matrix< Entry >inline
      operator=(Matrix const &m)meow::Matrix< Entry >inline
      positive() const meow::Matrix< Entry >inline
      referenceFrom(Matrix const &m)meow::Matrix< Entry >inline
      reset(size_t r, size_t c, Entry const &e)meow::Matrix< Entry >inline
      row(size_t r) const meow::Matrix< Entry >inline
      rows() const meow::Matrix< Entry >inline
      rows(size_t r, Entry const &e)meow::Matrix< Entry >inline
      size() const meow::Matrix< Entry >inline
      size(size_t r, size_t c, Entry const &e)meow::Matrix< Entry >inline
      sub(Matrix const &m) const meow::Matrix< Entry >inline
      subMatrix(size_t rFirst, size_t rLast, size_t cFirst, size_t cLast) const meow::Matrix< Entry >inline
      transpose() const meow::Matrix< Entry >inline
      transposed()meow::Matrix< Entry >inline
      triangular() const meow::Matrix< Entry >inline
      triangulared()meow::Matrix< Entry >inline
      valid() const meow::Matrix< Entry >inline
      ~Matrix()meow::Matrix< Entry >inline
      +
      + + + + + diff --git a/doc/html/classmeow_1_1Matrix.html b/doc/html/classmeow_1_1Matrix.html new file mode 100644 index 0000000..f5938f5 --- /dev/null +++ b/doc/html/classmeow_1_1Matrix.html @@ -0,0 +1,1733 @@ + + + + + + + +Templates -- Meow: meow::Matrix< Entry > Class Template Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      meow::Matrix< Entry > Class Template Reference
      +
      +
      + +

      matrix + More...

      + +

      #include "Matrix.h"

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      +Public Member Functions

       Matrix ()
       constructor More...
       
       Matrix (Matrix const &m)
       constructor More...
       
       Matrix (size_t r, size_t c, Entry const &e)
       constructor More...
       
       ~Matrix ()
       destructor More...
       
      MatrixcopyFrom (Matrix const &m)
       copy More...
       
      MatrixreferenceFrom (Matrix const &m)
       reference More...
       
      void reset (size_t r, size_t c, Entry const &e)
       reset the size of the matrix to r x c with entry all be e More...
       
      bool valid () const
       Return whether it is a valid matrix. More...
       
      size_t rows () const
       Return number of rows. More...
       
      size_t cols () const
       Return number of cols. More...
       
      size_t size () const
       Return number of rows times number of cols. More...
       
      size_t rows (size_t r, Entry const &e)
       resize the matrix such that number of rows become r. More...
       
      size_t cols (size_t c, Entry const &e)
       resize the matrix such that number of cols become c More...
       
      size_t size (size_t r, size_t c, Entry const &e)
       resize More...
       
      Entry entry (size_t r, size_t c) const
       Access the entry at r x c. More...
       
      Entry entry (size_t r, size_t c, Entry const &e)
       Change the entry at r x c. More...
       
      void entries (ssize_t rFirst, ssize_t rLast, ssize_t cFirst, ssize_t cLast, Entry const &e)
       Change the entries from rFirst x cFirst to rLast x cLast. More...
       
      Matrix subMatrix (size_t rFirst, size_t rLast, size_t cFirst, size_t cLast) const
       Return a rLast-rFirst+1 x cLast-cFirst+1 matrix. More...
       
      Matrix row (size_t r) const
       Return the r -th row. More...
       
      Matrix col (size_t c) const
       Return the c -th column. More...
       
      Matrix positive () const
       return +(*this) More...
       
      Matrix negative () const
       return -(*this) More...
       
      Matrix add (Matrix const &m) const
       return (*this) + m. More...
       
      Matrix sub (Matrix const &m) const
       return (*this) - m. More...
       
      Matrix mul (Matrix const &m) const
       return (*this) times m. More...
       
      Matrix mul (Entry const &s) const
       return (*this) times s. s is a scalar More...
       
      Matrix div (Entry const &s) const
       return (*this) / s. s is a scalar More...
       
      Matrix identity () const
       Return a identity matrix with size equal to itself. More...
       
      Matrixidentitied ()
       Let itself be an identity matrix. More...
       
      Matrix inverse () const
       Return a matrix which is an inverse matrix of (*this) More...
       
      Matrixinversed ()
       let itself become itself's inverse matrix More...
       
      Matrix transpose () const
       return itself's transpose matrix More...
       
      Matrixtransposed ()
       Let itself become itself's transpose matrix. More...
       
      Matrix triangular () const
       return a matrix which is the triangular form of (*this) More...
       
      Matrixtriangulared ()
       triangluar itself More...
       
      Matrixoperator= (Matrix const &m)
       same as copyFrom More...
       
      Entry operator() (size_t r, size_t c) const
       same as entry(r,c) More...
       
      Entry operator() (size_t r, size_t c, Entry const &e)
       same as entry(r,c,e) More...
       
      Matrix operator+ () const
       same as positive() More...
       
      Matrix operator- () const
       same as negative() More...
       
      Matrix operator+ (Matrix const &m) const
       same as add(m) More...
       
      Matrix operator- (Matrix const &m) const
       same as sub(m) More...
       
      Matrix operator* (Matrix const &m) const
       same as mul(m) More...
       
      Matrix operator* (Entry const &s) const
       same as mul(m) More...
       
      Matrix operator/ (Entry const &s) const
       same as div(s) More...
       
      +

      Detailed Description

      +

      template<class Entry>
      +class meow::Matrix< Entry >

      + +

      matrix

      +
      Author
      cat_leopard
      +

      Constructor & Destructor Documentation

      + +
      +
      +
      +template<class Entry>
      + + + + + +
      + + + + + + + +
      meow::Matrix< Entry >::Matrix ()
      +
      +inline
      +
      + +

      constructor

      +

      Create an empty matrix with size 0x0. In other world, create an invalid matrix

      + +
      +
      + +
      +
      +
      +template<class Entry>
      + + + + + +
      + + + + + + + + +
      meow::Matrix< Entry >::Matrix (Matrix< Entry > const & m)
      +
      +inline
      +
      + +

      constructor

      +

      Copy data from another one

      +
      Parameters
      + + +
      [in]manother matrix
      +
      +
      + +
      +
      + +
      +
      +
      +template<class Entry>
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      meow::Matrix< Entry >::Matrix (size_t r,
      size_t c,
      Entry const & e 
      )
      +
      +inline
      +
      + +

      constructor

      +

      Create an r x c matrix with all entry be e

      +
      Parameters
      + + + + +
      [in]rnumber of rows
      [in]cnumber of columns
      [in]einital entry
      +
      +
      + +
      +
      + +
      +
      +
      +template<class Entry>
      + + + + + +
      + + + + + + + +
      meow::Matrix< Entry >::~Matrix ()
      +
      +inline
      +
      + +

      destructor

      + +
      +
      +

      Member Function Documentation

      + +
      +
      +
      +template<class Entry>
      + + + + + +
      + + + + + + + + +
      Matrix meow::Matrix< Entry >::add (Matrix< Entry > const & m) const
      +
      +inline
      +
      + +

      return (*this) + m.

      +

      If the size not match, it will return an invalid matrix

      + +
      +
      + +
      +
      +
      +template<class Entry>
      + + + + + +
      + + + + + + + + +
      Matrix meow::Matrix< Entry >::col (size_t c) const
      +
      +inline
      +
      + +

      Return the c -th column.

      + +
      +
      + +
      +
      +
      +template<class Entry>
      + + + + + +
      + + + + + + + +
      size_t meow::Matrix< Entry >::cols () const
      +
      +inline
      +
      + +

      Return number of cols.

      + +
      +
      + +
      +
      +
      +template<class Entry>
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      size_t meow::Matrix< Entry >::cols (size_t c,
      Entry const & e 
      )
      +
      +inline
      +
      + +

      resize the matrix such that number of cols become c

      +

      New created entry will be e

      +
      Parameters
      + + + +
      [in]cnew number of columns
      [in]einital entry
      +
      +
      +
      Returns
      new number of columns
      + +
      +
      + +
      +
      +
      +template<class Entry>
      + + + + + +
      + + + + + + + + +
      Matrix& meow::Matrix< Entry >::copyFrom (Matrix< Entry > const & m)
      +
      +inline
      +
      + +

      copy

      +

      Copy data from another matrix

      +
      Parameters
      + + +
      [in]mmatrix
      +
      +
      +
      Returns
      *this
      + +
      +
      + +
      +
      +
      +template<class Entry>
      + + + + + +
      + + + + + + + + +
      Matrix meow::Matrix< Entry >::div (Entry const & s) const
      +
      +inline
      +
      + +

      return (*this) / s. s is a scalar

      + +
      +
      + +
      +
      +
      +template<class Entry>
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      void meow::Matrix< Entry >::entries (ssize_t rFirst,
      ssize_t rLast,
      ssize_t cFirst,
      ssize_t cLast,
      Entry const & e 
      )
      +
      +inline
      +
      + +

      Change the entries from rFirst x cFirst to rLast x cLast.

      +
      Parameters
      + + + + + + +
      [in]rFirst
      [in]rLast
      [in]cFirst
      [in]cLast
      [in]evalue
      +
      +
      +
      Returns
      void
      + +
      +
      + +
      +
      +
      +template<class Entry>
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      Entry meow::Matrix< Entry >::entry (size_t r,
      size_t c 
      ) const
      +
      +inline
      +
      + +

      Access the entry at r x c.

      + +
      +
      + +
      +
      +
      +template<class Entry>
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      Entry meow::Matrix< Entry >::entry (size_t r,
      size_t c,
      Entry const & e 
      )
      +
      +inline
      +
      + +

      Change the entry at r x c.

      + +
      +
      + +
      +
      +
      +template<class Entry>
      + + + + + +
      + + + + + + + +
      Matrix& meow::Matrix< Entry >::identitied ()
      +
      +inline
      +
      + +

      Let itself be an identity matrix.

      +

      Our definition of Identity matrix is 1 for entry(i, i) and 0 otherwise.

      + +
      +
      + +
      +
      +
      +template<class Entry>
      + + + + + +
      + + + + + + + +
      Matrix meow::Matrix< Entry >::identity () const
      +
      +inline
      +
      + +

      Return a identity matrix with size equal to itself.

      + +
      +
      + +
      +
      +
      +template<class Entry>
      + + + + + +
      + + + + + + + +
      Matrix meow::Matrix< Entry >::inverse () const
      +
      +inline
      +
      + +

      Return a matrix which is an inverse matrix of (*this)

      +

      If inverse matrix doesn't exist, it will return a invalid matrix

      + +
      +
      + +
      +
      +
      +template<class Entry>
      + + + + + +
      + + + + + + + +
      Matrix& meow::Matrix< Entry >::inversed ()
      +
      +inline
      +
      + +

      let itself become itself's inverse matrix

      + +
      +
      + +
      +
      +
      +template<class Entry>
      + + + + + +
      + + + + + + + + +
      Matrix meow::Matrix< Entry >::mul (Matrix< Entry > const & m) const
      +
      +inline
      +
      + +

      return (*this) times m.

      +

      If the size not match, it will return an invalid matrix

      + +
      +
      + +
      +
      +
      +template<class Entry>
      + + + + + +
      + + + + + + + + +
      Matrix meow::Matrix< Entry >::mul (Entry const & s) const
      +
      +inline
      +
      + +

      return (*this) times s. s is a scalar

      + +
      +
      + +
      +
      +
      +template<class Entry>
      + + + + + +
      + + + + + + + +
      Matrix meow::Matrix< Entry >::negative () const
      +
      +inline
      +
      + +

      return -(*this)

      + +
      +
      + +
      +
      +
      +template<class Entry>
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      Entry meow::Matrix< Entry >::operator() (size_t r,
      size_t c 
      ) const
      +
      +inline
      +
      + +

      same as entry(r,c)

      + +
      +
      + +
      +
      +
      +template<class Entry>
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      Entry meow::Matrix< Entry >::operator() (size_t r,
      size_t c,
      Entry const & e 
      )
      +
      +inline
      +
      + +

      same as entry(r,c,e)

      + +
      +
      + +
      +
      +
      +template<class Entry>
      + + + + + +
      + + + + + + + + +
      Matrix meow::Matrix< Entry >::operator* (Matrix< Entry > const & m) const
      +
      +inline
      +
      + +

      same as mul(m)

      + +
      +
      + +
      +
      +
      +template<class Entry>
      + + + + + +
      + + + + + + + + +
      Matrix meow::Matrix< Entry >::operator* (Entry const & s) const
      +
      +inline
      +
      + +

      same as mul(m)

      + +
      +
      + +
      +
      +
      +template<class Entry>
      + + + + + +
      + + + + + + + +
      Matrix meow::Matrix< Entry >::operator+ () const
      +
      +inline
      +
      + +

      same as positive()

      + +
      +
      + +
      +
      +
      +template<class Entry>
      + + + + + +
      + + + + + + + + +
      Matrix meow::Matrix< Entry >::operator+ (Matrix< Entry > const & m) const
      +
      +inline
      +
      + +

      same as add(m)

      + +
      +
      + +
      +
      +
      +template<class Entry>
      + + + + + +
      + + + + + + + +
      Matrix meow::Matrix< Entry >::operator- () const
      +
      +inline
      +
      + +

      same as negative()

      + +
      +
      + +
      +
      +
      +template<class Entry>
      + + + + + +
      + + + + + + + + +
      Matrix meow::Matrix< Entry >::operator- (Matrix< Entry > const & m) const
      +
      +inline
      +
      + +

      same as sub(m)

      + +
      +
      + +
      +
      +
      +template<class Entry>
      + + + + + +
      + + + + + + + + +
      Matrix meow::Matrix< Entry >::operator/ (Entry const & s) const
      +
      +inline
      +
      + +

      same as div(s)

      + +
      +
      + +
      +
      +
      +template<class Entry>
      + + + + + +
      + + + + + + + + +
      Matrix& meow::Matrix< Entry >::operator= (Matrix< Entry > const & m)
      +
      +inline
      +
      + +

      same as copyFrom

      + +
      +
      + +
      +
      +
      +template<class Entry>
      + + + + + +
      + + + + + + + +
      Matrix meow::Matrix< Entry >::positive () const
      +
      +inline
      +
      + +

      return +(*this)

      + +
      +
      + +
      +
      +
      +template<class Entry>
      + + + + + +
      + + + + + + + + +
      Matrix& meow::Matrix< Entry >::referenceFrom (Matrix< Entry > const & m)
      +
      +inline
      +
      + +

      reference

      +

      Reference itself to another matrix

      +
      Parameters
      + + +
      [in]mmatrix
      +
      +
      +
      Returns
      *this
      + +
      +
      + +
      +
      +
      +template<class Entry>
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      void meow::Matrix< Entry >::reset (size_t r,
      size_t c,
      Entry const & e 
      )
      +
      +inline
      +
      + +

      reset the size of the matrix to r x c with entry all be e

      + +
      +
      + +
      +
      +
      +template<class Entry>
      + + + + + +
      + + + + + + + + +
      Matrix meow::Matrix< Entry >::row (size_t r) const
      +
      +inline
      +
      + +

      Return the r -th row.

      + +
      +
      + +
      +
      +
      +template<class Entry>
      + + + + + +
      + + + + + + + +
      size_t meow::Matrix< Entry >::rows () const
      +
      +inline
      +
      + +

      Return number of rows.

      + +
      +
      + +
      +
      +
      +template<class Entry>
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      size_t meow::Matrix< Entry >::rows (size_t r,
      Entry const & e 
      )
      +
      +inline
      +
      + +

      resize the matrix such that number of rows become r.

      +

      New created entry will be e

      +
      Parameters
      + + + +
      [in]rnew number of rows
      [in]einital entry
      +
      +
      +
      Returns
      new number of rows
      + +
      +
      + +
      +
      +
      +template<class Entry>
      + + + + + +
      + + + + + + + +
      size_t meow::Matrix< Entry >::size () const
      +
      +inline
      +
      + +

      Return number of rows times number of cols.

      + +
      +
      + +
      +
      +
      +template<class Entry>
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      size_t meow::Matrix< Entry >::size (size_t r,
      size_t c,
      Entry const & e 
      )
      +
      +inline
      +
      + +

      resize

      +

      Resize to r x c, with new created entry be e

      +
      Parameters
      + + + + +
      [in]rnumber of rows
      [in]cnumber of rows
      [in]einital entry
      +
      +
      +
      Returns
      r * c
      + +
      +
      + +
      +
      +
      +template<class Entry>
      + + + + + +
      + + + + + + + + +
      Matrix meow::Matrix< Entry >::sub (Matrix< Entry > const & m) const
      +
      +inline
      +
      + +

      return (*this) - m.

      +

      If the size not match, it will return an invalid matrix

      + +
      +
      + +
      +
      +
      +template<class Entry>
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Matrix meow::Matrix< Entry >::subMatrix (size_t rFirst,
      size_t rLast,
      size_t cFirst,
      size_t cLast 
      ) const
      +
      +inline
      +
      + +

      Return a rLast-rFirst+1 x cLast-cFirst+1 matrix.

      +

      With value be the entries from rFirst x cFirst to rLast x cLast

      +
      Parameters
      + + + + + +
      [in]rFirst
      [in]rLast
      [in]cFirst
      [in]cLast
      +
      +
      +
      Returns
      a matrix
      + +
      +
      + +
      +
      +
      +template<class Entry>
      + + + + + +
      + + + + + + + +
      Matrix meow::Matrix< Entry >::transpose () const
      +
      +inline
      +
      + +

      return itself's transpose matrix

      + +
      +
      + +
      +
      +
      +template<class Entry>
      + + + + + +
      + + + + + + + +
      Matrix& meow::Matrix< Entry >::transposed ()
      +
      +inline
      +
      + +

      Let itself become itself's transpose matrix.

      + +
      +
      + +
      +
      +
      +template<class Entry>
      + + + + + +
      + + + + + + + +
      Matrix meow::Matrix< Entry >::triangular () const
      +
      +inline
      +
      + +

      return a matrix which is the triangular form of (*this)

      + +
      +
      + +
      +
      +
      +template<class Entry>
      + + + + + +
      + + + + + + + +
      Matrix& meow::Matrix< Entry >::triangulared ()
      +
      +inline
      +
      + +

      triangluar itself

      + +
      +
      + +
      +
      +
      +template<class Entry>
      + + + + + +
      + + + + + + + +
      bool meow::Matrix< Entry >::valid () const
      +
      +inline
      +
      + +

      Return whether it is a valid matrix.

      + +
      +
      +
      The documentation for this class was generated from the following file: +
      +
      + + + + + diff --git a/doc/html/classmeow_1_1Matrix.js b/doc/html/classmeow_1_1Matrix.js new file mode 100644 index 0000000..66d50d2 --- /dev/null +++ b/doc/html/classmeow_1_1Matrix.js @@ -0,0 +1,48 @@ +var classmeow_1_1Matrix = +[ + [ "Matrix", "classmeow_1_1Matrix.html#a2dc9f17e38ba52376822744d2fc48f29", null ], + [ "Matrix", "classmeow_1_1Matrix.html#a5728557810b6c5444332557ac53597d5", null ], + [ "Matrix", "classmeow_1_1Matrix.html#af0b4507ec5ea08e8f33aeb99f11e5f74", null ], + [ "~Matrix", "classmeow_1_1Matrix.html#ae66fe3b4deb85b9b4c047f405a60f10e", null ], + [ "add", "classmeow_1_1Matrix.html#ac1030360f1f48119128d99428930cce6", null ], + [ "col", "classmeow_1_1Matrix.html#a9dfef448574df55fc34528665183c6c2", null ], + [ "cols", "classmeow_1_1Matrix.html#a4db3bb07e2557cbc668bdaa1beb241df", null ], + [ "cols", "classmeow_1_1Matrix.html#a30d16679bb6843c5e35aae81738f3306", null ], + [ "copyFrom", "classmeow_1_1Matrix.html#afb81446984f7c27458ccef86be2de413", null ], + [ "div", "classmeow_1_1Matrix.html#aed17cc829d1e766d2c905d65cbae48ce", null ], + [ "entries", "classmeow_1_1Matrix.html#a13384643dc412817fdcd8f1834a02d12", null ], + [ "entry", "classmeow_1_1Matrix.html#a46a12f45237e654e0140387d7290eb8b", null ], + [ "entry", "classmeow_1_1Matrix.html#aaba0981e54a17f0df8af9dabe9cad06f", null ], + [ "identitied", "classmeow_1_1Matrix.html#abc6f5c824ee47cb15094729ca91f2e7c", null ], + [ "identity", "classmeow_1_1Matrix.html#a9987d4535f1de58b822325914e3a916f", null ], + [ "inverse", "classmeow_1_1Matrix.html#af6c3ae812c4290d29fb0932b655887dd", null ], + [ "inversed", "classmeow_1_1Matrix.html#ab7b158abdfe8ad1966cc3f0490743170", null ], + [ "mul", "classmeow_1_1Matrix.html#a30fdb794e5966585e93cf715646210dd", null ], + [ "mul", "classmeow_1_1Matrix.html#a06ac197ecfa9bc8bd5e9d9094f2d01ab", null ], + [ "negative", "classmeow_1_1Matrix.html#a581dbd8ba10d054596a3d11eaf47f274", null ], + [ "operator()", "classmeow_1_1Matrix.html#a78b4b8b4ee30d02cb726bf7b8ac13147", null ], + [ "operator()", "classmeow_1_1Matrix.html#a1dc03cd2475a4c5f34afbe0cb498e472", null ], + [ "operator*", "classmeow_1_1Matrix.html#a913ed9a5df441a33fcf0dab1f35814c2", null ], + [ "operator*", "classmeow_1_1Matrix.html#a15d360e71c0880fed3c9873affb04341", null ], + [ "operator+", "classmeow_1_1Matrix.html#ade31d2339af552ba1df230c8383e2f84", null ], + [ "operator+", "classmeow_1_1Matrix.html#a8917cdb62ab6d8ed9572ac3303dbaab5", null ], + [ "operator-", "classmeow_1_1Matrix.html#a5d35d285b8cd59475e98f97966be68c1", null ], + [ "operator-", "classmeow_1_1Matrix.html#a955d9ddcb5b3467f8377ccae281ff4f5", null ], + [ "operator/", "classmeow_1_1Matrix.html#a807c2a35579a429a2278956fc070f31a", null ], + [ "operator=", "classmeow_1_1Matrix.html#a50bf284fe7beae52bb1bd0868486a602", null ], + [ "positive", "classmeow_1_1Matrix.html#aa43f03179e3218c9af28f7374757a2cc", null ], + [ "referenceFrom", "classmeow_1_1Matrix.html#a1dbef5b1a46df480f7fa3e118fd12bec", null ], + [ "reset", "classmeow_1_1Matrix.html#ac17251cb984beb1f74558724a22a0120", null ], + [ "row", "classmeow_1_1Matrix.html#ae623c8168ebf26473550d831f0254c4c", null ], + [ "rows", "classmeow_1_1Matrix.html#a560adbe0b39f52bfb016edddc2955178", null ], + [ "rows", "classmeow_1_1Matrix.html#add7842aea9c5b0372f56656af0d43325", null ], + [ "size", "classmeow_1_1Matrix.html#a8e35443c856f669d02b352f091c0404c", null ], + [ "size", "classmeow_1_1Matrix.html#ac492cefa5df3a4ac6c9799931fb93605", null ], + [ "sub", "classmeow_1_1Matrix.html#ae89a9a7646f7b7c0f23756809c65dc8c", null ], + [ "subMatrix", "classmeow_1_1Matrix.html#a93ff4579b7cb950868cad7a62bcf9fe8", null ], + [ "transpose", "classmeow_1_1Matrix.html#a869be60b593d7ce7101ee7ac788b0dd0", null ], + [ "transposed", "classmeow_1_1Matrix.html#a752bbc50fc06c7a6bfad8b4d09e19304", null ], + [ "triangular", "classmeow_1_1Matrix.html#a138c71b681404e054fa27cac5bb80d56", null ], + [ "triangulared", "classmeow_1_1Matrix.html#acf27e5ea48f42ceec61e933dfe269016", null ], + [ "valid", "classmeow_1_1Matrix.html#a030758e4938c4d56a0b665e6a51d1405", null ] +]; \ No newline at end of file diff --git a/doc/html/classmeow_1_1MergeableHeap-members.html b/doc/html/classmeow_1_1MergeableHeap-members.html new file mode 100644 index 0000000..21974a6 --- /dev/null +++ b/doc/html/classmeow_1_1MergeableHeap-members.html @@ -0,0 +1,89 @@ + + + + + + + +Templates -- Meow: Member List + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      meow::MergeableHeap< Element > Member List
      +
      +
      + +

      This is the complete list of members for meow::MergeableHeap< Element >, including all inherited members.

      + + + + + + + + + + + + + + +
      clear()meow::MergeableHeap< Element >inline
      copyFrom(MergeableHeap const &heap2)meow::MergeableHeap< Element >inline
      empty() const meow::MergeableHeap< Element >inline
      merge(MergeableHeap *heap2)meow::MergeableHeap< Element >inline
      MergeableHeap()meow::MergeableHeap< Element >inline
      MergeableHeap(MergeableHeap const &heap2)meow::MergeableHeap< Element >inline
      moveTo(MergeableHeap *heap2)meow::MergeableHeap< Element >inline
      operator=(MergeableHeap const &heap2)meow::MergeableHeap< Element >inline
      pop()meow::MergeableHeap< Element >inline
      push(Element const &value)meow::MergeableHeap< Element >inline
      size() const meow::MergeableHeap< Element >inline
      top() const meow::MergeableHeap< Element >inline
      ~MergeableHeap()meow::MergeableHeap< Element >inline
      +
      + + + + + diff --git a/doc/html/classmeow_1_1MergeableHeap.html b/doc/html/classmeow_1_1MergeableHeap.html new file mode 100644 index 0000000..489303a --- /dev/null +++ b/doc/html/classmeow_1_1MergeableHeap.html @@ -0,0 +1,502 @@ + + + + + + + +Templates -- Meow: meow::MergeableHeap< Element > Class Template Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      meow::MergeableHeap< Element > Class Template Reference
      +
      +
      + +

      一個用 左偏樹 實作的 Maximum-Heap , 除了原本heap有的功能外, 還支援 merge 功能 + More...

      + +

      #include "MergeableHeap.h"

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      +Public Member Functions

       MergeableHeap ()
       constructor More...
       
       MergeableHeap (MergeableHeap const &heap2)
       constructor, 並且複製資料 More...
       
       ~MergeableHeap ()
       destructor More...
       
      MergeableHeapcopyFrom (MergeableHeap const &heap2)
       複製資料 More...
       
      void moveTo (MergeableHeap *heap2)
       將自己的資料丟給指定的heap, 從此自己一身空 More...
       
      Element const & top () const
       回傳最大的那個 Element More...
       
      size_t size () const
       回傳資料個數 More...
       
      bool empty () const
       回傳是否為空 More...
       
      void push (Element const &value)
       加入element More...
       
      void pop ()
       將最大的element移除 More...
       
      void clear ()
       
      void merge (MergeableHeap *heap2)
       
      MergeableHeapoperator= (MergeableHeap const &heap2)
       same as copyFrom(heap2) More...
       
      +

      Detailed Description

      +

      template<class Element>
      +class meow::MergeableHeap< Element >

      + +

      一個用 左偏樹 實作的 Maximum-Heap , 除了原本heap有的功能外, 還支援 merge 功能

      +

      Template Class Operators Request

      + + + + + +
      const?TypenameOperator Parameters Return Type Description
      const Element operator< (Element b)bool 大小比較
      +
      Note
      : 假設現在有兩個MergeableHeap AB, 則:
        +
      • 執行 A.merge(&B)B 會變成空的
      • +
      • 執行 B.moveTo(&A)B 會變成空的, A 原本擁有的資料也會覆蓋掉
      • +
      +
      +
      Author
      cat_leopard
      +

      Constructor & Destructor Documentation

      + +
      +
      +
      +template<class Element >
      + + + + + +
      + + + + + + + +
      meow::MergeableHeap< Element >::MergeableHeap ()
      +
      +inline
      +
      + +

      constructor

      + +
      +
      + +
      +
      +
      +template<class Element >
      + + + + + +
      + + + + + + + + +
      meow::MergeableHeap< Element >::MergeableHeap (MergeableHeap< Element > const & heap2)
      +
      +inline
      +
      + +

      constructor, 並且複製資料

      + +
      +
      + +
      +
      +
      +template<class Element >
      + + + + + +
      + + + + + + + +
      meow::MergeableHeap< Element >::~MergeableHeap ()
      +
      +inline
      +
      + +

      destructor

      + +
      +
      +

      Member Function Documentation

      + +
      +
      +
      +template<class Element >
      + + + + + +
      + + + + + + + +
      void meow::MergeableHeap< Element >::clear ()
      +
      +inline
      +
      +

      將資料清空

      + +
      +
      + +
      +
      +
      +template<class Element >
      + + + + + +
      + + + + + + + + +
      MergeableHeap& meow::MergeableHeap< Element >::copyFrom (MergeableHeap< Element > const & heap2)
      +
      +inline
      +
      + +

      複製資料

      + +
      +
      + +
      +
      +
      +template<class Element >
      + + + + + +
      + + + + + + + +
      bool meow::MergeableHeap< Element >::empty () const
      +
      +inline
      +
      + +

      回傳是否為空

      + +
      +
      + +
      +
      +
      +template<class Element >
      + + + + + +
      + + + + + + + + +
      void meow::MergeableHeap< Element >::merge (MergeableHeap< Element > * heap2)
      +
      +inline
      +
      +

      將給定的MergeableHeap的資料統統加到自己身上並且清空該heap

      + +
      +
      + +
      +
      +
      +template<class Element >
      + + + + + +
      + + + + + + + + +
      void meow::MergeableHeap< Element >::moveTo (MergeableHeap< Element > * heap2)
      +
      +inline
      +
      + +

      將自己的資料丟給指定的heap, 從此自己一身空

      + +
      +
      + +
      +
      +
      +template<class Element >
      + + + + + +
      + + + + + + + + +
      MergeableHeap& meow::MergeableHeap< Element >::operator= (MergeableHeap< Element > const & heap2)
      +
      +inline
      +
      + +

      same as copyFrom(heap2)

      + +
      +
      + +
      +
      +
      +template<class Element >
      + + + + + +
      + + + + + + + +
      void meow::MergeableHeap< Element >::pop ()
      +
      +inline
      +
      + +

      將最大的element移除

      + +
      +
      + +
      +
      +
      +template<class Element >
      + + + + + +
      + + + + + + + + +
      void meow::MergeableHeap< Element >::push (Element const & value)
      +
      +inline
      +
      + +

      加入element

      + +
      +
      + +
      +
      +
      +template<class Element >
      + + + + + +
      + + + + + + + +
      size_t meow::MergeableHeap< Element >::size () const
      +
      +inline
      +
      + +

      回傳資料個數

      + +
      +
      + +
      +
      +
      +template<class Element >
      + + + + + +
      + + + + + + + +
      Element const& meow::MergeableHeap< Element >::top () const
      +
      +inline
      +
      + +

      回傳最大的那個 Element

      + +
      +
      +
      The documentation for this class was generated from the following file: +
      +
      + + + + + diff --git a/doc/html/classmeow_1_1MergeableHeap.js b/doc/html/classmeow_1_1MergeableHeap.js new file mode 100644 index 0000000..6667418 --- /dev/null +++ b/doc/html/classmeow_1_1MergeableHeap.js @@ -0,0 +1,16 @@ +var classmeow_1_1MergeableHeap = +[ + [ "MergeableHeap", "classmeow_1_1MergeableHeap.html#a7ef8e2deae0058c91eda490005b978f7", null ], + [ "MergeableHeap", "classmeow_1_1MergeableHeap.html#a1d0ef435fb0214b13fbbc1a8b0ce7cdf", null ], + [ "~MergeableHeap", "classmeow_1_1MergeableHeap.html#a24a0a465dff230206e85f7b3c172553f", null ], + [ "clear", "classmeow_1_1MergeableHeap.html#aaa072185a884716b2dd5c0ba608be1b0", null ], + [ "copyFrom", "classmeow_1_1MergeableHeap.html#a3f9a65eeb600d0b9fba60855b560ab33", null ], + [ "empty", "classmeow_1_1MergeableHeap.html#a531fff6c8a72f09168701a0612b20af7", null ], + [ "merge", "classmeow_1_1MergeableHeap.html#a3638f12db8da212244cb6ab7e37332db", null ], + [ "moveTo", "classmeow_1_1MergeableHeap.html#acec8dde15d23e729aba90d98417db845", null ], + [ "operator=", "classmeow_1_1MergeableHeap.html#a304bacba11be0772b10505b6053a57e1", null ], + [ "pop", "classmeow_1_1MergeableHeap.html#a769478f3424598aa9a408d61b5a83928", null ], + [ "push", "classmeow_1_1MergeableHeap.html#a9491f6a76be757ae888a4093c034eedb", null ], + [ "size", "classmeow_1_1MergeableHeap.html#a112454a9c92b71531429442e95953576", null ], + [ "top", "classmeow_1_1MergeableHeap.html#a7daf99f9cc15f0cfa2625da4623b9042", null ] +]; \ No newline at end of file diff --git a/doc/html/classmeow_1_1ObjArray-members.html b/doc/html/classmeow_1_1ObjArray-members.html new file mode 100644 index 0000000..b2fac48 --- /dev/null +++ b/doc/html/classmeow_1_1ObjArray-members.html @@ -0,0 +1,105 @@ + + + + + + + +Templates -- Meow: Member List + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      meow::ObjArray< T > Member List
      +
      +
      + +

      This is the complete list of members for meow::ObjArray< T >, including all inherited members.

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      clear()meow::ObjArray< T >inline
      copyFrom(ObjArray const &a)meow::ObjArray< T >inline
      copyFrom(ObjBase const *b)meow::ObjArray< T >inlinevirtual
      create() const meow::ObjArray< T >inlinevirtual
      ctype() const meow::ObjArray< T >inlinevirtual
      ctypeBase()meow::ObjBaseinlinestatic
      empty() const meow::ObjArray< T >inline
      entry(size_t i) const meow::ObjArray< T >inline
      entry(size_t i, T const &e)meow::ObjArray< T >inline
      ObjArray()meow::ObjArray< T >inline
      ObjArray(ObjArray const &a)meow::ObjArray< T >inline
      ObjArray(std::vector< T > const &a)meow::ObjArray< T >inline
      ObjArray(size_t sz, T const &e)meow::ObjArray< T >inline
      ObjBase()meow::ObjBaseinlineprotected
      operator=(ObjArray const &a)meow::ObjArray< T >inline
      operator[](size_t i) const meow::ObjArray< T >inline
      operator[](size_t i)meow::ObjArray< T >inline
      popBack()meow::ObjArray< T >inline
      putBack(T const &e)meow::ObjArray< T >inline
      read(FILE *f, bool bin, unsigned int fg)meow::ObjArray< T >inlinevirtual
      referenceFrom(ObjArray const &a)meow::ObjArray< T >inline
      size() const meow::ObjArray< T >inline
      size(size_t res, T const &i)meow::ObjArray< T >inline
      size(size_t res)meow::ObjArray< T >inline
      type() const meow::ObjArray< T >inlinevirtual
      typeBase()meow::ObjBaseinlinestatic
      write(FILE *f, bool bin, unsigned int fg) const meow::ObjArray< T >inlinevirtual
      ~ObjArray()meow::ObjArray< T >inline
      ~ObjBase()meow::ObjBaseinlinevirtual
      +
      + + + + + diff --git a/doc/html/classmeow_1_1ObjArray.html b/doc/html/classmeow_1_1ObjArray.html new file mode 100644 index 0000000..a99ff8e --- /dev/null +++ b/doc/html/classmeow_1_1ObjArray.html @@ -0,0 +1,886 @@ + + + + + + + +Templates -- Meow: meow::ObjArray< T > Class Template Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      meow::ObjArray< T > Class Template Reference
      +
      +
      + +

      純粹把 std::vector 包起來, 變成繼承自 ObjBase + More...

      + +

      #include "ObjArray.h"

      +
      +Inheritance diagram for meow::ObjArray< T >:
      +
      +
      + + +meow::ObjBase + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      +Public Member Functions

       ObjArray ()
       
       ObjArray (ObjArray const &a)
       
       ObjArray (std::vector< T > const &a)
       
       ObjArray (size_t sz, T const &e)
       
       ~ObjArray ()
       
      ObjArraycopyFrom (ObjArray const &a)
       
      ObjArrayreferenceFrom (ObjArray const &a)
       
      size_t size () const
       
      bool empty () const
       
      size_t size (size_t res, T const &i)
       
      size_t size (size_t res)
       
      void clear ()
       
      T const & entry (size_t i) const
       
      T const & entry (size_t i, T const &e)
       
      T const & putBack (T const &e)
       
      bool popBack ()
       
      ObjArrayoperator= (ObjArray const &a)
       
      T const & operator[] (size_t i) const
       
      T & operator[] (size_t i)
       
      bool write (FILE *f, bool bin, unsigned int fg) const
       
      bool read (FILE *f, bool bin, unsigned int fg)
       
      ObjBasecreate () const
       
      ObjBasecopyFrom (ObjBase const *b)
       
      char const * ctype () const
       
      std::string type () const
       
      - Public Member Functions inherited from meow::ObjBase
      virtual ~ObjBase ()
       
      + + + + + + + + + +

      +Additional Inherited Members

      - Static Public Member Functions inherited from meow::ObjBase
      static char const * ctypeBase ()
       
      static std::string typeBase ()
       
      - Protected Member Functions inherited from meow::ObjBase
       ObjBase ()
       
      +

      Detailed Description

      +

      template<class T>
      +class meow::ObjArray< T >

      + +

      純粹把 std::vector 包起來, 變成繼承自 ObjBase

      +
      Author
      cathook
      +

      Constructor & Destructor Documentation

      + +
      +
      +
      +template<class T >
      + + + + + +
      + + + + + + + +
      meow::ObjArray< T >::ObjArray ()
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class T >
      + + + + + +
      + + + + + + + + +
      meow::ObjArray< T >::ObjArray (ObjArray< T > const & a)
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class T >
      + + + + + +
      + + + + + + + + +
      meow::ObjArray< T >::ObjArray (std::vector< T > const & a)
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class T >
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      meow::ObjArray< T >::ObjArray (size_t sz,
      T const & e 
      )
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class T >
      + + + + + +
      + + + + + + + +
      meow::ObjArray< T >::~ObjArray ()
      +
      +inline
      +
      + +
      +
      +

      Member Function Documentation

      + +
      +
      +
      +template<class T >
      + + + + + +
      + + + + + + + +
      void meow::ObjArray< T >::clear ()
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class T >
      + + + + + +
      + + + + + + + + +
      ObjArray& meow::ObjArray< T >::copyFrom (ObjArray< T > const & a)
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class T >
      + + + + + +
      + + + + + + + + +
      ObjBase* meow::ObjArray< T >::copyFrom (ObjBase const * b)
      +
      +inlinevirtual
      +
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<class T >
      + + + + + +
      + + + + + + + +
      ObjBase* meow::ObjArray< T >::create () const
      +
      +inlinevirtual
      +
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<class T >
      + + + + + +
      + + + + + + + +
      char const* meow::ObjArray< T >::ctype () const
      +
      +inlinevirtual
      +
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<class T >
      + + + + + +
      + + + + + + + +
      bool meow::ObjArray< T >::empty () const
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class T >
      + + + + + +
      + + + + + + + + +
      T const& meow::ObjArray< T >::entry (size_t i) const
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class T >
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      T const& meow::ObjArray< T >::entry (size_t i,
      T const & e 
      )
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class T >
      + + + + + +
      + + + + + + + + +
      ObjArray& meow::ObjArray< T >::operator= (ObjArray< T > const & a)
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class T >
      + + + + + +
      + + + + + + + + +
      T const& meow::ObjArray< T >::operator[] (size_t i) const
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class T >
      + + + + + +
      + + + + + + + + +
      T& meow::ObjArray< T >::operator[] (size_t i)
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class T >
      + + + + + +
      + + + + + + + +
      bool meow::ObjArray< T >::popBack ()
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class T >
      + + + + + +
      + + + + + + + + +
      T const& meow::ObjArray< T >::putBack (T const & e)
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class T >
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      bool meow::ObjArray< T >::read (FILE * f,
      bool bin,
      unsigned int fg 
      )
      +
      +inlinevirtual
      +
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<class T >
      + + + + + +
      + + + + + + + + +
      ObjArray& meow::ObjArray< T >::referenceFrom (ObjArray< T > const & a)
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class T >
      + + + + + +
      + + + + + + + +
      size_t meow::ObjArray< T >::size () const
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class T >
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      size_t meow::ObjArray< T >::size (size_t res,
      T const & i 
      )
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class T >
      + + + + + +
      + + + + + + + + +
      size_t meow::ObjArray< T >::size (size_t res)
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class T >
      + + + + + +
      + + + + + + + +
      std::string meow::ObjArray< T >::type () const
      +
      +inlinevirtual
      +
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<class T >
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      bool meow::ObjArray< T >::write (FILE * f,
      bool bin,
      unsigned int fg 
      ) const
      +
      +inlinevirtual
      +
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      +
      The documentation for this class was generated from the following file: +
      +
      + + + + + diff --git a/doc/html/classmeow_1_1ObjArray.js b/doc/html/classmeow_1_1ObjArray.js new file mode 100644 index 0000000..a8e772f --- /dev/null +++ b/doc/html/classmeow_1_1ObjArray.js @@ -0,0 +1,28 @@ +var classmeow_1_1ObjArray = +[ + [ "ObjArray", "classmeow_1_1ObjArray.html#adf6b1b267475a6a25a03317943e4a3cf", null ], + [ "ObjArray", "classmeow_1_1ObjArray.html#a277d2ef80a4a62815253e57a91b3ed6f", null ], + [ "ObjArray", "classmeow_1_1ObjArray.html#a5a9fa3cf06aab931c3248be58c3f1c14", null ], + [ "ObjArray", "classmeow_1_1ObjArray.html#a387a45e9231e39b68790881125122768", null ], + [ "~ObjArray", "classmeow_1_1ObjArray.html#a730a953292ddeb0a03958f00087da129", null ], + [ "clear", "classmeow_1_1ObjArray.html#adaa534a1d808e8064b6cd073fedf1e73", null ], + [ "copyFrom", "classmeow_1_1ObjArray.html#a8886e87d000181823e3532791e6a8288", null ], + [ "copyFrom", "classmeow_1_1ObjArray.html#a339fcf38102846e361db6aa1e896c044", null ], + [ "create", "classmeow_1_1ObjArray.html#a35d6363d1432059e3dd7c3c43ca006ae", null ], + [ "ctype", "classmeow_1_1ObjArray.html#a8be408ac8b9b6515fc55dfecd418ceb5", null ], + [ "empty", "classmeow_1_1ObjArray.html#a0cf27c92cf52d3f125a0e01e6b62bce0", null ], + [ "entry", "classmeow_1_1ObjArray.html#a83d175206d5bae2542a818200dd64c9b", null ], + [ "entry", "classmeow_1_1ObjArray.html#a56b6b9b5e415c084ece7f0c214f0e8f0", null ], + [ "operator=", "classmeow_1_1ObjArray.html#a3b0c22ea4f9538279794ce866013a2cf", null ], + [ "operator[]", "classmeow_1_1ObjArray.html#a1b6cb50da01769067bafcb85c2a5104f", null ], + [ "operator[]", "classmeow_1_1ObjArray.html#aa9e6268b6d7ea3c7b53101a7a175e360", null ], + [ "popBack", "classmeow_1_1ObjArray.html#a5196b0d1ae35ce86857d88810cc0933f", null ], + [ "putBack", "classmeow_1_1ObjArray.html#affe4f74887e9c81f1e01b4bd1a4e0e28", null ], + [ "read", "classmeow_1_1ObjArray.html#a3bc18d106d33e0a2f00f6e9ebf443b74", null ], + [ "referenceFrom", "classmeow_1_1ObjArray.html#aa09ddb0d17ebb93520b211dc29ad2904", null ], + [ "size", "classmeow_1_1ObjArray.html#ad1acc646bf175e7797a1205c89240a01", null ], + [ "size", "classmeow_1_1ObjArray.html#ab77633d00d8e75f1e6dd548c07d780fe", null ], + [ "size", "classmeow_1_1ObjArray.html#af6c846ed0992c4f1e0a765a6d3549628", null ], + [ "type", "classmeow_1_1ObjArray.html#a8fe5956bfb52c17632b00338c7da5d5c", null ], + [ "write", "classmeow_1_1ObjArray.html#a089627fcba2e80760993e3aff1705a70", null ] +]; \ No newline at end of file diff --git a/doc/html/classmeow_1_1ObjArray.png b/doc/html/classmeow_1_1ObjArray.png new file mode 100644 index 0000000..0e39eae Binary files /dev/null and b/doc/html/classmeow_1_1ObjArray.png differ diff --git a/doc/html/classmeow_1_1ObjBase-members.html b/doc/html/classmeow_1_1ObjBase-members.html new file mode 100644 index 0000000..9093d53 --- /dev/null +++ b/doc/html/classmeow_1_1ObjBase-members.html @@ -0,0 +1,86 @@ + + + + + + + +Templates -- Meow: Member List + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      meow::ObjBase Member List
      +
      +
      + +

      This is the complete list of members for meow::ObjBase, including all inherited members.

      + + + + + + + + + + + +
      copyFrom(ObjBase const *b)meow::ObjBaseinlinevirtual
      create() const meow::ObjBaseinlinevirtual
      ctype() const meow::ObjBaseinlinevirtual
      ctypeBase()meow::ObjBaseinlinestatic
      ObjBase()meow::ObjBaseinlineprotected
      read(FILE *f, bool bin, unsigned int fg)meow::ObjBaseinlinevirtual
      type() const meow::ObjBaseinlinevirtual
      typeBase()meow::ObjBaseinlinestatic
      write(FILE *f, bool bin, unsigned int fg) const meow::ObjBaseinlinevirtual
      ~ObjBase()meow::ObjBaseinlinevirtual
      +
      + + + + + diff --git a/doc/html/classmeow_1_1ObjBase.html b/doc/html/classmeow_1_1ObjBase.html new file mode 100644 index 0000000..eb81e92 --- /dev/null +++ b/doc/html/classmeow_1_1ObjBase.html @@ -0,0 +1,421 @@ + + + + + + + +Templates -- Meow: meow::ObjBase Class Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      + +
      + +

      一切物件的Base, 並要求每個物件都要有read, write, create, ... 等功能 + More...

      + +

      #include "ObjBase.h"

      +
      +Inheritance diagram for meow::ObjBase:
      +
      +
      + + +meow::IdentityPoints< int, double > +meow::Bitmap< Pixel > +meow::Camera< Pixel > +meow::FeaturePoint< Scalar, Description > +meow::FeaturePointsDetector< Pixel > +meow::FeaturePointsMatch< Scalar, Description > +meow::IdentityPoints< ID, Scalar > +meow::ObjArray< T > +meow::ObjDictionary< Key, Value > +meow::ObjProperties< SID > +meow::ObjType< Type, ReaderWriter > +meow::Photo< Pixel > +meow::ViewPort +meow::WatchBall< Pixel > + +
      + + + + + + + + + + + + + + + + +

      +Public Member Functions

      virtual ~ObjBase ()
       
      virtual bool write (FILE *f, bool bin, unsigned int fg) const
       
      virtual bool read (FILE *f, bool bin, unsigned int fg)
       
      virtual ObjBasecreate () const
       
      virtual ObjBasecopyFrom (ObjBase const *b)
       
      virtual char const * ctype () const
       
      virtual std::string type () const
       
      + + + + + +

      +Static Public Member Functions

      static char const * ctypeBase ()
       
      static std::string typeBase ()
       
      + + + +

      +Protected Member Functions

       ObjBase ()
       
      +

      Detailed Description

      +

      一切物件的Base, 並要求每個物件都要有read, write, create, ... 等功能

      +
      Author
      cathook
      +

      Constructor & Destructor Documentation

      + +
      +
      + + + + + +
      + + + + + + + +
      meow::ObjBase::ObjBase ()
      +
      +inlineprotected
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      virtual meow::ObjBase::~ObjBase ()
      +
      +inlinevirtual
      +
      + +
      +
      +

      Member Function Documentation

      + + + + + + + +
      +
      + + + + + +
      + + + + + + + +
      static char const* meow::ObjBase::ctypeBase ()
      +
      +inlinestatic
      +
      + +
      +
      + + + + + +
      +
      + + + + + +
      + + + + + + + +
      static std::string meow::ObjBase::typeBase ()
      +
      +inlinestatic
      +
      + +
      +
      + + +
      The documentation for this class was generated from the following file: +
      +
      + + + + + diff --git a/doc/html/classmeow_1_1ObjBase.js b/doc/html/classmeow_1_1ObjBase.js new file mode 100644 index 0000000..4c3618d --- /dev/null +++ b/doc/html/classmeow_1_1ObjBase.js @@ -0,0 +1,13 @@ +var classmeow_1_1ObjBase = +[ + [ "ObjBase", "classmeow_1_1ObjBase.html#abe7a7138b5a81eb66da51b74bc3996ff", null ], + [ "~ObjBase", "classmeow_1_1ObjBase.html#a0ae0da4160bf2556411b4c126c649234", null ], + [ "copyFrom", "classmeow_1_1ObjBase.html#a79725f50866832762db87184eb528619", null ], + [ "create", "classmeow_1_1ObjBase.html#ac9114e6917bca03b8f3c89694214b57c", null ], + [ "ctype", "classmeow_1_1ObjBase.html#a4aae58e8005739abe6d091d8b55a21e8", null ], + [ "ctypeBase", "classmeow_1_1ObjBase.html#ab42310e3f3a7cd558dd91381c8dd23d8", null ], + [ "read", "classmeow_1_1ObjBase.html#a4c1f5cb4b05559197148a8f6524bfc34", null ], + [ "type", "classmeow_1_1ObjBase.html#a63a4911bb073281820fe9b7a9908ba72", null ], + [ "typeBase", "classmeow_1_1ObjBase.html#a75dce38f89ce11cb06e0454e7c1039d3", null ], + [ "write", "classmeow_1_1ObjBase.html#ae9e9e5c664b7a92e54a3616983f39ba8", null ] +]; \ No newline at end of file diff --git a/doc/html/classmeow_1_1ObjBase.png b/doc/html/classmeow_1_1ObjBase.png new file mode 100644 index 0000000..b4e0e6d Binary files /dev/null and b/doc/html/classmeow_1_1ObjBase.png differ diff --git a/doc/html/classmeow_1_1ObjDictionary-members.html b/doc/html/classmeow_1_1ObjDictionary-members.html new file mode 100644 index 0000000..c83681c --- /dev/null +++ b/doc/html/classmeow_1_1ObjDictionary-members.html @@ -0,0 +1,103 @@ + + + + + + + +Templates -- Meow: Member List + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      meow::ObjDictionary< Key, Value > Member List
      +
      +
      + +

      This is the complete list of members for meow::ObjDictionary< Key, Value >, including all inherited members.

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      clear()meow::ObjDictionary< Key, Value >inline
      copyFrom(ObjDictionary const &d)meow::ObjDictionary< Key, Value >inline
      copyFrom(ObjBase const *b)meow::ObjDictionary< Key, Value >inlinevirtual
      create() const meow::ObjDictionary< Key, Value >inlinevirtual
      ctype() const meow::ObjDictionary< Key, Value >inlinevirtual
      ctypeBase()meow::ObjBaseinlinestatic
      empty() const meow::ObjDictionary< Key, Value >inline
      end() const meow::ObjDictionary< Key, Value >inline
      end()meow::ObjDictionary< Key, Value >inline
      exist(Key const &k) const meow::ObjDictionary< Key, Value >inline
      find(Key const &k) const meow::ObjDictionary< Key, Value >inline
      find(Key const &k)meow::ObjDictionary< Key, Value >inline
      insert(Key const &k, Value const &v)meow::ObjDictionary< Key, Value >inline
      ObjBase()meow::ObjBaseinlineprotected
      ObjDictionary()meow::ObjDictionary< Key, Value >inline
      ObjDictionary(ObjDictionary const &d)meow::ObjDictionary< Key, Value >inline
      ObjDictionary(std::map< Key, Value > const &d)meow::ObjDictionary< Key, Value >inline
      operator=(ObjDictionary const &a)meow::ObjDictionary< Key, Value >inline
      operator[](Key const &k)meow::ObjDictionary< Key, Value >inline
      read(FILE *f, bool bin, unsigned int fg)meow::ObjDictionary< Key, Value >inlinevirtual
      referenceFrom(ObjDictionary const &d)meow::ObjDictionary< Key, Value >inline
      size() const meow::ObjDictionary< Key, Value >inline
      type() const meow::ObjDictionary< Key, Value >inlinevirtual
      typeBase()meow::ObjBaseinlinestatic
      write(FILE *f, bool bin, unsigned int fg) const meow::ObjDictionary< Key, Value >inlinevirtual
      ~ObjBase()meow::ObjBaseinlinevirtual
      ~ObjDictionary()meow::ObjDictionary< Key, Value >inline
      +
      + + + + + diff --git a/doc/html/classmeow_1_1ObjDictionary.html b/doc/html/classmeow_1_1ObjDictionary.html new file mode 100644 index 0000000..c201779 --- /dev/null +++ b/doc/html/classmeow_1_1ObjDictionary.html @@ -0,0 +1,811 @@ + + + + + + + +Templates -- Meow: meow::ObjDictionary< Key, Value > Class Template Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      meow::ObjDictionary< Key, Value > Class Template Reference
      +
      +
      + +

      純粹把 std::map 包起來, 變成繼承自 ObjBase + More...

      + +

      #include "ObjDictionary.h"

      +
      +Inheritance diagram for meow::ObjDictionary< Key, Value >:
      +
      +
      + + +meow::ObjBase + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      +Public Member Functions

       ObjDictionary ()
       
       ObjDictionary (ObjDictionary const &d)
       
       ObjDictionary (std::map< Key, Value > const &d)
       
       ~ObjDictionary ()
       
      ObjDictionarycopyFrom (ObjDictionary const &d)
       
      ObjDictionaryreferenceFrom (ObjDictionary const &d)
       
      size_t size () const
       
      bool empty () const
       
      void clear ()
       
      std::map< Key, Value >
      +::const_iterator 
      end () const
       
      std::map< Key, Value >::iterator end ()
       
      std::map< Key, Value >
      +::const_iterator 
      find (Key const &k) const
       
      std::map< Key, Value >::iterator find (Key const &k)
       
      bool exist (Key const &k) const
       
      void insert (Key const &k, Value const &v)
       
      ObjDictionaryoperator= (ObjDictionary const &a)
       
      Value & operator[] (Key const &k)
       
      bool write (FILE *f, bool bin, unsigned int fg) const
       
      bool read (FILE *f, bool bin, unsigned int fg)
       
      ObjBasecreate () const
       
      ObjBasecopyFrom (ObjBase const *b)
       
      char const * ctype () const
       
      std::string type () const
       
      - Public Member Functions inherited from meow::ObjBase
      virtual ~ObjBase ()
       
      + + + + + + + + + +

      +Additional Inherited Members

      - Static Public Member Functions inherited from meow::ObjBase
      static char const * ctypeBase ()
       
      static std::string typeBase ()
       
      - Protected Member Functions inherited from meow::ObjBase
       ObjBase ()
       
      +

      Detailed Description

      +

      template<class Key, class Value>
      +class meow::ObjDictionary< Key, Value >

      + +

      純粹把 std::map 包起來, 變成繼承自 ObjBase

      +
      Author
      cathook
      +

      Constructor & Destructor Documentation

      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + +
      meow::ObjDictionary< Key, Value >::ObjDictionary ()
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + +
      meow::ObjDictionary< Key, Value >::ObjDictionary (ObjDictionary< Key, Value > const & d)
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + +
      meow::ObjDictionary< Key, Value >::ObjDictionary (std::map< Key, Value > const & d)
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + +
      meow::ObjDictionary< Key, Value >::~ObjDictionary ()
      +
      +inline
      +
      + +
      +
      +

      Member Function Documentation

      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + +
      void meow::ObjDictionary< Key, Value >::clear ()
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + +
      ObjDictionary& meow::ObjDictionary< Key, Value >::copyFrom (ObjDictionary< Key, Value > const & d)
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + +
      ObjBase* meow::ObjDictionary< Key, Value >::copyFrom (ObjBase const * b)
      +
      +inlinevirtual
      +
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + +
      ObjBase* meow::ObjDictionary< Key, Value >::create () const
      +
      +inlinevirtual
      +
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + +
      char const* meow::ObjDictionary< Key, Value >::ctype () const
      +
      +inlinevirtual
      +
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + +
      bool meow::ObjDictionary< Key, Value >::empty () const
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + +
      std::map<Key, Value>::const_iterator meow::ObjDictionary< Key, Value >::end () const
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + +
      std::map<Key, Value>::iterator meow::ObjDictionary< Key, Value >::end ()
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + +
      bool meow::ObjDictionary< Key, Value >::exist (Key const & k) const
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + +
      std::map<Key, Value>::const_iterator meow::ObjDictionary< Key, Value >::find (Key const & k) const
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + +
      std::map<Key, Value>::iterator meow::ObjDictionary< Key, Value >::find (Key const & k)
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      void meow::ObjDictionary< Key, Value >::insert (Key const & k,
      Value const & v 
      )
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + +
      ObjDictionary& meow::ObjDictionary< Key, Value >::operator= (ObjDictionary< Key, Value > const & a)
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + +
      Value& meow::ObjDictionary< Key, Value >::operator[] (Key const & k)
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      bool meow::ObjDictionary< Key, Value >::read (FILE * f,
      bool bin,
      unsigned int fg 
      )
      +
      +inlinevirtual
      +
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + +
      ObjDictionary& meow::ObjDictionary< Key, Value >::referenceFrom (ObjDictionary< Key, Value > const & d)
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + +
      size_t meow::ObjDictionary< Key, Value >::size () const
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + +
      std::string meow::ObjDictionary< Key, Value >::type () const
      +
      +inlinevirtual
      +
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      bool meow::ObjDictionary< Key, Value >::write (FILE * f,
      bool bin,
      unsigned int fg 
      ) const
      +
      +inlinevirtual
      +
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      +
      The documentation for this class was generated from the following file: +
      +
      + + + + + diff --git a/doc/html/classmeow_1_1ObjDictionary.js b/doc/html/classmeow_1_1ObjDictionary.js new file mode 100644 index 0000000..34cfd7e --- /dev/null +++ b/doc/html/classmeow_1_1ObjDictionary.js @@ -0,0 +1,26 @@ +var classmeow_1_1ObjDictionary = +[ + [ "ObjDictionary", "classmeow_1_1ObjDictionary.html#a1055d36aa3d4551def2abd9aa86b7662", null ], + [ "ObjDictionary", "classmeow_1_1ObjDictionary.html#ab29251c7ae6e13058912106075ebe161", null ], + [ "ObjDictionary", "classmeow_1_1ObjDictionary.html#a59cf39f8704134a64090ecb59fff01aa", null ], + [ "~ObjDictionary", "classmeow_1_1ObjDictionary.html#ab8eb8496153b57598e81e089eef89e08", null ], + [ "clear", "classmeow_1_1ObjDictionary.html#a081d3cf0d190e6dd02208c1c49653ed7", null ], + [ "copyFrom", "classmeow_1_1ObjDictionary.html#a7e50cbeeead963d95d661783ee2a9285", null ], + [ "copyFrom", "classmeow_1_1ObjDictionary.html#a8f2e32f6eb11904c2547fae0ff9ab3d6", null ], + [ "create", "classmeow_1_1ObjDictionary.html#a14ce0fcedf7619c0b442588e185a7eeb", null ], + [ "ctype", "classmeow_1_1ObjDictionary.html#aee3a1722f6061987a242b9b33e5fcc64", null ], + [ "empty", "classmeow_1_1ObjDictionary.html#afedaaaf1ed8b066a43d8e12081f6c878", null ], + [ "end", "classmeow_1_1ObjDictionary.html#ae5f44ae004be8f10a1c9f5e65eeebc75", null ], + [ "end", "classmeow_1_1ObjDictionary.html#aeb8765e90349daee27bcf9e6c2672676", null ], + [ "exist", "classmeow_1_1ObjDictionary.html#ae60f2a947516d6d6f037cc106c00d3be", null ], + [ "find", "classmeow_1_1ObjDictionary.html#a1979f646a23bffdd01a9fe52e5a8aca1", null ], + [ "find", "classmeow_1_1ObjDictionary.html#a8f73bbc1d934566dd8a2087b145e3f48", null ], + [ "insert", "classmeow_1_1ObjDictionary.html#a9784fbd0eaab219216abdcba4f326ead", null ], + [ "operator=", "classmeow_1_1ObjDictionary.html#a87b0f4542b07951f207a1c9d3e327c81", null ], + [ "operator[]", "classmeow_1_1ObjDictionary.html#ad22d7c7dc4d35417e9657eb88ca0dfbb", null ], + [ "read", "classmeow_1_1ObjDictionary.html#a0b1bd9fe09676aca74aec34bf5ea7137", null ], + [ "referenceFrom", "classmeow_1_1ObjDictionary.html#ab0a4c64950a5a89012a913202fac027b", null ], + [ "size", "classmeow_1_1ObjDictionary.html#a0e265133214bd6b9f0dce6ce6dc6ca23", null ], + [ "type", "classmeow_1_1ObjDictionary.html#af5114823fcc2476aa45a965e4af66d6c", null ], + [ "write", "classmeow_1_1ObjDictionary.html#a2393452e9533fab679565068545f109c", null ] +]; \ No newline at end of file diff --git a/doc/html/classmeow_1_1ObjDictionary.png b/doc/html/classmeow_1_1ObjDictionary.png new file mode 100644 index 0000000..d334e0e Binary files /dev/null and b/doc/html/classmeow_1_1ObjDictionary.png differ diff --git a/doc/html/classmeow_1_1ObjProperties-members.html b/doc/html/classmeow_1_1ObjProperties-members.html new file mode 100644 index 0000000..d5c79a4 --- /dev/null +++ b/doc/html/classmeow_1_1ObjProperties-members.html @@ -0,0 +1,98 @@ + + + + + + + +Templates -- Meow: Member List + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      meow::ObjProperties< SID > Member List
      +
      +
      + +

      This is the complete list of members for meow::ObjProperties< SID >, including all inherited members.

      + + + + + + + + + + + + + + + + + + + + + + + +
      copyFrom(ObjBase const *b)meow::ObjProperties< SID >virtual
      create() const meow::ObjProperties< SID >virtual
      ctype() const meow::ObjProperties< SID >virtual
      ctypeBase()meow::ObjBaseinlinestatic
      ObjBase()meow::ObjBaseinlineprotected
      ObjProperties()meow::ObjProperties< SID >
      ObjProperties(ObjProperties const &p)meow::ObjProperties< SID >
      properties() const meow::ObjProperties< SID >
      properties(ObjProperties const &p)meow::ObjProperties< SID >
      property(std::string name) const meow::ObjProperties< SID >
      property(std::string name)meow::ObjProperties< SID >
      propertyAdd(std::string name, ObjBase *obj, bool autoRemove)meow::ObjProperties< SID >
      propertyClear()meow::ObjProperties< SID >
      propertyDel(std::string name)meow::ObjProperties< SID >
      propertyEmpty() const meow::ObjProperties< SID >
      propertySize() const meow::ObjProperties< SID >
      read(FILE *f, bool bin, unsigned int fg)meow::ObjProperties< SID >virtual
      type() const meow::ObjProperties< SID >virtual
      typeBase()meow::ObjBaseinlinestatic
      write(FILE *f, bool bin, unsigned int fg) const meow::ObjProperties< SID >virtual
      ~ObjBase()meow::ObjBaseinlinevirtual
      ~ObjProperties()meow::ObjProperties< SID >virtual
      +
      + + + + + diff --git a/doc/html/classmeow_1_1ObjProperties.html b/doc/html/classmeow_1_1ObjProperties.html new file mode 100644 index 0000000..1027836 --- /dev/null +++ b/doc/html/classmeow_1_1ObjProperties.html @@ -0,0 +1,586 @@ + + + + + + + +Templates -- Meow: meow::ObjProperties< SID > Class Template Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      meow::ObjProperties< SID > Class Template Reference
      +
      +
      + +

      目前擺爛中 + More...

      + +

      #include "ObjProperties.h"

      +
      +Inheritance diagram for meow::ObjProperties< SID >:
      +
      +
      + + +meow::ObjBase + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      +Public Member Functions

       ObjProperties ()
       
       ObjProperties (ObjProperties const &p)
       
      virtual ~ObjProperties ()
       
      size_t propertySize () const
       
      bool propertyEmpty () const
       
      void propertyClear ()
       
      ObjBase const * property (std::string name) const
       
      ObjBaseproperty (std::string name)
       
      bool propertyAdd (std::string name, ObjBase *obj, bool autoRemove)
       
      bool propertyDel (std::string name)
       
      ObjPropertiesproperties () const
       
      ObjPropertiesproperties (ObjProperties const &p)
       
      bool write (FILE *f, bool bin, unsigned int fg) const
       
      bool read (FILE *f, bool bin, unsigned int fg)
       
      ObjBasecreate () const
       
      ObjBasecopyFrom (ObjBase const *b)
       
      char const * ctype () const
       
      std::string type () const
       
      - Public Member Functions inherited from meow::ObjBase
      virtual ~ObjBase ()
       
      + + + + + + + + + +

      +Additional Inherited Members

      - Static Public Member Functions inherited from meow::ObjBase
      static char const * ctypeBase ()
       
      static std::string typeBase ()
       
      - Protected Member Functions inherited from meow::ObjBase
       ObjBase ()
       
      +

      Detailed Description

      +

      template<size_t SID>
      +class meow::ObjProperties< SID >

      + +

      目前擺爛中

      +

      Constructor & Destructor Documentation

      + +
      +
      +
      +template<size_t SID>
      + + + + + + + +
      meow::ObjProperties< SID >::ObjProperties ()
      +
      + +
      +
      + +
      +
      +
      +template<size_t SID>
      + + + + + + + + +
      meow::ObjProperties< SID >::ObjProperties (ObjProperties< SID > const & p)
      +
      + +
      +
      + +
      +
      +
      +template<size_t SID>
      + + + + + +
      + + + + + + + +
      virtual meow::ObjProperties< SID >::~ObjProperties ()
      +
      +virtual
      +
      + +
      +
      +

      Member Function Documentation

      + +
      +
      +
      +template<size_t SID>
      + + + + + +
      + + + + + + + + +
      ObjBase* meow::ObjProperties< SID >::copyFrom (ObjBase const * b)
      +
      +virtual
      +
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<size_t SID>
      + + + + + +
      + + + + + + + +
      ObjBase* meow::ObjProperties< SID >::create () const
      +
      +virtual
      +
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<size_t SID>
      + + + + + +
      + + + + + + + +
      char const* meow::ObjProperties< SID >::ctype () const
      +
      +virtual
      +
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<size_t SID>
      + + + + + + + +
      ObjProperties& meow::ObjProperties< SID >::properties () const
      +
      + +
      +
      + +
      +
      +
      +template<size_t SID>
      + + + + + + + + +
      ObjProperties& meow::ObjProperties< SID >::properties (ObjProperties< SID > const & p)
      +
      + +
      +
      + +
      +
      +
      +template<size_t SID>
      + + + + + + + + +
      ObjBase const* meow::ObjProperties< SID >::property (std::string name) const
      +
      + +
      +
      + +
      +
      +
      +template<size_t SID>
      + + + + + + + + +
      ObjBase* meow::ObjProperties< SID >::property (std::string name)
      +
      + +
      +
      + +
      +
      +
      +template<size_t SID>
      + + + + + + + + + + + + + + + + + + + + + + + + +
      bool meow::ObjProperties< SID >::propertyAdd (std::string name,
      ObjBaseobj,
      bool autoRemove 
      )
      +
      + +
      +
      + +
      +
      +
      +template<size_t SID>
      + + + + + + + +
      void meow::ObjProperties< SID >::propertyClear ()
      +
      + +
      +
      + +
      +
      +
      +template<size_t SID>
      + + + + + + + + +
      bool meow::ObjProperties< SID >::propertyDel (std::string name)
      +
      + +
      +
      + +
      +
      +
      +template<size_t SID>
      + + + + + + + +
      bool meow::ObjProperties< SID >::propertyEmpty () const
      +
      + +
      +
      + +
      +
      +
      +template<size_t SID>
      + + + + + + + +
      size_t meow::ObjProperties< SID >::propertySize () const
      +
      + +
      +
      + +
      +
      +
      +template<size_t SID>
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      bool meow::ObjProperties< SID >::read (FILE * f,
      bool bin,
      unsigned int fg 
      )
      +
      +virtual
      +
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<size_t SID>
      + + + + + +
      + + + + + + + +
      std::string meow::ObjProperties< SID >::type () const
      +
      +virtual
      +
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<size_t SID>
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      bool meow::ObjProperties< SID >::write (FILE * f,
      bool bin,
      unsigned int fg 
      ) const
      +
      +virtual
      +
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      +
      The documentation for this class was generated from the following file: +
      +
      + + + + + diff --git a/doc/html/classmeow_1_1ObjProperties.js b/doc/html/classmeow_1_1ObjProperties.js new file mode 100644 index 0000000..3822097 --- /dev/null +++ b/doc/html/classmeow_1_1ObjProperties.js @@ -0,0 +1,21 @@ +var classmeow_1_1ObjProperties = +[ + [ "ObjProperties", "classmeow_1_1ObjProperties.html#af1c809c0b160e143ee4f73cd577bd2cb", null ], + [ "ObjProperties", "classmeow_1_1ObjProperties.html#a982de1e0030b8ef6479db01daf2bcb33", null ], + [ "~ObjProperties", "classmeow_1_1ObjProperties.html#a93f1d23981d318f743b1996a415e9cbb", null ], + [ "copyFrom", "classmeow_1_1ObjProperties.html#a4bc4f097d783426457a784a39266ba52", null ], + [ "create", "classmeow_1_1ObjProperties.html#a3345d121cc8a6b25baad2cbd80d23164", null ], + [ "ctype", "classmeow_1_1ObjProperties.html#a55ee94dd2d564eaee8250ed517b6779a", null ], + [ "properties", "classmeow_1_1ObjProperties.html#a43ce997788ca81603e881a22285fd307", null ], + [ "properties", "classmeow_1_1ObjProperties.html#af14e8afbd6807b61429d4f84291d6cee", null ], + [ "property", "classmeow_1_1ObjProperties.html#a40323f6710fe3688574555eedaf2adc9", null ], + [ "property", "classmeow_1_1ObjProperties.html#af20d23e32a6658bb19685540c65c6a3a", null ], + [ "propertyAdd", "classmeow_1_1ObjProperties.html#a5614e7f6a939da5376e83a1e75e215c5", null ], + [ "propertyClear", "classmeow_1_1ObjProperties.html#a183b80a7d63a01c23b0c0af5708b336f", null ], + [ "propertyDel", "classmeow_1_1ObjProperties.html#aec0a1bc70d7cf33b54a1c951d5cdab23", null ], + [ "propertyEmpty", "classmeow_1_1ObjProperties.html#aad531291ff299d99ce081afaefbd94b3", null ], + [ "propertySize", "classmeow_1_1ObjProperties.html#a7d36338144c15d56ab8f2a52a54a47cf", null ], + [ "read", "classmeow_1_1ObjProperties.html#a4d7d0978d10735798e76e707ee9faa5a", null ], + [ "type", "classmeow_1_1ObjProperties.html#a6283d69f9c6430c3b2601d7f0267bb84", null ], + [ "write", "classmeow_1_1ObjProperties.html#a7ebb7d21a575adbf9cbed10db807c6b6", null ] +]; \ No newline at end of file diff --git a/doc/html/classmeow_1_1ObjProperties.png b/doc/html/classmeow_1_1ObjProperties.png new file mode 100644 index 0000000..c16df76 Binary files /dev/null and b/doc/html/classmeow_1_1ObjProperties.png differ diff --git a/doc/html/classmeow_1_1ObjSelector-members.html b/doc/html/classmeow_1_1ObjSelector-members.html new file mode 100644 index 0000000..8c2f946 --- /dev/null +++ b/doc/html/classmeow_1_1ObjSelector-members.html @@ -0,0 +1,90 @@ + + + + + + + +Templates -- Meow: Member List + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      meow::ObjSelector< id > Member List
      +
      +
      + +

      This is the complete list of members for meow::ObjSelector< id >, including all inherited members.

      + + + + + + + + + + + + + + + +
      add(std::string name, ObjBase *obj, bool autoDelete)meow::ObjSelector< id >inlinestatic
      add(ObjBase *obj, bool autoDelete)meow::ObjSelector< id >inlinestatic
      create(std::string name)meow::ObjSelector< id >inlinestatic
      del(std::string name)meow::ObjSelector< id >inlinestatic
      exist(ObjBase *obj)meow::ObjSelector< id >inlinestatic
      get(std::string name)meow::ObjSelector< id >inlinestatic
      Infomeow::ObjSelector< id >friend
      name(ObjBase *obj)meow::ObjSelector< id >inlinestatic
      names()meow::ObjSelector< id >inlinestatic
      ObjSelector(std::string name, ObjBase *obj, bool autoDelete)meow::ObjSelector< id >inline
      ObjSelector(ObjBase *obj, bool autoDelete)meow::ObjSelector< id >inline
      read(FILE *f, bool binary)meow::ObjSelector< id >inlinestatic
      write(FILE *f, bool binary, ObjBase *obj, unsigned int fg)meow::ObjSelector< id >inlinestatic
      ~ObjSelector()meow::ObjSelector< id >inline
      +
      + + + + + diff --git a/doc/html/classmeow_1_1ObjSelector.html b/doc/html/classmeow_1_1ObjSelector.html new file mode 100644 index 0000000..a10e991 --- /dev/null +++ b/doc/html/classmeow_1_1ObjSelector.html @@ -0,0 +1,616 @@ + + + + + + + +Templates -- Meow: meow::ObjSelector< id > Class Template Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      meow::ObjSelector< id > Class Template Reference
      +
      +
      + +

      利用register的概念, 達到runtime用string選擇要new的class + More...

      + +

      #include "ObjSelector.h"

      + + + + + + + + + + + +

      +Public Member Functions

       ObjSelector (std::string name, ObjBase *obj, bool autoDelete)
       宣告一個ObjSelector實體, 並且註冊一個 ObjBase More...
       
       ObjSelector (ObjBase *obj, bool autoDelete)
       宣告一個ObjSelector實體, 並且註冊一個 ObjBase More...
       
       ~ObjSelector ()
       解構子 More...
       
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      +Static Public Member Functions

      static void add (std::string name, ObjBase *obj, bool autoDelete)
       新增(註冊) 一個Class (必須要繼承自 ObjBase) 並且給定其Name More...
       
      static void add (ObjBase *obj, bool autoDelete)
       新增(註冊) 一個Class (必須要繼承自 ObjBase) 並且默認type為name More...
       
      static void del (std::string name)
       依照name刪除之前註冊過得Class More...
       
      static ObjBase const * get (std::string name)
       取得之前註冊過得Class More...
       
      static ObjBasecreate (std::string name)
       回傳一個之前註冊過得Class new出來的實體 More...
       
      static bool exist (ObjBase *obj)
       利用type檢查是否有註冊過同種類的Class More...
       
      static std::string name (ObjBase *obj)
       利用type尋找name More...
       
      static std::vector< std::string > names ()
       回傳所有註冊過的name More...
       
      static bool write (FILE *f, bool binary, ObjBase *obj, unsigned int fg)
       將一個物件寫到檔案裡(該物件必須要有註冊過) More...
       
      static ObjBaseread (FILE *f, bool binary)
       從檔案中讀取一個物件(該物件必須要有註冊過) More...
       
      + + + +

      +Friends

      struct Info
       
      +

      Detailed Description

      +

      template<size_t id>
      +class meow::ObjSelector< id >

      + +

      利用register的概念, 達到runtime用string選擇要new的class

      +
      Author
      cathook< 讓程式可以有不只一個 ObjSelector
      +

      Constructor & Destructor Documentation

      + +
      +
      +
      +template<size_t id>
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      meow::ObjSelector< id >::ObjSelector (std::string name,
      ObjBaseobj,
      bool autoDelete 
      )
      +
      +inline
      +
      + +

      宣告一個ObjSelector實體, 並且註冊一個 ObjBase

      + +
      +
      + +
      +
      +
      +template<size_t id>
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      meow::ObjSelector< id >::ObjSelector (ObjBaseobj,
      bool autoDelete 
      )
      +
      +inline
      +
      + +

      宣告一個ObjSelector實體, 並且註冊一個 ObjBase

      + +
      +
      + +
      +
      +
      +template<size_t id>
      + + + + + +
      + + + + + + + +
      meow::ObjSelector< id >::~ObjSelector ()
      +
      +inline
      +
      + +

      解構子

      + +
      +
      +

      Member Function Documentation

      + +
      +
      +
      +template<size_t id>
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      static void meow::ObjSelector< id >::add (std::string name,
      ObjBaseobj,
      bool autoDelete 
      )
      +
      +inlinestatic
      +
      + +

      新增(註冊) 一個Class (必須要繼承自 ObjBase) 並且給定其Name

      + +
      +
      + +
      +
      +
      +template<size_t id>
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      static void meow::ObjSelector< id >::add (ObjBaseobj,
      bool autoDelete 
      )
      +
      +inlinestatic
      +
      + +

      新增(註冊) 一個Class (必須要繼承自 ObjBase) 並且默認type為name

      + +
      +
      + +
      +
      +
      +template<size_t id>
      + + + + + +
      + + + + + + + + +
      static ObjBase* meow::ObjSelector< id >::create (std::string name)
      +
      +inlinestatic
      +
      + +

      回傳一個之前註冊過得Class new出來的實體

      + +
      +
      + +
      +
      +
      +template<size_t id>
      + + + + + +
      + + + + + + + + +
      static void meow::ObjSelector< id >::del (std::string name)
      +
      +inlinestatic
      +
      + +

      依照name刪除之前註冊過得Class

      + +
      +
      + +
      +
      +
      +template<size_t id>
      + + + + + +
      + + + + + + + + +
      static bool meow::ObjSelector< id >::exist (ObjBaseobj)
      +
      +inlinestatic
      +
      + +

      利用type檢查是否有註冊過同種類的Class

      + +
      +
      + +
      +
      +
      +template<size_t id>
      + + + + + +
      + + + + + + + + +
      static ObjBase const* meow::ObjSelector< id >::get (std::string name)
      +
      +inlinestatic
      +
      + +

      取得之前註冊過得Class

      + +
      +
      + +
      +
      +
      +template<size_t id>
      + + + + + +
      + + + + + + + + +
      static std::string meow::ObjSelector< id >::name (ObjBaseobj)
      +
      +inlinestatic
      +
      + +

      利用type尋找name

      + +
      +
      + +
      +
      +
      +template<size_t id>
      + + + + + +
      + + + + + + + +
      static std::vector<std::string> meow::ObjSelector< id >::names ()
      +
      +inlinestatic
      +
      + +

      回傳所有註冊過的name

      + +
      +
      + +
      +
      +
      +template<size_t id>
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      static ObjBase* meow::ObjSelector< id >::read (FILE * f,
      bool binary 
      )
      +
      +inlinestatic
      +
      + +

      從檔案中讀取一個物件(該物件必須要有註冊過)

      + +
      +
      + +
      +
      +
      +template<size_t id>
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      static bool meow::ObjSelector< id >::write (FILE * f,
      bool binary,
      ObjBaseobj,
      unsigned int fg 
      )
      +
      +inlinestatic
      +
      + +

      將一個物件寫到檔案裡(該物件必須要有註冊過)

      + +
      +
      +

      Friends And Related Function Documentation

      + +
      +
      +
      +template<size_t id>
      + + + + + +
      + + + + +
      friend struct Info
      +
      +friend
      +
      + +
      +
      +
      The documentation for this class was generated from the following file: +
      +
      + + + + + diff --git a/doc/html/classmeow_1_1ObjSelector.js b/doc/html/classmeow_1_1ObjSelector.js new file mode 100644 index 0000000..e0666de --- /dev/null +++ b/doc/html/classmeow_1_1ObjSelector.js @@ -0,0 +1,17 @@ +var classmeow_1_1ObjSelector = +[ + [ "ObjSelector", "classmeow_1_1ObjSelector.html#afefd56114a54ec164f0264d83394fc21", null ], + [ "ObjSelector", "classmeow_1_1ObjSelector.html#a7f798e7243aa2e93d2458dfc7f6d3308", null ], + [ "~ObjSelector", "classmeow_1_1ObjSelector.html#aa5d9c625910c4ece0cba7944885d39c2", null ], + [ "add", "classmeow_1_1ObjSelector.html#a0401a1941829c1b82ebce545d00a996d", null ], + [ "add", "classmeow_1_1ObjSelector.html#af1479fc3260f2600d76bc018a9a36019", null ], + [ "create", "classmeow_1_1ObjSelector.html#a498c46995c8f9050b3b069b95d10c5cb", null ], + [ "del", "classmeow_1_1ObjSelector.html#a94ae819ddd031927466845c86ce35621", null ], + [ "exist", "classmeow_1_1ObjSelector.html#a8febbd488ce1cf37b075c0e42278d3d0", null ], + [ "get", "classmeow_1_1ObjSelector.html#a948d5e709bdeacb8648e8c7c243b0ff3", null ], + [ "name", "classmeow_1_1ObjSelector.html#a43786b9b4869a3bb115c852d09e474cb", null ], + [ "names", "classmeow_1_1ObjSelector.html#a12a464df440ff51da3f51a5c6731f958", null ], + [ "read", "classmeow_1_1ObjSelector.html#a757b4c75d87f958b64bb5cacbeb71dcb", null ], + [ "write", "classmeow_1_1ObjSelector.html#a85ff03287a5344d02b5cd67f89265ed8", null ], + [ "Info", "classmeow_1_1ObjSelector.html#af0a264c27d0d08af4b617d2e4675fda7", null ] +]; \ No newline at end of file diff --git a/doc/html/classmeow_1_1ObjType-members.html b/doc/html/classmeow_1_1ObjType-members.html new file mode 100644 index 0000000..a10acdb --- /dev/null +++ b/doc/html/classmeow_1_1ObjType-members.html @@ -0,0 +1,97 @@ + + + + + + + +Templates -- Meow: Member List + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      meow::ObjType< Type, ReaderWriter > Member List
      +
      +
      + +

      This is the complete list of members for meow::ObjType< Type, ReaderWriter >, including all inherited members.

      + + + + + + + + + + + + + + + + + + + + + + +
      access() const meow::ObjType< Type, ReaderWriter >inline
      copyFrom(ObjType const &a)meow::ObjType< Type, ReaderWriter >inline
      copyFrom(ObjBase const *b)meow::ObjType< Type, ReaderWriter >inlinevirtual
      create() const meow::ObjType< Type, ReaderWriter >inlinevirtual
      ctype() const meow::ObjType< Type, ReaderWriter >inlinevirtual
      ctypeBase()meow::ObjBaseinlinestatic
      modify()meow::ObjType< Type, ReaderWriter >inline
      ObjBase()meow::ObjBaseinlineprotected
      ObjType()meow::ObjType< Type, ReaderWriter >inline
      ObjType(ObjType const &a)meow::ObjType< Type, ReaderWriter >inline
      ObyType(Type const &t)meow::ObjType< Type, ReaderWriter >inline
      operator()() const meow::ObjType< Type, ReaderWriter >inline
      operator()()meow::ObjType< Type, ReaderWriter >inline
      operator=(ObjType const &a)meow::ObjType< Type, ReaderWriter >inline
      read(FILE *f, bool bin, unsigned int fg)meow::ObjType< Type, ReaderWriter >inlinevirtual
      referenceFrom(ObjType const &a)meow::ObjType< Type, ReaderWriter >inline
      type() const meow::ObjType< Type, ReaderWriter >inlinevirtual
      typeBase()meow::ObjBaseinlinestatic
      write(FILE *f, bool bin, unsigned int fg) const meow::ObjType< Type, ReaderWriter >inlinevirtual
      ~ObjBase()meow::ObjBaseinlinevirtual
      ~ObjType()meow::ObjType< Type, ReaderWriter >inline
      +
      + + + + + diff --git a/doc/html/classmeow_1_1ObjType.html b/doc/html/classmeow_1_1ObjType.html new file mode 100644 index 0000000..34409d4 --- /dev/null +++ b/doc/html/classmeow_1_1ObjType.html @@ -0,0 +1,641 @@ + + + + + + + +Templates -- Meow: meow::ObjType< Type, ReaderWriter > Class Template Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      meow::ObjType< Type, ReaderWriter > Class Template Reference
      +
      +
      + +

      純粹把給定的 Type 包起來, 變成繼承自 ObjBase + More...

      + +

      #include "ObjTypes.h"

      +
      +Inheritance diagram for meow::ObjType< Type, ReaderWriter >:
      +
      +
      + + +meow::ObjBase + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      +Public Member Functions

       ObjType ()
       constructor More...
       
       ObjType (ObjType const &a)
       constructor, 並且copy資料 More...
       
       ObyType (Type const &t)
       constructor, 並且給值 More...
       
       ~ObjType ()
       
      ObjTypecopyFrom (ObjType const &a)
       
      ObjTypereferenceFrom (ObjType const &a)
       
      Type const & access () const
       
      Type & modify ()
       
      ObjTypeoperator= (ObjType const &a)
       
      Type const & operator() () const
       
      Type & operator() ()
       
      bool write (FILE *f, bool bin, unsigned int fg) const
       
      bool read (FILE *f, bool bin, unsigned int fg)
       
      ObjBasecreate () const
       
      ObjBasecopyFrom (ObjBase const *b)
       
      char const * ctype () const
       
      std::string type () const
       
      - Public Member Functions inherited from meow::ObjBase
      virtual ~ObjBase ()
       
      + + + + + + + + + +

      +Additional Inherited Members

      - Static Public Member Functions inherited from meow::ObjBase
      static char const * ctypeBase ()
       
      static std::string typeBase ()
       
      - Protected Member Functions inherited from meow::ObjBase
       ObjBase ()
       
      +

      Detailed Description

      +

      template<class Type, class ReaderWriter>
      +class meow::ObjType< Type, ReaderWriter >

      + +

      純粹把給定的 Type 包起來, 變成繼承自 ObjBase

      +
      Author
      cathook
      +

      Constructor & Destructor Documentation

      + +
      +
      +
      +template<class Type , class ReaderWriter >
      + + + + + +
      + + + + + + + +
      meow::ObjType< Type, ReaderWriter >::ObjType ()
      +
      +inline
      +
      + +

      constructor

      + +
      +
      + +
      +
      +
      +template<class Type , class ReaderWriter >
      + + + + + +
      + + + + + + + + +
      meow::ObjType< Type, ReaderWriter >::ObjType (ObjType< Type, ReaderWriter > const & a)
      +
      +inline
      +
      + +

      constructor, 並且copy資料

      + +
      +
      + +
      +
      +
      +template<class Type , class ReaderWriter >
      + + + + + +
      + + + + + + + +
      meow::ObjType< Type, ReaderWriter >::~ObjType ()
      +
      +inline
      +
      + +
      +
      +

      Member Function Documentation

      + +
      +
      +
      +template<class Type , class ReaderWriter >
      + + + + + +
      + + + + + + + +
      Type const& meow::ObjType< Type, ReaderWriter >::access () const
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Type , class ReaderWriter >
      + + + + + +
      + + + + + + + + +
      ObjType& meow::ObjType< Type, ReaderWriter >::copyFrom (ObjType< Type, ReaderWriter > const & a)
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Type , class ReaderWriter >
      + + + + + +
      + + + + + + + + +
      ObjBase* meow::ObjType< Type, ReaderWriter >::copyFrom (ObjBase const * b)
      +
      +inlinevirtual
      +
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<class Type , class ReaderWriter >
      + + + + + +
      + + + + + + + +
      ObjBase* meow::ObjType< Type, ReaderWriter >::create () const
      +
      +inlinevirtual
      +
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<class Type , class ReaderWriter >
      + + + + + +
      + + + + + + + +
      char const* meow::ObjType< Type, ReaderWriter >::ctype () const
      +
      +inlinevirtual
      +
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<class Type , class ReaderWriter >
      + + + + + +
      + + + + + + + +
      Type& meow::ObjType< Type, ReaderWriter >::modify ()
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Type , class ReaderWriter >
      + + + + + +
      + + + + + + + + +
      meow::ObjType< Type, ReaderWriter >::ObyType (Type const & t)
      +
      +inline
      +
      + +

      constructor, 並且給值

      + +
      +
      + +
      +
      +
      +template<class Type , class ReaderWriter >
      + + + + + +
      + + + + + + + +
      Type const& meow::ObjType< Type, ReaderWriter >::operator() () const
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Type , class ReaderWriter >
      + + + + + +
      + + + + + + + +
      Type& meow::ObjType< Type, ReaderWriter >::operator() ()
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Type , class ReaderWriter >
      + + + + + +
      + + + + + + + + +
      ObjType& meow::ObjType< Type, ReaderWriter >::operator= (ObjType< Type, ReaderWriter > const & a)
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Type , class ReaderWriter >
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      bool meow::ObjType< Type, ReaderWriter >::read (FILE * f,
      bool bin,
      unsigned int fg 
      )
      +
      +inlinevirtual
      +
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<class Type , class ReaderWriter >
      + + + + + +
      + + + + + + + + +
      ObjType& meow::ObjType< Type, ReaderWriter >::referenceFrom (ObjType< Type, ReaderWriter > const & a)
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Type , class ReaderWriter >
      + + + + + +
      + + + + + + + +
      std::string meow::ObjType< Type, ReaderWriter >::type () const
      +
      +inlinevirtual
      +
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<class Type , class ReaderWriter >
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      bool meow::ObjType< Type, ReaderWriter >::write (FILE * f,
      bool bin,
      unsigned int fg 
      ) const
      +
      +inlinevirtual
      +
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      +
      The documentation for this class was generated from the following file: +
      +
      + + + + + diff --git a/doc/html/classmeow_1_1ObjType.js b/doc/html/classmeow_1_1ObjType.js new file mode 100644 index 0000000..bb4719c --- /dev/null +++ b/doc/html/classmeow_1_1ObjType.js @@ -0,0 +1,20 @@ +var classmeow_1_1ObjType = +[ + [ "ObjType", "classmeow_1_1ObjType.html#a6a625052a5579e4897a95e9ca6663136", null ], + [ "ObjType", "classmeow_1_1ObjType.html#a1b2ab2b0b31756ed1e1a011f6e50c993", null ], + [ "~ObjType", "classmeow_1_1ObjType.html#ac703cec17ecfe6869a016c0ff072918c", null ], + [ "access", "classmeow_1_1ObjType.html#ae086a8dc3e60528121e73a0ce80d2cc9", null ], + [ "copyFrom", "classmeow_1_1ObjType.html#a9deb0425763909a5b74aca7bd0c116f4", null ], + [ "copyFrom", "classmeow_1_1ObjType.html#a392c841c8012ebd9a62f514a74e4b535", null ], + [ "create", "classmeow_1_1ObjType.html#a19f8291125626675d15b4394283b8180", null ], + [ "ctype", "classmeow_1_1ObjType.html#ae7d34cb241aa7d74c9c52918c98dab49", null ], + [ "modify", "classmeow_1_1ObjType.html#a0eac1bd069ebdde20f422ef6a5ffb7cb", null ], + [ "ObyType", "classmeow_1_1ObjType.html#afd125762822efc8ff890479bac6fafe4", null ], + [ "operator()", "classmeow_1_1ObjType.html#a99d0180d4480c6fd46841e09c5519d8a", null ], + [ "operator()", "classmeow_1_1ObjType.html#afc34507295cf5bdbb1b5fd22c1c43f9a", null ], + [ "operator=", "classmeow_1_1ObjType.html#add76ed06952275dbb3c2ce0176cf0c7b", null ], + [ "read", "classmeow_1_1ObjType.html#a8ff33aabcb80ffc2d870b6ce73a6d4fe", null ], + [ "referenceFrom", "classmeow_1_1ObjType.html#a14617b585e4b852ab63321ad0af076e7", null ], + [ "type", "classmeow_1_1ObjType.html#afaa74a571889ea5281ab3de5636f7e0f", null ], + [ "write", "classmeow_1_1ObjType.html#af0adbddc5a4ef305c2637b6694355944", null ] +]; \ No newline at end of file diff --git a/doc/html/classmeow_1_1ObjType.png b/doc/html/classmeow_1_1ObjType.png new file mode 100644 index 0000000..9057e09 Binary files /dev/null and b/doc/html/classmeow_1_1ObjType.png differ diff --git a/doc/html/classmeow_1_1Photo-members.html b/doc/html/classmeow_1_1Photo-members.html new file mode 100644 index 0000000..caf01a3 --- /dev/null +++ b/doc/html/classmeow_1_1Photo-members.html @@ -0,0 +1,114 @@ + + + + + + + +Templates -- Meow: Member List + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      meow::Photo< Pixel > Member List
      +
      +
      + +

      This is the complete list of members for meow::Photo< Pixel >, including all inherited members.

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      bitmap() const meow::Photo< Pixel >inline
      bitmap(Bitmap< Pixel > const &bmp)meow::Photo< Pixel >inline
      bitmapGet()meow::Photo< Pixel >inline
      center() const meow::Photo< Pixel >inline
      center(Vector2D< double > const &c)meow::Photo< Pixel >inline
      centerGet()meow::Photo< Pixel >inline
      color(Vector2D< double > const &yx) const meow::Photo< Pixel >inline
      color(Vector3D< double > const &p) const meow::Photo< Pixel >inline
      copyFrom(Photo const &b)meow::Photo< Pixel >inline
      copyFrom(ObjBase const *b)meow::Photo< Pixel >inlinevirtual
      create() const meow::Photo< Pixel >inlinevirtual
      ctype() const meow::Photo< Pixel >inlinevirtual
      ctypeBase()meow::ObjBaseinlinestatic
      focal() const meow::Photo< Pixel >inline
      focal(double f)meow::Photo< Pixel >inline
      height() const meow::Photo< Pixel >inline
      inside(Vector2D< double > const &yx) const meow::Photo< Pixel >inline
      inside(Vector3D< double > const &p) const meow::Photo< Pixel >inline
      ObjBase()meow::ObjBaseinlineprotected
      operator=(Photo const &b)meow::Photo< Pixel >inline
      Photo()meow::Photo< Pixel >inline
      Photo(Photo const &b)meow::Photo< Pixel >inline
      Photo(Bitmap< Pixel > const &bmp)meow::Photo< Pixel >inline
      Photo(Bitmap< Pixel > const &bmp, double f)meow::Photo< Pixel >inline
      Photo(Bitmap< Pixel > const &bmp, double f, Vector2D< double > const &c)meow::Photo< Pixel >inline
      pixel(size_t y, size_t x) const meow::Photo< Pixel >inline
      pixel(size_t y, size_t x, Pixel const &p)meow::Photo< Pixel >inline
      read(FILE *f, bool bin, unsigned int fg)meow::Photo< Pixel >inlinevirtual
      referneceFrom(Photo const &b)meow::Photo< Pixel >inline
      reset(Bitmap< Pixel > const &bmp)meow::Photo< Pixel >inline
      reset(Bitmap< Pixel > const &bmp, double f)meow::Photo< Pixel >inline
      reset(Bitmap< Pixel > const &bmp, double f, Vector2D< double > const &c)meow::Photo< Pixel >inline
      type() const meow::Photo< Pixel >inlinevirtual
      typeBase()meow::ObjBaseinlinestatic
      width() const meow::Photo< Pixel >inline
      write(FILE *f, bool bin, unsigned int fg) const meow::Photo< Pixel >inlinevirtual
      ~ObjBase()meow::ObjBaseinlinevirtual
      ~Photo()meow::Photo< Pixel >inline
      +
      + + + + + diff --git a/doc/html/classmeow_1_1Photo.html b/doc/html/classmeow_1_1Photo.html new file mode 100644 index 0000000..3152887 --- /dev/null +++ b/doc/html/classmeow_1_1Photo.html @@ -0,0 +1,1421 @@ + + + + + + + +Templates -- Meow: meow::Photo< Pixel > Class Template Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      meow::Photo< Pixel > Class Template Reference
      +
      +
      + +

      底片 + More...

      + +

      #include "Photo.h"

      +
      +Inheritance diagram for meow::Photo< Pixel >:
      +
      +
      + + +meow::ObjBase + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      +Public Member Functions

       Photo ()
       constructor More...
       
       Photo (Photo const &b)
       constructor More...
       
       Photo (Bitmap< Pixel > const &bmp)
       constructor More...
       
       Photo (Bitmap< Pixel > const &bmp, double f)
       constructor More...
       
       Photo (Bitmap< Pixel > const &bmp, double f, Vector2D< double > const &c)
       constructor More...
       
       ~Photo ()
       destructor More...
       
      PhotocopyFrom (Photo const &b)
       複製資料 More...
       
      PhotoreferneceFrom (Photo const &b)
       參照 More...
       
      void reset (Bitmap< Pixel > const &bmp)
       重設bitmap, focal 用猜的 More...
       
      void reset (Bitmap< Pixel > const &bmp, double f)
       重設bitmap, focal More...
       
      void reset (Bitmap< Pixel > const &bmp, double f, Vector2D< double > const &c)
       重設bitmap, focal, center More...
       
      Bitmap< Pixel > const & bitmap () const
       回傳bitmap More...
       
      Bitmap< Pixel > & bitmapGet ()
       回傳bitmap 的參照(非constant) More...
       
      Bitmap< Pixel > const & bitmap (Bitmap< Pixel > const &bmp)
       設定bitmap More...
       
      double focal () const
       回傳focal length More...
       
      double focal (double f)
       設定 focal length More...
       
      Vector2D< double > const & center () const
       取得照片中心點底片座標 More...
       
      Vector2D< double > & centerGet ()
       取得照片中心點底片座標 (non-constant reference) More...
       
      Vector2D< double > const & center (Vector2D< double > const &c)
       設定照片中心點底片座標 More...
       
      size_t width () const
       回傳bitmap寬 More...
       
      size_t height () const
       回傳bitmap高 More...
       
      Pixel pixel (size_t y, size_t x) const
       回傳bitmap的某pixel More...
       
      Pixel pixel (size_t y, size_t x, Pixel const &p)
       設定某pixel More...
       
      bool inside (Vector2D< double > const &yx) const
       檢查某點是否在底片範圍內 More...
       
      bool inside (Vector3D< double > const &p) const
       檢查某點是否在底片範圍內 More...
       
      Pixel color (Vector2D< double > const &yx) const
       取得給照片座標中某點的色彩 More...
       
      Pixel color (Vector3D< double > const &p) const
       取得給照片座標中某點的色彩 More...
       
      Photooperator= (Photo const &b)
       same as .copyFrom(b) More...
       
      bool write (FILE *f, bool bin, unsigned int fg) const
       將資料寫入檔案 More...
       
      bool read (FILE *f, bool bin, unsigned int fg)
       將資料讀入 More...
       
      ObjBasecreate () const
       new一個自己 More...
       
      ObjBasecopyFrom (ObjBase const *b)
       複製資料 More...
       
      char const * ctype () const
       回傳class的type More...
       
      std::string type () const
       回傳class的type More...
       
      - Public Member Functions inherited from meow::ObjBase
      virtual ~ObjBase ()
       
      + + + + + + + + + +

      +Additional Inherited Members

      - Static Public Member Functions inherited from meow::ObjBase
      static char const * ctypeBase ()
       
      static std::string typeBase ()
       
      - Protected Member Functions inherited from meow::ObjBase
       ObjBase ()
       
      +

      Detailed Description

      +

      template<class Pixel>
      +class meow::Photo< Pixel >

      + +

      底片

      +

      基本上就是一個 Photo 加上 focal

      +
      Author
      cat_leopard
      +

      Constructor & Destructor Documentation

      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + +
      meow::Photo< Pixel >::Photo ()
      +
      +inline
      +
      + +

      constructor

      +

      focal 預設為 1

      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + +
      meow::Photo< Pixel >::Photo (Photo< Pixel > const & b)
      +
      +inline
      +
      + +

      constructor

      +

      複製資料

      +
      Parameters
      + + +
      [in]b資料來源
      +
      +
      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + +
      meow::Photo< Pixel >::Photo (Bitmap< Pixel > const & bmp)
      +
      +inline
      +
      + +

      constructor

      +

      直接給定圖片, 焦距用猜的

      +
      Parameters
      + + +
      [in]bmp給定的圖片
      +
      +
      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      meow::Photo< Pixel >::Photo (Bitmap< Pixel > const & bmp,
      double f 
      )
      +
      +inline
      +
      + +

      constructor

      +

      直接給定圖片與焦距

      +
      Parameters
      + + + +
      [in]bmp給定的圖片
      [in]f給定的焦距
      +
      +
      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      meow::Photo< Pixel >::Photo (Bitmap< Pixel > const & bmp,
      double f,
      Vector2D< double > const & c 
      )
      +
      +inline
      +
      + +

      constructor

      +

      直接給定圖片, 焦距與中心點位置

      +
      Parameters
      + + + + +
      [in]bmp給定的圖片
      [in]f給定的焦距
      [in]c中心點作標
      +
      +
      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + +
      meow::Photo< Pixel >::~Photo ()
      +
      +inline
      +
      + +

      destructor

      + +
      +
      +

      Member Function Documentation

      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + +
      Bitmap<Pixel> const& meow::Photo< Pixel >::bitmap () const
      +
      +inline
      +
      + +

      回傳bitmap

      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + +
      Bitmap<Pixel> const& meow::Photo< Pixel >::bitmap (Bitmap< Pixel > const & bmp)
      +
      +inline
      +
      + +

      設定bitmap

      +
      Parameters
      + + +
      [in]bmp新的 bitmap
      +
      +
      +
      Returns
      新的 bitmap
      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + +
      Bitmap<Pixel>& meow::Photo< Pixel >::bitmapGet ()
      +
      +inline
      +
      + +

      回傳bitmap 的參照(非constant)

      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + +
      Vector2D<double> const& meow::Photo< Pixel >::center () const
      +
      +inline
      +
      + +

      取得照片中心點底片座標

      +
      Returns
      一個二維vector
      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + +
      Vector2D<double> const& meow::Photo< Pixel >::center (Vector2D< double > const & c)
      +
      +inline
      +
      + +

      設定照片中心點底片座標

      +
      Parameters
      + + +
      [in]c新的座標
      +
      +
      +
      Returns
      新的座標
      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + +
      Vector2D<double>& meow::Photo< Pixel >::centerGet ()
      +
      +inline
      +
      + +

      取得照片中心點底片座標 (non-constant reference)

      +
      Returns
      一個二維vector
      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + +
      Pixel meow::Photo< Pixel >::color (Vector2D< double > const & yx) const
      +
      +inline
      +
      + +

      取得給照片座標中某點的色彩

      +

      用浮點數vector傳入, 所以色彩是經過渲染過的

      +
      Parameters
      + + +
      [in]yx底片座標(原點為center)
      +
      +
      +
      Returns
      pixel
      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + +
      Pixel meow::Photo< Pixel >::color (Vector3D< double > const & p) const
      +
      +inline
      +
      + +

      取得給照片座標中某點的色彩

      +

      這次是輸入大地座標

      +
      Parameters
      + + +
      [in]p大地座標p
      +
      +
      +
      Returns
      pixel
      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + +
      Photo& meow::Photo< Pixel >::copyFrom (Photo< Pixel > const & b)
      +
      +inline
      +
      + +

      複製資料

      +
      Parameters
      + + +
      [in]b資料來源
      +
      +
      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + +
      ObjBase* meow::Photo< Pixel >::copyFrom (ObjBase const * b)
      +
      +inlinevirtual
      +
      + +

      複製資料

      +
      輸入型別是 \c ObjBase \c const*
      +這裡假設實體其實是 \c Bitmap.
      +事實上這個method就只是幫忙轉型然後呼叫原本的\c copyFrom
      +
      Parameters
      + + +
      [in]b資料來源
      +
      +
      +
      Returns
      this
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + +
      ObjBase* meow::Photo< Pixel >::create () const
      +
      +inlinevirtual
      +
      + +

      new一個自己

      +
      Returns
      一個new出來的Bitmap<Pixel>
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + +
      char const* meow::Photo< Pixel >::ctype () const
      +
      +inlinevirtual
      +
      + +

      回傳class的type

      +
      Returns
      char const* 形式的typename
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + +
      double meow::Photo< Pixel >::focal () const
      +
      +inline
      +
      + +

      回傳focal length

      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + +
      double meow::Photo< Pixel >::focal (double f)
      +
      +inline
      +
      + +

      設定 focal length

      +
      Parameters
      + + +
      [in]f新的 focal length
      +
      +
      +
      Returns
      新的 focal length
      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + +
      size_t meow::Photo< Pixel >::height () const
      +
      +inline
      +
      + +

      回傳bitmap高

      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + +
      bool meow::Photo< Pixel >::inside (Vector2D< double > const & yx) const
      +
      +inline
      +
      + +

      檢查某點是否在底片範圍內

      +
      Parameters
      + + +
      [in]yx底片座標
      +
      +
      +
      Returns
      true/false
      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + +
      bool meow::Photo< Pixel >::inside (Vector3D< double > const & p) const
      +
      +inline
      +
      + +

      檢查某點是否在底片範圍內

      +
      Parameters
      + + +
      [in]p大地座標
      +
      +
      +
      Returns
      true/false
      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + +
      Photo& meow::Photo< Pixel >::operator= (Photo< Pixel > const & b)
      +
      +inline
      +
      + +

      same as .copyFrom(b)

      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      Pixel meow::Photo< Pixel >::pixel (size_t y,
      size_t x 
      ) const
      +
      +inline
      +
      + +

      回傳bitmap的某pixel

      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      Pixel meow::Photo< Pixel >::pixel (size_t y,
      size_t x,
      Pixel const & p 
      )
      +
      +inline
      +
      + +

      設定某pixel

      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      bool meow::Photo< Pixel >::read (FILE * f,
      bool bin,
      unsigned int fg 
      )
      +
      +inlinevirtual
      +
      + +

      將資料讀入

      +
      Note
      未完成
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + +
      Photo& meow::Photo< Pixel >::referneceFrom (Photo< Pixel > const & b)
      +
      +inline
      +
      + +

      參照

      +
      Parameters
      + + +
      [in]b參照來源
      +
      +
      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + +
      void meow::Photo< Pixel >::reset (Bitmap< Pixel > const & bmp)
      +
      +inline
      +
      + +

      重設bitmap, focal 用猜的

      +

      focal直接代對角線, center代bitmap中心點

      +
      Parameters
      + + +
      [in]bmp新的 bitmap
      +
      +
      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      void meow::Photo< Pixel >::reset (Bitmap< Pixel > const & bmp,
      double f 
      )
      +
      +inline
      +
      + +

      重設bitmap, focal

      +

      center代bitmap中心點

      +
      Parameters
      + + + +
      [in]bmp新的 bitmap
      [in]f新的 focal
      +
      +
      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      void meow::Photo< Pixel >::reset (Bitmap< Pixel > const & bmp,
      double f,
      Vector2D< double > const & c 
      )
      +
      +inline
      +
      + +

      重設bitmap, focal, center

      +
      Parameters
      + + + + +
      [in]bmp新的 bitmap
      [in]f新的 focal
      [in]c新的中心點作標
      +
      +
      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + +
      std::string meow::Photo< Pixel >::type () const
      +
      +inlinevirtual
      +
      + +

      回傳class的type

      +
      Returns
      std::string 形式的typename
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + +
      size_t meow::Photo< Pixel >::width () const
      +
      +inline
      +
      + +

      回傳bitmap寬

      + +
      +
      + +
      +
      +
      +template<class Pixel>
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      bool meow::Photo< Pixel >::write (FILE * f,
      bool bin,
      unsigned int fg 
      ) const
      +
      +inlinevirtual
      +
      + +

      將資料寫入檔案

      +
      Note
      未完成
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      +
      The documentation for this class was generated from the following file: +
      +
      + + + + + diff --git a/doc/html/classmeow_1_1Photo.js b/doc/html/classmeow_1_1Photo.js new file mode 100644 index 0000000..7e61ba9 --- /dev/null +++ b/doc/html/classmeow_1_1Photo.js @@ -0,0 +1,37 @@ +var classmeow_1_1Photo = +[ + [ "Photo", "classmeow_1_1Photo.html#a84b9bae13da85ab5d1caf02cdede7092", null ], + [ "Photo", "classmeow_1_1Photo.html#a85f96086c9c4041ae14f0c1c9c6d23f8", null ], + [ "Photo", "classmeow_1_1Photo.html#a66e6f809ee030d4b3d5c0d1edd7b641e", null ], + [ "Photo", "classmeow_1_1Photo.html#a68137359863914ebedb467782b8ef440", null ], + [ "Photo", "classmeow_1_1Photo.html#af69dcdd4ccd4c15227cf0b104325d8de", null ], + [ "~Photo", "classmeow_1_1Photo.html#ad3ba33208243966fe72db6c3a519e22d", null ], + [ "bitmap", "classmeow_1_1Photo.html#a49ada6e814bd2280af12183897227e62", null ], + [ "bitmap", "classmeow_1_1Photo.html#a511f65855ee9f102c2472ce236ba7d3c", null ], + [ "bitmapGet", "classmeow_1_1Photo.html#a07c8ca1846fc97005a7d960c5fc703a7", null ], + [ "center", "classmeow_1_1Photo.html#a1a81a5be069f31e16e2e665ff97e778c", null ], + [ "center", "classmeow_1_1Photo.html#a563850b9827f24d6d0be5c63e408d253", null ], + [ "centerGet", "classmeow_1_1Photo.html#a19976fbe55a9d7e17baac9460d5b829c", null ], + [ "color", "classmeow_1_1Photo.html#aad526a7b9aecbcfebb12be76979ce7d1", null ], + [ "color", "classmeow_1_1Photo.html#a95c01aa8e4b620c8290a3054663e41f4", null ], + [ "copyFrom", "classmeow_1_1Photo.html#a53bc0c60fb3abd9e95999990c6f132e6", null ], + [ "copyFrom", "classmeow_1_1Photo.html#a0e947011dcb0db21760c89663acd2208", null ], + [ "create", "classmeow_1_1Photo.html#a449f74fa427154f943d6abee255431aa", null ], + [ "ctype", "classmeow_1_1Photo.html#a93fdf3b617d8b1c751823074fca049a9", null ], + [ "focal", "classmeow_1_1Photo.html#ab7b4b1f6b3f8100ea670500f168cb1e4", null ], + [ "focal", "classmeow_1_1Photo.html#a1fbde3a8b2be3662cf67a035cf887be9", null ], + [ "height", "classmeow_1_1Photo.html#a0fc9394bbee567c1961500808a5f9a9d", null ], + [ "inside", "classmeow_1_1Photo.html#ae1d328ee4c0971d4a90fb1f05bea1e66", null ], + [ "inside", "classmeow_1_1Photo.html#a43ac8952d85ea584dc9ea9a0424dbb98", null ], + [ "operator=", "classmeow_1_1Photo.html#ab97f03da439edeb8834fd6e7a3487f65", null ], + [ "pixel", "classmeow_1_1Photo.html#a3489796a4101da9291fff280cb89728e", null ], + [ "pixel", "classmeow_1_1Photo.html#a38c943a8bd30b309a8042599dcf9f1e7", null ], + [ "read", "classmeow_1_1Photo.html#a97cc535d734fdf53457c84ef5f0bdc50", null ], + [ "referneceFrom", "classmeow_1_1Photo.html#a1d51d273f9847c8c81de3acaafdf893f", null ], + [ "reset", "classmeow_1_1Photo.html#ab5a901c44b8c5523def9b40f27a5fda3", null ], + [ "reset", "classmeow_1_1Photo.html#aed3ed47ee1ddae0732e24af71b91a7b0", null ], + [ "reset", "classmeow_1_1Photo.html#a4d237ed59e6227940c20831cdce797a8", null ], + [ "type", "classmeow_1_1Photo.html#a84cf3012af5e67b4aafc1ee7eafd70d1", null ], + [ "width", "classmeow_1_1Photo.html#a1a0582b5c3683264fcad5ca67b376f7c", null ], + [ "write", "classmeow_1_1Photo.html#ab92324c852686bcad5e374aa9ae8e952", null ] +]; \ No newline at end of file diff --git a/doc/html/classmeow_1_1Photo.png b/doc/html/classmeow_1_1Photo.png new file mode 100644 index 0000000..c982959 Binary files /dev/null and b/doc/html/classmeow_1_1Photo.png differ diff --git a/doc/html/classmeow_1_1PhotoProjection-members.html b/doc/html/classmeow_1_1PhotoProjection-members.html new file mode 100644 index 0000000..9c16452 --- /dev/null +++ b/doc/html/classmeow_1_1PhotoProjection-members.html @@ -0,0 +1,105 @@ + + + + + + + +Templates -- Meow: Member List + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      meow::PhotoProjection< Scalar > Member List
      +
      +
      + +

      This is the complete list of members for meow::PhotoProjection< Scalar >, including all inherited members.

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      copyFrom(PhotoProjection const &b)meow::PhotoProjection< Scalar >inline
      meow::Transformation::copyFrom(Transformation const &b)meow::Transformation< Scalar >inlineprotected
      dimension() const meow::PhotoProjection< Scalar >inline
      focal() const meow::PhotoProjection< Scalar >inline
      focal(Scalar const &f)meow::PhotoProjection< Scalar >inline
      inputCols() const meow::Transformation< Scalar >inline
      inputRows() const meow::Transformation< Scalar >inline
      inversable() const meow::Transformation< Scalar >inlinevirtual
      jacobian(Matrix< Scalar > const &x) const meow::PhotoProjection< Scalar >inlinevirtual
      jacobian(Matrix< Scalar > const &x, size_t i) const meow::PhotoProjection< Scalar >inlinevirtual
      jacobianInv(Matrix< Scalar > const &x) const meow::Transformation< Scalar >inlinevirtual
      jacobianInv(Matrix< Scalar > const &x, size_t i) const meow::Transformation< Scalar >inlinevirtual
      operator()(Matrix< Scalar > const &v) const meow::PhotoProjection< Scalar >inline
      operator=(PhotoProjection const &b)meow::PhotoProjection< Scalar >inline
      outputCols() const meow::Transformation< Scalar >inline
      outputRows() const meow::Transformation< Scalar >inline
      parameter(size_t i) const meow::PhotoProjection< Scalar >inlinevirtual
      parameter(size_t i, Scalar const &s)meow::PhotoProjection< Scalar >inlinevirtual
      parameterSize() const meow::Transformation< Scalar >inline
      PhotoProjection(size_t dimension)meow::PhotoProjection< Scalar >inline
      PhotoProjection(size_t dimension, Scalar const &f)meow::PhotoProjection< Scalar >inline
      PhotoProjection(PhotoProjection const &p)meow::PhotoProjection< Scalar >inline
      referenceFrom(PhotoProjection const &b)meow::PhotoProjection< Scalar >inline
      meow::Transformation::referenceFrom(Transformation const &b)meow::Transformation< Scalar >inlineprotected
      transformate(Matrix< Scalar > const &x) const meow::PhotoProjection< Scalar >inlinevirtual
      transformateInv(Matrix< Scalar > const &x) const meow::Transformation< Scalar >inlinevirtual
      Transformation(size_t inputRows, size_t inputCols, size_t outputRows, size_t outputCols, size_t psize)meow::Transformation< Scalar >inlineprotected
      Transformation(Transformation const &b)meow::Transformation< Scalar >inlineprotected
      ~Transformation()meow::Transformation< Scalar >inlinevirtual
      +
      + + + + + diff --git a/doc/html/classmeow_1_1PhotoProjection.html b/doc/html/classmeow_1_1PhotoProjection.html new file mode 100644 index 0000000..dd3ae5b --- /dev/null +++ b/doc/html/classmeow_1_1PhotoProjection.html @@ -0,0 +1,725 @@ + + + + + + + +Templates -- Meow: meow::PhotoProjection< Scalar > Class Template Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      meow::PhotoProjection< Scalar > Class Template Reference
      +
      +
      + +

      A photo projection is a kind of transformation that project point/vector to a flat photo. + More...

      + +

      #include "Transformations.h"

      +
      +Inheritance diagram for meow::PhotoProjection< Scalar >:
      +
      +
      + + +meow::Transformation< Scalar > + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      +Public Member Functions

       PhotoProjection (size_t dimension)
       
       PhotoProjection (size_t dimension, Scalar const &f)
       
       PhotoProjection (PhotoProjection const &p)
       
      PhotoProjectioncopyFrom (PhotoProjection const &b)
       
      PhotoProjectionreferenceFrom (PhotoProjection const &b)
       
      Scalar parameter (size_t i) const
       Same as focal() More...
       
      Scalar parameter (size_t i, Scalar const &s)
       Same as focal(s) More...
       
      Scalar focal () const
       Get the focal length. More...
       
      Scalar focal (Scalar const &f)
       Set the focal length. More...
       
      size_t dimension () const
       Get the dimension of this projection. More...
       
      Matrix< Scalar > transformate (Matrix< Scalar > const &x) const
       Project the input vector(s) onto the plane. More...
       
      Matrix< Scalar > jacobian (Matrix< Scalar > const &x) const
       Return the jacobian matrix (derivate by the input vector) of this projection. More...
       
      Matrix< Scalar > jacobian (Matrix< Scalar > const &x, size_t i) const
       Return the jacobian matrix (derivate by the focus length) of this projection. More...
       
      PhotoProjectionoperator= (PhotoProjection const &b)
       Same as copyFrom(b) More...
       
      Matrix< Scalar > operator() (Matrix< Scalar > const &v) const
       Same as transformate(v) More...
       
      - Public Member Functions inherited from meow::Transformation< Scalar >
      virtual ~Transformation ()
       
      size_t inputRows () const
       Return the number of rows of the input matrix. More...
       
      size_t inputCols () const
       Return the number of columns of the input matrix. More...
       
      size_t outputRows () const
       Return the number of rows of the output matrix. More...
       
      size_t outputCols () const
       Return the number of columns of the output matrix. More...
       
      size_t parameterSize () const
       Return the number of parameters. More...
       
      virtual bool inversable () const
       Return whether this transformation is inversable or not. More...
       
      virtual Matrix< Scalar > transformateInv (Matrix< Scalar > const &x) const
       Do the inverse transformation. More...
       
      virtual Matrix< Scalar > jacobianInv (Matrix< Scalar > const &x) const
       Return the jacobian matrix of the inverse transformation. More...
       
      virtual Matrix< Scalar > jacobianInv (Matrix< Scalar > const &x, size_t i) const
       Return the jacobian matrix of the inverse transformation. More...
       
      + + + + + + + + + + + + +

      +Additional Inherited Members

      - Protected Member Functions inherited from meow::Transformation< Scalar >
       Transformation (size_t inputRows, size_t inputCols, size_t outputRows, size_t outputCols, size_t psize)
       
       Transformation (Transformation const &b)
       
      TransformationcopyFrom (Transformation const &b)
       Copy from the specified one. More...
       
      TransformationreferenceFrom (Transformation const &b)
       Ceference from the specified one. More...
       
      +

      Detailed Description

      +

      template<class Scalar>
      +class meow::PhotoProjection< Scalar >

      + +

      A photo projection is a kind of transformation that project point/vector to a flat photo.

      +

      Assume:

      +
        +
      • The dimension of a photo projection is $ N $
      • +
      • The length of the input vector is $ L $
      • +
      • The focal length is $ f $
      • +
      +

      Then transformation is like below:
      +

      +

      +\[ \left[ \begin{array}{c} x_1 \\ x_2 \\ x_3 \\ . \\ . \\ . \\ x_N \\ \end{array} \right] \stackrel{transformate}{\rightarrow} \left[ \begin{array}{c} \frac{-x_1 \times f}{x_N} \\ \frac{-x_2 \times f}{x_N} \\ \frac{-x_3 \times f}{x_N} \\ . \\ . \\ . \\ -f \\ \end{array} \right] \\ \] +

      +

      i.e. projecte the vector onto the plane $ x_N = -f $.

      +
      Author
      cat_leopard
      +

      Constructor & Destructor Documentation

      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      meow::PhotoProjection< Scalar >::PhotoProjection (size_t dimension)
      +
      +inline
      +
      +

      Constructor, focal = 1

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      meow::PhotoProjection< Scalar >::PhotoProjection (size_t dimension,
      Scalar const & f 
      )
      +
      +inline
      +
      +

      Constructor

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      meow::PhotoProjection< Scalar >::PhotoProjection (PhotoProjection< Scalar > const & p)
      +
      +inline
      +
      +

      Constructor, copy settings from another PhotoProjection.

      + +
      +
      +

      Member Function Documentation

      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      PhotoProjection& meow::PhotoProjection< Scalar >::copyFrom (PhotoProjection< Scalar > const & b)
      +
      +inline
      +
      +

      Copy settings from another one

      +
      Parameters
      + + +
      [in]banother one
      +
      +
      +
      Returns
      *this
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      size_t meow::PhotoProjection< Scalar >::dimension () const
      +
      +inline
      +
      + +

      Get the dimension of this projection.

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      Scalar meow::PhotoProjection< Scalar >::focal () const
      +
      +inline
      +
      + +

      Get the focal length.

      +
      Returns
      Focal length
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Scalar meow::PhotoProjection< Scalar >::focal (Scalar const & f)
      +
      +inline
      +
      + +

      Set the focal length.

      +
      Parameters
      + + +
      [in]fNew focal length
      +
      +
      +
      Returns
      New focal length
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Matrix<Scalar> meow::PhotoProjection< Scalar >::jacobian (Matrix< Scalar > const & x) const
      +
      +inlinevirtual
      +
      + +

      Return the jacobian matrix (derivate by the input vector) of this projection.

      +

      This method only allow a vector-like matrix be input. Assume:

      +
        +
      • The dimension of this projection is $ N $
      • +
      • The length of the input vector is $ L=\sqrt{x_1^2+x_2^2+...+x_N^2} $
      • +
      • The focal length of this projection is $ f $
      • +
      +

      Then the jacobian matrix is like below:
      +

      +

      +\[ f \times \left[ \begin{array}{ccccc} \frac{-1}{x_N} & 0 & 0 & ... & \frac{1}{x_N^2} \\ 0 & \frac{-1}{x_N} & 0 & ... & \frac{1}{x_N^2} \\ 0 & 0 & \frac{-1}{x_N} & ... & \frac{1}{x_N^2} \\ . & . & . & & . \\ . & . & . & & . \\ . & . & . & & . \\ 0 & 0 & 0 & ... & 0 \\ \end{array} \right] \] +

      +
      Parameters
      + + +
      [in]xThe input matrix.
      +
      +
      +
      Returns
      The output matrix.
      + +

      Reimplemented from meow::Transformation< Scalar >.

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      Matrix<Scalar> meow::PhotoProjection< Scalar >::jacobian (Matrix< Scalar > const & x,
      size_t i 
      ) const
      +
      +inlinevirtual
      +
      + +

      Return the jacobian matrix (derivate by the focus length) of this projection.

      +

      This method only allow a vector-like matrix be input. Assume:

      +
        +
      • The dimension of this projection is $ N $
      • +
      • The length of the input vector is $ L=\sqrt{x_1^2+x_2^2+...+x_N^2} $
      • +
      • The focal length of this projection is $ f $
      • +
      +

      Then the jacobian matrix is like below:
      +

      +

      +\[ f \times \left[ \begin{array}{c} \frac{-x_1}{x_N} \\ \frac{-x_2}{x_N} \\ \frac{-x_3}{x_N} \\ . \\ . \\ . \\ -1 \\ \end{array} \right] \] +

      +
      Parameters
      + + + +
      [in]xThe input matrix.
      [in]iUseless parameter
      +
      +
      +
      Returns
      The output matrix.
      + +

      Reimplemented from meow::Transformation< Scalar >.

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Matrix<Scalar> meow::PhotoProjection< Scalar >::operator() (Matrix< Scalar > const & v) const
      +
      +inline
      +
      + +

      Same as transformate(v)

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      PhotoProjection& meow::PhotoProjection< Scalar >::operator= (PhotoProjection< Scalar > const & b)
      +
      +inline
      +
      + +

      Same as copyFrom(b)

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Scalar meow::PhotoProjection< Scalar >::parameter (size_t i) const
      +
      +inlinevirtual
      +
      + +

      Same as focal()

      + +

      Implements meow::Transformation< Scalar >.

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      Scalar meow::PhotoProjection< Scalar >::parameter (size_t i,
      Scalar const & s 
      )
      +
      +inlinevirtual
      +
      + +

      Same as focal(s)

      + +

      Implements meow::Transformation< Scalar >.

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      PhotoProjection& meow::PhotoProjection< Scalar >::referenceFrom (PhotoProjection< Scalar > const & b)
      +
      +inline
      +
      +

      Reference settings from another one

      +
      Parameters
      + + +
      [in]banother one
      +
      +
      +
      Returns
      *this
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Matrix<Scalar> meow::PhotoProjection< Scalar >::transformate (Matrix< Scalar > const & x) const
      +
      +inlinevirtual
      +
      + +

      Project the input vector(s) onto the plane.

      +

      The equation of the plane is $ x_N = -f $, where the $ N $ is the dimension of this projection and f is the focal length.
      + If the number of columns of the input matrix is larger than 1, this method will think that you want to transform multiple vector once and the number of columns of the output matrix will be the same of the number of columns of the input one.

      +
      Parameters
      + + +
      [in]xThe input matrix.
      +
      +
      +
      Returns
      The output matrix.
      +
      Note
      Take into account that too much safty checking will lead to inefficient, this method will not checking whether the dimension of the input vector/matrix is right. So be sure the data is valid before you call this method.
      + +

      Implements meow::Transformation< Scalar >.

      + +
      +
      +
      The documentation for this class was generated from the following file: +
      +
      + + + + + diff --git a/doc/html/classmeow_1_1PhotoProjection.js b/doc/html/classmeow_1_1PhotoProjection.js new file mode 100644 index 0000000..13043ef --- /dev/null +++ b/doc/html/classmeow_1_1PhotoProjection.js @@ -0,0 +1,18 @@ +var classmeow_1_1PhotoProjection = +[ + [ "PhotoProjection", "classmeow_1_1PhotoProjection.html#a902922d6be5fcb6ce2ce563031913e36", null ], + [ "PhotoProjection", "classmeow_1_1PhotoProjection.html#a1e12a0292cf00f4d107b4a5e8e0fa464", null ], + [ "PhotoProjection", "classmeow_1_1PhotoProjection.html#afba51bf2a5f236057bfd279ef68e0d71", null ], + [ "copyFrom", "classmeow_1_1PhotoProjection.html#a4a26e30caff3bd71ff68e97f5dc9ec46", null ], + [ "dimension", "classmeow_1_1PhotoProjection.html#a8bc014829f304ae83da2862fcf4f6dce", null ], + [ "focal", "classmeow_1_1PhotoProjection.html#af143b826cad7171ec539432d3add9da5", null ], + [ "focal", "classmeow_1_1PhotoProjection.html#a19f5080ff959073d334c6e21a6247f13", null ], + [ "jacobian", "classmeow_1_1PhotoProjection.html#aabb88ff170cc655a3b7262af3337a0a3", null ], + [ "jacobian", "classmeow_1_1PhotoProjection.html#a4a07aecb4474633c82d6b73dc1cdd53d", null ], + [ "operator()", "classmeow_1_1PhotoProjection.html#aa50f02a71f9be0b417b0dc9f8ff5d9ab", null ], + [ "operator=", "classmeow_1_1PhotoProjection.html#a7c05a0abd905abc1330331627b6a1d90", null ], + [ "parameter", "classmeow_1_1PhotoProjection.html#a3499d5c76df3c78028f3e1b7d8cb48e6", null ], + [ "parameter", "classmeow_1_1PhotoProjection.html#adecf5a6f3f1f07d7fc6b4714fa80e8a1", null ], + [ "referenceFrom", "classmeow_1_1PhotoProjection.html#a632973b2b8675f126b74e5ced2f62d52", null ], + [ "transformate", "classmeow_1_1PhotoProjection.html#ac4bbf64ef4341a10bc444147142c7d5f", null ] +]; \ No newline at end of file diff --git a/doc/html/classmeow_1_1PhotoProjection.png b/doc/html/classmeow_1_1PhotoProjection.png new file mode 100644 index 0000000..f944a4f Binary files /dev/null and b/doc/html/classmeow_1_1PhotoProjection.png differ diff --git a/doc/html/classmeow_1_1RGBf__Space-members.html b/doc/html/classmeow_1_1RGBf__Space-members.html new file mode 100644 index 0000000..d2f3c0b --- /dev/null +++ b/doc/html/classmeow_1_1RGBf__Space-members.html @@ -0,0 +1,126 @@ + + + + + + + +Templates -- Meow: Member List + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      meow::RGBf_Space Member List
      +
      +
      + +

      This is the complete list of members for meow::RGBf_Space, including all inherited members.

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      b() const meow::RGBf_Spaceinline
      b(double c)meow::RGBf_Spaceinline
      bGet()meow::RGBf_Spaceinline
      bMax() const meow::RGBf_Spaceinline
      bMin() const meow::RGBf_Spaceinline
      Color3_Space(Vector3D< double > const &min_bound, Vector3D< double > const &max_bound, Vector3D< double > const &init_value)meow::Color3_Space< double >inlineprotected
      Color3_Space(Color3_Space const &b)meow::Color3_Space< double >inlineprotected
      copyFrom(Color3_Space< double > const &b)meow::Color3_Space< double >inline
      copyFrom(Color3_Space< T2 > const &b)meow::Color3_Space< double >inline
      g() const meow::RGBf_Spaceinline
      g(double c)meow::RGBf_Spaceinline
      gGet()meow::RGBf_Spaceinline
      gMax() const meow::RGBf_Spaceinline
      gMin() const meow::RGBf_Spaceinline
      matrix() constmeow::Color3_Space< double >inline
      max(size_t id) constmeow::Color3_Space< double >inline
      max_meow::Color3_Space< double >protected
      maxV() constmeow::Color3_Space< double >inline
      min(size_t id) constmeow::Color3_Space< double >inline
      min_meow::Color3_Space< double >protected
      minV() constmeow::Color3_Space< double >inline
      operator*(double const &c) const meow::RGBf_Spaceinline
      operator*(RGBf_Space const &b) const meow::RGBf_Spaceinline
      operator+(RGBf_Space const &b) const meow::RGBf_Spaceinline
      operator-(RGBf_Space const &b) const meow::RGBf_Spaceinline
      operator/(double const &c) const meow::RGBf_Spaceinline
      operator=(RGBf_Space const &b)meow::RGBf_Spaceinline
      r() const meow::RGBf_Spaceinline
      r(double c)meow::RGBf_Spaceinline
      rgb(size_t i) const meow::RGBf_Spaceinline
      rgb(size_t i, double c)meow::RGBf_Spaceinline
      RGBf_Space()meow::RGBf_Spaceinline
      RGBf_Space(double c)meow::RGBf_Spaceinline
      RGBf_Space(Vector3D< double > const &v)meow::RGBf_Spaceinline
      RGBf_Space(RGBf_Space const &b)meow::RGBf_Spaceinline
      rgbGet(size_t i)meow::RGBf_Spaceinline
      rgbMax(size_t i) const meow::RGBf_Spaceinline
      rgbMin(size_t i) const meow::RGBf_Spaceinline
      rGet()meow::RGBf_Spaceinline
      rMax() const meow::RGBf_Spaceinline
      rMin() const meow::RGBf_Spaceinline
      val(size_t id) constmeow::Color3_Space< double >inline
      val(size_t i, doubleconst &c)meow::Color3_Space< double >inline
      val_meow::Color3_Space< double >protected
      valGet(size_t id)meow::Color3_Space< double >inline
      valV() constmeow::Color3_Space< double >inline
      valV(Vector3D< double > const &vv)meow::Color3_Space< double >inline
      valVGet()meow::Color3_Space< double >inline
      ~Color3_Space()meow::Color3_Space< double >inlinevirtual
      ~RGBf_Space()meow::RGBf_Spaceinline
      +
      + + + + + diff --git a/doc/html/classmeow_1_1RGBf__Space.html b/doc/html/classmeow_1_1RGBf__Space.html new file mode 100644 index 0000000..63027e8 --- /dev/null +++ b/doc/html/classmeow_1_1RGBf__Space.html @@ -0,0 +1,950 @@ + + + + + + + +Templates -- Meow: meow::RGBf_Space Class Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      meow::RGBf_Space Class Reference
      +
      +
      + +

      以浮點數Red, Green, Blue 三個值所組成的色彩空間 + More...

      + +

      #include "RGB_Space.h"

      +
      +Inheritance diagram for meow::RGBf_Space:
      +
      +
      + + +meow::Color3_Space< double > + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      +Public Member Functions

       RGBf_Space ()
       
       RGBf_Space (double c)
       
       RGBf_Space (Vector3D< double > const &v)
       
       RGBf_Space (RGBf_Space const &b)
       
       ~RGBf_Space ()
       
      double const & rgbMin (size_t i) const
       
      double const & rMin () const
       
      double const & gMin () const
       
      double const & bMin () const
       
      double const & rgbMax (size_t i) const
       
      double const & rMax () const
       
      double const & gMax () const
       
      double const & bMax () const
       
      double const & rgb (size_t i) const
       
      double const & r () const
       
      double const & g () const
       
      double const & b () const
       
      double const & rgb (size_t i, double c)
       
      double const & r (double c)
       
      double const & g (double c)
       
      double const & b (double c)
       
      doublergbGet (size_t i)
       
      doublerGet ()
       
      doublegGet ()
       
      doublebGet ()
       
      RGBf_Spaceoperator= (RGBf_Space const &b)
       
      RGBf_Space operator+ (RGBf_Space const &b) const
       
      RGBf_Space operator- (RGBf_Space const &b) const
       
      RGBf_Space operator* (double const &c) const
       
      RGBf_Space operator/ (double const &c) const
       
      double operator* (RGBf_Space const &b) const
       
      - Public Member Functions inherited from meow::Color3_Space< double >
      virtual ~Color3_Space ()
       
      Color3_Space< double > & copyFrom (Color3_Space< double > const &b)
       
      Color3_Space< double > & copyFrom (Color3_Space< T2 > const &b)
       
      Vector3D< double > const & minV () const
       
      Vector3D< double > const & maxV () const
       
      Vector3D< double > const & valV () const
       
      Vector3D< double > const & valV (Vector3D< double > const &vv)
       
      Vector3D< double > & valVGet ()
       
      doubleconst & min (size_t id) const
       
      doubleconst & max (size_t id) const
       
      doubleconst & val (size_t id) const
       
      doubleconst & val (size_t i, doubleconst &c)
       
      doublevalGet (size_t id)
       
      Matrix< doublematrix () const
       
      + + + + + + + + + + + + + +

      +Additional Inherited Members

      - Protected Member Functions inherited from meow::Color3_Space< double >
       Color3_Space (Vector3D< double > const &min_bound, Vector3D< double > const &max_bound, Vector3D< double > const &init_value)
       
       Color3_Space (Color3_Space const &b)
       
      - Protected Attributes inherited from meow::Color3_Space< double >
      Vector3D< doublemin_
       
      Vector3D< doublemax_
       
      Vector3D< doubleval_
       
      +

      Detailed Description

      +

      以浮點數Red, Green, Blue 三個值所組成的色彩空間

      +

      其中範圍都介於0.0~1.0之間

      +
      Author
      cat_leopard
      +

      Constructor & Destructor Documentation

      + +
      +
      + + + + + +
      + + + + + + + +
      meow::RGBf_Space::RGBf_Space ()
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      meow::RGBf_Space::RGBf_Space (double c)
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      meow::RGBf_Space::RGBf_Space (Vector3D< double > const & v)
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      meow::RGBf_Space::RGBf_Space (RGBf_Space const & b)
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      meow::RGBf_Space::~RGBf_Space ()
      +
      +inline
      +
      + +
      +
      +

      Member Function Documentation

      + +
      +
      + + + + + +
      + + + + + + + +
      double const& meow::RGBf_Space::b () const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      double const& meow::RGBf_Space::b (double c)
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      double& meow::RGBf_Space::bGet ()
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      double const& meow::RGBf_Space::bMax () const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      double const& meow::RGBf_Space::bMin () const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      double const& meow::RGBf_Space::g () const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      double const& meow::RGBf_Space::g (double c)
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      double& meow::RGBf_Space::gGet ()
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      double const& meow::RGBf_Space::gMax () const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      double const& meow::RGBf_Space::gMin () const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      RGBf_Space meow::RGBf_Space::operator* (double const & c) const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      double meow::RGBf_Space::operator* (RGBf_Space const & b) const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      RGBf_Space meow::RGBf_Space::operator+ (RGBf_Space const & b) const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      RGBf_Space meow::RGBf_Space::operator- (RGBf_Space const & b) const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      RGBf_Space meow::RGBf_Space::operator/ (double const & c) const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      RGBf_Space& meow::RGBf_Space::operator= (RGBf_Space const & b)
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      double const& meow::RGBf_Space::r () const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      double const& meow::RGBf_Space::r (double c)
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      double const& meow::RGBf_Space::rgb (size_t i) const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      double const& meow::RGBf_Space::rgb (size_t i,
      double c 
      )
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      double& meow::RGBf_Space::rgbGet (size_t i)
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      double const& meow::RGBf_Space::rgbMax (size_t i) const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      double const& meow::RGBf_Space::rgbMin (size_t i) const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      double& meow::RGBf_Space::rGet ()
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      double const& meow::RGBf_Space::rMax () const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      double const& meow::RGBf_Space::rMin () const
      +
      +inline
      +
      + +
      +
      +
      The documentation for this class was generated from the following file: +
      +
      + + + + + diff --git a/doc/html/classmeow_1_1RGBf__Space.js b/doc/html/classmeow_1_1RGBf__Space.js new file mode 100644 index 0000000..45bf066 --- /dev/null +++ b/doc/html/classmeow_1_1RGBf__Space.js @@ -0,0 +1,34 @@ +var classmeow_1_1RGBf__Space = +[ + [ "RGBf_Space", "classmeow_1_1RGBf__Space.html#ad7cb69aace8c4ee0197d5eca0aa89c66", null ], + [ "RGBf_Space", "classmeow_1_1RGBf__Space.html#a40a44b27fbf61b7660e73f6850418ab0", null ], + [ "RGBf_Space", "classmeow_1_1RGBf__Space.html#a42066d9d91f184f9384c5903f7121365", null ], + [ "RGBf_Space", "classmeow_1_1RGBf__Space.html#a1c405284fdfac9fb8626e5afccd213a4", null ], + [ "~RGBf_Space", "classmeow_1_1RGBf__Space.html#ab47d10e634067bbb0b7152d0f50b42a0", null ], + [ "b", "classmeow_1_1RGBf__Space.html#a8a0a6daacecfbd1769cbdb321988ab88", null ], + [ "b", "classmeow_1_1RGBf__Space.html#ab6c357531cc39c41299f933988084ebc", null ], + [ "bGet", "classmeow_1_1RGBf__Space.html#a1e788ac2df4f3cd00ff09b5f644f2c8c", null ], + [ "bMax", "classmeow_1_1RGBf__Space.html#a029c3bd52ae818462558742dc2be0904", null ], + [ "bMin", "classmeow_1_1RGBf__Space.html#a130bbee98fdd279a415e18aa0ca2f13c", null ], + [ "g", "classmeow_1_1RGBf__Space.html#ad25036799ca38983cdb74ed6b4245d51", null ], + [ "g", "classmeow_1_1RGBf__Space.html#af823dd9896ab6e485cc752eddc9c43f0", null ], + [ "gGet", "classmeow_1_1RGBf__Space.html#a48e591bedfc479b2193dd00ac5986f9f", null ], + [ "gMax", "classmeow_1_1RGBf__Space.html#a65d8088fb8b755f0b3f173dcda552789", null ], + [ "gMin", "classmeow_1_1RGBf__Space.html#aeb0cd2d681af6a70861ff371bf596e17", null ], + [ "operator*", "classmeow_1_1RGBf__Space.html#ab9d808c477ec59c8671bc667f6429136", null ], + [ "operator*", "classmeow_1_1RGBf__Space.html#a280676dff16adf2945a1b282fa04e8e7", null ], + [ "operator+", "classmeow_1_1RGBf__Space.html#a8ddf4972a507e4623c9372793f6478e1", null ], + [ "operator-", "classmeow_1_1RGBf__Space.html#aa2911ccfbf9a3587ed0310211836a25e", null ], + [ "operator/", "classmeow_1_1RGBf__Space.html#a9e1faa7ce3cfefeb07eb7b8051daf932", null ], + [ "operator=", "classmeow_1_1RGBf__Space.html#a431988ab812016af01e8ab960da9222a", null ], + [ "r", "classmeow_1_1RGBf__Space.html#a2e158eb7f0a94047b23872b7b346e7b9", null ], + [ "r", "classmeow_1_1RGBf__Space.html#ab31fa271f40b6296a1f55d9956a704ba", null ], + [ "rgb", "classmeow_1_1RGBf__Space.html#aeffa5f21171d32f9b1e1528707aac42b", null ], + [ "rgb", "classmeow_1_1RGBf__Space.html#a98433b465ab530b4ac90232726604d16", null ], + [ "rgbGet", "classmeow_1_1RGBf__Space.html#a2a2a36035097c796da37667ab737aaff", null ], + [ "rgbMax", "classmeow_1_1RGBf__Space.html#a6b4da76d0c83cb321f61fb6387932203", null ], + [ "rgbMin", "classmeow_1_1RGBf__Space.html#a33dd8ebb5015faa8540e67e51ea68e4f", null ], + [ "rGet", "classmeow_1_1RGBf__Space.html#afa902a6e87068e583c8747208f908f4e", null ], + [ "rMax", "classmeow_1_1RGBf__Space.html#af473ccd4b8202097640ba9f19428caef", null ], + [ "rMin", "classmeow_1_1RGBf__Space.html#aee2f300ff0ae724890d3d80d0cb7cbc3", null ] +]; \ No newline at end of file diff --git a/doc/html/classmeow_1_1RGBf__Space.png b/doc/html/classmeow_1_1RGBf__Space.png new file mode 100644 index 0000000..93df292 Binary files /dev/null and b/doc/html/classmeow_1_1RGBf__Space.png differ diff --git a/doc/html/classmeow_1_1RGBi__Space-members.html b/doc/html/classmeow_1_1RGBi__Space-members.html new file mode 100644 index 0000000..5a0927c --- /dev/null +++ b/doc/html/classmeow_1_1RGBi__Space-members.html @@ -0,0 +1,126 @@ + + + + + + + +Templates -- Meow: Member List + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      meow::RGBi_Space Member List
      +
      +
      + +

      This is the complete list of members for meow::RGBi_Space, including all inherited members.

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      b() const meow::RGBi_Spaceinline
      b(int c)meow::RGBi_Spaceinline
      bGet()meow::RGBi_Spaceinline
      bMax() const meow::RGBi_Spaceinline
      bMin() const meow::RGBi_Spaceinline
      Color3_Space(Vector3D< int > const &min_bound, Vector3D< int > const &max_bound, Vector3D< int > const &init_value)meow::Color3_Space< int >inlineprotected
      Color3_Space(Color3_Space const &b)meow::Color3_Space< int >inlineprotected
      copyFrom(Color3_Space< int > const &b)meow::Color3_Space< int >inline
      copyFrom(Color3_Space< T2 > const &b)meow::Color3_Space< int >inline
      g() const meow::RGBi_Spaceinline
      g(int c)meow::RGBi_Spaceinline
      gGet()meow::RGBi_Spaceinline
      gMax() const meow::RGBi_Spaceinline
      gMin() const meow::RGBi_Spaceinline
      matrix() constmeow::Color3_Space< int >inline
      max(size_t id) constmeow::Color3_Space< int >inline
      max_meow::Color3_Space< int >protected
      maxV() constmeow::Color3_Space< int >inline
      min(size_t id) constmeow::Color3_Space< int >inline
      min_meow::Color3_Space< int >protected
      minV() constmeow::Color3_Space< int >inline
      operator*(int c) const meow::RGBi_Spaceinline
      operator*(RGBi_Space const &b) const meow::RGBi_Spaceinline
      operator+(RGBi_Space const &b) const meow::RGBi_Spaceinline
      operator-(RGBi_Space const &b) const meow::RGBi_Spaceinline
      operator/(int c) const meow::RGBi_Spaceinline
      operator=(RGBi_Space const &b)meow::RGBi_Spaceinline
      r() const meow::RGBi_Spaceinline
      r(int c)meow::RGBi_Spaceinline
      rgb(size_t i) const meow::RGBi_Spaceinline
      rgb(size_t i, int c)meow::RGBi_Spaceinline
      rgbGet(size_t i)meow::RGBi_Spaceinline
      RGBi_Space()meow::RGBi_Spaceinline
      RGBi_Space(int c)meow::RGBi_Spaceinline
      RGBi_Space(Vector3D< int > const &v)meow::RGBi_Spaceinline
      RGBi_Space(RGBi_Space const &b)meow::RGBi_Spaceinline
      rgbMax(size_t i) const meow::RGBi_Spaceinline
      rgbMin(size_t i) const meow::RGBi_Spaceinline
      rGet()meow::RGBi_Spaceinline
      rMax() const meow::RGBi_Spaceinline
      rMin() const meow::RGBi_Spaceinline
      val(size_t id) constmeow::Color3_Space< int >inline
      val(size_t i, intconst &c)meow::Color3_Space< int >inline
      val_meow::Color3_Space< int >protected
      valGet(size_t id)meow::Color3_Space< int >inline
      valV() constmeow::Color3_Space< int >inline
      valV(Vector3D< int > const &vv)meow::Color3_Space< int >inline
      valVGet()meow::Color3_Space< int >inline
      ~Color3_Space()meow::Color3_Space< int >inlinevirtual
      ~RGBi_Space()meow::RGBi_Spaceinline
      +
      + + + + + diff --git a/doc/html/classmeow_1_1RGBi__Space.html b/doc/html/classmeow_1_1RGBi__Space.html new file mode 100644 index 0000000..092739d --- /dev/null +++ b/doc/html/classmeow_1_1RGBi__Space.html @@ -0,0 +1,950 @@ + + + + + + + +Templates -- Meow: meow::RGBi_Space Class Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      meow::RGBi_Space Class Reference
      +
      +
      + +

      以整數 Red, Green, Blue 三個值所組成的色彩空間 + More...

      + +

      #include "RGB_Space.h"

      +
      +Inheritance diagram for meow::RGBi_Space:
      +
      +
      + + +meow::Color3_Space< int > + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      +Public Member Functions

       RGBi_Space ()
       
       RGBi_Space (int c)
       
       RGBi_Space (Vector3D< int > const &v)
       
       RGBi_Space (RGBi_Space const &b)
       
       ~RGBi_Space ()
       
      int const & rgbMin (size_t i) const
       
      int const & rMin () const
       
      int const & gMin () const
       
      int const & bMin () const
       
      int const & rgbMax (size_t i) const
       
      int const & rMax () const
       
      int const & gMax () const
       
      int const & bMax () const
       
      int const & rgb (size_t i) const
       
      int const & r () const
       
      int const & g () const
       
      int const & b () const
       
      int const & rgb (size_t i, int c)
       
      int const & r (int c)
       
      int const & g (int c)
       
      int const & b (int c)
       
      intrgbGet (size_t i)
       
      intrGet ()
       
      intgGet ()
       
      intbGet ()
       
      RGBi_Spaceoperator= (RGBi_Space const &b)
       
      RGBi_Space operator+ (RGBi_Space const &b) const
       
      RGBi_Space operator- (RGBi_Space const &b) const
       
      RGBi_Space operator* (int c) const
       
      RGBi_Space operator/ (int c) const
       
      int operator* (RGBi_Space const &b) const
       
      - Public Member Functions inherited from meow::Color3_Space< int >
      virtual ~Color3_Space ()
       
      Color3_Space< int > & copyFrom (Color3_Space< int > const &b)
       
      Color3_Space< int > & copyFrom (Color3_Space< T2 > const &b)
       
      Vector3D< int > const & minV () const
       
      Vector3D< int > const & maxV () const
       
      Vector3D< int > const & valV () const
       
      Vector3D< int > const & valV (Vector3D< int > const &vv)
       
      Vector3D< int > & valVGet ()
       
      intconst & min (size_t id) const
       
      intconst & max (size_t id) const
       
      intconst & val (size_t id) const
       
      intconst & val (size_t i, intconst &c)
       
      intvalGet (size_t id)
       
      Matrix< intmatrix () const
       
      + + + + + + + + + + + + + +

      +Additional Inherited Members

      - Protected Member Functions inherited from meow::Color3_Space< int >
       Color3_Space (Vector3D< int > const &min_bound, Vector3D< int > const &max_bound, Vector3D< int > const &init_value)
       
       Color3_Space (Color3_Space const &b)
       
      - Protected Attributes inherited from meow::Color3_Space< int >
      Vector3D< intmin_
       
      Vector3D< intmax_
       
      Vector3D< intval_
       
      +

      Detailed Description

      +

      以整數 Red, Green, Blue 三個值所組成的色彩空間

      +

      其中範圍都介於0~255之間

      +
      Author
      cat_leopard
      +

      Constructor & Destructor Documentation

      + +
      +
      + + + + + +
      + + + + + + + +
      meow::RGBi_Space::RGBi_Space ()
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      meow::RGBi_Space::RGBi_Space (int c)
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      meow::RGBi_Space::RGBi_Space (Vector3D< int > const & v)
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      meow::RGBi_Space::RGBi_Space (RGBi_Space const & b)
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      meow::RGBi_Space::~RGBi_Space ()
      +
      +inline
      +
      + +
      +
      +

      Member Function Documentation

      + +
      +
      + + + + + +
      + + + + + + + +
      int const& meow::RGBi_Space::b () const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      int const& meow::RGBi_Space::b (int c)
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      int& meow::RGBi_Space::bGet ()
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      int const& meow::RGBi_Space::bMax () const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      int const& meow::RGBi_Space::bMin () const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      int const& meow::RGBi_Space::g () const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      int const& meow::RGBi_Space::g (int c)
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      int& meow::RGBi_Space::gGet ()
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      int const& meow::RGBi_Space::gMax () const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      int const& meow::RGBi_Space::gMin () const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      RGBi_Space meow::RGBi_Space::operator* (int c) const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      int meow::RGBi_Space::operator* (RGBi_Space const & b) const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      RGBi_Space meow::RGBi_Space::operator+ (RGBi_Space const & b) const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      RGBi_Space meow::RGBi_Space::operator- (RGBi_Space const & b) const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      RGBi_Space meow::RGBi_Space::operator/ (int c) const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      RGBi_Space& meow::RGBi_Space::operator= (RGBi_Space const & b)
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      int const& meow::RGBi_Space::r () const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      int const& meow::RGBi_Space::r (int c)
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      int const& meow::RGBi_Space::rgb (size_t i) const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      int const& meow::RGBi_Space::rgb (size_t i,
      int c 
      )
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      int& meow::RGBi_Space::rgbGet (size_t i)
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      int const& meow::RGBi_Space::rgbMax (size_t i) const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      int const& meow::RGBi_Space::rgbMin (size_t i) const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      int& meow::RGBi_Space::rGet ()
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      int const& meow::RGBi_Space::rMax () const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      int const& meow::RGBi_Space::rMin () const
      +
      +inline
      +
      + +
      +
      +
      The documentation for this class was generated from the following file: +
      +
      + + + + + diff --git a/doc/html/classmeow_1_1RGBi__Space.js b/doc/html/classmeow_1_1RGBi__Space.js new file mode 100644 index 0000000..a4b6fdd --- /dev/null +++ b/doc/html/classmeow_1_1RGBi__Space.js @@ -0,0 +1,34 @@ +var classmeow_1_1RGBi__Space = +[ + [ "RGBi_Space", "classmeow_1_1RGBi__Space.html#a9eb77a74b33dd6c61f821ad9e1f5d00d", null ], + [ "RGBi_Space", "classmeow_1_1RGBi__Space.html#a6a339fd5415d2c84c829c2dec1ab6710", null ], + [ "RGBi_Space", "classmeow_1_1RGBi__Space.html#a15514adce8ed62b5fa196031d0f821cb", null ], + [ "RGBi_Space", "classmeow_1_1RGBi__Space.html#a338d7a18013b78132b4dd534bbef7406", null ], + [ "~RGBi_Space", "classmeow_1_1RGBi__Space.html#ab286b1713dc25fe5e3e560df56a28792", null ], + [ "b", "classmeow_1_1RGBi__Space.html#a8a8779fb88ac2f2a97b00f3764035483", null ], + [ "b", "classmeow_1_1RGBi__Space.html#ad1fa67b3646315b7a4fbcf225663e019", null ], + [ "bGet", "classmeow_1_1RGBi__Space.html#ad9160364e918eaa52e0573c30f4f26e7", null ], + [ "bMax", "classmeow_1_1RGBi__Space.html#a2ce95550fd5c89fc71f0715fc8ac573b", null ], + [ "bMin", "classmeow_1_1RGBi__Space.html#a612c6b94ae15541855dcd9dd15056ff8", null ], + [ "g", "classmeow_1_1RGBi__Space.html#a5593b70032b2d51d4cf5643041fc97c6", null ], + [ "g", "classmeow_1_1RGBi__Space.html#a4e11d1c769ed496cccb9731a0fb68af4", null ], + [ "gGet", "classmeow_1_1RGBi__Space.html#ae929cfad169be9724e8d38d967a8ac33", null ], + [ "gMax", "classmeow_1_1RGBi__Space.html#a4b3d58a5a52f1ebee9e7477a9f0bd291", null ], + [ "gMin", "classmeow_1_1RGBi__Space.html#aa56cd3fabe6e32ede7f7761836dd7253", null ], + [ "operator*", "classmeow_1_1RGBi__Space.html#a2ba8e23aa5745341540c72dc4f040990", null ], + [ "operator*", "classmeow_1_1RGBi__Space.html#a71795b3157bae2b877635b43abd145e9", null ], + [ "operator+", "classmeow_1_1RGBi__Space.html#a68b6bd8c7c44f4cfcdaa89d42c0ad411", null ], + [ "operator-", "classmeow_1_1RGBi__Space.html#a7aeab58894418a920b77c592990bd1ab", null ], + [ "operator/", "classmeow_1_1RGBi__Space.html#a618ccc99b535547833004fc8d83b14ee", null ], + [ "operator=", "classmeow_1_1RGBi__Space.html#a6b4567461811d8f877b0234ca6662a76", null ], + [ "r", "classmeow_1_1RGBi__Space.html#a6920d22a9b808f0f2884bd791f8f568a", null ], + [ "r", "classmeow_1_1RGBi__Space.html#a0eff4d5a02a91c3407740024d0061d02", null ], + [ "rgb", "classmeow_1_1RGBi__Space.html#ab07979f6a7b9f6a45b75a6393ee6c385", null ], + [ "rgb", "classmeow_1_1RGBi__Space.html#a0410f516652c05e244ba222bcefc0283", null ], + [ "rgbGet", "classmeow_1_1RGBi__Space.html#a3e04f724a45ca6e5cabbc57c9d1332b1", null ], + [ "rgbMax", "classmeow_1_1RGBi__Space.html#a40f228f22ec8c35947a61d51a0e4c1fd", null ], + [ "rgbMin", "classmeow_1_1RGBi__Space.html#abcf954ac596df3967581c533670a3339", null ], + [ "rGet", "classmeow_1_1RGBi__Space.html#a76b540bdf49bc8912c5f62aa875b1906", null ], + [ "rMax", "classmeow_1_1RGBi__Space.html#a93000ad239423bb98dda22c8d48bc614", null ], + [ "rMin", "classmeow_1_1RGBi__Space.html#acf9aab095784c66dc9b3969602f84384", null ] +]; \ No newline at end of file diff --git a/doc/html/classmeow_1_1RGBi__Space.png b/doc/html/classmeow_1_1RGBi__Space.png new file mode 100644 index 0000000..3362171 Binary files /dev/null and b/doc/html/classmeow_1_1RGBi__Space.png differ diff --git a/doc/html/classmeow_1_1ReaderWriter__double-members.html b/doc/html/classmeow_1_1ReaderWriter__double-members.html new file mode 100644 index 0000000..b69e80e --- /dev/null +++ b/doc/html/classmeow_1_1ReaderWriter__double-members.html @@ -0,0 +1,78 @@ + + + + + + + +Templates -- Meow: Member List + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      meow::ReaderWriter_double Member List
      +
      +
      + +

      This is the complete list of members for meow::ReaderWriter_double, including all inherited members.

      + + + +
      read(FILE *f, bool bin, unsigned int fg, double *k)meow::ReaderWriter_doubleinlinestatic
      write(FILE *f, bool bin, unsigned int fg, double const &k)meow::ReaderWriter_doubleinlinestatic
      +
      + + + + + diff --git a/doc/html/classmeow_1_1ReaderWriter__double.html b/doc/html/classmeow_1_1ReaderWriter__double.html new file mode 100644 index 0000000..736bccc --- /dev/null +++ b/doc/html/classmeow_1_1ReaderWriter__double.html @@ -0,0 +1,183 @@ + + + + + + + +Templates -- Meow: meow::ReaderWriter_double Class Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      meow::ReaderWriter_double Class Reference
      +
      +
      + +

      #include "ObjTypes.h"

      + + + + + + +

      +Static Public Member Functions

      static bool write (FILE *f, bool bin, unsigned int fg, double const &k)
       
      static bool read (FILE *f, bool bin, unsigned int fg, double *k)
       
      +

      Member Function Documentation

      + +
      +
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      static bool meow::ReaderWriter_double::read (FILE * f,
      bool bin,
      unsigned int fg,
      doublek 
      )
      +
      +inlinestatic
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      static bool meow::ReaderWriter_double::write (FILE * f,
      bool bin,
      unsigned int fg,
      double const & k 
      )
      +
      +inlinestatic
      +
      + +
      +
      +
      The documentation for this class was generated from the following file: +
      +
      + + + + + diff --git a/doc/html/classmeow_1_1ReaderWriter__double.js b/doc/html/classmeow_1_1ReaderWriter__double.js new file mode 100644 index 0000000..4bd473e --- /dev/null +++ b/doc/html/classmeow_1_1ReaderWriter__double.js @@ -0,0 +1,5 @@ +var classmeow_1_1ReaderWriter__double = +[ + [ "read", "classmeow_1_1ReaderWriter__double.html#a951e079f66e01d81f1492ae1da963d8e", null ], + [ "write", "classmeow_1_1ReaderWriter__double.html#afff0af84fcf29769feeac0544cb8f81b", null ] +]; \ No newline at end of file diff --git a/doc/html/classmeow_1_1ReaderWriter__int-members.html b/doc/html/classmeow_1_1ReaderWriter__int-members.html new file mode 100644 index 0000000..226f250 --- /dev/null +++ b/doc/html/classmeow_1_1ReaderWriter__int-members.html @@ -0,0 +1,78 @@ + + + + + + + +Templates -- Meow: Member List + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      meow::ReaderWriter_int Member List
      +
      +
      + +

      This is the complete list of members for meow::ReaderWriter_int, including all inherited members.

      + + + +
      read(FILE *f, bool bin, unsigned int fg, int *k)meow::ReaderWriter_intinlinestatic
      write(FILE *f, bool bin, unsigned int fg, int const &k)meow::ReaderWriter_intinlinestatic
      +
      + + + + + diff --git a/doc/html/classmeow_1_1ReaderWriter__int.html b/doc/html/classmeow_1_1ReaderWriter__int.html new file mode 100644 index 0000000..7b869b4 --- /dev/null +++ b/doc/html/classmeow_1_1ReaderWriter__int.html @@ -0,0 +1,183 @@ + + + + + + + +Templates -- Meow: meow::ReaderWriter_int Class Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      meow::ReaderWriter_int Class Reference
      +
      +
      + +

      #include "ObjTypes.h"

      + + + + + + +

      +Static Public Member Functions

      static bool write (FILE *f, bool bin, unsigned int fg, int const &k)
       
      static bool read (FILE *f, bool bin, unsigned int fg, int *k)
       
      +

      Member Function Documentation

      + +
      +
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      static bool meow::ReaderWriter_int::read (FILE * f,
      bool bin,
      unsigned int fg,
      intk 
      )
      +
      +inlinestatic
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      static bool meow::ReaderWriter_int::write (FILE * f,
      bool bin,
      unsigned int fg,
      int const & k 
      )
      +
      +inlinestatic
      +
      + +
      +
      +
      The documentation for this class was generated from the following file: +
      +
      + + + + + diff --git a/doc/html/classmeow_1_1ReaderWriter__int.js b/doc/html/classmeow_1_1ReaderWriter__int.js new file mode 100644 index 0000000..b40202e --- /dev/null +++ b/doc/html/classmeow_1_1ReaderWriter__int.js @@ -0,0 +1,5 @@ +var classmeow_1_1ReaderWriter__int = +[ + [ "read", "classmeow_1_1ReaderWriter__int.html#a04e4b5a8285e372706faa5a45983fb9d", null ], + [ "write", "classmeow_1_1ReaderWriter__int.html#a91ca44a047318a75887b13d5e45d52fb", null ] +]; \ No newline at end of file diff --git a/doc/html/classmeow_1_1ReaderWriter__size__t-members.html b/doc/html/classmeow_1_1ReaderWriter__size__t-members.html new file mode 100644 index 0000000..1c90505 --- /dev/null +++ b/doc/html/classmeow_1_1ReaderWriter__size__t-members.html @@ -0,0 +1,78 @@ + + + + + + + +Templates -- Meow: Member List + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      meow::ReaderWriter_size_t Member List
      +
      +
      + +

      This is the complete list of members for meow::ReaderWriter_size_t, including all inherited members.

      + + + +
      read(FILE *f, bool bin, unsigned int fg, size_t *k)meow::ReaderWriter_size_tinlinestatic
      write(FILE *f, bool bin, unsigned int fg, size_t const &k)meow::ReaderWriter_size_tinlinestatic
      +
      + + + + + diff --git a/doc/html/classmeow_1_1ReaderWriter__size__t.html b/doc/html/classmeow_1_1ReaderWriter__size__t.html new file mode 100644 index 0000000..c82c06a --- /dev/null +++ b/doc/html/classmeow_1_1ReaderWriter__size__t.html @@ -0,0 +1,183 @@ + + + + + + + +Templates -- Meow: meow::ReaderWriter_size_t Class Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      meow::ReaderWriter_size_t Class Reference
      +
      +
      + +

      #include "ObjTypes.h"

      + + + + + + +

      +Static Public Member Functions

      static bool write (FILE *f, bool bin, unsigned int fg, size_t const &k)
       
      static bool read (FILE *f, bool bin, unsigned int fg, size_t *k)
       
      +

      Member Function Documentation

      + +
      +
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      static bool meow::ReaderWriter_size_t::read (FILE * f,
      bool bin,
      unsigned int fg,
      size_t * k 
      )
      +
      +inlinestatic
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      static bool meow::ReaderWriter_size_t::write (FILE * f,
      bool bin,
      unsigned int fg,
      size_t const & k 
      )
      +
      +inlinestatic
      +
      + +
      +
      +
      The documentation for this class was generated from the following file: +
      +
      + + + + + diff --git a/doc/html/classmeow_1_1ReaderWriter__size__t.js b/doc/html/classmeow_1_1ReaderWriter__size__t.js new file mode 100644 index 0000000..d0d0ed9 --- /dev/null +++ b/doc/html/classmeow_1_1ReaderWriter__size__t.js @@ -0,0 +1,5 @@ +var classmeow_1_1ReaderWriter__size__t = +[ + [ "read", "classmeow_1_1ReaderWriter__size__t.html#a4bf82797fa84b557895c204c8c94c936", null ], + [ "write", "classmeow_1_1ReaderWriter__size__t.html#ab616eb075979f72e989a984177dfdb58", null ] +]; \ No newline at end of file diff --git a/doc/html/classmeow_1_1ReaderWriter__string-members.html b/doc/html/classmeow_1_1ReaderWriter__string-members.html new file mode 100644 index 0000000..1173357 --- /dev/null +++ b/doc/html/classmeow_1_1ReaderWriter__string-members.html @@ -0,0 +1,78 @@ + + + + + + + +Templates -- Meow: Member List + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      meow::ReaderWriter_string Member List
      +
      +
      + +

      This is the complete list of members for meow::ReaderWriter_string, including all inherited members.

      + + + +
      read(FILE *f, bool bin, unsigned int fg, std::string *k)meow::ReaderWriter_stringinlinestatic
      write(FILE *f, bool bin, unsigned int fg, std::string const &k)meow::ReaderWriter_stringinlinestatic
      +
      + + + + + diff --git a/doc/html/classmeow_1_1ReaderWriter__string.html b/doc/html/classmeow_1_1ReaderWriter__string.html new file mode 100644 index 0000000..892a3e4 --- /dev/null +++ b/doc/html/classmeow_1_1ReaderWriter__string.html @@ -0,0 +1,183 @@ + + + + + + + +Templates -- Meow: meow::ReaderWriter_string Class Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      meow::ReaderWriter_string Class Reference
      +
      +
      + +

      #include "ObjTypes.h"

      + + + + + + +

      +Static Public Member Functions

      static bool write (FILE *f, bool bin, unsigned int fg, std::string const &k)
       
      static bool read (FILE *f, bool bin, unsigned int fg, std::string *k)
       
      +

      Member Function Documentation

      + +
      +
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      static bool meow::ReaderWriter_string::read (FILE * f,
      bool bin,
      unsigned int fg,
      std::string * k 
      )
      +
      +inlinestatic
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      static bool meow::ReaderWriter_string::write (FILE * f,
      bool bin,
      unsigned int fg,
      std::string const & k 
      )
      +
      +inlinestatic
      +
      + +
      +
      +
      The documentation for this class was generated from the following file: +
      +
      + + + + + diff --git a/doc/html/classmeow_1_1ReaderWriter__string.js b/doc/html/classmeow_1_1ReaderWriter__string.js new file mode 100644 index 0000000..20c73eb --- /dev/null +++ b/doc/html/classmeow_1_1ReaderWriter__string.js @@ -0,0 +1,5 @@ +var classmeow_1_1ReaderWriter__string = +[ + [ "read", "classmeow_1_1ReaderWriter__string.html#adf69dad74e4998323580e6913598c894", null ], + [ "write", "classmeow_1_1ReaderWriter__string.html#ac4fe1d4fbaf69b48c36fe2d404c214c5", null ] +]; \ No newline at end of file diff --git a/doc/html/classmeow_1_1Rotation3D-members.html b/doc/html/classmeow_1_1Rotation3D-members.html new file mode 100644 index 0000000..38846a2 --- /dev/null +++ b/doc/html/classmeow_1_1Rotation3D-members.html @@ -0,0 +1,114 @@ + + + + + + + +Templates -- Meow: Member List + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      meow::Rotation3D< Scalar > Member List
      +
      +
      + +

      This is the complete list of members for meow::Rotation3D< Scalar >, including all inherited members.

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      add(Rotation3D const &r)meow::Rotation3D< Scalar >inline
      axisAngle(Vector< Scalar > const &axis, Scalar const &angle)meow::Rotation3D< Scalar >inline
      copyFrom(Rotation3D const &b)meow::Rotation3D< Scalar >inline
      meow::LinearTransformation::copyFrom(LinearTransformation const &b)meow::LinearTransformation< Scalar >inlineprotected
      meow::Transformation::copyFrom(Transformation const &b)meow::Transformation< Scalar >inlineprotected
      inputCols() const meow::Transformation< Scalar >inline
      inputRows() const meow::Transformation< Scalar >inline
      inversable() const meow::Transformation< Scalar >inlinevirtual
      jacobian(Matrix< Scalar > const &x) const meow::Rotation3D< Scalar >inlinevirtual
      jacobian(Matrix< Scalar > const &x, size_t i) const meow::Rotation3D< Scalar >inlinevirtual
      jacobianInv(Matrix< Scalar > const &x) const meow::Rotation3D< Scalar >inlinevirtual
      jacobianInv(Matrix< Scalar > const &x, size_t i) const meow::Rotation3D< Scalar >inlinevirtual
      LinearTransformation(size_t inputRows, size_t outputRows, size_t psize)meow::LinearTransformation< Scalar >inlineprotected
      LinearTransformation(size_t inputRows, size_t outputRows, size_t psize, Matrix< Scalar > const &m)meow::LinearTransformation< Scalar >inlineprotected
      LinearTransformation(LinearTransformation const &b)meow::LinearTransformation< Scalar >inlineprotected
      matrix(Matrix< Scalar > const &m)meow::LinearTransformation< Scalar >inlineprotected
      matrix() const meow::LinearTransformation< Scalar >inlinevirtual
      matrixInv() const meow::Rotation3D< Scalar >inlinevirtual
      operator=(Rotation3D const &b)meow::Rotation3D< Scalar >inline
      outputCols() const meow::Transformation< Scalar >inline
      outputRows() const meow::Transformation< Scalar >inline
      parameter(size_t i) const meow::Rotation3D< Scalar >inlinevirtual
      parameter(size_t i, Scalar const &s)meow::Rotation3D< Scalar >inlinevirtual
      parameterSize() const meow::Transformation< Scalar >inline
      referenceFrom(Rotation3D const &b)meow::Rotation3D< Scalar >inline
      meow::LinearTransformation::referenceFrom(LinearTransformation const &b)meow::LinearTransformation< Scalar >inlineprotected
      meow::Transformation::referenceFrom(Transformation const &b)meow::Transformation< Scalar >inlineprotected
      Rotation3D()meow::Rotation3D< Scalar >inline
      Rotation3D(Rotation3D const &b)meow::Rotation3D< Scalar >inline
      theta(size_t i) const meow::Rotation3D< Scalar >inline
      theta(size_t i, Scalar const &s)meow::Rotation3D< Scalar >inline
      transformate(Matrix< Scalar > const &x) const meow::Rotation3D< Scalar >inlinevirtual
      transformateInv(Matrix< Scalar > const &x) const meow::Rotation3D< Scalar >inlinevirtual
      Transformation(size_t inputRows, size_t inputCols, size_t outputRows, size_t outputCols, size_t psize)meow::Transformation< Scalar >inlineprotected
      Transformation(Transformation const &b)meow::Transformation< Scalar >inlineprotected
      ~LinearTransformation()meow::LinearTransformation< Scalar >inlinevirtual
      ~Rotation3D()meow::Rotation3D< Scalar >inline
      ~Transformation()meow::Transformation< Scalar >inlinevirtual
      +
      + + + + + diff --git a/doc/html/classmeow_1_1Rotation3D.html b/doc/html/classmeow_1_1Rotation3D.html new file mode 100644 index 0000000..5ccce18 --- /dev/null +++ b/doc/html/classmeow_1_1Rotation3D.html @@ -0,0 +1,928 @@ + + + + + + + +Templates -- Meow: meow::Rotation3D< Scalar > Class Template Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      meow::Rotation3D< Scalar > Class Template Reference
      +
      +
      + +

      Rotation a point/vector alone an axis with given angle in 3D world. + More...

      + +

      #include "LinearTransformations.h"

      +
      +Inheritance diagram for meow::Rotation3D< Scalar >:
      +
      +
      + + +meow::LinearTransformation< Scalar > +meow::Transformation< Scalar > + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      +Public Member Functions

       Rotation3D ()
       
       Rotation3D (Rotation3D const &b)
       
       ~Rotation3D ()
       
      Rotation3DcopyFrom (Rotation3D const &b)
       Copy data. More...
       
      Rotation3DreferenceFrom (Rotation3D const &b)
       Reference data. More...
       
      Scalar parameter (size_t i) const
       same as theta(i) More...
       
      Scalar parameter (size_t i, Scalar const &s)
       same as theta(i, s) More...
       
      Scalar const & theta (size_t i) const
       Get the i -th theta. More...
       
      Scalar const & theta (size_t i, Scalar const &s)
       Set the i -th theta. More...
       
      void axisAngle (Vector< Scalar > const &axis, Scalar const &angle)
       Setting. More...
       
      Rotation3Dadd (Rotation3D const &r)
       Concat another rotation transformation. More...
       
      Matrix< Scalar > transformate (Matrix< Scalar > const &x) const
       Do the transformate. More...
       
      Matrix< Scalar > jacobian (Matrix< Scalar > const &x) const
       Return the jacobian matrix (derivate by the input vector) of this transformate. More...
       
      Matrix< Scalar > jacobian (Matrix< Scalar > const &x, size_t i) const
       Return the jacobian matrix of this transformate. More...
       
      Matrix< Scalar > transformateInv (Matrix< Scalar > const &x) const
       Do the inverse transformate. More...
       
      Matrix< Scalar > jacobianInv (Matrix< Scalar > const &x) const
       Return the jacobian matrix of the inverse form of this transformate. More...
       
      Matrix< Scalar > jacobianInv (Matrix< Scalar > const &x, size_t i) const
       Return the jacobian matrix of the inverse form of this transformate. More...
       
      Matrix< Scalar > matrixInv () const
       Return the inverse matrix. More...
       
      Rotation3Doperator= (Rotation3D const &b)
       same as copyFrom(b) More...
       
      - Public Member Functions inherited from meow::LinearTransformation< Scalar >
      virtual ~LinearTransformation ()
       
      virtual Matrix< Scalar > const & matrix () const
       Return the matrix form of this transformation. More...
       
      - Public Member Functions inherited from meow::Transformation< Scalar >
      virtual ~Transformation ()
       
      size_t inputRows () const
       Return the number of rows of the input matrix. More...
       
      size_t inputCols () const
       Return the number of columns of the input matrix. More...
       
      size_t outputRows () const
       Return the number of rows of the output matrix. More...
       
      size_t outputCols () const
       Return the number of columns of the output matrix. More...
       
      size_t parameterSize () const
       Return the number of parameters. More...
       
      virtual bool inversable () const
       Return whether this transformation is inversable or not. More...
       
      + + + + + + + + + + + + + + + + + +

      +Additional Inherited Members

      - Protected Member Functions inherited from meow::LinearTransformation< Scalar >
       LinearTransformation (size_t inputRows, size_t outputRows, size_t psize)
       
       LinearTransformation (size_t inputRows, size_t outputRows, size_t psize, Matrix< Scalar > const &m)
       
       LinearTransformation (LinearTransformation const &b)
       
      LinearTransformationcopyFrom (LinearTransformation const &b)
       Copy settings, matrix from another LinearTransformation. More...
       
      LinearTransformationreferenceFrom (LinearTransformation const &b)
       Reference settings, matrix from another LinearTransformation. More...
       
      Matrix< Scalar > const & matrix (Matrix< Scalar > const &m)
       Setup the matrix. More...
       
      +

      Detailed Description

      +

      template<class Scalar>
      +class meow::Rotation3D< Scalar >

      + +

      Rotation a point/vector alone an axis with given angle in 3D world.

      +
      Author
      cat_leopard
      +

      Constructor & Destructor Documentation

      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      meow::Rotation3D< Scalar >::Rotation3D ()
      +
      +inline
      +
      +

      Constructor with no rotation

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      meow::Rotation3D< Scalar >::Rotation3D (Rotation3D< Scalar > const & b)
      +
      +inline
      +
      +

      Constructor and copy data

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      meow::Rotation3D< Scalar >::~Rotation3D ()
      +
      +inline
      +
      +

      Destructor

      + +
      +
      +

      Member Function Documentation

      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Rotation3D& meow::Rotation3D< Scalar >::add (Rotation3D< Scalar > const & r)
      +
      +inline
      +
      + +

      Concat another rotation transformation.

      +
      Parameters
      + + +
      [in]ranother rotation transformation
      +
      +
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      void meow::Rotation3D< Scalar >::axisAngle (Vector< Scalar > const & axis,
      Scalar const & angle 
      )
      +
      +inline
      +
      + +

      Setting.

      +
      Parameters
      + + + +
      [in]axisaxis
      [in]angleangle
      +
      +
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Rotation3D& meow::Rotation3D< Scalar >::copyFrom (Rotation3D< Scalar > const & b)
      +
      +inline
      +
      + +

      Copy data.

      +
      Parameters
      + + +
      [in]banother Rotation3D class.
      +
      +
      +
      Returns
      *this
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Matrix<Scalar> meow::Rotation3D< Scalar >::jacobian (Matrix< Scalar > const & x) const
      +
      +inlinevirtual
      +
      + +

      Return the jacobian matrix (derivate by the input vector) of this transformate.

      +

      The matrix we return is:

      +

      +\[ \left[ \begin{array}{ccc} 2(n_x^2 - 1) \sin^2\phi + 1 & 2n_x n_y \sin^2\phi - 2n_z\cos \phi\sin \phi & 2n_x n_z \sin^2\phi + 2n_y\cos \phi\sin \phi \\ 2n_y n_x \sin^2\phi + 2n_z\cos \phi\sin \phi & 2(n_y^2 - 1) \sin^2\phi + 1 & 2n_y n_z \sin^2\phi - 2n_x\cos \phi\sin \phi \\ 2n_z n_x \sin^2\phi - 2n_y\cos \phi\sin \phi & 2n_z n_y \sin^2\phi + 2n_x\cos \phi\sin \phi & 2(n_z^2 - 1) \sin^2\phi + 1 \\ \end{array} \right] \] +

      +

      Where the definition of $ \vec{n} $ and $ \phi $ is the same as the definition in the description of the method transformate() .

      +
      Parameters
      + + +
      [in]xthe input vector (in this case it is a useless parameter)
      +
      +
      +
      Returns
      a matrix
      + +

      Reimplemented from meow::Transformation< Scalar >.

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      Matrix<Scalar> meow::Rotation3D< Scalar >::jacobian (Matrix< Scalar > const & x,
      size_t i 
      ) const
      +
      +inlinevirtual
      +
      + +

      Return the jacobian matrix of this transformate.

      +

      Here we need to discussion in three case:

      +
        +
      • i = 0, derivate by the x axis of the vector theta

        +\[ \left[ \begin{array}{ccc} 0 & 0 & 0 \\ 0 & 0 & -1 \\ 0 & 1 & 0 \\ \end{array} \right] \left[ \begin{array}{ccc} 2(n_x^2 - 1) \sin^2\phi + 1 & 2n_x n_y \sin^2\phi - 2n_z\cos \phi\sin \phi & 2n_x n_z \sin^2\phi + 2n_y\cos \phi\sin \phi \\ 2n_y n_x \sin^2\phi + 2n_z\cos \phi\sin \phi & 2(n_y^2 - 1) \sin^2\phi + 1 & 2n_y n_z \sin^2\phi - 2n_x\cos \phi\sin \phi \\ 2n_z n_x \sin^2\phi - 2n_y\cos \phi\sin \phi & 2n_z n_y \sin^2\phi + 2n_x\cos \phi\sin \phi & 2(n_z^2 - 1) \sin^2\phi + 1 \\ \end{array} \right] \left[ \begin{array}{c} x \\ y \\ z \\ \end{array} \right] \] +

        +
      • +
      • i = 1, derivate by the y axis of the vector theta

        +\[ \left[ \begin{array}{ccc} 0 & 0 & 1 \\ 0 & 0 & 0 \\ -1 & 0 & 0 \\ \end{array} \right] \left[ \begin{array}{ccc} 2(n_x^2 - 1) \sin^2\phi + 1 & 2n_x n_y \sin^2\phi - 2n_z\cos \phi\sin \phi & 2n_x n_z \sin^2\phi + 2n_y\cos \phi\sin \phi \\ 2n_y n_x \sin^2\phi + 2n_z\cos \phi\sin \phi & 2(n_y^2 - 1) \sin^2\phi + 1 & 2n_y n_z \sin^2\phi - 2n_x\cos \phi\sin \phi \\ 2n_z n_x \sin^2\phi - 2n_y\cos \phi\sin \phi & 2n_z n_y \sin^2\phi + 2n_x\cos \phi\sin \phi & 2(n_z^2 - 1) \sin^2\phi + 1 \\ \end{array} \right] \left[ \begin{array}{c} x \\ y \\ z \\ \end{array} \right] \] +

        +
      • +
      • i = 2, derivate by the z axis of the vector theta

        +\[ \left[ \begin{array}{ccc} 0 & -1 & 0 \\ 1 & 0 & 0 \\ 0 & 0 & 0 \\ \end{array} \right] \left[ \begin{array}{ccc} 2(n_x^2 - 1) \sin^2\phi + 1 & 2n_x n_y \sin^2\phi - 2n_z\cos \phi\sin \phi & 2n_x n_z \sin^2\phi + 2n_y\cos \phi\sin \phi \\ 2n_y n_x \sin^2\phi + 2n_z\cos \phi\sin \phi & 2(n_y^2 - 1) \sin^2\phi + 1 & 2n_y n_z \sin^2\phi - 2n_x\cos \phi\sin \phi \\ 2n_z n_x \sin^2\phi - 2n_y\cos \phi\sin \phi & 2n_z n_y \sin^2\phi + 2n_x\cos \phi\sin \phi & 2(n_z^2 - 1) \sin^2\phi + 1 \\ \end{array} \right] \left[ \begin{array}{c} x \\ y \\ z \\ \end{array} \right] \] +

        +
      • +
      +

      Where $ (x,y,z) $ is the input vector, $ \vec{n}, \phi $ is the same one in the description of transformate().

      +
      Parameters
      + + + +
      [in]xthe input vector
      [in]ithe index of the parameters(theta) to dervite
      +
      +
      +
      Returns
      a matrix
      + +

      Reimplemented from meow::Transformation< Scalar >.

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Matrix<Scalar> meow::Rotation3D< Scalar >::jacobianInv (Matrix< Scalar > const & x) const
      +
      +inlinevirtual
      +
      + +

      Return the jacobian matrix of the inverse form of this transformate.

      +
      Parameters
      + + +
      [in]xthe input vector
      +
      +
      +
      Returns
      a matrix
      + +

      Reimplemented from meow::Transformation< Scalar >.

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      Matrix<Scalar> meow::Rotation3D< Scalar >::jacobianInv (Matrix< Scalar > const & x,
      size_t i 
      ) const
      +
      +inlinevirtual
      +
      + +

      Return the jacobian matrix of the inverse form of this transformate.

      +
      Parameters
      + + + +
      [in]xthe input vector
      [in]ithe index of the parameters(theta) to dervite
      +
      +
      +
      Returns
      a matrix
      + +

      Reimplemented from meow::Transformation< Scalar >.

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      Matrix<Scalar> meow::Rotation3D< Scalar >::matrixInv () const
      +
      +inlinevirtual
      +
      + +

      Return the inverse matrix.

      +

      In this case, the inverse matrix is equal to the transpose of the matrix

      +
      Returns
      a matrix
      + +

      Reimplemented from meow::LinearTransformation< Scalar >.

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Rotation3D& meow::Rotation3D< Scalar >::operator= (Rotation3D< Scalar > const & b)
      +
      +inline
      +
      + +

      same as copyFrom(b)

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Scalar meow::Rotation3D< Scalar >::parameter (size_t i) const
      +
      +inlinevirtual
      +
      + +

      same as theta(i)

      + +

      Implements meow::Transformation< Scalar >.

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      Scalar meow::Rotation3D< Scalar >::parameter (size_t i,
      Scalar const & s 
      )
      +
      +inlinevirtual
      +
      + +

      same as theta(i, s)

      + +

      Implements meow::Transformation< Scalar >.

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Rotation3D& meow::Rotation3D< Scalar >::referenceFrom (Rotation3D< Scalar > const & b)
      +
      +inline
      +
      + +

      Reference data.

      +
      Parameters
      + + +
      [in]banother Rotation3D class.
      +
      +
      +
      Returns
      *this
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Scalar const& meow::Rotation3D< Scalar >::theta (size_t i) const
      +
      +inline
      +
      + +

      Get the i -th theta.

      +

      i can only be 1, 2 or 3

      +
      Parameters
      + + +
      [in]iindex
      +
      +
      +
      Returns
      i -th theta
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      Scalar const& meow::Rotation3D< Scalar >::theta (size_t i,
      Scalar const & s 
      )
      +
      +inline
      +
      + +

      Set the i -th theta.

      +

      i can only be 1, 2 or 3

      +
      Parameters
      + + + +
      [in]iindex
      [in]snew theta value
      +
      +
      +
      Returns
      i -th theta
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Matrix<Scalar> meow::Rotation3D< Scalar >::transformate (Matrix< Scalar > const & x) const
      +
      +inlinevirtual
      +
      + +

      Do the transformate.

      +

      Assume:

      +
        +
      • The input vector is $ (x ,y ,z ) $
      • +
      • The output vector is $ (x',y',z') $
      • +
      • The parameters theta is $ \vec{\theta}=(\theta_x,\theta_y,\theta_z) $
      • +
      +

      Then we have:

      +

      +\[ \left[ \begin{array}{c} x' \\ y' \\ z' \\ \end{array} \right] = \left[ \begin{array}{ccc} 2(n_x^2 - 1) \sin^2\phi + 1 & 2n_x n_y \sin^2\phi - 2n_z\cos \phi\sin \phi & 2n_x n_z \sin^2\phi + 2n_y\cos \phi\sin \phi \\ 2n_y n_x \sin^2\phi + 2n_z\cos \phi\sin \phi & 2(n_y^2 - 1) \sin^2\phi + 1 & 2n_y n_z \sin^2\phi - 2n_x\cos \phi\sin \phi \\ 2n_z n_x \sin^2\phi - 2n_y\cos \phi\sin \phi & 2n_z n_y \sin^2\phi + 2n_x\cos \phi\sin \phi & 2(n_z^2 - 1) \sin^2\phi + 1 \\ \end{array} \right] \left[ \begin{array}{c} x \\ y \\ z \\ \end{array} \right] \] +

      +

      Where:

      +
        +
      • $ \phi $ is the helf of length of $ \vec{\theta} $ , which means $ \phi = \frac{\left|\vec{\theta}\right|}{2} = \frac{1}{2}\sqrt{\theta_x^2 + \theta_y^2 + \theta_z^2} $
      • +
      • $ \vec{n} $ is the normalized form of $ \vec{\theta} $ , which means $ \vec{n} = (n_x,n_y,n_z) = \vec{\theta} / 2\phi $
      • +
      +
      Parameters
      + + +
      [in]xthe input vector
      +
      +
      +
      Returns
      the output matrix
      + +

      Implements meow::Transformation< Scalar >.

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Matrix<Scalar> meow::Rotation3D< Scalar >::transformateInv (Matrix< Scalar > const & x) const
      +
      +inlinevirtual
      +
      + +

      Do the inverse transformate.

      +
      Parameters
      + + +
      [in]xthe input vector
      +
      +
      +
      Returns
      the output vector
      + +

      Reimplemented from meow::Transformation< Scalar >.

      + +
      +
      +
      The documentation for this class was generated from the following file: +
      +
      + + + + + diff --git a/doc/html/classmeow_1_1Rotation3D.js b/doc/html/classmeow_1_1Rotation3D.js new file mode 100644 index 0000000..111eb40 --- /dev/null +++ b/doc/html/classmeow_1_1Rotation3D.js @@ -0,0 +1,22 @@ +var classmeow_1_1Rotation3D = +[ + [ "Rotation3D", "classmeow_1_1Rotation3D.html#a90c102c7f74e8a36ac0d24bef6b06337", null ], + [ "Rotation3D", "classmeow_1_1Rotation3D.html#ab566bace2339705305d7e18c36116d2a", null ], + [ "~Rotation3D", "classmeow_1_1Rotation3D.html#aa9ce2a9c913ea08ba7fb43aed4784a2b", null ], + [ "add", "classmeow_1_1Rotation3D.html#a29ca99627654b9d136c12f6e0e2c91c5", null ], + [ "axisAngle", "classmeow_1_1Rotation3D.html#a757a196f261a28693061c5e16be97ab6", null ], + [ "copyFrom", "classmeow_1_1Rotation3D.html#a8ce437d591d81cc81be959d6f27e71c9", null ], + [ "jacobian", "classmeow_1_1Rotation3D.html#a4846e5870c41f3694678d8acf032b8df", null ], + [ "jacobian", "classmeow_1_1Rotation3D.html#a201c56debd6cc0f4e75cb06148197726", null ], + [ "jacobianInv", "classmeow_1_1Rotation3D.html#ae12a31cabc1260bd7256734f0e04acfb", null ], + [ "jacobianInv", "classmeow_1_1Rotation3D.html#af2a38c66668f6dcc11005e8f42b81f2f", null ], + [ "matrixInv", "classmeow_1_1Rotation3D.html#a513851c5d53274b76fd9511ba1aea484", null ], + [ "operator=", "classmeow_1_1Rotation3D.html#a3e0095d1f506d6f11c434d55e454aca6", null ], + [ "parameter", "classmeow_1_1Rotation3D.html#ac6488df50303b564262065350186549a", null ], + [ "parameter", "classmeow_1_1Rotation3D.html#a0a7c3b7f605caf7bc54f80b25b317972", null ], + [ "referenceFrom", "classmeow_1_1Rotation3D.html#ac2919c38518ea677a85df8757bd8f0d9", null ], + [ "theta", "classmeow_1_1Rotation3D.html#aeceaa78749d4bd9f5d638591298073dd", null ], + [ "theta", "classmeow_1_1Rotation3D.html#a77a863b230bcacdfaf5a534f17268170", null ], + [ "transformate", "classmeow_1_1Rotation3D.html#a566ebd46881ef0165aab55a4cf4ca169", null ], + [ "transformateInv", "classmeow_1_1Rotation3D.html#aa872f44ce5b53faadddc9493697cfe13", null ] +]; \ No newline at end of file diff --git a/doc/html/classmeow_1_1Rotation3D.png b/doc/html/classmeow_1_1Rotation3D.png new file mode 100644 index 0000000..823ec41 Binary files /dev/null and b/doc/html/classmeow_1_1Rotation3D.png differ diff --git a/doc/html/classmeow_1_1SegmentTree-members.html b/doc/html/classmeow_1_1SegmentTree-members.html new file mode 100644 index 0000000..ea5be66 --- /dev/null +++ b/doc/html/classmeow_1_1SegmentTree-members.html @@ -0,0 +1,86 @@ + + + + + + + +Templates -- Meow: Member List + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      meow::SegmentTree< Value > Member List
      +
      +
      + +

      This is the complete list of members for meow::SegmentTree< Value >, including all inherited members.

      + + + + + + + + + + + +
      copyFrom(SegmentTree const &b)meow::SegmentTree< Value >inline
      offset(ssize_t first, ssize_t last, Value const &delta)meow::SegmentTree< Value >inline
      operator=(SegmentTree const &b)meow::SegmentTree< Value >inline
      override(ssize_t first, ssize_t last, Value const &value)meow::SegmentTree< Value >inline
      query(ssize_t first, ssize_t last) const meow::SegmentTree< Value >inline
      reset(size_t size)meow::SegmentTree< Value >inline
      SegmentTree()meow::SegmentTree< Value >inline
      SegmentTree(size_t size)meow::SegmentTree< Value >inline
      SegmentTree(SegmentTree const &tree2)meow::SegmentTree< Value >inline
      size() const meow::SegmentTree< Value >inline
      +
      + + + + + diff --git a/doc/html/classmeow_1_1SegmentTree.html b/doc/html/classmeow_1_1SegmentTree.html new file mode 100644 index 0000000..3c6082d --- /dev/null +++ b/doc/html/classmeow_1_1SegmentTree.html @@ -0,0 +1,485 @@ + + + + + + + +Templates -- Meow: meow::SegmentTree< Value > Class Template Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      meow::SegmentTree< Value > Class Template Reference
      +
      +
      + +

      中文名 線段樹 + More...

      + +

      #include "SegmentTree.h"

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      +Public Member Functions

       SegmentTree ()
       constructor More...
       
       SegmentTree (size_t size)
       constructor, with size gived More...
       
       SegmentTree (SegmentTree const &tree2)
       constructor, 並且複製資料 More...
       
      SegmentTree copyFrom (SegmentTree const &b)
       複製 More...
       
      size_t size () const
       回傳size More...
       
      void reset (size_t size)
       將資料清空且設定維護範圍是 0~size-1 More...
       
      Value query (ssize_t first, ssize_t last) const
       回傳區間 [first,last] (邊界都含) 的區間值 More...
       
      void override (ssize_t first, ssize_t last, Value const &value)
       將區間 [first,last] 全部都設定成 value More...
       
      void offset (ssize_t first, ssize_t last, Value const &delta)
       將區間 [first,last] 全部都加上 delta More...
       
      SegmentTreeoperator= (SegmentTree const &b)
       same as copyFrom(b) More...
       
      +

      Detailed Description

      +

      template<class Value>
      +class meow::SegmentTree< Value >

      + +

      中文名 線段樹

      +

      維護一個陣列, 並且讓user可以有區間查詢, 區間修改的小東東

      +

      Template Class Operators Request

      + + + + + + + + + + + + + + + + + + + +
      const?TypenameOperator Parameters Return Type Description
      const Vector operator[] (size_t n) Scalar 取得第 n 維度量
      const Vector operator< (Vector v) bool 權重比較
      const Scalar operator* (Scalar s) Scalar 相乘
      const Scalar operator+ (Scalar s) Scalar 相加
      const Scalar operator- (Scalar s) Scalar 相差
      const Scalar operator< (Scalar s) bool 大小比較
      const Value operator+ (Value v) Value 相加(位移)
      const Value operator* (size_t n) Value 每個Value都一樣,
      +

      長為 n 的區間的值| |const |Value |operator{b}|(Value v) |Value | 區間合併後的值 |

      +
        +
      • 若要維護區間最小值, 即每次都是詢問範圍 [a, b] 的最小值, 則可以定義
          +
        • operator+ 為 '回傳相加值'
        • +
        • operator* 為 '回傳*this'
        • +
        • operator| 為 '回傳std::min(*this, v)'
        • +
        +
      • +
      • 若要維護區間最總和, 即每次都是詢問範圍 [a, b] 的總和, 則可以定義
          +
        • operator+ 為 '回傳相加值'
        • +
        • operator* 為 '回傳(*this) * n'
        • +
        • operator| 為 '回傳相加值'
        • +
        +
      • +
      +
      Author
      cat_leopard
      +

      Constructor & Destructor Documentation

      + +
      +
      +
      +template<class Value >
      + + + + + +
      + + + + + + + +
      meow::SegmentTree< Value >::SegmentTree ()
      +
      +inline
      +
      + +

      constructor

      + +
      +
      + +
      +
      +
      +template<class Value >
      + + + + + +
      + + + + + + + + +
      meow::SegmentTree< Value >::SegmentTree (size_t size)
      +
      +inline
      +
      + +

      constructor, with size gived

      + +
      +
      + +
      +
      +
      +template<class Value >
      + + + + + +
      + + + + + + + + +
      meow::SegmentTree< Value >::SegmentTree (SegmentTree< Value > const & tree2)
      +
      +inline
      +
      + +

      constructor, 並且複製資料

      + +
      +
      +

      Member Function Documentation

      + +
      +
      +
      +template<class Value >
      + + + + + +
      + + + + + + + + +
      SegmentTree meow::SegmentTree< Value >::copyFrom (SegmentTree< Value > const & b)
      +
      +inline
      +
      + +

      複製

      + +
      +
      + +
      +
      +
      +template<class Value >
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      void meow::SegmentTree< Value >::offset (ssize_t first,
      ssize_t last,
      Value const & delta 
      )
      +
      +inline
      +
      + +

      將區間 [first,last] 全部都加上 delta

      + +
      +
      + +
      +
      +
      +template<class Value >
      + + + + + +
      + + + + + + + + +
      SegmentTree& meow::SegmentTree< Value >::operator= (SegmentTree< Value > const & b)
      +
      +inline
      +
      + +

      same as copyFrom(b)

      + +
      +
      + +
      +
      +
      +template<class Value >
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      void meow::SegmentTree< Value >::override (ssize_t first,
      ssize_t last,
      Value const & value 
      )
      +
      +inline
      +
      + +

      將區間 [first,last] 全部都設定成 value

      + +
      +
      + +
      +
      +
      +template<class Value >
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      Value meow::SegmentTree< Value >::query (ssize_t first,
      ssize_t last 
      ) const
      +
      +inline
      +
      + +

      回傳區間 [first,last] (邊界都含) 的區間值

      + +
      +
      + +
      +
      +
      +template<class Value >
      + + + + + +
      + + + + + + + + +
      void meow::SegmentTree< Value >::reset (size_t size)
      +
      +inline
      +
      + +

      將資料清空且設定維護範圍是 0~size-1

      + +
      +
      + +
      +
      +
      +template<class Value >
      + + + + + +
      + + + + + + + +
      size_t meow::SegmentTree< Value >::size () const
      +
      +inline
      +
      + +

      回傳size

      + +
      +
      +
      The documentation for this class was generated from the following file: +
      +
      + + + + + diff --git a/doc/html/classmeow_1_1SegmentTree.js b/doc/html/classmeow_1_1SegmentTree.js new file mode 100644 index 0000000..7d64cc2 --- /dev/null +++ b/doc/html/classmeow_1_1SegmentTree.js @@ -0,0 +1,13 @@ +var classmeow_1_1SegmentTree = +[ + [ "SegmentTree", "classmeow_1_1SegmentTree.html#a8e8365f0440c68f3c0853b94a7de3ccb", null ], + [ "SegmentTree", "classmeow_1_1SegmentTree.html#a1fe904372d3cdd01f07a1c88f86b14a1", null ], + [ "SegmentTree", "classmeow_1_1SegmentTree.html#a12a47cdf24eacb80d0bad4010f6a2953", null ], + [ "copyFrom", "classmeow_1_1SegmentTree.html#a889f38048ffe08ce3c80911878faac44", null ], + [ "offset", "classmeow_1_1SegmentTree.html#aaeca3de355dc367e2664e83800ee6aa5", null ], + [ "operator=", "classmeow_1_1SegmentTree.html#a765e794af604ab7c20a4245dfafcf14c", null ], + [ "override", "classmeow_1_1SegmentTree.html#a2f300a5fd5ffdd19e4b3efc6899a7439", null ], + [ "query", "classmeow_1_1SegmentTree.html#a18bb3667abd9810ce3534af3d70b14d5", null ], + [ "reset", "classmeow_1_1SegmentTree.html#a80c550b0a3b997bc541ae0947ae2f55d", null ], + [ "size", "classmeow_1_1SegmentTree.html#a8985a196cfb954bc469e7dae146ad4ed", null ] +]; \ No newline at end of file diff --git a/doc/html/classmeow_1_1Self-members.html b/doc/html/classmeow_1_1Self-members.html new file mode 100644 index 0000000..220cd88 --- /dev/null +++ b/doc/html/classmeow_1_1Self-members.html @@ -0,0 +1,88 @@ + + + + + + + +Templates -- Meow: Member List + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      meow::Self< Data > Member List
      +
      +
      + +

      This is the complete list of members for meow::Self< Data >, including all inherited members.

      + + + + + + + + + + + + + +
      copyFrom(Self const &s)meow::Self< Data >inline
      equal(Self const &s) const meow::Self< Data >inline
      operator()() const meow::Self< Data >inline
      operator->() const meow::Self< Data >inline
      operator->()meow::Self< Data >inline
      operator=(Self const &a)meow::Self< Data >
      referenceFrom(Self const &s)meow::Self< Data >inline
      referenceLess(Self const &s) const meow::Self< Data >inline
      same(Self const &s) const meow::Self< Data >inline
      Self(bool create_body)meow::Self< Data >inline
      Self(Self const &b)meow::Self< Data >
      ~Self()meow::Self< Data >inline
      +
      + + + + + diff --git a/doc/html/classmeow_1_1Self.html b/doc/html/classmeow_1_1Self.html new file mode 100644 index 0000000..d753e2b --- /dev/null +++ b/doc/html/classmeow_1_1Self.html @@ -0,0 +1,544 @@ + + + + + + + +Templates -- Meow: meow::Self< Data > Class Template Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      meow::Self< Data > Class Template Reference
      +
      +
      + +

      具有copy on write, 且擁有比C++更靈活的reference機制 + More...

      + +

      #include "Self.h"

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      +Public Member Functions

       Self (bool create_body)
       constructor More...
       
       Self (Self const &b)
       不允許copy constructor More...
       
       ~Self ()
       解構子 More...
       
      Data const * operator-> () const
       回傳指向 Data const 的指標 More...
       
      Data * operator-> ()
       回傳指向 Data 的指標, 如有需要, 這邊會做資料的duplicate More...
       
      Selfoperator() () const
       回傳非const型態的自己 More...
       
      void copyFrom (Self const &s)
       將給定的 Self 的資料複製到自己這裡 More...
       
      void referenceFrom (Self const &s)
       將自己reference 到給定的 Self More...
       
      bool same (Self const &s) const
       比對兩個 Self 是否指向同一個reference More...
       
      bool equal (Self const &s) const
       比對兩個 Self 的內容是否一樣 More...
       
      bool referenceLess (Self const &s) const
       以reference作為判斷依據的小於判斷 More...
       
      void operator= (Self const &a)
       operator= 給disable掉 More...
       
      +

      Detailed Description

      +

      template<class Data>
      +class meow::Self< Data >

      + +

      具有copy on write, 且擁有比C++更靈活的reference機制

      +

      使用上就是把所有成員變數包到一個class/structure裡, 送給Self
      + 例如以下

      +
      class A {
      +
      private:
      +
      struct Myself {
      +
      int data;
      +
      Myself(){
      +
      data = 0;
      +
      }
      +
      ~Myself() {
      +
      }
      +
      Myself copyFrom(Myself const& ms) const {
      +
      data = ms.data;
      +
      }
      +
      };
      +
      Self<Myself> const self;
      +
      public:
      +
      A(): self(true) { // self(true) 表示要建立實體, 即struct Myself
      +
      }
      +
      A(A const& a): self(false) { // for std::swap
      + +
      }
      +
      // A(A const& a); // disable 模糊用法, 與上者二選一
      +
      A(A const& a, bool reference): self(false) {
      +
      if (reference) {
      + +
      } else {
      + +
      }
      +
      }
      +
      ~A() {
      +
      }
      +
      void setMemeber(int k) {
      +
      self()->data = k; // self()->?? 可以有write權限
      +
      }
      +
      int getMemember(int wh) const {
      +
      return self->data; // self->?? 只有const
      +
      }
      +
      A referenceFrom(A const& a) {
      +
      self.referenceFrom(a.self);
      +
      }
      +
      A copyFrom(A const& a) {
      +
      self.copyFrom(a.self);
      +
      }
      +
      A& operator=(A const& b) { // for std::swap
      + +
      }
      +
      A& operator=(A const& b); // 避免諢亂用法
      +
      };
      +
      Author
      cathook
      +
      Warning
      Self 這個class會把operator= 給disable掉, 所以使用它當 kernel的class預設的 operator= 都會無法使用
      +

      Constructor & Destructor Documentation

      + +
      +
      +
      +template<class Data>
      + + + + + +
      + + + + + + + + +
      meow::Self< Data >::Self (bool create_body)
      +
      +inline
      +
      + +

      constructor

      +
      Parameters
      + + +
      [in]create_body是否要new一個實體資料 (如果constructor完, 馬上就要 copyFrom() , 或是 referenceFrom() 的話 不太需要 new一個實體, 否則基本上都要
      +
      +
      + +
      +
      + +
      +
      +
      +template<class Data>
      + + + + + + + + +
      meow::Self< Data >::Self (Self< Data > const & b)
      +
      + +

      不允許copy constructor

      + +
      +
      + +
      +
      +
      +template<class Data>
      + + + + + +
      + + + + + + + +
      meow::Self< Data >::~Self ()
      +
      +inline
      +
      + +

      解構子

      + +
      +
      +

      Member Function Documentation

      + +
      +
      +
      +template<class Data>
      + + + + + +
      + + + + + + + + +
      void meow::Self< Data >::copyFrom (Self< Data > const & s)
      +
      +inline
      +
      + +

      將給定的 Self 的資料複製到自己這裡

      +
      Parameters
      + + +
      [in]s給定的Self
      +
      +
      +
      Returns
      +
      Note
      與reference的差別是, copy之後若該給定的 Self 有資料修改, this 這邊 不會 被改到
      + +
      +
      + +
      +
      +
      +template<class Data>
      + + + + + +
      + + + + + + + + +
      bool meow::Self< Data >::equal (Self< Data > const & s) const
      +
      +inline
      +
      + +

      比對兩個 Self 的內容是否一樣

      +
      Parameters
      + + +
      [in]s另一個 Self
      +
      +
      +
      Returns
      true/false 表示兩個內容是否一樣
      +
      Note
      需要用到 Data的equal()
      + +
      +
      + +
      +
      +
      +template<class Data>
      + + + + + +
      + + + + + + + +
      Self& meow::Self< Data >::operator() () const
      +
      +inline
      +
      + +

      回傳非const型態的自己

      + +
      +
      + +
      +
      +
      +template<class Data>
      + + + + + +
      + + + + + + + +
      Data const* meow::Self< Data >::operator-> () const
      +
      +inline
      +
      + +

      回傳指向 Data const 的指標

      + +
      +
      + +
      +
      +
      +template<class Data>
      + + + + + +
      + + + + + + + +
      Data* meow::Self< Data >::operator-> ()
      +
      +inline
      +
      + +

      回傳指向 Data 的指標, 如有需要, 這邊會做資料的duplicate

      + +
      +
      + +
      +
      +
      +template<class Data>
      + + + + + + + + +
      void meow::Self< Data >::operator= (Self< Data > const & a)
      +
      + +

      operator= 給disable掉

      + +
      +
      + +
      +
      +
      +template<class Data>
      + + + + + +
      + + + + + + + + +
      void meow::Self< Data >::referenceFrom (Self< Data > const & s)
      +
      +inline
      +
      + +

      將自己reference 到給定的 Self

      +
      Parameters
      + + +
      [in]s給定的Self
      +
      +
      +
      Returns
      +
      Note
      把reference想像成指標會比較容易思考, 譬如 a.referenceFrom(b) b.referenceFrom(c) 相當於 a指向b原本指的記憶體位置, b指向c原本指的記憶體位置 , 之後更動c時, 只有b會被牽連
      + +
      +
      + +
      +
      +
      +template<class Data>
      + + + + + +
      + + + + + + + + +
      bool meow::Self< Data >::referenceLess (Self< Data > const & s) const
      +
      +inline
      +
      + +

      以reference作為判斷依據的小於判斷

      +
      Parameters
      + + +
      [in]s另一個 Self
      +
      +
      +
      Returns
      true/false 表示自己是否小於另一個 Self
      + +
      +
      + +
      +
      +
      +template<class Data>
      + + + + + +
      + + + + + + + + +
      bool meow::Self< Data >::same (Self< Data > const & s) const
      +
      +inline
      +
      + +

      比對兩個 Self 是否指向同一個reference

      +
      Parameters
      + + +
      [in]s另一個 Self
      +
      +
      +
      Returns
      true/false 表示是否為同一個reference
      + +
      +
      +
      The documentation for this class was generated from the following file: +
      +
      + + + + + diff --git a/doc/html/classmeow_1_1Self.js b/doc/html/classmeow_1_1Self.js new file mode 100644 index 0000000..559c2bc --- /dev/null +++ b/doc/html/classmeow_1_1Self.js @@ -0,0 +1,15 @@ +var classmeow_1_1Self = +[ + [ "Self", "classmeow_1_1Self.html#a0db7c98f250aeee3b06a49ebe0f16937", null ], + [ "Self", "classmeow_1_1Self.html#a000ede7e217c31401cc0a4b1c6749ee5", null ], + [ "~Self", "classmeow_1_1Self.html#ada16564a03665b10810a6342d61044bc", null ], + [ "copyFrom", "classmeow_1_1Self.html#a7ae7da730705bf2330a259308e5a6828", null ], + [ "equal", "classmeow_1_1Self.html#a91098e2218c358470e81d64f35d6491d", null ], + [ "operator()", "classmeow_1_1Self.html#a5962339e9ee49312ab770f1119256ca6", null ], + [ "operator->", "classmeow_1_1Self.html#a6063551c3e6ac647500e938ade8fbc99", null ], + [ "operator->", "classmeow_1_1Self.html#ace312355261c68ac7531767939f5c4c2", null ], + [ "operator=", "classmeow_1_1Self.html#af3277e1109c59e5f81549889b344a675", null ], + [ "referenceFrom", "classmeow_1_1Self.html#a576e99ba0ba6e8263b4d2cfd9238440f", null ], + [ "referenceLess", "classmeow_1_1Self.html#a10f22a83c3afcf65f8f9680f2a2f945c", null ], + [ "same", "classmeow_1_1Self.html#ab3671e44693b79e2f987f59652d46ca9", null ] +]; \ No newline at end of file diff --git a/doc/html/classmeow_1_1SplayTree-members.html b/doc/html/classmeow_1_1SplayTree-members.html new file mode 100644 index 0000000..53b3017 --- /dev/null +++ b/doc/html/classmeow_1_1SplayTree-members.html @@ -0,0 +1,101 @@ + + + + + + + +Templates -- Meow: Member List + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      meow::SplayTree< Key, Value > Member List
      +
      +
      + +

      This is the complete list of members for meow::SplayTree< Key, Value >, including all inherited members.

      + + + + + + + + + + + + + + + + + + + + + + + + + + +
      clear()meow::SplayTree< Key, Value >inline
      copyFrom(SplayTree const &tree2)meow::SplayTree< Key, Value >inline
      empty() const meow::SplayTree< Key, Value >inline
      end() const meow::SplayTree< Key, Value >inline
      erase(Key const &key)meow::SplayTree< Key, Value >inline
      find(Key const &key) const meow::SplayTree< Key, Value >inline
      first() const meow::SplayTree< Key, Value >inline
      insert(Key const &key, Value const &value)meow::SplayTree< Key, Value >inline
      keyOffset(Key const &delta)meow::SplayTree< Key, Value >inline
      last() const meow::SplayTree< Key, Value >inline
      lowerBound(Key const &key) const meow::SplayTree< Key, Value >inline
      merge(SplayTree *tree2)meow::SplayTree< Key, Value >inline
      mergeAfter(SplayTree *tree2)meow::SplayTree< Key, Value >inline
      moveTo(SplayTree *tree2)meow::SplayTree< Key, Value >inline
      operator=(SplayTree const &tree2)meow::SplayTree< Key, Value >inline
      operator[](Key const &key)meow::SplayTree< Key, Value >inline
      order(size_t order) const meow::SplayTree< Key, Value >inline
      rLowerBound(Key const &key) const meow::SplayTree< Key, Value >inline
      rUpperBound(Key const &key) const meow::SplayTree< Key, Value >inline
      size() const meow::SplayTree< Key, Value >inline
      SplayTree()meow::SplayTree< Key, Value >inline
      SplayTree(SplayTree const &tree2)meow::SplayTree< Key, Value >inline
      splitOut(Key const &upper_bound, SplayTree *right)meow::SplayTree< Key, Value >inline
      upperBound(Key const &key) const meow::SplayTree< Key, Value >inline
      ~SplayTree()meow::SplayTree< Key, Value >inline
      +
      + + + + + diff --git a/doc/html/classmeow_1_1SplayTree.html b/doc/html/classmeow_1_1SplayTree.html new file mode 100644 index 0000000..1480394 --- /dev/null +++ b/doc/html/classmeow_1_1SplayTree.html @@ -0,0 +1,918 @@ + + + + + + + +Templates -- Meow: meow::SplayTree< Key, Value > Class Template Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      meow::SplayTree< Key, Value > Class Template Reference
      +
      +
      + +

      是一種神乎其技的資料結構, 維護一堆 Key->Value . 並且支援 一些 std::map 難以快速實踐的操作, 如 split , merge , keyOffset + More...

      + +

      #include "SplayTree.h"

      + + + + + +

      +Classes

      class  Element
       類似 stliterator ,不過這邊叫做Element More...
       
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      +Public Member Functions

       SplayTree ()
       constructor More...
       
       SplayTree (SplayTree const &tree2)
       constructor, 複製資料 More...
       
       ~SplayTree ()
       destructor More...
       
      SplayTreecopyFrom (SplayTree const &tree2)
       複製資料 More...
       
      void moveTo (SplayTree *tree2)
       將資料都丟到 tree2 身上, 並且清空自己 More...
       
      Element lowerBound (Key const &key) const
       找出第一個(最小的) Element且 k <= 它的 Key, 並且回傳之. More...
       
      Element upperBound (Key const &key) const
       找出第一個(最小的) Element且 k < 它的 Key, 並且回傳之. More...
       
      Element rLowerBound (Key const &key) const
       找出第一個(最小的) Element且 k >= 它的 Key, 並且回傳之. More...
       
      Element rUpperBound (Key const &key) const
       找出第一個(最小的) Element且 k > 它的 Key, 並且回傳之. More...
       
      Element find (Key const &key) const
       找出 Key= k 的Elemenet 並回傳. 找不到的話回傳 this->end() More...
       
      Element order (size_t order) const
       將Elements依照Key由小到大排序, 回傳第 ord 個Element (由0算起). More...
       
      Element first () const
       回傳Key最小的Element, 如果SplayTree為空, 則回傳 this->end() More...
       
      Element last () const
       回傳Key最大的Element, 如果SplayTree為空, 則回傳 this->end() More...
       
      Element end () const
       回傳一個指向NULL的Element, More...
       
      size_t size () const
       回傳資料個數 More...
       
      bool empty () const
       回傳是否為空 More...
       
      void clear ()
       清空 More...
       
      bool insert (Key const &key, Value const &value)
       插入一組(Key —> Value) More...
       
      bool erase (Key const &key)
       刪除一組資料 More...
       
      void keyOffset (Key const &delta)
       將所有Element的Key同加上 delta More...
       
      void splitOut (Key const &upper_bound, SplayTree *right)
       tree2 清空, 再將所有Key > upper_bound 的Element都丟過去 More...
       
      bool mergeAfter (SplayTree *tree2)
       合併 More...
       
      bool merge (SplayTree *tree2)
       合併 More...
       
      Value & operator[] (Key const &key)
       就像stl::map::operator[] More...
       
      SplayTreeoperator= (SplayTree const &tree2)
       same as copyFrom(tree2) More...
       
      +

      Detailed Description

      +

      template<class Key, class Value>
      +class meow::SplayTree< Key, Value >

      + +

      是一種神乎其技的資料結構, 維護一堆 Key->Value . 並且支援 一些 std::map 難以快速實踐的操作, 如 split , merge , keyOffset

      +

      Template Class Operators Request

      + + + + + + + + + + + + + +
      const?TypenameOperator Parameters Return Type Description
      const Key operator+ (Key k) Key 相加
      const Key operator< (Key k) bool 大小比較
      Key operator= (Key k) Key copy oper
      Key Key (int n) 構子,n 永遠是0
      Value Value ( ) 建構子
      +
      Note
      : -假設現在有兩個SplayTree AB, 則: -執行 B.moveTo(&A)B 會變成空的, A 原本擁有的資料也會覆蓋掉 -行 A.merge(&B)A.mergeAfter(&B) 後 如果檢查發現確實可以merge, 則之後 B 會變成空的
      +
      Author
      cat_leopard
      +

      Constructor & Destructor Documentation

      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + +
      meow::SplayTree< Key, Value >::SplayTree ()
      +
      +inline
      +
      + +

      constructor

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + +
      meow::SplayTree< Key, Value >::SplayTree (SplayTree< Key, Value > const & tree2)
      +
      +inline
      +
      + +

      constructor, 複製資料

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + +
      meow::SplayTree< Key, Value >::~SplayTree ()
      +
      +inline
      +
      + +

      destructor

      + +
      +
      +

      Member Function Documentation

      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + +
      void meow::SplayTree< Key, Value >::clear ()
      +
      +inline
      +
      + +

      清空

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + +
      SplayTree& meow::SplayTree< Key, Value >::copyFrom (SplayTree< Key, Value > const & tree2)
      +
      +inline
      +
      + +

      複製資料

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + +
      bool meow::SplayTree< Key, Value >::empty () const
      +
      +inline
      +
      + +

      回傳是否為空

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + +
      Element meow::SplayTree< Key, Value >::end () const
      +
      +inline
      +
      + +

      回傳一個指向NULL的Element,

      +

      以供 find ,order ,first ,last 等判斷是否有找到相對應的Element

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + +
      bool meow::SplayTree< Key, Value >::erase (Key const & key)
      +
      +inline
      +
      + +

      刪除一組資料

      +

      檢查是否已有Element的Key 為 key, 若有則刪除之, 並回傳 true, 否則則回傳 false

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + +
      Element meow::SplayTree< Key, Value >::find (Key const & key) const
      +
      +inline
      +
      + +

      找出 Key= k 的Elemenet 並回傳. 找不到的話回傳 this->end()

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + +
      Element meow::SplayTree< Key, Value >::first () const
      +
      +inline
      +
      + +

      回傳Key最小的Element, 如果SplayTree為空, 則回傳 this->end()

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      bool meow::SplayTree< Key, Value >::insert (Key const & key,
      Value const & value 
      )
      +
      +inline
      +
      + +

      插入一組(Key —> Value)

      +

      檢查是否已有Element的Key 為 key, 若有則回傳 false , 否則將 一個 (Key -> Value) = (key -> value)的Element加入, 並回傳 true

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + +
      void meow::SplayTree< Key, Value >::keyOffset (Key const & delta)
      +
      +inline
      +
      + +

      將所有Element的Key同加上 delta

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + +
      Element meow::SplayTree< Key, Value >::last () const
      +
      +inline
      +
      + +

      回傳Key最大的Element, 如果SplayTree為空, 則回傳 this->end()

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + +
      Element meow::SplayTree< Key, Value >::lowerBound (Key const & key) const
      +
      +inline
      +
      + +

      找出第一個(最小的) Element且 k <= 它的 Key, 並且回傳之.

      +

      找不到的話回傳 this->end()

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + +
      bool meow::SplayTree< Key, Value >::merge (SplayTree< Key, Value > * tree2)
      +
      +inline
      +
      + +

      合併

      +

      檢查是否自己中的 Key 都小於 tree2 中的Key, 或是完全相反, 是的話把 tree2`中的 Element 都搬到自己這, 同時清空 tree2 , 否則回傳 false

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + +
      bool meow::SplayTree< Key, Value >::mergeAfter (SplayTree< Key, Value > * tree2)
      +
      +inline
      +
      + +

      合併

      +

      檢查是否自己中的 Key 都小於 tree2 中的Key, 是的話把 tree2` 中的 Element 都搬到自己這, 同時清空 tree2 , 否則回傳 false

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + +
      void meow::SplayTree< Key, Value >::moveTo (SplayTree< Key, Value > * tree2)
      +
      +inline
      +
      + +

      將資料都丟到 tree2 身上, 並且清空自己

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + +
      SplayTree& meow::SplayTree< Key, Value >::operator= (SplayTree< Key, Value > const & tree2)
      +
      +inline
      +
      + +

      same as copyFrom(tree2)

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + +
      Value& meow::SplayTree< Key, Value >::operator[] (Key const & key)
      +
      +inline
      +
      + +

      就像stl::map::operator[]

      +

      會先檢查是否已有Element的Key 為 key, 若有則回傳相對應的Value的Reference 否則先執行 insert(key,Value()) 再回傳相對應的Reference

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + +
      Element meow::SplayTree< Key, Value >::order (size_t order) const
      +
      +inline
      +
      + +

      將Elements依照Key由小到大排序, 回傳第 ord 個Element (由0算起).

      +

      其中如果 ord>N-1, 則會回傳 this->last()

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + +
      Element meow::SplayTree< Key, Value >::rLowerBound (Key const & key) const
      +
      +inline
      +
      + +

      找出第一個(最小的) Element且 k >= 它的 Key, 並且回傳之.

      +

      找不到的話回傳 this->end()

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + +
      Element meow::SplayTree< Key, Value >::rUpperBound (Key const & key) const
      +
      +inline
      +
      + +

      找出第一個(最小的) Element且 k > 它的 Key, 並且回傳之.

      +

      找不到的話回傳 this->end()

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + +
      size_t meow::SplayTree< Key, Value >::size () const
      +
      +inline
      +
      + +

      回傳資料個數

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      void meow::SplayTree< Key, Value >::splitOut (Key const & upper_bound,
      SplayTree< Key, Value > * right 
      )
      +
      +inline
      +
      + +

      tree2 清空, 再將所有Key > upper_bound 的Element都丟過去

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + +
      Element meow::SplayTree< Key, Value >::upperBound (Key const & key) const
      +
      +inline
      +
      + +

      找出第一個(最小的) Element且 k < 它的 Key, 並且回傳之.

      +

      找不到的話回傳 this->end()

      + +
      +
      +
      The documentation for this class was generated from the following file: +
      +
      + + + + + diff --git a/doc/html/classmeow_1_1SplayTree.js b/doc/html/classmeow_1_1SplayTree.js new file mode 100644 index 0000000..e3351c4 --- /dev/null +++ b/doc/html/classmeow_1_1SplayTree.js @@ -0,0 +1,29 @@ +var classmeow_1_1SplayTree = +[ + [ "Element", "classmeow_1_1SplayTree_1_1Element.html", "classmeow_1_1SplayTree_1_1Element" ], + [ "SplayTree", "classmeow_1_1SplayTree.html#a640cec3815f70c0a7eac811d7272c637", null ], + [ "SplayTree", "classmeow_1_1SplayTree.html#addfdea993d700469785b3e01631ec3c0", null ], + [ "~SplayTree", "classmeow_1_1SplayTree.html#a8a3e10edd9aa04a5786ad6d8b7dd5490", null ], + [ "clear", "classmeow_1_1SplayTree.html#ae5a57883fd31a6288b958b42b94606a9", null ], + [ "copyFrom", "classmeow_1_1SplayTree.html#aafc78f8d6abc95d52ba1062c14946cd5", null ], + [ "empty", "classmeow_1_1SplayTree.html#a8dac8bccc08f9c1c828b25b7fe9919c7", null ], + [ "end", "classmeow_1_1SplayTree.html#abcdab5caa27fecfd980595681381a4dc", null ], + [ "erase", "classmeow_1_1SplayTree.html#aef1f4e901e3e17a67e45aa2b9f9b61db", null ], + [ "find", "classmeow_1_1SplayTree.html#a67dc7214cf9a89053e4b719f4d60cb4c", null ], + [ "first", "classmeow_1_1SplayTree.html#ad8c3814cbfbcc9f754b62a74368ddc0b", null ], + [ "insert", "classmeow_1_1SplayTree.html#a0ae5e48da8d18ad8b2dc839d1c1b5582", null ], + [ "keyOffset", "classmeow_1_1SplayTree.html#aead0d2eba7528aeff12f6c0f87c60917", null ], + [ "last", "classmeow_1_1SplayTree.html#a805efe9b5f4bac68fd62908eb7cf3501", null ], + [ "lowerBound", "classmeow_1_1SplayTree.html#a48d6f8f0af07a6620bd73a92db226ce6", null ], + [ "merge", "classmeow_1_1SplayTree.html#a9d370115877428e58b1595458dc345a3", null ], + [ "mergeAfter", "classmeow_1_1SplayTree.html#a17f0fea3a3f4c7a548743bee7e5a285c", null ], + [ "moveTo", "classmeow_1_1SplayTree.html#a169eca2b27a5ec844bd79bba2bb75412", null ], + [ "operator=", "classmeow_1_1SplayTree.html#aef1da0d72d3a88851bd805d489fb6ea0", null ], + [ "operator[]", "classmeow_1_1SplayTree.html#a9f02a4ccc46616b7923c5834e02d53bc", null ], + [ "order", "classmeow_1_1SplayTree.html#ad91ceed4303b4fc5b115b067d304debc", null ], + [ "rLowerBound", "classmeow_1_1SplayTree.html#a06dd77ef9bd62d83a7571feca5324825", null ], + [ "rUpperBound", "classmeow_1_1SplayTree.html#a7e4eb9104cd7a2c01cda7e0a19c55cbe", null ], + [ "size", "classmeow_1_1SplayTree.html#a40b663d34933b258e667f9205f469fdc", null ], + [ "splitOut", "classmeow_1_1SplayTree.html#a36a55daf9150ae2d866075dedf1d583d", null ], + [ "upperBound", "classmeow_1_1SplayTree.html#a9cd532f990a5fe6ff0930fc297cf664e", null ] +]; \ No newline at end of file diff --git a/doc/html/classmeow_1_1SplayTree_1_1Element-members.html b/doc/html/classmeow_1_1SplayTree_1_1Element-members.html new file mode 100644 index 0000000..71310af --- /dev/null +++ b/doc/html/classmeow_1_1SplayTree_1_1Element-members.html @@ -0,0 +1,87 @@ + + + + + + + +Templates -- Meow: Member List + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      meow::SplayTree< Key, Value >::Element Member List
      +
      + +
      + + + + + diff --git a/doc/html/classmeow_1_1SplayTree_1_1Element.html b/doc/html/classmeow_1_1SplayTree_1_1Element.html new file mode 100644 index 0000000..9de318f --- /dev/null +++ b/doc/html/classmeow_1_1SplayTree_1_1Element.html @@ -0,0 +1,422 @@ + + + + + + + +Templates -- Meow: meow::SplayTree< Key, Value >::Element Class Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      meow::SplayTree< Key, Value >::Element Class Reference
      +
      +
      + +

      類似 stliterator ,不過這邊叫做Element + More...

      + +

      #include "SplayTree.h"

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      +Public Member Functions

       Element ()
       
       Element (Node *node)
       
       Element (Element const &element2)
       
       ~Element ()
       
      ElementcopyFrom (Element const &e)
       複製資料 More...
       
      bool same (Element const &e2) const
       比對兩者是否為指向同一個Entry More...
       
      Elementoperator= (Element const &e2)
       same as copyFrom More...
       
      Entry * operator-> ()
       重導至std::pair<Key const&,Value&>* More...
       
      Entry & operator* ()
       重導至std::pair<Key const&,Value&>& More...
       
      bool operator== (Element const &e2) const
       same as same(e2) More...
       
      bool operator!= (Element const &e2) const
       same as !same(e2) More...
       
      +

      Detailed Description

      +

      template<class Key, class Value>
      +class meow::SplayTree< Key, Value >::Element

      + +

      類似 stliterator ,不過這邊叫做Element

      +

      用來當作回傳資料的媒介

      +

      Constructor & Destructor Documentation

      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + +
      meow::SplayTree< Key, Value >::Element::Element ()
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + +
      meow::SplayTree< Key, Value >::Element::Element (Node * node)
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + +
      meow::SplayTree< Key, Value >::Element::Element (Element const & element2)
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + +
      meow::SplayTree< Key, Value >::Element::~Element ()
      +
      +inline
      +
      + +
      +
      +

      Member Function Documentation

      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + +
      Element& meow::SplayTree< Key, Value >::Element::copyFrom (Element const & e)
      +
      +inline
      +
      + +

      複製資料

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + +
      bool meow::SplayTree< Key, Value >::Element::operator!= (Element const & e2) const
      +
      +inline
      +
      + +

      same as !same(e2)

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + +
      Entry& meow::SplayTree< Key, Value >::Element::operator* ()
      +
      +inline
      +
      + +

      重導至std::pair<Key const&,Value&>&

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + +
      Entry* meow::SplayTree< Key, Value >::Element::operator-> ()
      +
      +inline
      +
      + +

      重導至std::pair<Key const&,Value&>*

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + +
      Element& meow::SplayTree< Key, Value >::Element::operator= (Element const & e2)
      +
      +inline
      +
      + +

      same as copyFrom

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + +
      bool meow::SplayTree< Key, Value >::Element::operator== (Element const & e2) const
      +
      +inline
      +
      + +

      same as same(e2)

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + +
      bool meow::SplayTree< Key, Value >::Element::same (Element const & e2) const
      +
      +inline
      +
      + +

      比對兩者是否為指向同一個Entry

      + +
      +
      +
      The documentation for this class was generated from the following file: +
      +
      + + + + + diff --git a/doc/html/classmeow_1_1SplayTree_1_1Element.js b/doc/html/classmeow_1_1SplayTree_1_1Element.js new file mode 100644 index 0000000..1d12422 --- /dev/null +++ b/doc/html/classmeow_1_1SplayTree_1_1Element.js @@ -0,0 +1,14 @@ +var classmeow_1_1SplayTree_1_1Element = +[ + [ "Element", "classmeow_1_1SplayTree_1_1Element.html#abab289dd578dd4879abebb58a6d86784", null ], + [ "Element", "classmeow_1_1SplayTree_1_1Element.html#a4f12f5c26525cbf3763a05f63ab33871", null ], + [ "Element", "classmeow_1_1SplayTree_1_1Element.html#a4cc99037c39c9d3856a06d9950678a85", null ], + [ "~Element", "classmeow_1_1SplayTree_1_1Element.html#ad522186691eead6d0a0a880e05e2a73b", null ], + [ "copyFrom", "classmeow_1_1SplayTree_1_1Element.html#aaea89fe0e873d4a2ceafad1519064d9a", null ], + [ "operator!=", "classmeow_1_1SplayTree_1_1Element.html#ae5c8fa3ed0fb90953de1b50e81a89480", null ], + [ "operator*", "classmeow_1_1SplayTree_1_1Element.html#ac947185148b8e81083172b843b129510", null ], + [ "operator->", "classmeow_1_1SplayTree_1_1Element.html#a5e564545e78be2ad63e965c985997ab5", null ], + [ "operator=", "classmeow_1_1SplayTree_1_1Element.html#a6af08a219ca313ddd086db6d3a8685d7", null ], + [ "operator==", "classmeow_1_1SplayTree_1_1Element.html#aeaf7740977e75749cd8656066d05808b", null ], + [ "same", "classmeow_1_1SplayTree_1_1Element.html#a01f7474b5018d9505c0e8495d9d1d895", null ] +]; \ No newline at end of file diff --git a/doc/html/classmeow_1_1SplayTree__Range-members.html b/doc/html/classmeow_1_1SplayTree__Range-members.html new file mode 100644 index 0000000..03003b8 --- /dev/null +++ b/doc/html/classmeow_1_1SplayTree__Range-members.html @@ -0,0 +1,105 @@ + + + + + + + +Templates -- Meow: Member List + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      meow::SplayTree_Range< Key, Value > Member List
      +
      +
      + +

      This is the complete list of members for meow::SplayTree_Range< Key, Value >, including all inherited members.

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      clear()meow::SplayTree_Range< Key, Value >inline
      copyFrom(SplayTree_Range const &tree2)meow::SplayTree_Range< Key, Value >inline
      empty() const meow::SplayTree_Range< Key, Value >inline
      end() const meow::SplayTree_Range< Key, Value >inline
      erase(Key const &key)meow::SplayTree_Range< Key, Value >inline
      find(Key const &key) const meow::SplayTree_Range< Key, Value >inline
      first() const meow::SplayTree_Range< Key, Value >inline
      insert(Key const &key, Value const &value)meow::SplayTree_Range< Key, Value >inline
      keyOffset(Key const &delta)meow::SplayTree_Range< Key, Value >inline
      last() const meow::SplayTree_Range< Key, Value >inline
      lowerBound(Key const &key) const meow::SplayTree_Range< Key, Value >inline
      merge(SplayTree_Range *tree2)meow::SplayTree_Range< Key, Value >inline
      mergeAfter(SplayTree_Range *tree2)meow::SplayTree_Range< Key, Value >inline
      moveTo(SplayTree_Range *tree2)meow::SplayTree_Range< Key, Value >inline
      operator=(SplayTree_Range const &tree2)meow::SplayTree_Range< Key, Value >inline
      operator[](Key const &key)meow::SplayTree_Range< Key, Value >inline
      order(size_t order) const meow::SplayTree_Range< Key, Value >inline
      query() const meow::SplayTree_Range< Key, Value >inline
      query(Key const &first, Key const &last) const meow::SplayTree_Range< Key, Value >inline
      rLowerBound(Key const &key) const meow::SplayTree_Range< Key, Value >inline
      rUpperBound(Key const &key) const meow::SplayTree_Range< Key, Value >inline
      size() const meow::SplayTree_Range< Key, Value >inline
      SplayTree_Range()meow::SplayTree_Range< Key, Value >inline
      SplayTree_Range(SplayTree_Range const &tree2)meow::SplayTree_Range< Key, Value >inline
      splitOut(Key const &upper_bound, SplayTree_Range *right)meow::SplayTree_Range< Key, Value >inline
      upperBound(Key const &key) const meow::SplayTree_Range< Key, Value >inline
      valueOffset(Value const &delta)meow::SplayTree_Range< Key, Value >inline
      valueOverride(Value const &value)meow::SplayTree_Range< Key, Value >inline
      ~SplayTree_Range()meow::SplayTree_Range< Key, Value >inline
      +
      + + + + + diff --git a/doc/html/classmeow_1_1SplayTree__Range.html b/doc/html/classmeow_1_1SplayTree__Range.html new file mode 100644 index 0000000..1554231 --- /dev/null +++ b/doc/html/classmeow_1_1SplayTree__Range.html @@ -0,0 +1,1053 @@ + + + + + + + +Templates -- Meow: meow::SplayTree_Range< Key, Value > Class Template Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      meow::SplayTree_Range< Key, Value > Class Template Reference
      +
      +
      + +

      基本上跟SplayTree一樣, 不過這邊結合線段樹, 多了區間操作 (線段樹相關operator定義請見 SegmentTree ) + More...

      + +

      #include "SplayTree.h"

      + + + + + +

      +Classes

      class  Element
       類似 stliterator ,不過這邊叫做Element More...
       
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      +Public Member Functions

       SplayTree_Range ()
       constructor More...
       
       SplayTree_Range (SplayTree_Range const &tree2)
       constructor, 複製資料 More...
       
       ~SplayTree_Range ()
       destructor More...
       
      SplayTree_RangecopyFrom (SplayTree_Range const &tree2)
       複製資料 More...
       
      void moveTo (SplayTree_Range *tree2)
       將資料都丟到 tree2 身上, 並且清空自己 More...
       
      Element lowerBound (Key const &key) const
       找出第一個(最小的) Element且 k <= 它的 Key, 並且回傳之. More...
       
      Element upperBound (Key const &key) const
       找出第一個(最小的) Element且 k < 它的 Key, 並且回傳之. More...
       
      Element rLowerBound (Key const &key) const
       找出第一個(最小的) Element且 k >= 它的 Key, 並且回傳之. More...
       
      Element rUpperBound (Key const &key) const
       找出第一個(最小的) Element且 k > 它的 Key, 並且回傳之. More...
       
      Element find (Key const &key) const
       找出 Key= k 的Elemenet 並回傳. 找不到的話回傳 this->end() More...
       
      Element order (size_t order) const
       將Elements依照Key由小到大排序, 回傳第 ord 個Element (由0算起). More...
       
      Element first () const
       回傳Key最小的Element, 如果SplayTree為空, 則回傳 this->end() More...
       
      Element last () const
       回傳Key最大的Element, 如果SplayTree為空, 則回傳 this->end() More...
       
      Element end () const
       回傳一個指向NULL的Element, More...
       
      size_t size () const
       回傳資料個數 More...
       
      bool empty () const
       回傳是否為空 More...
       
      Value query () const
       查找 More...
       
      Value query (Key const &first, Key const &last) const
       查找 More...
       
      void clear ()
       清空 More...
       
      bool insert (Key const &key, Value const &value)
       插入一組(Key —> Value) More...
       
      bool erase (Key const &key)
       刪除一組資料 More...
       
      void keyOffset (Key const &delta)
       將所有Element的Key同加上 delta More...
       
      void valueOffset (Value const &delta)
       將所有Element的Value同加上 delta More...
       
      void valueOverride (Value const &value)
       將所有Element的Value全部設定成value More...
       
      void splitOut (Key const &upper_bound, SplayTree_Range *right)
       tree2 清空, 再將所有Key > upper_bound 的Element都丟過去 More...
       
      bool mergeAfter (SplayTree_Range *tree2)
       合併 More...
       
      bool merge (SplayTree_Range *tree2)
       合併 More...
       
      Value & operator[] (Key const &key)
       就像stl::map::operator[] More...
       
      SplayTree_Rangeoperator= (SplayTree_Range const &tree2)
       same as copyFrom(tree2) More...
       
      +

      Detailed Description

      +

      template<class Key, class Value>
      +class meow::SplayTree_Range< Key, Value >

      + +

      基本上跟SplayTree一樣, 不過這邊結合線段樹, 多了區間操作 (線段樹相關operator定義請見 SegmentTree )

      +

      Template Class Operators Request

      + + + + + + + + + + + + + +
      const?TypenameOperator Parameters Return Type Description
      const Key operator+ (Key k) Key 相加
      const Key operator< (Key k) bool 大小比較
      Key operator= (Key k) Key copy oper
      Key Key (int n) 構子,n 永遠是0
      Value Value ( ) 建構子
      +
      Note
      : -假設現在有兩個SplayTree AB, 則: -執行 B.moveTo(&A)B 會變成空的, A 原本擁有的資料也會覆蓋掉 -行 A.merge(&B)A.mergeAfter(&B) 後 如果檢查發現確實可以merge, 則之後 B 會變成空的
      +
      Author
      cat_leopard
      +

      Constructor & Destructor Documentation

      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + +
      meow::SplayTree_Range< Key, Value >::SplayTree_Range ()
      +
      +inline
      +
      + +

      constructor

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + +
      meow::SplayTree_Range< Key, Value >::SplayTree_Range (SplayTree_Range< Key, Value > const & tree2)
      +
      +inline
      +
      + +

      constructor, 複製資料

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + +
      meow::SplayTree_Range< Key, Value >::~SplayTree_Range ()
      +
      +inline
      +
      + +

      destructor

      + +
      +
      +

      Member Function Documentation

      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + +
      void meow::SplayTree_Range< Key, Value >::clear ()
      +
      +inline
      +
      + +

      清空

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + +
      SplayTree_Range& meow::SplayTree_Range< Key, Value >::copyFrom (SplayTree_Range< Key, Value > const & tree2)
      +
      +inline
      +
      + +

      複製資料

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + +
      bool meow::SplayTree_Range< Key, Value >::empty () const
      +
      +inline
      +
      + +

      回傳是否為空

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + +
      Element meow::SplayTree_Range< Key, Value >::end () const
      +
      +inline
      +
      + +

      回傳一個指向NULL的Element,

      +

      以供 find ,order ,first ,last 等判斷是否有找到相對應的Element

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + +
      bool meow::SplayTree_Range< Key, Value >::erase (Key const & key)
      +
      +inline
      +
      + +

      刪除一組資料

      +

      檢查是否已有Element的Key 為 key, 若有則刪除之, 並回傳 true, 否則則回傳 false

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + +
      Element meow::SplayTree_Range< Key, Value >::find (Key const & key) const
      +
      +inline
      +
      + +

      找出 Key= k 的Elemenet 並回傳. 找不到的話回傳 this->end()

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + +
      Element meow::SplayTree_Range< Key, Value >::first () const
      +
      +inline
      +
      + +

      回傳Key最小的Element, 如果SplayTree為空, 則回傳 this->end()

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      bool meow::SplayTree_Range< Key, Value >::insert (Key const & key,
      Value const & value 
      )
      +
      +inline
      +
      + +

      插入一組(Key —> Value)

      +

      檢查是否已有Element的Key 為 key, 若有則回傳 false , 否則將 一個 (Key -> Value) = (key -> value)的Element加入, 並回傳 true

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + +
      void meow::SplayTree_Range< Key, Value >::keyOffset (Key const & delta)
      +
      +inline
      +
      + +

      將所有Element的Key同加上 delta

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + +
      Element meow::SplayTree_Range< Key, Value >::last () const
      +
      +inline
      +
      + +

      回傳Key最大的Element, 如果SplayTree為空, 則回傳 this->end()

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + +
      Element meow::SplayTree_Range< Key, Value >::lowerBound (Key const & key) const
      +
      +inline
      +
      + +

      找出第一個(最小的) Element且 k <= 它的 Key, 並且回傳之.

      +

      找不到的話回傳 this->end()

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + +
      bool meow::SplayTree_Range< Key, Value >::merge (SplayTree_Range< Key, Value > * tree2)
      +
      +inline
      +
      + +

      合併

      +

      檢查是否自己中的 Key 都小於 tree2 中的Key, 或是完全相反, 是的話把 tree2`中的 Element 都搬到自己這, 同時清空 tree2 , 否則回傳 false

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + +
      bool meow::SplayTree_Range< Key, Value >::mergeAfter (SplayTree_Range< Key, Value > * tree2)
      +
      +inline
      +
      + +

      合併

      +

      檢查是否自己中的 Key 都小於 tree2 中的Key, 是的話把 tree2` 中的 Element 都搬到自己這, 同時清空 tree2 , 否則回傳 false

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + +
      void meow::SplayTree_Range< Key, Value >::moveTo (SplayTree_Range< Key, Value > * tree2)
      +
      +inline
      +
      + +

      將資料都丟到 tree2 身上, 並且清空自己

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + +
      SplayTree_Range& meow::SplayTree_Range< Key, Value >::operator= (SplayTree_Range< Key, Value > const & tree2)
      +
      +inline
      +
      + +

      same as copyFrom(tree2)

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + +
      Value& meow::SplayTree_Range< Key, Value >::operator[] (Key const & key)
      +
      +inline
      +
      + +

      就像stl::map::operator[]

      +

      會先檢查是否已有Element的Key 為 key, 若有則回傳相對應的Value的Reference 否則先執行 insert(key,Value()) 再回傳相對應的Reference

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + +
      Element meow::SplayTree_Range< Key, Value >::order (size_t order) const
      +
      +inline
      +
      + +

      將Elements依照Key由小到大排序, 回傳第 ord 個Element (由0算起).

      +

      其中如果 ord>N-1, 則會回傳 this->last()

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + +
      Value meow::SplayTree_Range< Key, Value >::query () const
      +
      +inline
      +
      + +

      查找

      +

      詢問目前整個range的值

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      Value meow::SplayTree_Range< Key, Value >::query (Key const & first,
      Key const & last 
      ) const
      +
      +inline
      +
      + +

      查找

      +

      詢問給定range的值

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + +
      Element meow::SplayTree_Range< Key, Value >::rLowerBound (Key const & key) const
      +
      +inline
      +
      + +

      找出第一個(最小的) Element且 k >= 它的 Key, 並且回傳之.

      +

      找不到的話回傳 this->end()

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + +
      Element meow::SplayTree_Range< Key, Value >::rUpperBound (Key const & key) const
      +
      +inline
      +
      + +

      找出第一個(最小的) Element且 k > 它的 Key, 並且回傳之.

      +

      找不到的話回傳 this->end()

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + +
      size_t meow::SplayTree_Range< Key, Value >::size () const
      +
      +inline
      +
      + +

      回傳資料個數

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      void meow::SplayTree_Range< Key, Value >::splitOut (Key const & upper_bound,
      SplayTree_Range< Key, Value > * right 
      )
      +
      +inline
      +
      + +

      tree2 清空, 再將所有Key > upper_bound 的Element都丟過去

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + +
      Element meow::SplayTree_Range< Key, Value >::upperBound (Key const & key) const
      +
      +inline
      +
      + +

      找出第一個(最小的) Element且 k < 它的 Key, 並且回傳之.

      +

      找不到的話回傳 this->end()

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + +
      void meow::SplayTree_Range< Key, Value >::valueOffset (Value const & delta)
      +
      +inline
      +
      + +

      將所有Element的Value同加上 delta

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + +
      void meow::SplayTree_Range< Key, Value >::valueOverride (Value const & value)
      +
      +inline
      +
      + +

      將所有Element的Value全部設定成value

      + +
      +
      +
      The documentation for this class was generated from the following file: +
      +
      + + + + + diff --git a/doc/html/classmeow_1_1SplayTree__Range.js b/doc/html/classmeow_1_1SplayTree__Range.js new file mode 100644 index 0000000..cf7a01c --- /dev/null +++ b/doc/html/classmeow_1_1SplayTree__Range.js @@ -0,0 +1,33 @@ +var classmeow_1_1SplayTree__Range = +[ + [ "Element", "classmeow_1_1SplayTree__Range_1_1Element.html", "classmeow_1_1SplayTree__Range_1_1Element" ], + [ "SplayTree_Range", "classmeow_1_1SplayTree__Range.html#acf3c8d90ff38a210ed9d64dd365d5e93", null ], + [ "SplayTree_Range", "classmeow_1_1SplayTree__Range.html#aa5a5c774d04721cbe038ec883c01737a", null ], + [ "~SplayTree_Range", "classmeow_1_1SplayTree__Range.html#afa919ebbc8feedc4c2ed2185d6207261", null ], + [ "clear", "classmeow_1_1SplayTree__Range.html#a514b6eac0a39ac0d365a5ee72eea78e8", null ], + [ "copyFrom", "classmeow_1_1SplayTree__Range.html#acb88cb76b50884221cbb58d2adcb4329", null ], + [ "empty", "classmeow_1_1SplayTree__Range.html#a86abc6a3a19f874e86fb29b75c212fce", null ], + [ "end", "classmeow_1_1SplayTree__Range.html#ad3aaed040f619a3b14c3f9b598b7fecc", null ], + [ "erase", "classmeow_1_1SplayTree__Range.html#ae3cffdbb135d3f2518092c2e4b993e1f", null ], + [ "find", "classmeow_1_1SplayTree__Range.html#a13c3591050f556251a33c03ce142acb1", null ], + [ "first", "classmeow_1_1SplayTree__Range.html#a74207c8c8023d62111171cd64abfbe77", null ], + [ "insert", "classmeow_1_1SplayTree__Range.html#a5e80acef8cd1a6732f5cfec65ab69d54", null ], + [ "keyOffset", "classmeow_1_1SplayTree__Range.html#a4e05023009c1c82a5d464a43d6777843", null ], + [ "last", "classmeow_1_1SplayTree__Range.html#afd72a714bb2b7bce0ceedad1dea9e264", null ], + [ "lowerBound", "classmeow_1_1SplayTree__Range.html#a92ca3967d0f433a57b5057d61183f2aa", null ], + [ "merge", "classmeow_1_1SplayTree__Range.html#a42d874bda7b24108d0e861448eadce84", null ], + [ "mergeAfter", "classmeow_1_1SplayTree__Range.html#a53a6ba929a8500fa74e0991e120d3401", null ], + [ "moveTo", "classmeow_1_1SplayTree__Range.html#a17483e5f0028004cc4bf46699591fafe", null ], + [ "operator=", "classmeow_1_1SplayTree__Range.html#af93643b667895835f97e32e30959ca9e", null ], + [ "operator[]", "classmeow_1_1SplayTree__Range.html#a2a4e8bffccdf807bfe6feb9d838ab44d", null ], + [ "order", "classmeow_1_1SplayTree__Range.html#a6e33546a3cb07d56548a1f64aa1fc711", null ], + [ "query", "classmeow_1_1SplayTree__Range.html#a91272707629fcec7cc9fa60594334002", null ], + [ "query", "classmeow_1_1SplayTree__Range.html#a9952f914eb9449ae17f5ea0ece422af9", null ], + [ "rLowerBound", "classmeow_1_1SplayTree__Range.html#a05057d5df92737104b7431b4203cac11", null ], + [ "rUpperBound", "classmeow_1_1SplayTree__Range.html#ae0f6543101ce4864257b93786c21a5c8", null ], + [ "size", "classmeow_1_1SplayTree__Range.html#afce0f36427e9105a3405176ed4eddf58", null ], + [ "splitOut", "classmeow_1_1SplayTree__Range.html#a1594362228633d8b026bb0f8c343384f", null ], + [ "upperBound", "classmeow_1_1SplayTree__Range.html#a492f68ede1f6423590ec2bfa3f839ab0", null ], + [ "valueOffset", "classmeow_1_1SplayTree__Range.html#a2974124d833383fc0b3f9fed6f18db2f", null ], + [ "valueOverride", "classmeow_1_1SplayTree__Range.html#abe3366aac14529a4b044b519a53c5bb7", null ] +]; \ No newline at end of file diff --git a/doc/html/classmeow_1_1SplayTree__Range_1_1Element-members.html b/doc/html/classmeow_1_1SplayTree__Range_1_1Element-members.html new file mode 100644 index 0000000..0a0af9a --- /dev/null +++ b/doc/html/classmeow_1_1SplayTree__Range_1_1Element-members.html @@ -0,0 +1,87 @@ + + + + + + + +Templates -- Meow: Member List + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + + + + + + + diff --git a/doc/html/classmeow_1_1SplayTree__Range_1_1Element.html b/doc/html/classmeow_1_1SplayTree__Range_1_1Element.html new file mode 100644 index 0000000..bbe2294 --- /dev/null +++ b/doc/html/classmeow_1_1SplayTree__Range_1_1Element.html @@ -0,0 +1,422 @@ + + + + + + + +Templates -- Meow: meow::SplayTree_Range< Key, Value >::Element Class Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      meow::SplayTree_Range< Key, Value >::Element Class Reference
      +
      +
      + +

      類似 stliterator ,不過這邊叫做Element + More...

      + +

      #include "SplayTree.h"

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      +Public Member Functions

       Element ()
       
       Element (Node *node)
       
       Element (Element const &element2)
       
       ~Element ()
       
      ElementcopyFrom (Element const &e)
       複製資料 More...
       
      bool same (Element const &e2) const
       比對兩者是否為指向同一個Entry More...
       
      Elementoperator= (Element const &e2)
       same as copyFrom More...
       
      Entry * operator-> ()
       重導至std::pair<Key const&,Value&>* More...
       
      Entry & operator* ()
       重導至std::pair<Key const&,Value&>& More...
       
      bool operator== (Element const &e2) const
       same as same(e2) More...
       
      bool operator!= (Element const &e2) const
       same as !same(e2) More...
       
      +

      Detailed Description

      +

      template<class Key, class Value>
      +class meow::SplayTree_Range< Key, Value >::Element

      + +

      類似 stliterator ,不過這邊叫做Element

      +

      用來當作回傳資料的媒介

      +

      Constructor & Destructor Documentation

      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + +
      meow::SplayTree_Range< Key, Value >::Element::Element ()
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + +
      meow::SplayTree_Range< Key, Value >::Element::Element (Node * node)
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + +
      meow::SplayTree_Range< Key, Value >::Element::Element (Element const & element2)
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + +
      meow::SplayTree_Range< Key, Value >::Element::~Element ()
      +
      +inline
      +
      + +
      +
      +

      Member Function Documentation

      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + +
      Element& meow::SplayTree_Range< Key, Value >::Element::copyFrom (Element const & e)
      +
      +inline
      +
      + +

      複製資料

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + +
      bool meow::SplayTree_Range< Key, Value >::Element::operator!= (Element const & e2) const
      +
      +inline
      +
      + +

      same as !same(e2)

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + +
      Entry& meow::SplayTree_Range< Key, Value >::Element::operator* ()
      +
      +inline
      +
      + +

      重導至std::pair<Key const&,Value&>&

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + +
      Entry* meow::SplayTree_Range< Key, Value >::Element::operator-> ()
      +
      +inline
      +
      + +

      重導至std::pair<Key const&,Value&>*

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + +
      Element& meow::SplayTree_Range< Key, Value >::Element::operator= (Element const & e2)
      +
      +inline
      +
      + +

      same as copyFrom

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + +
      bool meow::SplayTree_Range< Key, Value >::Element::operator== (Element const & e2) const
      +
      +inline
      +
      + +

      same as same(e2)

      + +
      +
      + +
      +
      +
      +template<class Key , class Value >
      + + + + + +
      + + + + + + + + +
      bool meow::SplayTree_Range< Key, Value >::Element::same (Element const & e2) const
      +
      +inline
      +
      + +

      比對兩者是否為指向同一個Entry

      + +
      +
      +
      The documentation for this class was generated from the following file: +
      +
      + + + + + diff --git a/doc/html/classmeow_1_1SplayTree__Range_1_1Element.js b/doc/html/classmeow_1_1SplayTree__Range_1_1Element.js new file mode 100644 index 0000000..0de578b --- /dev/null +++ b/doc/html/classmeow_1_1SplayTree__Range_1_1Element.js @@ -0,0 +1,14 @@ +var classmeow_1_1SplayTree__Range_1_1Element = +[ + [ "Element", "classmeow_1_1SplayTree__Range_1_1Element.html#acc3dcc61b0b363c10ab3cb572a37bffe", null ], + [ "Element", "classmeow_1_1SplayTree__Range_1_1Element.html#a18157d69d14dad8e2a9600a3052ef341", null ], + [ "Element", "classmeow_1_1SplayTree__Range_1_1Element.html#aaf32bca541ab3b6212a135a77e7f7d91", null ], + [ "~Element", "classmeow_1_1SplayTree__Range_1_1Element.html#a5441072951b572b2859f6f0f1b55d3cc", null ], + [ "copyFrom", "classmeow_1_1SplayTree__Range_1_1Element.html#ace7c7fb2416ca7afd7df627a0fe57ed0", null ], + [ "operator!=", "classmeow_1_1SplayTree__Range_1_1Element.html#a7e8d951ce66208a88ac8d8a177af48a5", null ], + [ "operator*", "classmeow_1_1SplayTree__Range_1_1Element.html#ad860aa695abffe96716eed4a5e58d950", null ], + [ "operator->", "classmeow_1_1SplayTree__Range_1_1Element.html#a6344204522f3093165b1a100cc2bf6f2", null ], + [ "operator=", "classmeow_1_1SplayTree__Range_1_1Element.html#a126d57eee520aa17868ce74112249e12", null ], + [ "operator==", "classmeow_1_1SplayTree__Range_1_1Element.html#a42f71bf3aa7e009582e628e87763482d", null ], + [ "same", "classmeow_1_1SplayTree__Range_1_1Element.html#aea48bcfd0ad50cbdcdc15128be5e8f15", null ] +]; \ No newline at end of file diff --git a/doc/html/classmeow_1_1Transformation-members.html b/doc/html/classmeow_1_1Transformation-members.html new file mode 100644 index 0000000..8d5ecad --- /dev/null +++ b/doc/html/classmeow_1_1Transformation-members.html @@ -0,0 +1,95 @@ + + + + + + + +Templates -- Meow: Member List + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      meow::Transformation< Scalar > Member List
      +
      +
      + +

      This is the complete list of members for meow::Transformation< Scalar >, including all inherited members.

      + + + + + + + + + + + + + + + + + + + + +
      copyFrom(Transformation const &b)meow::Transformation< Scalar >inlineprotected
      inputCols() const meow::Transformation< Scalar >inline
      inputRows() const meow::Transformation< Scalar >inline
      inversable() const meow::Transformation< Scalar >inlinevirtual
      jacobian(Matrix< Scalar > const &x) const meow::Transformation< Scalar >inlinevirtual
      jacobian(Matrix< Scalar > const &x, size_t i) const meow::Transformation< Scalar >inlinevirtual
      jacobianInv(Matrix< Scalar > const &x) const meow::Transformation< Scalar >inlinevirtual
      jacobianInv(Matrix< Scalar > const &x, size_t i) const meow::Transformation< Scalar >inlinevirtual
      outputCols() const meow::Transformation< Scalar >inline
      outputRows() const meow::Transformation< Scalar >inline
      parameter(size_t i) const =0meow::Transformation< Scalar >pure virtual
      parameter(size_t i, Scalar const &s)=0meow::Transformation< Scalar >pure virtual
      parameterSize() const meow::Transformation< Scalar >inline
      referenceFrom(Transformation const &b)meow::Transformation< Scalar >inlineprotected
      transformate(Matrix< Scalar > const &x) const =0meow::Transformation< Scalar >pure virtual
      transformateInv(Matrix< Scalar > const &x) const meow::Transformation< Scalar >inlinevirtual
      Transformation(size_t inputRows, size_t inputCols, size_t outputRows, size_t outputCols, size_t psize)meow::Transformation< Scalar >inlineprotected
      Transformation(Transformation const &b)meow::Transformation< Scalar >inlineprotected
      ~Transformation()meow::Transformation< Scalar >inlinevirtual
      +
      + + + + + diff --git a/doc/html/classmeow_1_1Transformation.html b/doc/html/classmeow_1_1Transformation.html new file mode 100644 index 0000000..30d7194 --- /dev/null +++ b/doc/html/classmeow_1_1Transformation.html @@ -0,0 +1,862 @@ + + + + + + + +Templates -- Meow: meow::Transformation< Scalar > Class Template Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      meow::Transformation< Scalar > Class Template Referenceabstract
      +
      +
      + +

      A base class for implementing kinds of transformations. + More...

      + +

      #include "Transformation.h"

      +
      +Inheritance diagram for meow::Transformation< Scalar >:
      +
      +
      + + +meow::BallProjection< Scalar > +meow::LinearTransformation< Scalar > +meow::PhotoProjection< Scalar > +meow::Rotation3D< Scalar > + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      +Public Member Functions

      virtual ~Transformation ()
       
      size_t inputRows () const
       Return the number of rows of the input matrix. More...
       
      size_t inputCols () const
       Return the number of columns of the input matrix. More...
       
      size_t outputRows () const
       Return the number of rows of the output matrix. More...
       
      size_t outputCols () const
       Return the number of columns of the output matrix. More...
       
      size_t parameterSize () const
       Return the number of parameters. More...
       
      virtual Scalar parameter (size_t i) const =0
       Get the i -th parameter. More...
       
      virtual Scalar parameter (size_t i, Scalar const &s)=0
       Setup the i -th parameter. More...
       
      virtual Matrix< Scalar > transformate (Matrix< Scalar > const &x) const =0
       Do transformate. More...
       
      virtual Matrix< Scalar > jacobian (Matrix< Scalar > const &x) const
       Calculate the jacobian matrix (derivate by the input matrix) of the transformation. More...
       
      virtual Matrix< Scalar > jacobian (Matrix< Scalar > const &x, size_t i) const
       Calculate the jacobian matrix (derivate by the i -th parameter) of the transformation. More...
       
      virtual bool inversable () const
       Return whether this transformation is inversable or not. More...
       
      virtual Matrix< Scalar > transformateInv (Matrix< Scalar > const &x) const
       Do the inverse transformation. More...
       
      virtual Matrix< Scalar > jacobianInv (Matrix< Scalar > const &x) const
       Return the jacobian matrix of the inverse transformation. More...
       
      virtual Matrix< Scalar > jacobianInv (Matrix< Scalar > const &x, size_t i) const
       Return the jacobian matrix of the inverse transformation. More...
       
      + + + + + + + + + + + +

      +Protected Member Functions

       Transformation (size_t inputRows, size_t inputCols, size_t outputRows, size_t outputCols, size_t psize)
       
       Transformation (Transformation const &b)
       
      TransformationcopyFrom (Transformation const &b)
       Copy from the specified one. More...
       
      TransformationreferenceFrom (Transformation const &b)
       Ceference from the specified one. More...
       
      +

      Detailed Description

      +

      template<class Scalar>
      +class meow::Transformation< Scalar >

      + +

      A base class for implementing kinds of transformations.

      +

      We define that the input and output form of our transformations all be matrix . Some advance methods such as calculating jacobian matrix will order that the input form must be a vector.

      +
      Author
      cat_leopard
      +

      Constructor & Destructor Documentation

      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      meow::Transformation< Scalar >::Transformation (size_t inputRows,
      size_t inputCols,
      size_t outputRows,
      size_t outputCols,
      size_t psize 
      )
      +
      +inlineprotected
      +
      +

      Construct and setup

      +
      Parameters
      + + + + + + +
      [in]inputRowsnumber of rows of the input matrix.
      [in]inputColsnumber of columns of the input matrix.
      [in]outputRowsnumber of rows of the output matrix.
      [in]outputColsnumber of columns of the output matrix.
      [in]psizenumber of parameters
      +
      +
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      meow::Transformation< Scalar >::Transformation (Transformation< Scalar > const & b)
      +
      +inlineprotected
      +
      +

      Construct and copy setings from another transformation class.

      +
      Parameters
      + + +
      [in]bSpecify where to copy the informations.
      +
      +
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      virtual meow::Transformation< Scalar >::~Transformation ()
      +
      +inlinevirtual
      +
      +

      Destructor

      + +
      +
      +

      Member Function Documentation

      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Transformation& meow::Transformation< Scalar >::copyFrom (Transformation< Scalar > const & b)
      +
      +inlineprotected
      +
      + +

      Copy from the specified one.

      +
      Parameters
      + + +
      [in]bThe specified one
      +
      +
      +
      Returns
      *this
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      size_t meow::Transformation< Scalar >::inputCols () const
      +
      +inline
      +
      + +

      Return the number of columns of the input matrix.

      +
      Returns
      Number of columns.
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      size_t meow::Transformation< Scalar >::inputRows () const
      +
      +inline
      +
      + +

      Return the number of rows of the input matrix.

      +
      Returns
      Number of rows.
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      virtual bool meow::Transformation< Scalar >::inversable () const
      +
      +inlinevirtual
      +
      + +

      Return whether this transformation is inversable or not.

      +
      Returns
      false
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      virtual Matrix<Scalar> meow::Transformation< Scalar >::jacobian (Matrix< Scalar > const & x) const
      +
      +inlinevirtual
      +
      + +

      Calculate the jacobian matrix (derivate by the input matrix) of the transformation.

      +

      Consider the case of a non-differentiable transformation might be implemented, we return an empty matrix now instead of making it be a pure virtual method.

      +
      Parameters
      + + +
      [in]xThe input matrix.
      +
      +
      +
      Returns
      An empty matrix.
      + +

      Reimplemented in meow::PhotoProjection< Scalar >, meow::PhotoProjection< double >, meow::Rotation3D< Scalar >, meow::Rotation3D< double >, and meow::BallProjection< Scalar >.

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      virtual Matrix<Scalar> meow::Transformation< Scalar >::jacobian (Matrix< Scalar > const & x,
      size_t i 
      ) const
      +
      +inlinevirtual
      +
      + +

      Calculate the jacobian matrix (derivate by the i -th parameter) of the transformation.

      +

      Consider the case of a non-differentiable transformation might be implemented, we return an empty matrix now instead of making it be a pure virtual method.

      +
      Parameters
      + + + +
      [in]xThe input matrix.
      [in]iThe index of the specified parameter.
      +
      +
      +
      Returns
      An empty matrix.
      + +

      Reimplemented in meow::PhotoProjection< Scalar >, meow::PhotoProjection< double >, meow::Rotation3D< Scalar >, meow::Rotation3D< double >, and meow::BallProjection< Scalar >.

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      virtual Matrix<Scalar> meow::Transformation< Scalar >::jacobianInv (Matrix< Scalar > const & x) const
      +
      +inlinevirtual
      +
      + +

      Return the jacobian matrix of the inverse transformation.

      +
      Parameters
      + + +
      [in]xThe input matirx
      +
      +
      +
      Returns
      An empty matrix
      + +

      Reimplemented in meow::Rotation3D< Scalar >, and meow::Rotation3D< double >.

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      virtual Matrix<Scalar> meow::Transformation< Scalar >::jacobianInv (Matrix< Scalar > const & x,
      size_t i 
      ) const
      +
      +inlinevirtual
      +
      + +

      Return the jacobian matrix of the inverse transformation.

      +
      Parameters
      + + + +
      [in]xThe input matirx
      [in]iThe index of the specified parameter.
      +
      +
      +
      Returns
      An empty matrix
      + +

      Reimplemented in meow::Rotation3D< Scalar >, and meow::Rotation3D< double >.

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      size_t meow::Transformation< Scalar >::outputCols () const
      +
      +inline
      +
      + +

      Return the number of columns of the output matrix.

      +
      Returns
      Number of columns.
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      size_t meow::Transformation< Scalar >::outputRows () const
      +
      +inline
      +
      + +

      Return the number of rows of the output matrix.

      +
      Returns
      Number of rows.
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      virtual Scalar meow::Transformation< Scalar >::parameter (size_t i) const
      +
      +pure virtual
      +
      + +

      Get the i -th parameter.

      +
      Parameters
      + + +
      [in]iThe index of the specified parameter.
      +
      +
      +
      Note
      It's a pure virtual method.
      + +

      Implemented in meow::PhotoProjection< Scalar >, meow::PhotoProjection< double >, meow::BallProjection< Scalar >, meow::Rotation3D< Scalar >, and meow::Rotation3D< double >.

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      virtual Scalar meow::Transformation< Scalar >::parameter (size_t i,
      Scalar const & s 
      )
      +
      +pure virtual
      +
      + +

      Setup the i -th parameter.

      +
      Parameters
      + + + +
      [in]iThe index of the specified parameter.
      [in]sThe new value to the specified parameter.
      +
      +
      +
      Note
      It's a pure virtual method.
      + +

      Implemented in meow::PhotoProjection< Scalar >, meow::PhotoProjection< double >, meow::BallProjection< Scalar >, meow::Rotation3D< Scalar >, and meow::Rotation3D< double >.

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      size_t meow::Transformation< Scalar >::parameterSize () const
      +
      +inline
      +
      + +

      Return the number of parameters.

      +
      Returns
      Number of parameters.
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Transformation& meow::Transformation< Scalar >::referenceFrom (Transformation< Scalar > const & b)
      +
      +inlineprotected
      +
      + +

      Ceference from the specified one.

      +
      Parameters
      + + +
      [in]bThe specified one
      +
      +
      +
      Returns
      *this
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      virtual Matrix<Scalar> meow::Transformation< Scalar >::transformate (Matrix< Scalar > const & x) const
      +
      +pure virtual
      +
      + +

      Do transformate.

      +
      Parameters
      + + +
      [in]xThe input matrix.
      +
      +
      +
      Note
      It's a pure virtual method.
      + +

      Implemented in meow::PhotoProjection< Scalar >, meow::PhotoProjection< double >, meow::Rotation3D< Scalar >, meow::Rotation3D< double >, and meow::BallProjection< Scalar >.

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      virtual Matrix<Scalar> meow::Transformation< Scalar >::transformateInv (Matrix< Scalar > const & x) const
      +
      +inlinevirtual
      +
      + +

      Do the inverse transformation.

      +
      Parameters
      + + +
      [in]xThe input matirx
      +
      +
      +
      Returns
      An empty matrix
      + +

      Reimplemented in meow::Rotation3D< Scalar >, and meow::Rotation3D< double >.

      + +
      +
      +
      The documentation for this class was generated from the following file: +
      +
      + + + + + diff --git a/doc/html/classmeow_1_1Transformation.js b/doc/html/classmeow_1_1Transformation.js new file mode 100644 index 0000000..f6af0ed --- /dev/null +++ b/doc/html/classmeow_1_1Transformation.js @@ -0,0 +1,22 @@ +var classmeow_1_1Transformation = +[ + [ "Transformation", "classmeow_1_1Transformation.html#a129b2465033d0f6c8f57e4ee36c52b6c", null ], + [ "Transformation", "classmeow_1_1Transformation.html#ac457f3968b21842afa72344e34e7ada2", null ], + [ "~Transformation", "classmeow_1_1Transformation.html#a96471a49fe0b9737ad5b98b8e917385e", null ], + [ "copyFrom", "classmeow_1_1Transformation.html#abe781169171fa3b8206a91e166779d74", null ], + [ "inputCols", "classmeow_1_1Transformation.html#a1b556b6b0798d4e03cae5cdc474dca13", null ], + [ "inputRows", "classmeow_1_1Transformation.html#a9c4d19fe8d95967596b06bc026bdf200", null ], + [ "inversable", "classmeow_1_1Transformation.html#a71a1e75ebcf4d692cb9f0dcfeba1c1e4", null ], + [ "jacobian", "classmeow_1_1Transformation.html#a97b459877b4e508193071fa166a126c9", null ], + [ "jacobian", "classmeow_1_1Transformation.html#a18590a4501b79a9ad38eb8fa3c966eb8", null ], + [ "jacobianInv", "classmeow_1_1Transformation.html#a0186764bb80869bd80b81efb5bb1ee95", null ], + [ "jacobianInv", "classmeow_1_1Transformation.html#a4e7e3b24d0879eddc53951dfb357db0b", null ], + [ "outputCols", "classmeow_1_1Transformation.html#a45fb012c3276a37a71805590ab3d75a8", null ], + [ "outputRows", "classmeow_1_1Transformation.html#aae50028aba551ad3459335299794f8af", null ], + [ "parameter", "classmeow_1_1Transformation.html#a09e71e5af508d7c0e09fdbeaacbe4365", null ], + [ "parameter", "classmeow_1_1Transformation.html#a2a90b93490712232b81a628b5057526f", null ], + [ "parameterSize", "classmeow_1_1Transformation.html#a2dedc054a656a962e8556472aa767dbb", null ], + [ "referenceFrom", "classmeow_1_1Transformation.html#a9b6ec99d8363742f77c63a49ba9467b5", null ], + [ "transformate", "classmeow_1_1Transformation.html#aa0c299b9ad13020a9eb460de01378ddc", null ], + [ "transformateInv", "classmeow_1_1Transformation.html#aa9a476c677e7efc805c0fbdccfb48b38", null ] +]; \ No newline at end of file diff --git a/doc/html/classmeow_1_1Transformation.png b/doc/html/classmeow_1_1Transformation.png new file mode 100644 index 0000000..4852a23 Binary files /dev/null and b/doc/html/classmeow_1_1Transformation.png differ diff --git a/doc/html/classmeow_1_1Usage-members.html b/doc/html/classmeow_1_1Usage-members.html new file mode 100644 index 0000000..630279a --- /dev/null +++ b/doc/html/classmeow_1_1Usage-members.html @@ -0,0 +1,94 @@ + + + + + + + +Templates -- Meow: Member List + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      meow::Usage Member List
      +
      +
      + +

      This is the complete list of members for meow::Usage, including all inherited members.

      + + + + + + + + + + + + + + + + + + + +
      arguments(int argc, char **argv, String *errmsg)meow::Usageinline
      hasOptionSetup(unsigned char opt) const meow::Usageinline
      import(Usage const &usage)meow::Usageinline
      optionAdd(unsigned char opt, String const &des)meow::Usageinline
      optionAdd(unsigned char opt, String const &des, String const &val_type, String const &val_default, bool must)meow::Usageinline
      optionValue(unsigned char opt, size_t index) const meow::Usageinline
      optionValueAcceptAdd(unsigned char opt, String const &val, String const &des)meow::Usageinline
      optionValuesSize(unsigned char opt) const meow::Usageinline
      procArg(size_t index) const meow::Usageinline
      procArgs() const meow::Usageinline
      procArgsSize() const meow::Usageinline
      update(Usage const &usage)meow::Usageinline
      usage() const meow::Usageinline
      Usage()meow::Usageinline
      Usage(String const &name)meow::Usageinline
      Usage(Usage const &usage)meow::Usageinline
      usageBeginAdd(String const &des)meow::Usageinline
      usageEndAdd(String const &des)meow::Usageinline
      +
      + + + + + diff --git a/doc/html/classmeow_1_1Usage.html b/doc/html/classmeow_1_1Usage.html new file mode 100644 index 0000000..68e689a --- /dev/null +++ b/doc/html/classmeow_1_1Usage.html @@ -0,0 +1,797 @@ + + + + + + + +Templates -- Meow: meow::Usage Class Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      meow::Usage Class Reference
      +
      +
      + +

      管理參數設置, 自訂usage document, 分析argc, argv + More...

      + +

      #include "Usage.h"

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      +Public Member Functions

       Usage ()
       constructor More...
       
       Usage (String const &name)
       constructor More...
       
       Usage (Usage const &usage)
       constructor More...
       
      bool import (Usage const &usage)
       將另一個usage的設置匯入 More...
       
      bool update (Usage const &usage)
       將另一個usage的選項設置加進來 More...
       
      bool optionAdd (unsigned char opt, String const &des)
       新增一個沒有額外選項的選項 More...
       
      bool optionAdd (unsigned char opt, String const &des, String const &val_type, String const &val_default, bool must)
       新增一個有額外選項的選項 More...
       
      bool optionValueAcceptAdd (unsigned char opt, String const &val, String const &des)
       針對-(opt)新增一個可接受的額外選項 More...
       
      bool hasOptionSetup (unsigned char opt) const
       回傳是否有設定此選項 More...
       
      size_t optionValuesSize (unsigned char opt) const
       回傳參數 -(opt) 被設置幾次 More...
       
      String optionValue (unsigned char opt, size_t index) const
       回傳參數 -(opt) 的第 index 個額外選項 More...
       
      size_t procArgsSize () const
       取得有幾個process arguments More...
       
      String procArg (size_t index) const
       取得第i個process argument More...
       
      Strings const & procArgs () const
       取得process arguments array More...
       
      void usageBeginAdd (String const &des)
       新增一段usage document於每個選項逐條說明之前 More...
       
      void usageEndAdd (String const &des)
       新增一段usage document於每個選項逐條說明之後 More...
       
      String usage () const
       回傳usage string More...
       
      bool arguments (int argc, char **argv, String *errmsg)
       給定argc, argv, 將各參數設置 More...
       
      +

      Detailed Description

      +

      管理參數設置, 自訂usage document, 分析argc, argv

      +

      Usage 是用來分析argc, argv和輸出usage document的class.
      + argc, argv的部份, 有以下規則

      +
        +
      • -c 其中 c 可以代換成一個字符, 這種選像可能是 有設置沒設置
      • +
      • -c value 附加一個 value , 這種選項可以是 選擇性必要的 , 另外可以給定value的預設值以及哪些value是可接受
      • +
      • value 其他, 一律視為 process arguments
      • +
      +
      Author
      cathook
      +

      Constructor & Destructor Documentation

      + +
      +
      + + + + + +
      + + + + + + + +
      meow::Usage::Usage ()
      +
      +inline
      +
      + +

      constructor

      +

      所有說明文字中 <name> 都會被代換成空字串

      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      meow::Usage::Usage (String const & name)
      +
      +inline
      +
      + +

      constructor

      +

      所有說明文字中 "<name>" 都會被代換成空字串 name

      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      meow::Usage::Usage (Usage const & usage)
      +
      +inline
      +
      + +

      constructor

      +

      將另一個usage原封不動的複製過來

      + +
      +
      +

      Member Function Documentation

      + +
      +
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      bool meow::Usage::arguments (int argc,
      char ** argv,
      String * errmsg 
      )
      +
      +inline
      +
      + +

      給定argc, argv, 將各參數設置

      +
      Parameters
      + + + +
      [in]argc,argv
      [out]errmsg將錯誤訊息寫到這裡 (若給定NULL pointer, 則會把錯誤訊息忽略)
      +
      +
      +
      Returns
      true/false 成功與否 (否的話代表有錯誤的設定值在其中)
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      bool meow::Usage::hasOptionSetup (unsigned char opt) const
      +
      +inline
      +
      + +

      回傳是否有設定此選項

      +
      Parameters
      + + +
      [in]opt指定字符
      +
      +
      +
      Returns
      true/false是否有設定此選項
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      bool meow::Usage::import (Usage const & usage)
      +
      +inline
      +
      + +

      將另一個usage的設置匯入

      +
      Parameters
      + + +
      [in]usage另一個usage
      +
      +
      +
      Returns
      true/false 表示 是否成功
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      bool meow::Usage::optionAdd (unsigned char opt,
      String const & des 
      )
      +
      +inline
      +
      + +

      新增一個沒有額外選項的選項

      +
      Parameters
      + + + +
      [in]opt指定字符
      [in]des即description, 用來解釋這個選項的意義用的
      +
      +
      +
      Returns
      true/false是否成功
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      bool meow::Usage::optionAdd (unsigned char opt,
      String const & des,
      String const & val_type,
      String const & val_default,
      bool must 
      )
      +
      +inline
      +
      + +

      新增一個有額外選項的選項

      +
      Parameters
      + + + + + + +
      [in]opt指定字符
      [in]des即description, 用來解釋這個選項的意義用的
      [in]val_type表示額外選項的型態, 寫在USAGE裡面給人看用的
      [in]val_default預設值, 若為空字串則當作沒有預設值
      [in]must表示是否一定要設定
      +
      +
      +
      Returns
      true/false是否成功
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      String meow::Usage::optionValue (unsigned char opt,
      size_t index 
      ) const
      +
      +inline
      +
      + +

      回傳參數 -(opt) 的第 index 個額外選項

      +
      Parameters
      + + + +
      [in]opt指定字符
      [in]index第幾個
      +
      +
      +
      Returns
      回傳參數 -(opt) 的第 index 個額外選項
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      bool meow::Usage::optionValueAcceptAdd (unsigned char opt,
      String const & val,
      String const & des 
      )
      +
      +inline
      +
      + +

      針對-(opt)新增一個可接受的額外選項

      +
      Parameters
      + + + + +
      [in]opt指定字符
      [in]val額外選項
      [in]des關於此額外選項的說明
      +
      +
      +
      Returns
      true/false是否成功
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      size_t meow::Usage::optionValuesSize (unsigned char opt) const
      +
      +inline
      +
      + +

      回傳參數 -(opt) 被設置幾次

      +
      Parameters
      + + +
      [in]opt指定字符
      +
      +
      +
      Returns
      回傳次數
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      String meow::Usage::procArg (size_t index) const
      +
      +inline
      +
      + +

      取得第i個process argument

      +
      Parameters
      + + +
      [in]index第幾個
      +
      +
      +
      Returns
      回傳第 indexprocess argument
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      Strings const& meow::Usage::procArgs () const
      +
      +inline
      +
      + +

      取得process arguments array

      +
      Returns
      一個 std::vector , 包含所有 Process arguments
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      size_t meow::Usage::procArgsSize () const
      +
      +inline
      +
      + +

      取得有幾個process arguments

      +
      Returns
      有幾個process arguments
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      bool meow::Usage::update (Usage const & usage)
      +
      +inline
      +
      + +

      將另一個usage的選項設置加進來

      +
      Parameters
      + + +
      [in]usage另一個usage
      +
      +
      +
      Returns
      true/false是否成功
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      String meow::Usage::usage () const
      +
      +inline
      +
      + +

      回傳usage string

      +
      Returns
      usage string
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      void meow::Usage::usageBeginAdd (String const & des)
      +
      +inline
      +
      + +

      新增一段usage document於每個選項逐條說明之前

      +
      Parameters
      + + +
      [in]des要新增的usage document
      +
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      void meow::Usage::usageEndAdd (String const & des)
      +
      +inline
      +
      + +

      新增一段usage document於每個選項逐條說明之後

      +
      Parameters
      + + +
      [in]des要新增的usage document
      +
      +
      + +
      +
      +
      The documentation for this class was generated from the following file: +
      +
      + + + + + diff --git a/doc/html/classmeow_1_1Usage.js b/doc/html/classmeow_1_1Usage.js new file mode 100644 index 0000000..556eb06 --- /dev/null +++ b/doc/html/classmeow_1_1Usage.js @@ -0,0 +1,21 @@ +var classmeow_1_1Usage = +[ + [ "Usage", "classmeow_1_1Usage.html#a5bcc22c9e69258c22462c1cb4e5b5400", null ], + [ "Usage", "classmeow_1_1Usage.html#a93bca4e2025f46bac3fbfdc36d8ab649", null ], + [ "Usage", "classmeow_1_1Usage.html#a20c74babb6cc473dd3abe2a31bbe32db", null ], + [ "arguments", "classmeow_1_1Usage.html#a9c22701e09fec8e206118a95d7a082d1", null ], + [ "hasOptionSetup", "classmeow_1_1Usage.html#a095271836eecf23940608c0eafcff841", null ], + [ "import", "classmeow_1_1Usage.html#ad7db9a4197d9b281c47df0800ed63df0", null ], + [ "optionAdd", "classmeow_1_1Usage.html#a1fbd15f59f3fdbe5e817d540505d6d6c", null ], + [ "optionAdd", "classmeow_1_1Usage.html#af5a6f3dc4d2250dce3bd74d3de48714d", null ], + [ "optionValue", "classmeow_1_1Usage.html#a79dc9b39f0fa7c810e1c8cee29e2adac", null ], + [ "optionValueAcceptAdd", "classmeow_1_1Usage.html#a71ba10481062ed7088187cf27d7e0399", null ], + [ "optionValuesSize", "classmeow_1_1Usage.html#acf478b89a1208024f9f37f1fe04add0d", null ], + [ "procArg", "classmeow_1_1Usage.html#a503b7e13dd79597020805b58d3d81d9d", null ], + [ "procArgs", "classmeow_1_1Usage.html#aa6a254158f9681e984424c2852fb20ee", null ], + [ "procArgsSize", "classmeow_1_1Usage.html#aef05aaef7ba6433b2f4c5f313f9c0752", null ], + [ "update", "classmeow_1_1Usage.html#ac09c339c31d602eca40df02c582d5241", null ], + [ "usage", "classmeow_1_1Usage.html#a974e116cde6295ed08d836b08e0c1e99", null ], + [ "usageBeginAdd", "classmeow_1_1Usage.html#a05f4b23ce224661dbc7f308da4cb2709", null ], + [ "usageEndAdd", "classmeow_1_1Usage.html#a4ee38098e5abdb6932a32c13a30f584d", null ] +]; \ No newline at end of file diff --git a/doc/html/classmeow_1_1VP__Tree-members.html b/doc/html/classmeow_1_1VP__Tree-members.html new file mode 100644 index 0000000..b7759b8 --- /dev/null +++ b/doc/html/classmeow_1_1VP__Tree-members.html @@ -0,0 +1,90 @@ + + + + + + + +Templates -- Meow: Member List + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      meow::VP_Tree< Vector, Scalar > Member List
      +
      +
      + +

      This is the complete list of members for meow::VP_Tree< Vector, Scalar >, including all inherited members.

      + + + + + + + + + + + + + + + +
      build()meow::VP_Tree< Vector, Scalar >inline
      clear()meow::VP_Tree< Vector, Scalar >inline
      copyFrom(VP_Tree const &tree2)meow::VP_Tree< Vector, Scalar >inline
      erase(Vector const &vector)meow::VP_Tree< Vector, Scalar >inline
      forceBuild()meow::VP_Tree< Vector, Scalar >inline
      insert(Vector const &vector)meow::VP_Tree< Vector, Scalar >inline
      operator=(VP_Tree const &tree2)meow::VP_Tree< Vector, Scalar >inline
      query(Vector const &vector, size_t nearestNumber, bool compareWholeVector) const meow::VP_Tree< Vector, Scalar >inline
      reset(size_t dimension)meow::VP_Tree< Vector, Scalar >inline
      Vectors typedefmeow::VP_Tree< Vector, Scalar >
      VP_Tree()meow::VP_Tree< Vector, Scalar >inline
      VP_Tree(VP_Tree const &tree2)meow::VP_Tree< Vector, Scalar >inline
      VP_Tree(size_t dimension)meow::VP_Tree< Vector, Scalar >inline
      ~VP_Tree()meow::VP_Tree< Vector, Scalar >inline
      +
      + + + + + diff --git a/doc/html/classmeow_1_1VP__Tree.html b/doc/html/classmeow_1_1VP__Tree.html new file mode 100644 index 0000000..3f793fe --- /dev/null +++ b/doc/html/classmeow_1_1VP__Tree.html @@ -0,0 +1,554 @@ + + + + + + + +Templates -- Meow: meow::VP_Tree< Vector, Scalar > Class Template Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      meow::VP_Tree< Vector, Scalar > Class Template Reference
      +
      +
      + +

      跟KD_Tree很像歐 + More...

      + +

      #include "VP_Tree.h"

      + + + + +

      +Public Types

      typedef std::vector< VectorVectors
       
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      +Public Member Functions

       VP_Tree ()
       constructor, with dimension = 1 More...
       
       VP_Tree (VP_Tree const &tree2)
       constructor, 複製資料 More...
       
       VP_Tree (size_t dimension)
       constructor, 給定dimension More...
       
       ~VP_Tree ()
       destructor More...
       
      VP_TreecopyFrom (VP_Tree const &tree2)
       複製資料 More...
       
      void insert (Vector const &vector)
       將給定的Vector加到set中 More...
       
      bool erase (Vector const &vector)
       將給定的Vector從set移除 More...
       
      void build ()
       檢查至今是否有 insert/erase 被呼叫來決定是否 rebuild() More...
       
      void forceBuild ()
       重新建樹 More...
       
      Vectors query (Vector const &vector, size_t nearestNumber, bool compareWholeVector) const
       查找 More...
       
      void clear ()
       清空所有資料 More...
       
      size_t reset (size_t dimension)
       清空所有資料並重新給定維度 More...
       
      VP_Treeoperator= (VP_Tree const &tree2)
       same as copyFrom(tree2) More...
       
      +

      Detailed Description

      +

      template<class Vector, class Scalar>
      +class meow::VP_Tree< Vector, Scalar >

      + +

      跟KD_Tree很像歐

      +

      VP_Tree 用來維護由 N個K維度向量所成的集合 , 並可於該set中查找 前i個離給定向量最接近的向量* . 不像 KD_Tree 二分樹每次都選擇一個維度去分, 分成小的跟大的, VP_Tree 每次選一個點, 將資料分成 離這個點近的, 跟離這個點遠的. 至於怎麼選呢...., 嘛還沒研究, 先random

      +

      參考資料連結:

      + +

      Template Class Operators Request

      + + + + + + + + + + + +
      const?TypenameOperator Parameters Return Type Description
      const Vectoroperator[] (size_t n) Scalar 取得第n 維度量
      const Vectoroperator= (Vector v) Vector& copy operator
      const Vectoroperator< (Vector v) bool 權重比較
      const Scalar'Scalar' (int n) Scalar 建構子,
      +

      其中一定n=0or4 | |const | Scalar|operator* |(Scalar s) | Scalar | 相乘 | |const | Scalar|operator+ |(Scalar s) | Scalar | 相加 | |const | Scalar|operator- |(Scalar s) | Scalar | 相差 | |const | Scalar|operator- |( ) | Scalar | 取負號 | |const | Scalar|operator< |(Scalar s) | bool | 大小比較 |

      +
      Note
      : -實測結果發覺, 維度小的時候, 比起中規中矩的 KD_Tree, VP_Treerandom 於其中, 因此時間複雜度只是期望值 O(logN) 但是測資大到 一定程度, KD_Tree 效率會一整個大幅掉下, 但 VP_Tree 幾乎不受影響 -TODO insert(), erase() 算是未完成功能
      +

      Member Typedef Documentation

      + +
      +
      +
      +template<class Vector, class Scalar>
      + + + + +
      typedef std::vector<Vector> meow::VP_Tree< Vector, Scalar >::Vectors
      +
      + +
      +
      +

      Constructor & Destructor Documentation

      + +
      +
      +
      +template<class Vector, class Scalar>
      + + + + + +
      + + + + + + + +
      meow::VP_Tree< Vector, Scalar >::VP_Tree ()
      +
      +inline
      +
      + +

      constructor, with dimension = 1

      + +
      +
      + +
      +
      +
      +template<class Vector, class Scalar>
      + + + + + +
      + + + + + + + + +
      meow::VP_Tree< Vector, Scalar >::VP_Tree (VP_Tree< Vector, Scalar > const & tree2)
      +
      +inline
      +
      + +

      constructor, 複製資料

      + +
      +
      + +
      +
      +
      +template<class Vector, class Scalar>
      + + + + + +
      + + + + + + + + +
      meow::VP_Tree< Vector, Scalar >::VP_Tree (size_t dimension)
      +
      +inline
      +
      + +

      constructor, 給定dimension

      + +
      +
      + +
      +
      +
      +template<class Vector, class Scalar>
      + + + + + +
      + + + + + + + +
      meow::VP_Tree< Vector, Scalar >::~VP_Tree ()
      +
      +inline
      +
      + +

      destructor

      + +
      +
      +

      Member Function Documentation

      + +
      +
      +
      +template<class Vector, class Scalar>
      + + + + + +
      + + + + + + + +
      void meow::VP_Tree< Vector, Scalar >::build ()
      +
      +inline
      +
      + +

      檢查至今是否有 insert/erase 被呼叫來決定是否 rebuild()

      + +
      +
      + +
      +
      +
      +template<class Vector, class Scalar>
      + + + + + +
      + + + + + + + +
      void meow::VP_Tree< Vector, Scalar >::clear ()
      +
      +inline
      +
      + +

      清空所有資料

      + +
      +
      + +
      +
      +
      +template<class Vector, class Scalar>
      + + + + + +
      + + + + + + + + +
      VP_Tree& meow::VP_Tree< Vector, Scalar >::copyFrom (VP_Tree< Vector, Scalar > const & tree2)
      +
      +inline
      +
      + +

      複製資料

      + +
      +
      + +
      +
      +
      +template<class Vector, class Scalar>
      + + + + + +
      + + + + + + + + +
      bool meow::VP_Tree< Vector, Scalar >::erase (Vector const & vector)
      +
      +inline
      +
      + +

      將給定的Vector從set移除

      + +
      +
      + +
      +
      +
      +template<class Vector, class Scalar>
      + + + + + +
      + + + + + + + +
      void meow::VP_Tree< Vector, Scalar >::forceBuild ()
      +
      +inline
      +
      + +

      重新建樹

      + +
      +
      + +
      +
      +
      +template<class Vector, class Scalar>
      + + + + + +
      + + + + + + + + +
      void meow::VP_Tree< Vector, Scalar >::insert (Vector const & vector)
      +
      +inline
      +
      + +

      將給定的Vector加到set中

      + +
      +
      + +
      +
      +
      +template<class Vector, class Scalar>
      + + + + + +
      + + + + + + + + +
      VP_Tree& meow::VP_Tree< Vector, Scalar >::operator= (VP_Tree< Vector, Scalar > const & tree2)
      +
      +inline
      +
      + +

      same as copyFrom(tree2)

      + +
      +
      + +
      +
      +
      +template<class Vector, class Scalar>
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      Vectors meow::VP_Tree< Vector, Scalar >::query (Vector const & vector,
      size_t nearestNumber,
      bool compareWholeVector 
      ) const
      +
      +inline
      +
      + +

      查找

      +

      於set中找尋距離指定向量前 i 近的向量, 並依照由近而遠的順序排序. 如果有兩個向量v1,v2 距離一樣, 且 cmptrue , 則直接依照 v1<v2 來決定誰在前面. 最後回傳一陣列包含所有解.

      + +
      +
      + +
      +
      +
      +template<class Vector, class Scalar>
      + + + + + +
      + + + + + + + + +
      size_t meow::VP_Tree< Vector, Scalar >::reset (size_t dimension)
      +
      +inline
      +
      + +

      清空所有資料並重新給定維度

      + +
      +
      +
      The documentation for this class was generated from the following file: +
      +
      + + + + + diff --git a/doc/html/classmeow_1_1VP__Tree.js b/doc/html/classmeow_1_1VP__Tree.js new file mode 100644 index 0000000..b34cfa4 --- /dev/null +++ b/doc/html/classmeow_1_1VP__Tree.js @@ -0,0 +1,17 @@ +var classmeow_1_1VP__Tree = +[ + [ "Vectors", "classmeow_1_1VP__Tree.html#a02c136810876c8713b9760aa8bb51aa4", null ], + [ "VP_Tree", "classmeow_1_1VP__Tree.html#ab611c988f5c567498d40866e9eab3851", null ], + [ "VP_Tree", "classmeow_1_1VP__Tree.html#a1f301f751afe7baf5eafe6964c6a7a15", null ], + [ "VP_Tree", "classmeow_1_1VP__Tree.html#a5ce274e16a28c6ef5cac63c6e3258d8b", null ], + [ "~VP_Tree", "classmeow_1_1VP__Tree.html#a599a1fba89e0e5a06fa1e71c81bc5216", null ], + [ "build", "classmeow_1_1VP__Tree.html#a4688e0675080bf406a086d176c5555b9", null ], + [ "clear", "classmeow_1_1VP__Tree.html#ac4d1a186226b2d27abce9eb71149c62c", null ], + [ "copyFrom", "classmeow_1_1VP__Tree.html#afcc9734a4e012d6dfdab408d5c698905", null ], + [ "erase", "classmeow_1_1VP__Tree.html#aa53e215a7e6daa3edfba4201602c8894", null ], + [ "forceBuild", "classmeow_1_1VP__Tree.html#aa4adfa52bd1cee8703b49a5ecf906733", null ], + [ "insert", "classmeow_1_1VP__Tree.html#a2319a3995c4b6ad415a4997764e83b3f", null ], + [ "operator=", "classmeow_1_1VP__Tree.html#a7c73bb25b40f440b48267f94fa4561ad", null ], + [ "query", "classmeow_1_1VP__Tree.html#a22db303a6318b2ef58957b22063cb591", null ], + [ "reset", "classmeow_1_1VP__Tree.html#ad1bffde18bc2f0fc955e78fe77333558", null ] +]; \ No newline at end of file diff --git a/doc/html/classmeow_1_1Vector-members.html b/doc/html/classmeow_1_1Vector-members.html new file mode 100644 index 0000000..90a1230 --- /dev/null +++ b/doc/html/classmeow_1_1Vector-members.html @@ -0,0 +1,113 @@ + + + + + + + +Templates -- Meow: Member List + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      meow::Vector< Scalar > Member List
      +
      +
      + +

      This is the complete list of members for meow::Vector< Scalar >, including all inherited members.

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      add(Vector const &v) const meow::Vector< Scalar >inline
      copyFrom(Vector const &v)meow::Vector< Scalar >inline
      dimension() const meow::Vector< Scalar >inline
      dimension(size_t d, Scalar const &s)meow::Vector< Scalar >inline
      div(Scalar const &s) const meow::Vector< Scalar >inline
      dot(Vector const &v) const meow::Vector< Scalar >inline
      entries(size_t i, size_t j, Scalar const &s)meow::Vector< Scalar >inline
      entry(size_t i) const meow::Vector< Scalar >inline
      entry(size_t i, Scalar const &s)meow::Vector< Scalar >inline
      length() const meow::Vector< Scalar >inline
      length2() const meow::Vector< Scalar >inline
      matrix() const meow::Vector< Scalar >inline
      mul(Scalar const &s) const meow::Vector< Scalar >inline
      negative() const meow::Vector< Scalar >inline
      normalize() const meow::Vector< Scalar >inline
      normalized()meow::Vector< Scalar >inline
      operator()(size_t i) const meow::Vector< Scalar >inline
      operator*(Vector const &v) const meow::Vector< Scalar >inline
      operator*(Scalar const &s) const meow::Vector< Scalar >inline
      operator+() const meow::Vector< Scalar >inline
      operator+(Vector const &v) const meow::Vector< Scalar >inline
      operator-() const meow::Vector< Scalar >inline
      operator-(Vector const &v) const meow::Vector< Scalar >inline
      operator/(Scalar const &s) const meow::Vector< Scalar >inline
      operator=(Vector const &v)meow::Vector< Scalar >inline
      positive() const meow::Vector< Scalar >inline
      referenceFrom(Vector const &v)meow::Vector< Scalar >inline
      sub(Vector const &v) const meow::Vector< Scalar >inline
      subVector(size_t i, size_t j)meow::Vector< Scalar >inline
      valid() const meow::Vector< Scalar >inline
      Vector()meow::Vector< Scalar >inline
      Vector(Vector const &v)meow::Vector< Scalar >inline
      Vector(Matrix< Scalar > const &m)meow::Vector< Scalar >inline
      Vector(Matrix< Scalar > const &m, size_t i)meow::Vector< Scalar >inline
      Vector(std::vector< Scalar > const &v)meow::Vector< Scalar >inline
      Vector(size_t d, Scalar const &e)meow::Vector< Scalar >inline
      ~Vector()meow::Vector< Scalar >inline
      +
      + + + + + diff --git a/doc/html/classmeow_1_1Vector.html b/doc/html/classmeow_1_1Vector.html new file mode 100644 index 0000000..b3857ca --- /dev/null +++ b/doc/html/classmeow_1_1Vector.html @@ -0,0 +1,1359 @@ + + + + + + + +Templates -- Meow: meow::Vector< Scalar > Class Template Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      meow::Vector< Scalar > Class Template Reference
      +
      +
      + +

      vector + More...

      + +

      #include "Vector.h"

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      +Public Member Functions

       Vector ()
       constructor More...
       
       Vector (Vector const &v)
       constructor More...
       
       Vector (Matrix< Scalar > const &m)
       constructor More...
       
       Vector (Matrix< Scalar > const &m, size_t i)
       constructor More...
       
       Vector (std::vector< Scalar > const &v)
       constructor More...
       
       Vector (size_t d, Scalar const &e)
       constructor More...
       
       ~Vector ()
       destructor More...
       
      VectorcopyFrom (Vector const &v)
       copy from ... More...
       
      VectorreferenceFrom (Vector const &v)
       reference from ... More...
       
      Matrix< Scalar > const & matrix () const
       Return a dimension x 1 matrix form of it. More...
       
      size_t dimension () const
       return dimension More...
       
      size_t dimension (size_t d, Scalar const &s)
       resize the dimension More...
       
      bool valid () const
       Return whether dimension>0 is true or not. More...
       
      Scalar entry (size_t i) const
       return i -th entry More...
       
      Scalar entry (size_t i, Scalar const &s)
       change i -th entry More...
       
      void entries (size_t i, size_t j, Scalar const &s)
       change i -th to j -th entries More...
       
      Vector subVector (size_t i, size_t j)
       subvector form i-th to j-th More...
       
      Vector positive () const
       return +(*this) More...
       
      Vector negative () const
       return -(*this) More...
       
      Vector add (Vector const &v) const
       return (*this)+v More...
       
      Vector sub (Vector const &v) const
       return (*this)-v More...
       
      Vector mul (Scalar const &s) const
       return (*this)*s , where s is a scalar More...
       
      Vector div (Scalar const &s) const
       return (*this)/s , where s is a scalar More...
       
      Scalar dot (Vector const &v) const
       dot More...
       
      Scalar length () const
       sqrt of length2 More...
       
      Scalar length2 () const
       same as (*this).dot(*this) More...
       
      Vector normalize () const
       return a normalize form of itself More...
       
      Vectornormalized ()
       Let itself be normalize form. More...
       
      Vectoroperator= (Vector const &v)
       same as copyFrom More...
       
      Scalar operator() (size_t i) const
       same as entry(i) More...
       
      Vector operator+ () const
       same as positive() More...
       
      Vector operator- () const
       same as negative() More...
       
      Vector operator+ (Vector const &v) const
       same as add(v) More...
       
      Vector operator- (Vector const &v) const
       same as sub(v) More...
       
      Scalar operator* (Vector const &v) const
       same as dot(v) More...
       
      Vector operator* (Scalar const &s) const
       same as mul(s) More...
       
      Vector operator/ (Scalar const &s) const
       same as div(s) More...
       
      +

      Detailed Description

      +

      template<class Scalar>
      +class meow::Vector< Scalar >

      + +

      vector

      +
      Author
      cat_leopard
      +

      Constructor & Destructor Documentation

      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      meow::Vector< Scalar >::Vector ()
      +
      +inline
      +
      + +

      constructor

      +

      With dimension=0, which means invalid.

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      meow::Vector< Scalar >::Vector (Vector< Scalar > const & v)
      +
      +inline
      +
      + +

      constructor

      +

      Copy from another vector

      +
      Parameters
      + + +
      [in]vanother vector
      +
      +
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      meow::Vector< Scalar >::Vector (Matrix< Scalar > const & m)
      +
      +inline
      +
      + +

      constructor

      +

      From matrix's first column

      +
      Parameters
      + + +
      [in]mmatrix
      +
      +
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      meow::Vector< Scalar >::Vector (Matrix< Scalar > const & m,
      size_t i 
      )
      +
      +inline
      +
      + +

      constructor

      +

      From matrix's i-th column

      +
      Parameters
      + + + +
      [in]mmatrix
      [in]ii-th
      +
      +
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      meow::Vector< Scalar >::Vector (std::vector< Scalar > const & v)
      +
      +inline
      +
      + +

      constructor

      +

      Copy from another std::vector

      +
      Parameters
      + + +
      [in]vvector
      +
      +
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      meow::Vector< Scalar >::Vector (size_t d,
      Scalar const & e 
      )
      +
      +inline
      +
      + +

      constructor

      +

      setup dimension and inital value

      +
      Parameters
      + + + +
      [in]ddimension
      [in]einital value
      +
      +
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      meow::Vector< Scalar >::~Vector ()
      +
      +inline
      +
      + +

      destructor

      + +
      +
      +

      Member Function Documentation

      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Vector meow::Vector< Scalar >::add (Vector< Scalar > const & v) const
      +
      +inline
      +
      + +

      return (*this)+v

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Vector& meow::Vector< Scalar >::copyFrom (Vector< Scalar > const & v)
      +
      +inline
      +
      + +

      copy from ...

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      size_t meow::Vector< Scalar >::dimension () const
      +
      +inline
      +
      + +

      return dimension

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      size_t meow::Vector< Scalar >::dimension (size_t d,
      Scalar const & s 
      )
      +
      +inline
      +
      + +

      resize the dimension

      +
      Parameters
      + + + +
      [in]dnew dimension
      [in]sinital entry
      +
      +
      +
      Returns
      new dimension
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Vector meow::Vector< Scalar >::div (Scalar const & s) const
      +
      +inline
      +
      + +

      return (*this)/s , where s is a scalar

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Scalar meow::Vector< Scalar >::dot (Vector< Scalar > const & v) const
      +
      +inline
      +
      + +

      dot

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      void meow::Vector< Scalar >::entries (size_t i,
      size_t j,
      Scalar const & s 
      )
      +
      +inline
      +
      + +

      change i -th to j -th entries

      +
      Parameters
      + + + + +
      [in]ii-th
      [in]jj-th
      [in]snew value
      +
      +
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Scalar meow::Vector< Scalar >::entry (size_t i) const
      +
      +inline
      +
      + +

      return i -th entry

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      Scalar meow::Vector< Scalar >::entry (size_t i,
      Scalar const & s 
      )
      +
      +inline
      +
      + +

      change i -th entry

      +
      Parameters
      + + + +
      [in]ii-th
      [in]snew value
      +
      +
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      Scalar meow::Vector< Scalar >::length () const
      +
      +inline
      +
      + +

      sqrt of length2

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      Scalar meow::Vector< Scalar >::length2 () const
      +
      +inline
      +
      + +

      same as (*this).dot(*this)

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      Matrix<Scalar> const& meow::Vector< Scalar >::matrix () const
      +
      +inline
      +
      + +

      Return a dimension x 1 matrix form of it.

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Vector meow::Vector< Scalar >::mul (Scalar const & s) const
      +
      +inline
      +
      + +

      return (*this)*s , where s is a scalar

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      Vector meow::Vector< Scalar >::negative () const
      +
      +inline
      +
      + +

      return -(*this)

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      Vector meow::Vector< Scalar >::normalize () const
      +
      +inline
      +
      + +

      return a normalize form of itself

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      Vector& meow::Vector< Scalar >::normalized ()
      +
      +inline
      +
      + +

      Let itself be normalize form.

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Scalar meow::Vector< Scalar >::operator() (size_t i) const
      +
      +inline
      +
      + +

      same as entry(i)

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Scalar meow::Vector< Scalar >::operator* (Vector< Scalar > const & v) const
      +
      +inline
      +
      + +

      same as dot(v)

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Vector meow::Vector< Scalar >::operator* (Scalar const & s) const
      +
      +inline
      +
      + +

      same as mul(s)

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      Vector meow::Vector< Scalar >::operator+ () const
      +
      +inline
      +
      + +

      same as positive()

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Vector meow::Vector< Scalar >::operator+ (Vector< Scalar > const & v) const
      +
      +inline
      +
      + +

      same as add(v)

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      Vector meow::Vector< Scalar >::operator- () const
      +
      +inline
      +
      + +

      same as negative()

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Vector meow::Vector< Scalar >::operator- (Vector< Scalar > const & v) const
      +
      +inline
      +
      + +

      same as sub(v)

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Vector meow::Vector< Scalar >::operator/ (Scalar const & s) const
      +
      +inline
      +
      + +

      same as div(s)

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Vector& meow::Vector< Scalar >::operator= (Vector< Scalar > const & v)
      +
      +inline
      +
      + +

      same as copyFrom

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      Vector meow::Vector< Scalar >::positive () const
      +
      +inline
      +
      + +

      return +(*this)

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Vector& meow::Vector< Scalar >::referenceFrom (Vector< Scalar > const & v)
      +
      +inline
      +
      + +

      reference from ...

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Vector meow::Vector< Scalar >::sub (Vector< Scalar > const & v) const
      +
      +inline
      +
      + +

      return (*this)-v

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      Vector meow::Vector< Scalar >::subVector (size_t i,
      size_t j 
      )
      +
      +inline
      +
      + +

      subvector form i-th to j-th

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      bool meow::Vector< Scalar >::valid () const
      +
      +inline
      +
      + +

      Return whether dimension>0 is true or not.

      +
      Returns
      true/false
      + +
      +
      +
      The documentation for this class was generated from the following file: +
      +
      + + + + + diff --git a/doc/html/classmeow_1_1Vector.js b/doc/html/classmeow_1_1Vector.js new file mode 100644 index 0000000..a72f72c --- /dev/null +++ b/doc/html/classmeow_1_1Vector.js @@ -0,0 +1,40 @@ +var classmeow_1_1Vector = +[ + [ "Vector", "classmeow_1_1Vector.html#a68530affccd332248e476cc3e188cd61", null ], + [ "Vector", "classmeow_1_1Vector.html#a7def8437ada844cc6b6dc9769aba1ee6", null ], + [ "Vector", "classmeow_1_1Vector.html#a34ca34c834e47288894cec2445e5b073", null ], + [ "Vector", "classmeow_1_1Vector.html#af4966b6e2df19fa6d2752460b1e8afff", null ], + [ "Vector", "classmeow_1_1Vector.html#a58f997cdc6b98a76ae13bba6d685d815", null ], + [ "Vector", "classmeow_1_1Vector.html#a5589e07881f9f6a7bb7c43630d30ecdd", null ], + [ "~Vector", "classmeow_1_1Vector.html#aee0da81d6a393d2abf7bf20c2ef260c3", null ], + [ "add", "classmeow_1_1Vector.html#a43f91063553124efdd23d7f3db1599ac", null ], + [ "copyFrom", "classmeow_1_1Vector.html#a52540cc03073243026770587c35beba0", null ], + [ "dimension", "classmeow_1_1Vector.html#a554bb098d8af7ef1458624e8b1f47e6a", null ], + [ "dimension", "classmeow_1_1Vector.html#ada37bc2df18e7c892d4b5e2ac34bf025", null ], + [ "div", "classmeow_1_1Vector.html#ac813d8c46325f8ec4771a7cc315c8908", null ], + [ "dot", "classmeow_1_1Vector.html#a9228c4b935c57cd2af9cb07218eca452", null ], + [ "entries", "classmeow_1_1Vector.html#adc55ef7402cf4114ea5696df18545618", null ], + [ "entry", "classmeow_1_1Vector.html#af5ecb8d9cc811a2d56e1725c4bfd30e8", null ], + [ "entry", "classmeow_1_1Vector.html#a5050e9117204a6dbdcc7cf5038845c00", null ], + [ "length", "classmeow_1_1Vector.html#afc7cc691dd00ab41fd56d798c13a6a27", null ], + [ "length2", "classmeow_1_1Vector.html#a71b56938e01de730490e722824f4b53e", null ], + [ "matrix", "classmeow_1_1Vector.html#ad3b1665885c683f41b94fd59b0f5e084", null ], + [ "mul", "classmeow_1_1Vector.html#a45bd0b9c27a2fc83f1d00106c976751c", null ], + [ "negative", "classmeow_1_1Vector.html#abefb870f27490906e326a6f94a896f7c", null ], + [ "normalize", "classmeow_1_1Vector.html#ab675b777186dd4903367bc77922893ee", null ], + [ "normalized", "classmeow_1_1Vector.html#aadbed69a847ce560210d0513c2156448", null ], + [ "operator()", "classmeow_1_1Vector.html#a6591f95bda6b9724d2f66fc1254bfa7a", null ], + [ "operator*", "classmeow_1_1Vector.html#a8180db77db8e6ef30a15f4bd1fcb7ef1", null ], + [ "operator*", "classmeow_1_1Vector.html#a3fdb5ccf26fe0602f7bd08e1ecfc940c", null ], + [ "operator+", "classmeow_1_1Vector.html#af10156730c992a5597ca674940157fe8", null ], + [ "operator+", "classmeow_1_1Vector.html#a0a6eade258af4979692fa325dd59429c", null ], + [ "operator-", "classmeow_1_1Vector.html#a510da6e6a0470bf2312e62c1b43a310a", null ], + [ "operator-", "classmeow_1_1Vector.html#ac3e4b43822b9091c3eab7215c52b140d", null ], + [ "operator/", "classmeow_1_1Vector.html#a74e4cf085fd43a51c50872ea9b42c47e", null ], + [ "operator=", "classmeow_1_1Vector.html#a8cad36b5fab47f3d50b840ff26260623", null ], + [ "positive", "classmeow_1_1Vector.html#a200453ad223a040147a2dc92e4222589", null ], + [ "referenceFrom", "classmeow_1_1Vector.html#ad46346bcc2250cbf91803d38df9d538e", null ], + [ "sub", "classmeow_1_1Vector.html#ad2e490231e4b624ef86f958b99c94533", null ], + [ "subVector", "classmeow_1_1Vector.html#a70c2620d25f6a36dc6d6aa38851b1c7a", null ], + [ "valid", "classmeow_1_1Vector.html#a98f150719042e458d52a1476ae9fd52e", null ] +]; \ No newline at end of file diff --git a/doc/html/classmeow_1_1Vector2D-members.html b/doc/html/classmeow_1_1Vector2D-members.html new file mode 100644 index 0000000..aec2398 --- /dev/null +++ b/doc/html/classmeow_1_1Vector2D-members.html @@ -0,0 +1,130 @@ + + + + + + + +Templates -- Meow: Member List + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      meow::Vector2D< Scalar > Member List
      +
      +
      + +

      This is the complete list of members for meow::Vector2D< Scalar >, including all inherited members.

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      add(Vector2D const &v) const meow::Vector2D< Scalar >inline
      added(Vector2D const &v)meow::Vector2D< Scalar >inline
      copyFrom(Vector2D const &v)meow::Vector2D< Scalar >inline
      cross(Vector2D const &v) const meow::Vector2D< Scalar >inline
      div(Scalar const &s) const meow::Vector2D< Scalar >inline
      dived(Scalar const &s)meow::Vector2D< Scalar >inline
      dot(Vector2D const &v) const meow::Vector2D< Scalar >inline
      length() const meow::Vector2D< Scalar >inline
      length2() const meow::Vector2D< Scalar >inline
      matrix() const meow::Vector2D< Scalar >inline
      matrix(Scalar const &homo) const meow::Vector2D< Scalar >inline
      mul(Scalar const &s) const meow::Vector2D< Scalar >inline
      mul(Vector2D const &v) const meow::Vector2D< Scalar >inline
      muled(Scalar const &s)meow::Vector2D< Scalar >inline
      negative() const meow::Vector2D< Scalar >inline
      normalize() const meow::Vector2D< Scalar >inline
      normalized()meow::Vector2D< Scalar >inline
      operator()(size_t n) const meow::Vector2D< Scalar >inline
      operator()(Scalar const &sx, Scalar const &sy)meow::Vector2D< Scalar >inline
      operator*(Scalar const &s) const meow::Vector2D< Scalar >inline
      operator*(Vector2D const &v) const meow::Vector2D< Scalar >inline
      operator*=(Scalar const &s)meow::Vector2D< Scalar >inline
      operator+() const meow::Vector2D< Scalar >inline
      operator+(Vector2D const &v) const meow::Vector2D< Scalar >inline
      operator+=(Vector2D const &v)meow::Vector2D< Scalar >inline
      operator-() const meow::Vector2D< Scalar >inline
      operator-(Vector2D const &v) const meow::Vector2D< Scalar >inline
      operator-=(Vector2D const &v)meow::Vector2D< Scalar >inline
      operator/(Scalar const &s) const meow::Vector2D< Scalar >inline
      operator/=(Scalar const &s)meow::Vector2D< Scalar >inline
      operator=(Vector2D const &v)meow::Vector2D< Scalar >inline
      operator~() const meow::Vector2D< Scalar >inline
      positive() const meow::Vector2D< Scalar >inline
      reflect(Vector2D const &v) const meow::Vector2D< Scalar >inline
      reflected(Vector2D const &v)meow::Vector2D< Scalar >inline
      right() const meow::Vector2D< Scalar >inline
      rotate(Scalar const &theta) const meow::Vector2D< Scalar >inline
      rotated(Scalar const &theta)meow::Vector2D< Scalar >inline
      sub(Vector2D const &v) const meow::Vector2D< Scalar >inline
      subed(Vector2D const &v)meow::Vector2D< Scalar >inline
      Vector2D()meow::Vector2D< Scalar >inline
      Vector2D(Vector2D const &v)meow::Vector2D< Scalar >inline
      Vector2D(Scalar const &s)meow::Vector2D< Scalar >inline
      Vector2D(Scalar const &sx, Scalar const &sy)meow::Vector2D< Scalar >inline
      Vector2D(Vector< Scalar > const &v)meow::Vector2D< Scalar >inline
      Vector2D(Vector< Scalar > const &v, size_t i)meow::Vector2D< Scalar >inline
      x() const meow::Vector2D< Scalar >inline
      x(Scalar const &s)meow::Vector2D< Scalar >inline
      xGet()meow::Vector2D< Scalar >inline
      xy(Scalar const &sx, Scalar const &sy)meow::Vector2D< Scalar >inline
      y() const meow::Vector2D< Scalar >inline
      y(Scalar const &s)meow::Vector2D< Scalar >inline
      yGet()meow::Vector2D< Scalar >inline
      ~Vector2D()meow::Vector2D< Scalar >inline
      +
      + + + + + diff --git a/doc/html/classmeow_1_1Vector2D.html b/doc/html/classmeow_1_1Vector2D.html new file mode 100644 index 0000000..01aac3e --- /dev/null +++ b/doc/html/classmeow_1_1Vector2D.html @@ -0,0 +1,1749 @@ + + + + + + + +Templates -- Meow: meow::Vector2D< Scalar > Class Template Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      meow::Vector2D< Scalar > Class Template Reference
      +
      +
      + +

      2D's vector + More...

      + +

      #include "Vectors.h"

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      +Public Member Functions

       Vector2D ()
       consturctor (0, 0) More...
       
       Vector2D (Vector2D const &v)
       consturctor (from another Vector2D) More...
       
       Vector2D (Scalar const &s)
       constructor (s, s) More...
       
       Vector2D (Scalar const &sx, Scalar const &sy)
       constructor (sx, sy) More...
       
       Vector2D (Vector< Scalar > const &v)
       constructor (from another Vector) More...
       
       Vector2D (Vector< Scalar > const &v, size_t i)
       constructor (from another Vector, i-th) More...
       
       ~Vector2D ()
       destructor More...
       
      Vector2DcopyFrom (Vector2D const &v)
       copy More...
       
      Scalar const & x () const
       access x More...
       
      Scalar & xGet ()
       access x with non constant reference More...
       
      Scalar & yGet ()
       access y with non constant reference More...
       
      Scalar const & y () const
       access y More...
       
      Scalar const & x (Scalar const &s)
       modify x More...
       
      Scalar const & y (Scalar const &s)
       modify y More...
       
      Vector2Dxy (Scalar const &sx, Scalar const &sy)
       modify x and y More...
       
      Vector2D positive () const
       return +(*this) More...
       
      Vector2D negative () const
       return -(*this) More...
       
      Vector2D right () const
       return count-clockwise rotate 90 degree of itself More...
       
      Vector2D add (Vector2D const &v) const
       return (*this)+v More...
       
      Vector2Dadded (Vector2D const &v)
       Let itself add v. More...
       
      Vector2D sub (Vector2D const &v) const
       return (*this)-v More...
       
      Vector2Dsubed (Vector2D const &v)
       Let itself substract v. More...
       
      Vector2D mul (Scalar const &s) const
       return (*this)*s , where s is a scalar More...
       
      Vector2Dmuled (Scalar const &s)
       Let itself mulitple s. More...
       
      Vector2D div (Scalar const &s) const
       return (*this)/s , where s is a scalar More...
       
      Vector2Ddived (Scalar const &s)
       Let itself divide s. More...
       
      Scalar mul (Vector2D const &v) const
       same as dot(v) More...
       
      Scalar dot (Vector2D const &v) const
       dot More...
       
      Scalar cross (Vector2D const &v) const
       cross More...
       
      Scalar length () const
       sqrt of length2 More...
       
      Scalar length2 () const
       same as dot(*this) More...
       
      Vector2D normalize () const
       return normalize form of itself More...
       
      Vector2Dnormalized ()
       normalize itself More...
       
      Vector2D rotate (Scalar const &theta) const
       return rotate theta degree of itself More...
       
      Vector2Drotated (Scalar const &theta)
       Let itself rotate theta degree. More...
       
      Vector2D reflect (Vector2D const &v) const
       return reflect from given vector v More...
       
      Vector2Dreflected (Vector2D const &v)
       reflect itself given vector v More...
       
      Matrix< Scalar > matrix () const
       return a 2x1 matrix form of itself More...
       
      Matrix< Scalar > matrix (Scalar const &homo) const
       return a 3x1 matrix form of itself More...
       
      Scalar const & operator() (size_t n) const
       
      Vector2Doperator() (Scalar const &sx, Scalar const &sy)
       
      Vector2D operator+ () const
       
      Vector2D operator- () const
       
      Vector2D operator~ () const
       
      Vector2D operator+ (Vector2D const &v) const
       
      Vector2D operator- (Vector2D const &v) const
       
      Vector2D operator* (Scalar const &s) const
       
      Vector2D operator/ (Scalar const &s) const
       
      Scalar operator* (Vector2D const &v) const
       
      Vector2Doperator= (Vector2D const &v)
       
      Vector2Doperator+= (Vector2D const &v)
       
      Vector2Doperator-= (Vector2D const &v)
       
      Vector2Doperator*= (Scalar const &s)
       
      Vector2Doperator/= (Scalar const &s)
       
      +

      Detailed Description

      +

      template<class Scalar>
      +class meow::Vector2D< Scalar >

      + +

      2D's vector

      +
      Author
      cat_leopard
      +

      Constructor & Destructor Documentation

      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      meow::Vector2D< Scalar >::Vector2D ()
      +
      +inline
      +
      + +

      consturctor (0, 0)

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      meow::Vector2D< Scalar >::Vector2D (Vector2D< Scalar > const & v)
      +
      +inline
      +
      + +

      consturctor (from another Vector2D)

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      meow::Vector2D< Scalar >::Vector2D (Scalar const & s)
      +
      +inline
      +
      + +

      constructor (s, s)

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      meow::Vector2D< Scalar >::Vector2D (Scalar const & sx,
      Scalar const & sy 
      )
      +
      +inline
      +
      + +

      constructor (sx, sy)

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      meow::Vector2D< Scalar >::Vector2D (Vector< Scalar > const & v)
      +
      +inline
      +
      + +

      constructor (from another Vector)

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      meow::Vector2D< Scalar >::Vector2D (Vector< Scalar > const & v,
      size_t i 
      )
      +
      +inline
      +
      + +

      constructor (from another Vector, i-th)

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      meow::Vector2D< Scalar >::~Vector2D ()
      +
      +inline
      +
      + +

      destructor

      + +
      +
      +

      Member Function Documentation

      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Vector2D meow::Vector2D< Scalar >::add (Vector2D< Scalar > const & v) const
      +
      +inline
      +
      + +

      return (*this)+v

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Vector2D& meow::Vector2D< Scalar >::added (Vector2D< Scalar > const & v)
      +
      +inline
      +
      + +

      Let itself add v.

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Vector2D& meow::Vector2D< Scalar >::copyFrom (Vector2D< Scalar > const & v)
      +
      +inline
      +
      + +

      copy

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Scalar meow::Vector2D< Scalar >::cross (Vector2D< Scalar > const & v) const
      +
      +inline
      +
      + +

      cross

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Vector2D meow::Vector2D< Scalar >::div (Scalar const & s) const
      +
      +inline
      +
      + +

      return (*this)/s , where s is a scalar

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Vector2D& meow::Vector2D< Scalar >::dived (Scalar const & s)
      +
      +inline
      +
      + +

      Let itself divide s.

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Scalar meow::Vector2D< Scalar >::dot (Vector2D< Scalar > const & v) const
      +
      +inline
      +
      + +

      dot

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      Scalar meow::Vector2D< Scalar >::length () const
      +
      +inline
      +
      + +

      sqrt of length2

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      Scalar meow::Vector2D< Scalar >::length2 () const
      +
      +inline
      +
      + +

      same as dot(*this)

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      Matrix<Scalar> meow::Vector2D< Scalar >::matrix () const
      +
      +inline
      +
      + +

      return a 2x1 matrix form of itself

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Matrix<Scalar> meow::Vector2D< Scalar >::matrix (Scalar const & homo) const
      +
      +inline
      +
      + +

      return a 3x1 matrix form of itself

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Vector2D meow::Vector2D< Scalar >::mul (Scalar const & s) const
      +
      +inline
      +
      + +

      return (*this)*s , where s is a scalar

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Scalar meow::Vector2D< Scalar >::mul (Vector2D< Scalar > const & v) const
      +
      +inline
      +
      + +

      same as dot(v)

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Vector2D& meow::Vector2D< Scalar >::muled (Scalar const & s)
      +
      +inline
      +
      + +

      Let itself mulitple s.

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      Vector2D meow::Vector2D< Scalar >::negative () const
      +
      +inline
      +
      + +

      return -(*this)

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      Vector2D meow::Vector2D< Scalar >::normalize () const
      +
      +inline
      +
      + +

      return normalize form of itself

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      Vector2D& meow::Vector2D< Scalar >::normalized ()
      +
      +inline
      +
      + +

      normalize itself

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Scalar const& meow::Vector2D< Scalar >::operator() (size_t n) const
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      Vector2D& meow::Vector2D< Scalar >::operator() (Scalar const & sx,
      Scalar const & sy 
      )
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Vector2D meow::Vector2D< Scalar >::operator* (Scalar const & s) const
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Scalar meow::Vector2D< Scalar >::operator* (Vector2D< Scalar > const & v) const
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Vector2D& meow::Vector2D< Scalar >::operator*= (Scalar const & s)
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      Vector2D meow::Vector2D< Scalar >::operator+ () const
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Vector2D meow::Vector2D< Scalar >::operator+ (Vector2D< Scalar > const & v) const
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Vector2D& meow::Vector2D< Scalar >::operator+= (Vector2D< Scalar > const & v)
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      Vector2D meow::Vector2D< Scalar >::operator- () const
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Vector2D meow::Vector2D< Scalar >::operator- (Vector2D< Scalar > const & v) const
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Vector2D& meow::Vector2D< Scalar >::operator-= (Vector2D< Scalar > const & v)
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Vector2D meow::Vector2D< Scalar >::operator/ (Scalar const & s) const
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Vector2D& meow::Vector2D< Scalar >::operator/= (Scalar const & s)
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Vector2D& meow::Vector2D< Scalar >::operator= (Vector2D< Scalar > const & v)
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      Vector2D meow::Vector2D< Scalar >::operator~ () const
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      Vector2D meow::Vector2D< Scalar >::positive () const
      +
      +inline
      +
      + +

      return +(*this)

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Vector2D meow::Vector2D< Scalar >::reflect (Vector2D< Scalar > const & v) const
      +
      +inline
      +
      + +

      return reflect from given vector v

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Vector2D& meow::Vector2D< Scalar >::reflected (Vector2D< Scalar > const & v)
      +
      +inline
      +
      + +

      reflect itself given vector v

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      Vector2D meow::Vector2D< Scalar >::right () const
      +
      +inline
      +
      + +

      return count-clockwise rotate 90 degree of itself

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Vector2D meow::Vector2D< Scalar >::rotate (Scalar const & theta) const
      +
      +inline
      +
      + +

      return rotate theta degree of itself

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Vector2D& meow::Vector2D< Scalar >::rotated (Scalar const & theta)
      +
      +inline
      +
      + +

      Let itself rotate theta degree.

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Vector2D meow::Vector2D< Scalar >::sub (Vector2D< Scalar > const & v) const
      +
      +inline
      +
      + +

      return (*this)-v

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Vector2D& meow::Vector2D< Scalar >::subed (Vector2D< Scalar > const & v)
      +
      +inline
      +
      + +

      Let itself substract v.

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      Scalar const& meow::Vector2D< Scalar >::x () const
      +
      +inline
      +
      + +

      access x

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Scalar const& meow::Vector2D< Scalar >::x (Scalar const & s)
      +
      +inline
      +
      + +

      modify x

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      Scalar& meow::Vector2D< Scalar >::xGet ()
      +
      +inline
      +
      + +

      access x with non constant reference

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      Vector2D& meow::Vector2D< Scalar >::xy (Scalar const & sx,
      Scalar const & sy 
      )
      +
      +inline
      +
      + +

      modify x and y

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      Scalar const& meow::Vector2D< Scalar >::y () const
      +
      +inline
      +
      + +

      access y

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Scalar const& meow::Vector2D< Scalar >::y (Scalar const & s)
      +
      +inline
      +
      + +

      modify y

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      Scalar& meow::Vector2D< Scalar >::yGet ()
      +
      +inline
      +
      + +

      access y with non constant reference

      + +
      +
      +
      The documentation for this class was generated from the following file: +
      +
      + + + + + diff --git a/doc/html/classmeow_1_1Vector2D.js b/doc/html/classmeow_1_1Vector2D.js new file mode 100644 index 0000000..b5bb15a --- /dev/null +++ b/doc/html/classmeow_1_1Vector2D.js @@ -0,0 +1,57 @@ +var classmeow_1_1Vector2D = +[ + [ "Vector2D", "classmeow_1_1Vector2D.html#a69f2ee0830db546d5a2b5cb39a22ffda", null ], + [ "Vector2D", "classmeow_1_1Vector2D.html#a01aeddc4e436a8c97e0e570a089ea6c2", null ], + [ "Vector2D", "classmeow_1_1Vector2D.html#a713952e42ea15ee86187a14b677e9555", null ], + [ "Vector2D", "classmeow_1_1Vector2D.html#a989ff27c4ef1dacd3f1b37b81dff0fa2", null ], + [ "Vector2D", "classmeow_1_1Vector2D.html#ade618c2ccb5a6c1915495e5b0e34cba4", null ], + [ "Vector2D", "classmeow_1_1Vector2D.html#a62a15858053f7c6c80aa9a896dd6d78d", null ], + [ "~Vector2D", "classmeow_1_1Vector2D.html#a3782df3eec67c68edae1afdd64e18d27", null ], + [ "add", "classmeow_1_1Vector2D.html#a52467da33d126ff24f4c2757ee37ed4d", null ], + [ "added", "classmeow_1_1Vector2D.html#a56f0d3848a5508b33d6c564e2eebb75e", null ], + [ "copyFrom", "classmeow_1_1Vector2D.html#adced5720013a8be2883df4a82e091483", null ], + [ "cross", "classmeow_1_1Vector2D.html#adc7dbbcc85cacd7ca22b466335f250ae", null ], + [ "div", "classmeow_1_1Vector2D.html#acbb2ec7aa2897e93b3ff9964565ae8fc", null ], + [ "dived", "classmeow_1_1Vector2D.html#a045c6189a70574b1465131d59410fa16", null ], + [ "dot", "classmeow_1_1Vector2D.html#a5a7a5ca3c2a401f1409b05b6bdf18490", null ], + [ "length", "classmeow_1_1Vector2D.html#ac32c4c5bd8ecf0a662dd12f3b6de15e5", null ], + [ "length2", "classmeow_1_1Vector2D.html#a1847d22eda48a16d9265f6e0774e1538", null ], + [ "matrix", "classmeow_1_1Vector2D.html#added6ab5bb058ef53f919724333454fd", null ], + [ "matrix", "classmeow_1_1Vector2D.html#a715f0f3cb62fddd7723b38d4211bb6db", null ], + [ "mul", "classmeow_1_1Vector2D.html#ac3d894445c7dfa8b0cbe8ec2c1dfd1c2", null ], + [ "mul", "classmeow_1_1Vector2D.html#a8c65e501c1eeafe7f504c3b834743320", null ], + [ "muled", "classmeow_1_1Vector2D.html#a4e0422609e71a9e16b41fceca451d63c", null ], + [ "negative", "classmeow_1_1Vector2D.html#a8d389c0b1a9cc2b3a9dec7fec05bbad8", null ], + [ "normalize", "classmeow_1_1Vector2D.html#aa5da315ea365b2ca374704a3e8dded9b", null ], + [ "normalized", "classmeow_1_1Vector2D.html#ad60642b6b0dc4a6626e1d9eb917e6b45", null ], + [ "operator()", "classmeow_1_1Vector2D.html#a2a0cd6731b85b71649dca56d719a1633", null ], + [ "operator()", "classmeow_1_1Vector2D.html#a16a2ba46dfff7929b291df9aa0952422", null ], + [ "operator*", "classmeow_1_1Vector2D.html#abc930168f72c634aa9a608cc9a4e8c1e", null ], + [ "operator*", "classmeow_1_1Vector2D.html#af609b7cb9d23412fe2ec627eec902cba", null ], + [ "operator*=", "classmeow_1_1Vector2D.html#a2d5ada8cf5673c79375c0429a1681ca6", null ], + [ "operator+", "classmeow_1_1Vector2D.html#aff9ac089030964f9ba665a5522d759f0", null ], + [ "operator+", "classmeow_1_1Vector2D.html#aca1ad41491896a0743029d9864495c6a", null ], + [ "operator+=", "classmeow_1_1Vector2D.html#a43660ff47fbe41076396c122a5bfd7ac", null ], + [ "operator-", "classmeow_1_1Vector2D.html#a6b86b91ba3c24e668593aaba3e4bc50e", null ], + [ "operator-", "classmeow_1_1Vector2D.html#a7a71b243bdcab1d6433f2c7611bc8d15", null ], + [ "operator-=", "classmeow_1_1Vector2D.html#ac160da32a9af65264c4b509db5d9f0fb", null ], + [ "operator/", "classmeow_1_1Vector2D.html#abe7d948febd4ea0faf80be7ffc369692", null ], + [ "operator/=", "classmeow_1_1Vector2D.html#af164380cbababa279dee2bedb81ec080", null ], + [ "operator=", "classmeow_1_1Vector2D.html#a470def2d8b1789e0cbb8ede298893242", null ], + [ "operator~", "classmeow_1_1Vector2D.html#ae2fe5b97bf837bc29bb6d819772f4ea0", null ], + [ "positive", "classmeow_1_1Vector2D.html#a0b53875b3acbc7ac8c8e773c9ed340e2", null ], + [ "reflect", "classmeow_1_1Vector2D.html#affe23a69e939807c11ee8763ca79debf", null ], + [ "reflected", "classmeow_1_1Vector2D.html#a21850fb1a57df44425330ede4cfee331", null ], + [ "right", "classmeow_1_1Vector2D.html#a2e768dd00d86dafa8adefc4ffc4edc9e", null ], + [ "rotate", "classmeow_1_1Vector2D.html#aa6ae22d99360ff9e0b623e1744576733", null ], + [ "rotated", "classmeow_1_1Vector2D.html#af3fd0ff1b8f9ca6df82b8659cadafb7d", null ], + [ "sub", "classmeow_1_1Vector2D.html#ad7b3e23827cfc3db7fbcc12c70db398a", null ], + [ "subed", "classmeow_1_1Vector2D.html#a274c5cd3e139978539655a0191f03579", null ], + [ "x", "classmeow_1_1Vector2D.html#a1bb0d1ce4954e56b8b0f166b928816a3", null ], + [ "x", "classmeow_1_1Vector2D.html#a1bb44937c6a470a483740aa6527a90b9", null ], + [ "xGet", "classmeow_1_1Vector2D.html#a23046c79acf88b719292022ea4e8d171", null ], + [ "xy", "classmeow_1_1Vector2D.html#a79c0c92338f7197902cfc53876eb5e73", null ], + [ "y", "classmeow_1_1Vector2D.html#a0506d587eb30444092082258baab7a74", null ], + [ "y", "classmeow_1_1Vector2D.html#a48f420d0f701c059f86f33cdfdf630b7", null ], + [ "yGet", "classmeow_1_1Vector2D.html#a26a246441af25df6aa76708cf98fb9e6", null ] +]; \ No newline at end of file diff --git a/doc/html/classmeow_1_1Vector3D-members.html b/doc/html/classmeow_1_1Vector3D-members.html new file mode 100644 index 0000000..6e173c7 --- /dev/null +++ b/doc/html/classmeow_1_1Vector3D-members.html @@ -0,0 +1,132 @@ + + + + + + + +Templates -- Meow: Member List + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      meow::Vector3D< Scalar > Member List
      +
      +
      + +

      This is the complete list of members for meow::Vector3D< Scalar >, including all inherited members.

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      add(Vector3D const &v) const meow::Vector3D< Scalar >inline
      added(Vector3D const &v)meow::Vector3D< Scalar >inline
      copyFrom(Vector3D const &v)meow::Vector3D< Scalar >inline
      cross(Vector3D const &v) const meow::Vector3D< Scalar >inline
      crossed(Vector3D const &v)meow::Vector3D< Scalar >inline
      div(Scalar const &s) const meow::Vector3D< Scalar >inline
      dived(Scalar const &s)meow::Vector3D< Scalar >inline
      dot(Vector3D const &v) const meow::Vector3D< Scalar >inline
      length() const meow::Vector3D< Scalar >inline
      length2() const meow::Vector3D< Scalar >inline
      matrix() const meow::Vector3D< Scalar >inline
      matrix(Scalar const &homo) const meow::Vector3D< Scalar >inline
      mul(Scalar const &s) const meow::Vector3D< Scalar >inline
      mul(Vector3D const &v) const meow::Vector3D< Scalar >inline
      muled(Scalar const &s)meow::Vector3D< Scalar >inline
      negative() const meow::Vector3D< Scalar >inline
      normalize() const meow::Vector3D< Scalar >inline
      normalized()meow::Vector3D< Scalar >inline
      operator()(size_t n) const meow::Vector3D< Scalar >inline
      operator()(Scalar const &sx, Scalar const &sy, Scalar const &sz)meow::Vector3D< Scalar >inline
      operator*(Scalar const &s) const meow::Vector3D< Scalar >inline
      operator*(Vector3D const &v) const meow::Vector3D< Scalar >inline
      operator*=(Scalar const &s)meow::Vector3D< Scalar >inline
      operator+() const meow::Vector3D< Scalar >inline
      operator+(Vector3D const &v) const meow::Vector3D< Scalar >inline
      operator+=(Vector3D const &v)meow::Vector3D< Scalar >inline
      operator-() const meow::Vector3D< Scalar >inline
      operator-(Vector3D const &v) const meow::Vector3D< Scalar >inline
      operator-=(Vector3D const &v)meow::Vector3D< Scalar >inline
      operator/(Scalar const &s) const meow::Vector3D< Scalar >inline
      operator/=(Scalar const &s)meow::Vector3D< Scalar >inline
      operator=(Vector3D const &v)meow::Vector3D< Scalar >inline
      positive() const meow::Vector3D< Scalar >inline
      reflect(Vector3D const &v) const meow::Vector3D< Scalar >inline
      reflected(Vector3D const &v)meow::Vector3D< Scalar >inline
      rotate(Vector3D const &axis, double theta) const meow::Vector3D< Scalar >inline
      rotated(Vector3D const &axis, double theta)meow::Vector3D< Scalar >inline
      sub(Vector3D const &v) const meow::Vector3D< Scalar >inline
      subed(Vector3D const &v)meow::Vector3D< Scalar >inline
      Vector3D()meow::Vector3D< Scalar >inline
      Vector3D(Vector3D const &v)meow::Vector3D< Scalar >inline
      Vector3D(Scalar const &s)meow::Vector3D< Scalar >inline
      Vector3D(Scalar const &sx, Scalar const &sy, Scalar const &sz)meow::Vector3D< Scalar >inline
      Vector3D(Vector< Scalar > const &v)meow::Vector3D< Scalar >inline
      Vector3D(Vector< Scalar > const &v, size_t i)meow::Vector3D< Scalar >inline
      x() const meow::Vector3D< Scalar >inline
      x(Scalar const &s)meow::Vector3D< Scalar >inline
      xGet()meow::Vector3D< Scalar >inline
      xyz(Scalar const &sx, Scalar const &sy, Scalar const &sz)meow::Vector3D< Scalar >inline
      y() const meow::Vector3D< Scalar >inline
      y(Scalar const &s)meow::Vector3D< Scalar >inline
      yGet()meow::Vector3D< Scalar >inline
      z() const meow::Vector3D< Scalar >inline
      z(Scalar const &s)meow::Vector3D< Scalar >inline
      zGet()meow::Vector3D< Scalar >inline
      ~Vector3D()meow::Vector3D< Scalar >inline
      +
      + + + + + diff --git a/doc/html/classmeow_1_1Vector3D.html b/doc/html/classmeow_1_1Vector3D.html new file mode 100644 index 0000000..beccfd0 --- /dev/null +++ b/doc/html/classmeow_1_1Vector3D.html @@ -0,0 +1,1852 @@ + + + + + + + +Templates -- Meow: meow::Vector3D< Scalar > Class Template Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      meow::Vector3D< Scalar > Class Template Reference
      +
      +
      + +

      3D's vector + More...

      + +

      #include "Vectors.h"

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      +Public Member Functions

       Vector3D ()
       consturctor (0, 0) More...
       
       Vector3D (Vector3D const &v)
       consturctor (from another Vector3D) More...
       
       Vector3D (Scalar const &s)
       constructor (s, s) More...
       
       Vector3D (Scalar const &sx, Scalar const &sy, Scalar const &sz)
       constructor (sx, sy) More...
       
       Vector3D (Vector< Scalar > const &v)
       constructor (from another Vector) More...
       
       Vector3D (Vector< Scalar > const &v, size_t i)
       constructor (from another Vector, i-th) More...
       
       ~Vector3D ()
       destructor More...
       
      Vector3DcopyFrom (Vector3D const &v)
       copy More...
       
      Scalar const & x () const
       access x More...
       
      Scalar const & y () const
       access y More...
       
      Scalar const & z () const
       access z More...
       
      Scalar & xGet ()
       access x with non constant reference More...
       
      Scalar & yGet ()
       access y with non constant reference More...
       
      Scalar & zGet ()
       access z with non constant reference More...
       
      Scalar const & x (Scalar const &s)
       modify x More...
       
      Scalar const & y (Scalar const &s)
       modify y More...
       
      Scalar const & z (Scalar const &s)
       modify z More...
       
      Vector3Dxyz (Scalar const &sx, Scalar const &sy, Scalar const &sz)
       modify x and y More...
       
      Vector3D positive () const
       return +(*this) More...
       
      Vector3D negative () const
       return -(*this) More...
       
      Vector3D add (Vector3D const &v) const
       return (*this)+v More...
       
      Vector3Dadded (Vector3D const &v)
       Let itself add v. More...
       
      Vector3D sub (Vector3D const &v) const
       return (*this)-v More...
       
      Vector3Dsubed (Vector3D const &v)
       Let itself substract v. More...
       
      Vector3D mul (Scalar const &s) const
       return (*this)*s , where s is a scalar More...
       
      Vector3Dmuled (Scalar const &s)
       Let itself mulitple s. More...
       
      Vector3D div (Scalar const &s) const
       return (*this)/s , where s is a scalar More...
       
      Vector3Ddived (Scalar const &s)
       Let itself divide s. More...
       
      Scalar mul (Vector3D const &v) const
       same as dot(v) More...
       
      Scalar dot (Vector3D const &v) const
       dot More...
       
      Vector3D cross (Vector3D const &v) const
       cross More...
       
      Vector3Dcrossed (Vector3D const &v)
       crossed More...
       
      Scalar length () const
       sqrt of length2 More...
       
      Scalar length2 () const
       same as dot(*this) More...
       
      Vector3D normalize () const
       return normalize form of itself More...
       
      Vector3Dnormalized ()
       normalize itself More...
       
      Vector3D rotate (Vector3D const &axis, double theta) const
       return rotate theta degree by axis of itself More...
       
      Vector3Drotated (Vector3D const &axis, double theta)
       Let itself rotate theta degree. More...
       
      Vector3D reflect (Vector3D const &v) const
       return reflect from given vector v More...
       
      Vector3Dreflected (Vector3D const &v)
       reflect itself given vector v More...
       
      Matrix< Scalar > matrix () const
       return a 3x1 matrix form of itself More...
       
      Matrix< Scalar > matrix (Scalar const &homo) const
       return a 3x1 matrix form of itself More...
       
      Scalar const & operator() (size_t n) const
       
      Vector3Doperator() (Scalar const &sx, Scalar const &sy, Scalar const &sz)
       
      Vector3D operator+ () const
       
      Vector3D operator- () const
       
      Vector3D operator+ (Vector3D const &v) const
       
      Vector3D operator- (Vector3D const &v) const
       
      Vector3D operator* (Scalar const &s) const
       
      Vector3D operator/ (Scalar const &s) const
       
      Scalar operator* (Vector3D const &v) const
       
      Vector3Doperator= (Vector3D const &v)
       
      Vector3Doperator+= (Vector3D const &v)
       
      Vector3Doperator-= (Vector3D const &v)
       
      Vector3Doperator*= (Scalar const &s)
       
      Vector3Doperator/= (Scalar const &s)
       
      +

      Detailed Description

      +

      template<class Scalar>
      +class meow::Vector3D< Scalar >

      + +

      3D's vector

      +
      Author
      cat_leopard
      +

      Constructor & Destructor Documentation

      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      meow::Vector3D< Scalar >::Vector3D ()
      +
      +inline
      +
      + +

      consturctor (0, 0)

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      meow::Vector3D< Scalar >::Vector3D (Vector3D< Scalar > const & v)
      +
      +inline
      +
      + +

      consturctor (from another Vector3D)

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      meow::Vector3D< Scalar >::Vector3D (Scalar const & s)
      +
      +inline
      +
      + +

      constructor (s, s)

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      meow::Vector3D< Scalar >::Vector3D (Scalar const & sx,
      Scalar const & sy,
      Scalar const & sz 
      )
      +
      +inline
      +
      + +

      constructor (sx, sy)

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      meow::Vector3D< Scalar >::Vector3D (Vector< Scalar > const & v)
      +
      +inline
      +
      + +

      constructor (from another Vector)

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      meow::Vector3D< Scalar >::Vector3D (Vector< Scalar > const & v,
      size_t i 
      )
      +
      +inline
      +
      + +

      constructor (from another Vector, i-th)

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      meow::Vector3D< Scalar >::~Vector3D ()
      +
      +inline
      +
      + +

      destructor

      + +
      +
      +

      Member Function Documentation

      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Vector3D meow::Vector3D< Scalar >::add (Vector3D< Scalar > const & v) const
      +
      +inline
      +
      + +

      return (*this)+v

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Vector3D& meow::Vector3D< Scalar >::added (Vector3D< Scalar > const & v)
      +
      +inline
      +
      + +

      Let itself add v.

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Vector3D& meow::Vector3D< Scalar >::copyFrom (Vector3D< Scalar > const & v)
      +
      +inline
      +
      + +

      copy

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Vector3D meow::Vector3D< Scalar >::cross (Vector3D< Scalar > const & v) const
      +
      +inline
      +
      + +

      cross

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Vector3D& meow::Vector3D< Scalar >::crossed (Vector3D< Scalar > const & v)
      +
      +inline
      +
      + +

      crossed

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Vector3D meow::Vector3D< Scalar >::div (Scalar const & s) const
      +
      +inline
      +
      + +

      return (*this)/s , where s is a scalar

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Vector3D& meow::Vector3D< Scalar >::dived (Scalar const & s)
      +
      +inline
      +
      + +

      Let itself divide s.

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Scalar meow::Vector3D< Scalar >::dot (Vector3D< Scalar > const & v) const
      +
      +inline
      +
      + +

      dot

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      Scalar meow::Vector3D< Scalar >::length () const
      +
      +inline
      +
      + +

      sqrt of length2

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      Scalar meow::Vector3D< Scalar >::length2 () const
      +
      +inline
      +
      + +

      same as dot(*this)

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      Matrix<Scalar> meow::Vector3D< Scalar >::matrix () const
      +
      +inline
      +
      + +

      return a 3x1 matrix form of itself

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Matrix<Scalar> meow::Vector3D< Scalar >::matrix (Scalar const & homo) const
      +
      +inline
      +
      + +

      return a 3x1 matrix form of itself

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Vector3D meow::Vector3D< Scalar >::mul (Scalar const & s) const
      +
      +inline
      +
      + +

      return (*this)*s , where s is a scalar

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Scalar meow::Vector3D< Scalar >::mul (Vector3D< Scalar > const & v) const
      +
      +inline
      +
      + +

      same as dot(v)

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Vector3D& meow::Vector3D< Scalar >::muled (Scalar const & s)
      +
      +inline
      +
      + +

      Let itself mulitple s.

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      Vector3D meow::Vector3D< Scalar >::negative () const
      +
      +inline
      +
      + +

      return -(*this)

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      Vector3D meow::Vector3D< Scalar >::normalize () const
      +
      +inline
      +
      + +

      return normalize form of itself

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      Vector3D& meow::Vector3D< Scalar >::normalized ()
      +
      +inline
      +
      + +

      normalize itself

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Scalar const& meow::Vector3D< Scalar >::operator() (size_t n) const
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      Vector3D& meow::Vector3D< Scalar >::operator() (Scalar const & sx,
      Scalar const & sy,
      Scalar const & sz 
      )
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Vector3D meow::Vector3D< Scalar >::operator* (Scalar const & s) const
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Scalar meow::Vector3D< Scalar >::operator* (Vector3D< Scalar > const & v) const
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Vector3D& meow::Vector3D< Scalar >::operator*= (Scalar const & s)
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      Vector3D meow::Vector3D< Scalar >::operator+ () const
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Vector3D meow::Vector3D< Scalar >::operator+ (Vector3D< Scalar > const & v) const
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Vector3D& meow::Vector3D< Scalar >::operator+= (Vector3D< Scalar > const & v)
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      Vector3D meow::Vector3D< Scalar >::operator- () const
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Vector3D meow::Vector3D< Scalar >::operator- (Vector3D< Scalar > const & v) const
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Vector3D& meow::Vector3D< Scalar >::operator-= (Vector3D< Scalar > const & v)
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Vector3D meow::Vector3D< Scalar >::operator/ (Scalar const & s) const
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Vector3D& meow::Vector3D< Scalar >::operator/= (Scalar const & s)
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Vector3D& meow::Vector3D< Scalar >::operator= (Vector3D< Scalar > const & v)
      +
      +inline
      +
      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      Vector3D meow::Vector3D< Scalar >::positive () const
      +
      +inline
      +
      + +

      return +(*this)

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Vector3D meow::Vector3D< Scalar >::reflect (Vector3D< Scalar > const & v) const
      +
      +inline
      +
      + +

      return reflect from given vector v

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Vector3D& meow::Vector3D< Scalar >::reflected (Vector3D< Scalar > const & v)
      +
      +inline
      +
      + +

      reflect itself given vector v

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      Vector3D meow::Vector3D< Scalar >::rotate (Vector3D< Scalar > const & axis,
      double theta 
      ) const
      +
      +inline
      +
      + +

      return rotate theta degree by axis of itself

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      Vector3D& meow::Vector3D< Scalar >::rotated (Vector3D< Scalar > const & axis,
      double theta 
      )
      +
      +inline
      +
      + +

      Let itself rotate theta degree.

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Vector3D meow::Vector3D< Scalar >::sub (Vector3D< Scalar > const & v) const
      +
      +inline
      +
      + +

      return (*this)-v

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Vector3D& meow::Vector3D< Scalar >::subed (Vector3D< Scalar > const & v)
      +
      +inline
      +
      + +

      Let itself substract v.

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      Scalar const& meow::Vector3D< Scalar >::x () const
      +
      +inline
      +
      + +

      access x

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Scalar const& meow::Vector3D< Scalar >::x (Scalar const & s)
      +
      +inline
      +
      + +

      modify x

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      Scalar& meow::Vector3D< Scalar >::xGet ()
      +
      +inline
      +
      + +

      access x with non constant reference

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      Vector3D& meow::Vector3D< Scalar >::xyz (Scalar const & sx,
      Scalar const & sy,
      Scalar const & sz 
      )
      +
      +inline
      +
      + +

      modify x and y

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      Scalar const& meow::Vector3D< Scalar >::y () const
      +
      +inline
      +
      + +

      access y

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Scalar const& meow::Vector3D< Scalar >::y (Scalar const & s)
      +
      +inline
      +
      + +

      modify y

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      Scalar& meow::Vector3D< Scalar >::yGet ()
      +
      +inline
      +
      + +

      access y with non constant reference

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      Scalar const& meow::Vector3D< Scalar >::z () const
      +
      +inline
      +
      + +

      access z

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + + +
      Scalar const& meow::Vector3D< Scalar >::z (Scalar const & s)
      +
      +inline
      +
      + +

      modify z

      + +
      +
      + +
      +
      +
      +template<class Scalar>
      + + + + + +
      + + + + + + + +
      Scalar& meow::Vector3D< Scalar >::zGet ()
      +
      +inline
      +
      + +

      access z with non constant reference

      + +
      +
      +
      The documentation for this class was generated from the following file: +
      +
      + + + + + diff --git a/doc/html/classmeow_1_1Vector3D.js b/doc/html/classmeow_1_1Vector3D.js new file mode 100644 index 0000000..60cf1b9 --- /dev/null +++ b/doc/html/classmeow_1_1Vector3D.js @@ -0,0 +1,59 @@ +var classmeow_1_1Vector3D = +[ + [ "Vector3D", "classmeow_1_1Vector3D.html#a62bd29ce86c81075ef240eb0d0fc0d97", null ], + [ "Vector3D", "classmeow_1_1Vector3D.html#a6c1f0e4d1d28cbb32fa4cc5e4d7bf390", null ], + [ "Vector3D", "classmeow_1_1Vector3D.html#a8f670a62f3f3ff3a6d7f7326e9d4bfd8", null ], + [ "Vector3D", "classmeow_1_1Vector3D.html#a0244832892d238c66945cbb39e2a5d6c", null ], + [ "Vector3D", "classmeow_1_1Vector3D.html#afae72511a31b5260ee93130d0654093f", null ], + [ "Vector3D", "classmeow_1_1Vector3D.html#a360cc4bdfaca40a1b9e80590dd13e523", null ], + [ "~Vector3D", "classmeow_1_1Vector3D.html#a76e749898519070a7918a9cf382d87d7", null ], + [ "add", "classmeow_1_1Vector3D.html#a1b950da187dd750e25b31f3f267234b5", null ], + [ "added", "classmeow_1_1Vector3D.html#aa26ba31625ebeeb07c41925335c1afcc", null ], + [ "copyFrom", "classmeow_1_1Vector3D.html#ab266a5252dd1243b726584724f8f843d", null ], + [ "cross", "classmeow_1_1Vector3D.html#afc6474b0219c6135f9e268404edc93e0", null ], + [ "crossed", "classmeow_1_1Vector3D.html#a2ec32fffb7a0355d46c52826f85aa506", null ], + [ "div", "classmeow_1_1Vector3D.html#a9449f90146085ac5901eb0c75b316b87", null ], + [ "dived", "classmeow_1_1Vector3D.html#a7d6973544b3b3c4bd34055c34d3da73b", null ], + [ "dot", "classmeow_1_1Vector3D.html#aa8204ccaf2a6a0459f58f92defee3396", null ], + [ "length", "classmeow_1_1Vector3D.html#ae5d23addf232794f4635bdf6221ef7ec", null ], + [ "length2", "classmeow_1_1Vector3D.html#ab378a6b96d9e5d9a75f21ee3bf107bde", null ], + [ "matrix", "classmeow_1_1Vector3D.html#ae03fb93d06c60fd2901875ead10c8c72", null ], + [ "matrix", "classmeow_1_1Vector3D.html#acb2fc741a0bd039b38b1ae5cec103265", null ], + [ "mul", "classmeow_1_1Vector3D.html#a22717807229c6243b5d0fd4d370b578a", null ], + [ "mul", "classmeow_1_1Vector3D.html#a04201f13c26a2f6abc9b1c7b0ff313cc", null ], + [ "muled", "classmeow_1_1Vector3D.html#a840c9c1ab9734c0687241cc6636fe915", null ], + [ "negative", "classmeow_1_1Vector3D.html#ab71feb692f3ce13de6815fa1b2b21be8", null ], + [ "normalize", "classmeow_1_1Vector3D.html#aa9f6d3c5f4e5dd0952633822451d98b8", null ], + [ "normalized", "classmeow_1_1Vector3D.html#af4f99f5a4871892e3975e41c8137f69c", null ], + [ "operator()", "classmeow_1_1Vector3D.html#aebeef94d26c97cf43566070ce5501baf", null ], + [ "operator()", "classmeow_1_1Vector3D.html#ac49ceadb4ac36acaa0031160a1e1b099", null ], + [ "operator*", "classmeow_1_1Vector3D.html#a7e274b5303baca7caec05d34a4e72ccc", null ], + [ "operator*", "classmeow_1_1Vector3D.html#ab868dfd428a801abe173085826a40c97", null ], + [ "operator*=", "classmeow_1_1Vector3D.html#a80e9a667ae9d0d1015123d8477cfeee6", null ], + [ "operator+", "classmeow_1_1Vector3D.html#abd020d6c071c7c3d374c52d738b471fc", null ], + [ "operator+", "classmeow_1_1Vector3D.html#ac84bb8858275f0c7c780fce3b9f3d0fb", null ], + [ "operator+=", "classmeow_1_1Vector3D.html#ad8effb8709fe565734bc1c8f94dc0ef1", null ], + [ "operator-", "classmeow_1_1Vector3D.html#a967c15ddac7c8e949e8361c3339492c8", null ], + [ "operator-", "classmeow_1_1Vector3D.html#a7fa501db101297b8536801bca68fa0c9", null ], + [ "operator-=", "classmeow_1_1Vector3D.html#a238bd646690e1ac1660726e007b05d92", null ], + [ "operator/", "classmeow_1_1Vector3D.html#ab19d15aa3ecbe2f2b87ce077a0bd7a46", null ], + [ "operator/=", "classmeow_1_1Vector3D.html#a882b59cc16aaaa5b136dc60d1d6eecbd", null ], + [ "operator=", "classmeow_1_1Vector3D.html#a336dbab9f61ee8196ce4c577a169a927", null ], + [ "positive", "classmeow_1_1Vector3D.html#a8fc395992d84b816307f72026d1e7125", null ], + [ "reflect", "classmeow_1_1Vector3D.html#a47b8cbd8a6738bbdbe713aa342a1d53f", null ], + [ "reflected", "classmeow_1_1Vector3D.html#af4f968f581bfbcf57afcd1bbf1d3bee2", null ], + [ "rotate", "classmeow_1_1Vector3D.html#aa733fcc0936ef22613df75f9dabd853b", null ], + [ "rotated", "classmeow_1_1Vector3D.html#a27a06ec4ab5e4f6d3d59eeffa5a31617", null ], + [ "sub", "classmeow_1_1Vector3D.html#ab509fd9ef3b79fb13cc04cfec798dcc2", null ], + [ "subed", "classmeow_1_1Vector3D.html#a65995d7ae4ba5652e162be215a5ec1ea", null ], + [ "x", "classmeow_1_1Vector3D.html#a647a1a8b562c05d615328559f557257e", null ], + [ "x", "classmeow_1_1Vector3D.html#ae7254b17c13defe2123565c17c9856a7", null ], + [ "xGet", "classmeow_1_1Vector3D.html#a001a44809826f9cd17dbd652c790c455", null ], + [ "xyz", "classmeow_1_1Vector3D.html#a4d95f04693bc608375a5dffb3f8d6514", null ], + [ "y", "classmeow_1_1Vector3D.html#a128085dc3d052f9479f3486fc3882caf", null ], + [ "y", "classmeow_1_1Vector3D.html#ab520fe8f88aa2df1af1bfb91bac28fb2", null ], + [ "yGet", "classmeow_1_1Vector3D.html#ab3603b9ca292877febc1aec42b29b0ae", null ], + [ "z", "classmeow_1_1Vector3D.html#a2d3855af7fd18b94faa89cceffa3d950", null ], + [ "z", "classmeow_1_1Vector3D.html#aaa3b1182e639a91df5d58d6e5223ad39", null ], + [ "zGet", "classmeow_1_1Vector3D.html#a49b26941a2b323519ee22fbabdd0ce24", null ] +]; \ No newline at end of file diff --git a/doc/html/classmeow_1_1ViewPort-members.html b/doc/html/classmeow_1_1ViewPort-members.html new file mode 100644 index 0000000..fa8489a --- /dev/null +++ b/doc/html/classmeow_1_1ViewPort-members.html @@ -0,0 +1,86 @@ + + + + + + + +Templates -- Meow: Member List + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      meow::ViewPort Member List
      +
      +
      + +

      This is the complete list of members for meow::ViewPort, including all inherited members.

      + + + + + + + + + + + +
      copyFrom(ObjBase const *b)meow::ObjBaseinlinevirtual
      create() const meow::ObjBaseinlinevirtual
      ctype() const meow::ObjBaseinlinevirtual
      ctypeBase()meow::ObjBaseinlinestatic
      ObjBase()meow::ObjBaseinlineprotected
      read(FILE *f, bool bin, unsigned int fg)meow::ObjBaseinlinevirtual
      type() const meow::ObjBaseinlinevirtual
      typeBase()meow::ObjBaseinlinestatic
      write(FILE *f, bool bin, unsigned int fg) const meow::ObjBaseinlinevirtual
      ~ObjBase()meow::ObjBaseinlinevirtual
      +
      + + + + + diff --git a/doc/html/classmeow_1_1ViewPort.html b/doc/html/classmeow_1_1ViewPort.html new file mode 100644 index 0000000..f2adc45 --- /dev/null +++ b/doc/html/classmeow_1_1ViewPort.html @@ -0,0 +1,122 @@ + + + + + + + +Templates -- Meow: meow::ViewPort Class Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      meow::ViewPort Class Reference
      +
      +
      + +

      未完待續 + More...

      + +

      #include "ViewPort.h"

      +
      +Inheritance diagram for meow::ViewPort:
      +
      +
      + + +meow::ObjBase + +
      + + + + + + + + + + + + + + + + + + + + + + + + + +

      +Additional Inherited Members

      - Public Member Functions inherited from meow::ObjBase
      virtual ~ObjBase ()
       
      virtual bool write (FILE *f, bool bin, unsigned int fg) const
       
      virtual bool read (FILE *f, bool bin, unsigned int fg)
       
      virtual ObjBasecreate () const
       
      virtual ObjBasecopyFrom (ObjBase const *b)
       
      virtual char const * ctype () const
       
      virtual std::string type () const
       
      - Static Public Member Functions inherited from meow::ObjBase
      static char const * ctypeBase ()
       
      static std::string typeBase ()
       
      - Protected Member Functions inherited from meow::ObjBase
       ObjBase ()
       
      +

      Detailed Description

      +

      未完待續

      +

      The documentation for this class was generated from the following file: +
      +
      + + + + + diff --git a/doc/html/classmeow_1_1ViewPort.png b/doc/html/classmeow_1_1ViewPort.png new file mode 100644 index 0000000..2221b73 Binary files /dev/null and b/doc/html/classmeow_1_1ViewPort.png differ diff --git a/doc/html/classmeow_1_1WatchBall-members.html b/doc/html/classmeow_1_1WatchBall-members.html new file mode 100644 index 0000000..45010b9 --- /dev/null +++ b/doc/html/classmeow_1_1WatchBall-members.html @@ -0,0 +1,105 @@ + + + + + + + +Templates -- Meow: Member List + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      meow::WatchBall< Pixel > Member List
      +
      +
      + +

      This is the complete list of members for meow::WatchBall< Pixel >, including all inherited members.

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      camera(size_t i) const meow::WatchBall< Pixel >inline
      camera(size_t i)meow::WatchBall< Pixel >inline
      camera(size_t i, Camera< Pixel > const &c)meow::WatchBall< Pixel >inline
      Cameras typedefmeow::WatchBall< Pixel >
      cameras() const meow::WatchBall< Pixel >inline
      cameras(Cameras const &c)meow::WatchBall< Pixel >inline
      camerasGet()meow::WatchBall< Pixel >inline
      cameraSize() const meow::WatchBall< Pixel >inline
      color(Vector3D< double > p) const meow::WatchBall< Pixel >inline
      copyFrom(WatchBall const &b)meow::WatchBall< Pixel >inline
      copyFrom(ObjBase const *b)meow::WatchBall< Pixel >inlinevirtual
      create() const meow::WatchBall< Pixel >inlinevirtual
      ctype() const meow::WatchBall< Pixel >inlinevirtual
      ctypeBase()meow::ObjBaseinlinestatic
      expand(double radius) const meow::WatchBall< Pixel >inline
      ObjBase()meow::ObjBaseinlineprotected
      offset() const meow::WatchBall< Pixel >inline
      offset()meow::WatchBall< Pixel >inline
      offset(Vector3D< double > const &ofs)meow::WatchBall< Pixel >inline
      operator=(WatchBall const &b)meow::WatchBall< Pixel >inline
      read(FILE *f, bool bin, unsigned int fg)meow::WatchBall< Pixel >inlinevirtual
      referenceFrom(WatchBall const &b)meow::WatchBall< Pixel >inline
      type() const meow::WatchBall< Pixel >inlinevirtual
      typeBase()meow::ObjBaseinlinestatic
      WatchBall()meow::WatchBall< Pixel >inline
      WatchBall(WatchBall const &b)meow::WatchBall< Pixel >inline
      write(FILE *f, bool bin, unsigned int fg) const meow::WatchBall< Pixel >inlinevirtual
      ~ObjBase()meow::ObjBaseinlinevirtual
      ~WatchBall()meow::WatchBall< Pixel >inline
      +
      + + + + + diff --git a/doc/html/classmeow_1_1WatchBall.html b/doc/html/classmeow_1_1WatchBall.html new file mode 100644 index 0000000..0446fd8 --- /dev/null +++ b/doc/html/classmeow_1_1WatchBall.html @@ -0,0 +1,950 @@ + + + + + + + +Templates -- Meow: meow::WatchBall< Pixel > Class Template Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      meow::WatchBall< Pixel > Class Template Reference
      +
      +
      + +

      多個camera, 一個offset, 一個rotation + More...

      + +

      #include "WatchBall.h"

      +
      +Inheritance diagram for meow::WatchBall< Pixel >:
      +
      +
      + + +meow::ObjBase + +
      + + + + +

      +Public Types

      typedef std::vector< Camera
      +< Pixel > > 
      Cameras
       
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      +Public Member Functions

       WatchBall ()
       constructor More...
       
       WatchBall (WatchBall const &b)
       copy constructor More...
       
       ~WatchBall ()
       destructor More...
       
      WatchBallcopyFrom (WatchBall const &b)
       copy data More...
       
      WatchBallreferenceFrom (WatchBall const &b)
       reference More...
       
      size_t cameraSize () const
       取得有幾個camera More...
       
      Cameras const & cameras () const
       取得 cameras More...
       
      CamerascamerasGet ()
       取得 cameras (non-constant) More...
       
      Cameras const & cameras (Cameras const &c)
       設定 camera More...
       
      Camera< Pixel > const & camera (size_t i) const
       取得第i個camera More...
       
      Camera< Pixel > & camera (size_t i)
       取得第i個camera (non-constant reference) More...
       
      Camera< Pixel > const & camera (size_t i, Camera< Pixel > const &c)
       設定第i個camera More...
       
      Vector3D< double > const & offset () const
       取得offset More...
       
      Vector3D< double > & offset ()
       取得offset (non-constant reference) More...
       
      Vector3D< double > const & offset (Vector3D< double > const &ofs)
       設定offset More...
       
      Pixel color (Vector3D< double > p) const
       取得底片color More...
       
      Bitmap< Pixel > expand (double radius) const
       輸出展開圖 More...
       
      WatchBalloperator= (WatchBall const &b)
       same as copyFrom(b) More...
       
      bool write (FILE *f, bool bin, unsigned int fg) const
       將資料寫入檔案 More...
       
      bool read (FILE *f, bool bin, unsigned int fg)
       將資料讀入 More...
       
      ObjBasecreate () const
       new一個自己 More...
       
      ObjBasecopyFrom (ObjBase const *b)
       複製資料 More...
       
      char const * ctype () const
       回傳class的type More...
       
      std::string type () const
       回傳class的type More...
       
      - Public Member Functions inherited from meow::ObjBase
      virtual ~ObjBase ()
       
      + + + + + + + + + +

      +Additional Inherited Members

      - Static Public Member Functions inherited from meow::ObjBase
      static char const * ctypeBase ()
       
      static std::string typeBase ()
       
      - Protected Member Functions inherited from meow::ObjBase
       ObjBase ()
       
      +

      Detailed Description

      +

      template<class Pixel>
      +class meow::WatchBall< Pixel >

      + +

      多個camera, 一個offset, 一個rotation

      +
      Author
      cat_leopard
      +

      Member Typedef Documentation

      + +
      +
      +
      +template<class Pixel >
      + + + + +
      typedef std::vector<Camera<Pixel> > meow::WatchBall< Pixel >::Cameras
      +
      + +
      +
      +

      Constructor & Destructor Documentation

      + +
      +
      +
      +template<class Pixel >
      + + + + + +
      + + + + + + + +
      meow::WatchBall< Pixel >::WatchBall ()
      +
      +inline
      +
      + +

      constructor

      + +
      +
      + +
      +
      +
      +template<class Pixel >
      + + + + + +
      + + + + + + + + +
      meow::WatchBall< Pixel >::WatchBall (WatchBall< Pixel > const & b)
      +
      +inline
      +
      + +

      copy constructor

      + +
      +
      + +
      +
      +
      +template<class Pixel >
      + + + + + +
      + + + + + + + +
      meow::WatchBall< Pixel >::~WatchBall ()
      +
      +inline
      +
      + +

      destructor

      + +
      +
      +

      Member Function Documentation

      + +
      +
      +
      +template<class Pixel >
      + + + + + +
      + + + + + + + + +
      Camera<Pixel> const& meow::WatchBall< Pixel >::camera (size_t i) const
      +
      +inline
      +
      + +

      取得第i個camera

      + +
      +
      + +
      +
      +
      +template<class Pixel >
      + + + + + +
      + + + + + + + + +
      Camera<Pixel>& meow::WatchBall< Pixel >::camera (size_t i)
      +
      +inline
      +
      + +

      取得第i個camera (non-constant reference)

      + +
      +
      + +
      +
      +
      +template<class Pixel >
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      Camera<Pixel> const& meow::WatchBall< Pixel >::camera (size_t i,
      Camera< Pixel > const & c 
      )
      +
      +inline
      +
      + +

      設定第i個camera

      + +
      +
      + +
      +
      +
      +template<class Pixel >
      + + + + + +
      + + + + + + + +
      Cameras const& meow::WatchBall< Pixel >::cameras () const
      +
      +inline
      +
      + +

      取得 cameras

      + +
      +
      + +
      +
      +
      +template<class Pixel >
      + + + + + +
      + + + + + + + + +
      Cameras const& meow::WatchBall< Pixel >::cameras (Cameras const & c)
      +
      +inline
      +
      + +

      設定 camera

      + +
      +
      + +
      +
      +
      +template<class Pixel >
      + + + + + +
      + + + + + + + +
      Cameras& meow::WatchBall< Pixel >::camerasGet ()
      +
      +inline
      +
      + +

      取得 cameras (non-constant)

      + +
      +
      + +
      +
      +
      +template<class Pixel >
      + + + + + +
      + + + + + + + +
      size_t meow::WatchBall< Pixel >::cameraSize () const
      +
      +inline
      +
      + +

      取得有幾個camera

      + +
      +
      + +
      +
      +
      +template<class Pixel >
      + + + + + +
      + + + + + + + + +
      Pixel meow::WatchBall< Pixel >::color (Vector3D< doublep) const
      +
      +inline
      +
      + +

      取得底片color

      + +
      +
      + +
      +
      +
      +template<class Pixel >
      + + + + + +
      + + + + + + + + +
      WatchBall& meow::WatchBall< Pixel >::copyFrom (WatchBall< Pixel > const & b)
      +
      +inline
      +
      + +

      copy data

      + +
      +
      + +
      +
      +
      +template<class Pixel >
      + + + + + +
      + + + + + + + + +
      ObjBase* meow::WatchBall< Pixel >::copyFrom (ObjBase const * b)
      +
      +inlinevirtual
      +
      + +

      複製資料

      +

      輸入型別是 ObjBase const* 事實上這個method就只是幫忙轉型然後呼叫原本的copyFrom

      +
      Parameters
      + + +
      [in]b資料來源
      +
      +
      +
      Returns
      this
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<class Pixel >
      + + + + + +
      + + + + + + + +
      ObjBase* meow::WatchBall< Pixel >::create () const
      +
      +inlinevirtual
      +
      + +

      new一個自己

      +
      Returns
      一個new出來的pointer
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<class Pixel >
      + + + + + +
      + + + + + + + +
      char const* meow::WatchBall< Pixel >::ctype () const
      +
      +inlinevirtual
      +
      + +

      回傳class的type

      +
      Returns
      char const* 形式的typename
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<class Pixel >
      + + + + + +
      + + + + + + + + +
      Bitmap<Pixel> meow::WatchBall< Pixel >::expand (double radius) const
      +
      +inline
      +
      + +

      輸出展開圖

      +
      Parameters
      + + +
      [in]radius半徑
      +
      +
      + +
      +
      + +
      +
      +
      +template<class Pixel >
      + + + + + +
      + + + + + + + +
      Vector3D<double> const& meow::WatchBall< Pixel >::offset () const
      +
      +inline
      +
      + +

      取得offset

      + +
      +
      + +
      +
      +
      +template<class Pixel >
      + + + + + +
      + + + + + + + +
      Vector3D<double>& meow::WatchBall< Pixel >::offset ()
      +
      +inline
      +
      + +

      取得offset (non-constant reference)

      + +
      +
      + +
      +
      +
      +template<class Pixel >
      + + + + + +
      + + + + + + + + +
      Vector3D<double> const& meow::WatchBall< Pixel >::offset (Vector3D< double > const & ofs)
      +
      +inline
      +
      + +

      設定offset

      + +
      +
      + +
      +
      +
      +template<class Pixel >
      + + + + + +
      + + + + + + + + +
      WatchBall& meow::WatchBall< Pixel >::operator= (WatchBall< Pixel > const & b)
      +
      +inline
      +
      + +

      same as copyFrom(b)

      + +
      +
      + +
      +
      +
      +template<class Pixel >
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      bool meow::WatchBall< Pixel >::read (FILE * f,
      bool bin,
      unsigned int fg 
      )
      +
      +inlinevirtual
      +
      + +

      將資料讀入

      +
      Note
      未完成
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<class Pixel >
      + + + + + +
      + + + + + + + + +
      WatchBall& meow::WatchBall< Pixel >::referenceFrom (WatchBall< Pixel > const & b)
      +
      +inline
      +
      + +

      reference

      + +
      +
      + +
      +
      +
      +template<class Pixel >
      + + + + + +
      + + + + + + + +
      std::string meow::WatchBall< Pixel >::type () const
      +
      +inlinevirtual
      +
      + +

      回傳class的type

      +
      Returns
      std::string 形式的typename
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      + +
      +
      +
      +template<class Pixel >
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      bool meow::WatchBall< Pixel >::write (FILE * f,
      bool bin,
      unsigned int fg 
      ) const
      +
      +inlinevirtual
      +
      + +

      將資料寫入檔案

      +
      Note
      未完成
      + +

      Reimplemented from meow::ObjBase.

      + +
      +
      +
      The documentation for this class was generated from the following file: +
      +
      + + + + + diff --git a/doc/html/classmeow_1_1WatchBall.js b/doc/html/classmeow_1_1WatchBall.js new file mode 100644 index 0000000..42f60fb --- /dev/null +++ b/doc/html/classmeow_1_1WatchBall.js @@ -0,0 +1,28 @@ +var classmeow_1_1WatchBall = +[ + [ "Cameras", "classmeow_1_1WatchBall.html#a1626a844f77feebc5f0f71bcd71bf20c", null ], + [ "WatchBall", "classmeow_1_1WatchBall.html#ab0072695aa7766d1d77f2f71424fcb40", null ], + [ "WatchBall", "classmeow_1_1WatchBall.html#a798e37186c20a9b134b2137a2d4f7b26", null ], + [ "~WatchBall", "classmeow_1_1WatchBall.html#a255ccc4db07762e2f8f3443429aa017c", null ], + [ "camera", "classmeow_1_1WatchBall.html#ae80be9aa3e4e4e3a1577c8fecf05c22b", null ], + [ "camera", "classmeow_1_1WatchBall.html#afa8f3bf18dcd5295802777c1d9a25d71", null ], + [ "camera", "classmeow_1_1WatchBall.html#ad2a10fde68b850a32193c20804708bc6", null ], + [ "cameras", "classmeow_1_1WatchBall.html#a1a8810f599cd9cf5929c8b95b52abf98", null ], + [ "cameras", "classmeow_1_1WatchBall.html#a6dc606fde781e28da367e4d5ef023341", null ], + [ "camerasGet", "classmeow_1_1WatchBall.html#a1e1c147b92eb097472f957b5fc44346f", null ], + [ "cameraSize", "classmeow_1_1WatchBall.html#aa511d4d3fe3742e03dfad5f889a3628f", null ], + [ "color", "classmeow_1_1WatchBall.html#aea73c7ddb1fb42a257406735ea687d4d", null ], + [ "copyFrom", "classmeow_1_1WatchBall.html#abf464a7507044d2bca58ce6b686c5a73", null ], + [ "copyFrom", "classmeow_1_1WatchBall.html#a898f8ad46598a01633f444804853a3bd", null ], + [ "create", "classmeow_1_1WatchBall.html#ae2c8bc97ac7d09b886fe59a8f88c2145", null ], + [ "ctype", "classmeow_1_1WatchBall.html#afcba8229502523255913392c592eabce", null ], + [ "expand", "classmeow_1_1WatchBall.html#a00fcbbce6d9e4748a9b093983e591c19", null ], + [ "offset", "classmeow_1_1WatchBall.html#af8a5cf5d7093da13578aee6f802c8cee", null ], + [ "offset", "classmeow_1_1WatchBall.html#a07068805c2c31cce87eea8771611a711", null ], + [ "offset", "classmeow_1_1WatchBall.html#aeaedc62a9647b572e0606446e741152f", null ], + [ "operator=", "classmeow_1_1WatchBall.html#a69948640465200ca8fadc364aad98b23", null ], + [ "read", "classmeow_1_1WatchBall.html#a18cac43a61f741c191148bfef76e3d85", null ], + [ "referenceFrom", "classmeow_1_1WatchBall.html#a1480323a56f6f53799e56f4855d95b07", null ], + [ "type", "classmeow_1_1WatchBall.html#ab8478f0460b456da11863ab9e7542bd1", null ], + [ "write", "classmeow_1_1WatchBall.html#a33cb0d690e6da55580f1747c7fb72e7a", null ] +]; \ No newline at end of file diff --git a/doc/html/classmeow_1_1WatchBall.png b/doc/html/classmeow_1_1WatchBall.png new file mode 100644 index 0000000..efa7c38 Binary files /dev/null and b/doc/html/classmeow_1_1WatchBall.png differ diff --git a/doc/html/classmeow_1_1YUVf__Space-members.html b/doc/html/classmeow_1_1YUVf__Space-members.html new file mode 100644 index 0000000..2490375 --- /dev/null +++ b/doc/html/classmeow_1_1YUVf__Space-members.html @@ -0,0 +1,126 @@ + + + + + + + +Templates -- Meow: Member List + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      meow::YUVf_Space Member List
      +
      +
      + +

      This is the complete list of members for meow::YUVf_Space, including all inherited members.

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Color3_Space(Vector3D< double > const &min_bound, Vector3D< double > const &max_bound, Vector3D< double > const &init_value)meow::Color3_Space< double >inlineprotected
      Color3_Space(Color3_Space const &b)meow::Color3_Space< double >inlineprotected
      copyFrom(Color3_Space< double > const &b)meow::Color3_Space< double >inline
      copyFrom(Color3_Space< T2 > const &b)meow::Color3_Space< double >inline
      matrix() constmeow::Color3_Space< double >inline
      max(size_t id) constmeow::Color3_Space< double >inline
      max_meow::Color3_Space< double >protected
      maxV() constmeow::Color3_Space< double >inline
      min(size_t id) constmeow::Color3_Space< double >inline
      min_meow::Color3_Space< double >protected
      minV() constmeow::Color3_Space< double >inline
      operator*(double const &c) const meow::YUVf_Spaceinline
      operator*(YUVf_Space const &b) const meow::YUVf_Spaceinline
      operator+(YUVf_Space const &b) const meow::YUVf_Spaceinline
      operator-(YUVf_Space const &b) const meow::YUVf_Spaceinline
      operator/(double const &c) const meow::YUVf_Spaceinline
      operator=(YUVf_Space const &b)meow::YUVf_Spaceinline
      u() const meow::YUVf_Spaceinline
      u(double c)meow::YUVf_Spaceinline
      uGet()meow::YUVf_Spaceinline
      uMax() const meow::YUVf_Spaceinline
      uMin() const meow::YUVf_Spaceinline
      v() const meow::YUVf_Spaceinline
      v(double c)meow::YUVf_Spaceinline
      val(size_t id) constmeow::Color3_Space< double >inline
      val(size_t i, doubleconst &c)meow::Color3_Space< double >inline
      val_meow::Color3_Space< double >protected
      valGet(size_t id)meow::Color3_Space< double >inline
      valV() constmeow::Color3_Space< double >inline
      valV(Vector3D< double > const &vv)meow::Color3_Space< double >inline
      valVGet()meow::Color3_Space< double >inline
      vGet()meow::YUVf_Spaceinline
      vMax() const meow::YUVf_Spaceinline
      vMin() const meow::YUVf_Spaceinline
      y() const meow::YUVf_Spaceinline
      y(double c)meow::YUVf_Spaceinline
      yGet()meow::YUVf_Spaceinline
      yMax() const meow::YUVf_Spaceinline
      yMin() const meow::YUVf_Spaceinline
      yuv(size_t i) const meow::YUVf_Spaceinline
      yuv(size_t i, double c)meow::YUVf_Spaceinline
      YUVf_Space()meow::YUVf_Spaceinline
      YUVf_Space(double c)meow::YUVf_Spaceinline
      YUVf_Space(Vector3D< double > const &v)meow::YUVf_Spaceinline
      YUVf_Space(YUV_Space const &b)meow::YUVf_Spaceinline
      yuvGet(size_t i)meow::YUVf_Spaceinline
      yuvMax(size_t i) const meow::YUVf_Spaceinline
      yuvMin(size_t i) const meow::YUVf_Spaceinline
      ~Color3_Space()meow::Color3_Space< double >inlinevirtual
      ~YUVf_Space()meow::YUVf_Spaceinline
      +
      + + + + + diff --git a/doc/html/classmeow_1_1YUVf__Space.html b/doc/html/classmeow_1_1YUVf__Space.html new file mode 100644 index 0000000..642d3fe --- /dev/null +++ b/doc/html/classmeow_1_1YUVf__Space.html @@ -0,0 +1,950 @@ + + + + + + + +Templates -- Meow: meow::YUVf_Space Class Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      meow::YUVf_Space Class Reference
      +
      +
      + +

      以浮點數Y(亮度), U(色度), V(濃度) 三個值所組成的色彩空間 + More...

      + +

      #include "YUV_Space.h"

      +
      +Inheritance diagram for meow::YUVf_Space:
      +
      +
      + + +meow::Color3_Space< double > + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      +Public Member Functions

       YUVf_Space ()
       
       YUVf_Space (double c)
       
       YUVf_Space (Vector3D< double > const &v)
       
       YUVf_Space (YUV_Space const &b)
       
       ~YUVf_Space ()
       
      double const & yuvMin (size_t i) const
       
      double const & yMin () const
       
      double const & uMin () const
       
      double const & vMin () const
       
      double const & yuvMax (size_t i) const
       
      double const & yMax () const
       
      double const & uMax () const
       
      double const & vMax () const
       
      double const & yuv (size_t i) const
       
      double const & y () const
       
      double const & u () const
       
      double const & v () const
       
      double const & yuv (size_t i, double c)
       
      double const & y (double c)
       
      double const & u (double c)
       
      double const & v (double c)
       
      doubleyuvGet (size_t i)
       
      doubleyGet ()
       
      doubleuGet ()
       
      doublevGet ()
       
      YUVf_Spaceoperator= (YUVf_Space const &b)
       
      YUVf_Space operator+ (YUVf_Space const &b) const
       
      YUVf_Space operator- (YUVf_Space const &b) const
       
      YUVf_Space operator* (double const &c) const
       
      YUVf_Space operator/ (double const &c) const
       
      double operator* (YUVf_Space const &b) const
       
      - Public Member Functions inherited from meow::Color3_Space< double >
      virtual ~Color3_Space ()
       
      Color3_Space< double > & copyFrom (Color3_Space< double > const &b)
       
      Color3_Space< double > & copyFrom (Color3_Space< T2 > const &b)
       
      Vector3D< double > const & minV () const
       
      Vector3D< double > const & maxV () const
       
      Vector3D< double > const & valV () const
       
      Vector3D< double > const & valV (Vector3D< double > const &vv)
       
      Vector3D< double > & valVGet ()
       
      doubleconst & min (size_t id) const
       
      doubleconst & max (size_t id) const
       
      doubleconst & val (size_t id) const
       
      doubleconst & val (size_t i, doubleconst &c)
       
      doublevalGet (size_t id)
       
      Matrix< doublematrix () const
       
      + + + + + + + + + + + + + +

      +Additional Inherited Members

      - Protected Member Functions inherited from meow::Color3_Space< double >
       Color3_Space (Vector3D< double > const &min_bound, Vector3D< double > const &max_bound, Vector3D< double > const &init_value)
       
       Color3_Space (Color3_Space const &b)
       
      - Protected Attributes inherited from meow::Color3_Space< double >
      Vector3D< doublemin_
       
      Vector3D< doublemax_
       
      Vector3D< doubleval_
       
      +

      Detailed Description

      +

      以浮點數Y(亮度), U(色度), V(濃度) 三個值所組成的色彩空間

      +

      其中範圍都介於0.0~1.0之間

      +
      Author
      cat_leopard
      +

      Constructor & Destructor Documentation

      + +
      +
      + + + + + +
      + + + + + + + +
      meow::YUVf_Space::YUVf_Space ()
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      meow::YUVf_Space::YUVf_Space (double c)
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      meow::YUVf_Space::YUVf_Space (Vector3D< double > const & v)
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      meow::YUVf_Space::YUVf_Space (YUV_Space const & b)
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      meow::YUVf_Space::~YUVf_Space ()
      +
      +inline
      +
      + +
      +
      +

      Member Function Documentation

      + +
      +
      + + + + + +
      + + + + + + + + +
      YUVf_Space meow::YUVf_Space::operator* (double const & c) const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      double meow::YUVf_Space::operator* (YUVf_Space const & b) const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      YUVf_Space meow::YUVf_Space::operator+ (YUVf_Space const & b) const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      YUVf_Space meow::YUVf_Space::operator- (YUVf_Space const & b) const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      YUVf_Space meow::YUVf_Space::operator/ (double const & c) const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      YUVf_Space& meow::YUVf_Space::operator= (YUVf_Space const & b)
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      double const& meow::YUVf_Space::u () const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      double const& meow::YUVf_Space::u (double c)
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      double& meow::YUVf_Space::uGet ()
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      double const& meow::YUVf_Space::uMax () const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      double const& meow::YUVf_Space::uMin () const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      double const& meow::YUVf_Space::v () const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      double const& meow::YUVf_Space::v (double c)
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      double& meow::YUVf_Space::vGet ()
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      double const& meow::YUVf_Space::vMax () const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      double const& meow::YUVf_Space::vMin () const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      double const& meow::YUVf_Space::y () const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      double const& meow::YUVf_Space::y (double c)
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      double& meow::YUVf_Space::yGet ()
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      double const& meow::YUVf_Space::yMax () const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + +
      double const& meow::YUVf_Space::yMin () const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      double const& meow::YUVf_Space::yuv (size_t i) const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      double const& meow::YUVf_Space::yuv (size_t i,
      double c 
      )
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      double& meow::YUVf_Space::yuvGet (size_t i)
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      double const& meow::YUVf_Space::yuvMax (size_t i) const
      +
      +inline
      +
      + +
      +
      + +
      +
      + + + + + +
      + + + + + + + + +
      double const& meow::YUVf_Space::yuvMin (size_t i) const
      +
      +inline
      +
      + +
      +
      +
      The documentation for this class was generated from the following file: +
      +
      + + + + + diff --git a/doc/html/classmeow_1_1YUVf__Space.js b/doc/html/classmeow_1_1YUVf__Space.js new file mode 100644 index 0000000..2a216fa --- /dev/null +++ b/doc/html/classmeow_1_1YUVf__Space.js @@ -0,0 +1,34 @@ +var classmeow_1_1YUVf__Space = +[ + [ "YUVf_Space", "classmeow_1_1YUVf__Space.html#a9b3807a627b89e9484eda3fa40120a24", null ], + [ "YUVf_Space", "classmeow_1_1YUVf__Space.html#a2e9ddbeaae07e35c4c2adb254d5e4ca0", null ], + [ "YUVf_Space", "classmeow_1_1YUVf__Space.html#a5694afcf7bf1962ea9e0abc7b8801358", null ], + [ "YUVf_Space", "classmeow_1_1YUVf__Space.html#a0b34feef9db731dbc7228c0bc3554415", null ], + [ "~YUVf_Space", "classmeow_1_1YUVf__Space.html#a4ffd3340f73d108e4641de0eab155262", null ], + [ "operator*", "classmeow_1_1YUVf__Space.html#ad4e4990fd6dbaaa3bdbb8c4706830588", null ], + [ "operator*", "classmeow_1_1YUVf__Space.html#a0a38aa9230be765cdb7e1fd5ace9315b", null ], + [ "operator+", "classmeow_1_1YUVf__Space.html#a06cf23bd6493ce0c1e69cca45b3b9f96", null ], + [ "operator-", "classmeow_1_1YUVf__Space.html#adf527a2801ec37a42edf1b1964007547", null ], + [ "operator/", "classmeow_1_1YUVf__Space.html#a056acc13f596f9d488eeb8540aa93a2d", null ], + [ "operator=", "classmeow_1_1YUVf__Space.html#acd8f8d7472bfa816669e601243c0c2df", null ], + [ "u", "classmeow_1_1YUVf__Space.html#ab7a1880a397a5fff594ac18c0d569bd6", null ], + [ "u", "classmeow_1_1YUVf__Space.html#afaf24781d6b28a9615c807dfc70e4f7b", null ], + [ "uGet", "classmeow_1_1YUVf__Space.html#ad377534486a9d1d1bea38d4c04ea0267", null ], + [ "uMax", "classmeow_1_1YUVf__Space.html#aaf9cb97273b96475641a372fbbe86949", null ], + [ "uMin", "classmeow_1_1YUVf__Space.html#ae799cfca7c0d3b4a817d33a6ebac5239", null ], + [ "v", "classmeow_1_1YUVf__Space.html#a25715d75897bd4ede9898edfc932ffd5", null ], + [ "v", "classmeow_1_1YUVf__Space.html#af2f8d6a8a4913de6ad17f2da86d949fa", null ], + [ "vGet", "classmeow_1_1YUVf__Space.html#a99e8bb42edb254ed1415f55ef1558ab0", null ], + [ "vMax", "classmeow_1_1YUVf__Space.html#a3b168dd8186710b014f2e1d1b5ee1c63", null ], + [ "vMin", "classmeow_1_1YUVf__Space.html#aba01d6b8d0d8840d0132ccd6b43d8c0c", null ], + [ "y", "classmeow_1_1YUVf__Space.html#ab09964887a8e6049fb9eaefd4fdd872c", null ], + [ "y", "classmeow_1_1YUVf__Space.html#a92f015c9545102445d1163c7eab67e79", null ], + [ "yGet", "classmeow_1_1YUVf__Space.html#a31c9176faad460be84a0255bc3173226", null ], + [ "yMax", "classmeow_1_1YUVf__Space.html#adf7029d33a94df084c4ec0142a35d323", null ], + [ "yMin", "classmeow_1_1YUVf__Space.html#adb397aff53a9c0ede746bd734a519dd6", null ], + [ "yuv", "classmeow_1_1YUVf__Space.html#a9f4740de51da44bb8397c90f24975c19", null ], + [ "yuv", "classmeow_1_1YUVf__Space.html#afc4e9f52a8e75753772d99a077e5b4ea", null ], + [ "yuvGet", "classmeow_1_1YUVf__Space.html#a47a65edcd356f3754f6aca45483cae06", null ], + [ "yuvMax", "classmeow_1_1YUVf__Space.html#afe90af43e91f5134419a2ca7624cff66", null ], + [ "yuvMin", "classmeow_1_1YUVf__Space.html#a99f55740ad5a8b57f4edf68a69e2b720", null ] +]; \ No newline at end of file diff --git a/doc/html/classmeow_1_1YUVf__Space.png b/doc/html/classmeow_1_1YUVf__Space.png new file mode 100644 index 0000000..55db708 Binary files /dev/null and b/doc/html/classmeow_1_1YUVf__Space.png differ diff --git a/doc/html/closed.png b/doc/html/closed.png new file mode 100644 index 0000000..53a2f93 Binary files /dev/null and b/doc/html/closed.png differ diff --git a/doc/html/custom.css b/doc/html/custom.css new file mode 100644 index 0000000..3d18656 --- /dev/null +++ b/doc/html/custom.css @@ -0,0 +1,143 @@ +/************************ nav-tree ************************/ +#nav-tree .children_ul { + margin:0; + padding:4px; +} + +#nav-tree ul { + list-style:none outside none; + margin:0px; + padding:0px; +} + +#nav-tree li { + white-space:nowrap; + margin:0px; + padding:0px; +} + +#nav-tree .plus { + margin:0px; +} + +#nav-tree .selected { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +} + +#nav-tree img { + margin:0px; + padding:0px; + border:0px; + vertical-align: middle; +} + +#nav-tree a { + text-decoration:none; + padding:0px; + margin:0px; + outline:none; +} + +#nav-tree .label { + margin:0px; + padding:0px; + font: 12px 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif,monospace; +} + +#nav-tree .label a { + padding:2px; +} + +#nav-tree .selected a { + text-decoration:none; + color:#fff; +} + +#nav-tree .children_ul { + margin:0px; + padding:0px; +} + +#nav-tree .item { + margin:0px; + padding:0px; +} + +#nav-tree { + padding: 0px 0px; + background-color: #2A2A2F; + font-size:14px; + overflow:auto; + background-image:url('nav_h.png'); + background-repeat:repeat-x; + -webkit-overflow-scrolling : touch; /* iOS 5+ */ +} + +#nav-tree-contents { + margin: 0px 0px 0px 0px; + padding: 6px 0px 0px 0px; + background-color: #15151B; +} + +#doc-content { + overflow:auto; + display:block; + padding:0px; + margin:0px; + -webkit-overflow-scrolling : touch; /* iOS 5+ */ +} + +#side-nav { + padding:0 6px 0 0; + margin: 0px; + display:block; + position: absolute; + left: 0px; + width: 275px; +} + +.ui-resizable .ui-resizable-handle { + display:block; +} + +.ui-resizable-e { + background:url("ftv2splitbar.png") repeat scroll right center transparent; + cursor:e-resize; + height:100%; + right:0; + top:0; + width:6px; +} + +.ui-resizable-handle { + display:none; + font-size:0.1px; + position:absolute; + z-index:1; +} + +#nav-sync { + position:absolute; + top:5px; + right:24px; + z-index:0; +} + +#nav-sync img { + opacity:0.3; +} + +#nav-sync img:hover { + opacity:0.9; +} + +@media print +{ + #nav-tree { display: none; } + div.ui-resizable-handle { display: none; position: relative; } +} + + diff --git a/doc/html/dir_115d3279a93b9c99d8f569a34543848f.html b/doc/html/dir_115d3279a93b9c99d8f569a34543848f.html new file mode 100644 index 0000000..a51ccfa --- /dev/null +++ b/doc/html/dir_115d3279a93b9c99d8f569a34543848f.html @@ -0,0 +1,100 @@ + + + + + + + +Templates -- Meow: meowpp/gra Directory Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      gra Directory Reference
      +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + +

      +Files

      file  Bitmap.h [code]
       
      file  Camera.h [code]
       
      file  FeaturePoint.h [code]
       
      file  FeaturePointsDetector.h [code]
       
      file  FeaturePointsDetector_Harris.h [code]
       
      file  FeaturePointsMatch.h [code]
       
      file  FeaturePointsMatch_K_Match.h [code]
       
      file  IdentityPoints.h [code]
       
      file  Photo.h [code]
       
      file  ViewPort.h [code]
       
      file  WatchBall.h [code]
       
      +
      +
      + + + + + diff --git a/doc/html/dir_115d3279a93b9c99d8f569a34543848f.js b/doc/html/dir_115d3279a93b9c99d8f569a34543848f.js new file mode 100644 index 0000000..d4aaa32 --- /dev/null +++ b/doc/html/dir_115d3279a93b9c99d8f569a34543848f.js @@ -0,0 +1,30 @@ +var dir_115d3279a93b9c99d8f569a34543848f = +[ + [ "Bitmap.h", "Bitmap_8h.html", [ + [ "Bitmap", "classmeow_1_1Bitmap.html", "classmeow_1_1Bitmap" ] + ] ], + [ "Camera.h", "Camera_8h.html", [ + [ "Camera", "classmeow_1_1Camera.html", "classmeow_1_1Camera" ] + ] ], + [ "FeaturePoint.h", "FeaturePoint_8h.html", [ + [ "FeaturePoint", "classmeow_1_1FeaturePoint.html", "classmeow_1_1FeaturePoint" ] + ] ], + [ "FeaturePointsDetector.h", "FeaturePointsDetector_8h.html", [ + [ "FeaturePointsDetector", "classmeow_1_1FeaturePointsDetector.html", "classmeow_1_1FeaturePointsDetector" ] + ] ], + [ "FeaturePointsDetector_Harris.h", "FeaturePointsDetector__Harris_8h.html", "FeaturePointsDetector__Harris_8h" ], + [ "FeaturePointsMatch.h", "FeaturePointsMatch_8h.html", "FeaturePointsMatch_8h" ], + [ "FeaturePointsMatch_K_Match.h", "FeaturePointsMatch__K__Match_8h.html", "FeaturePointsMatch__K__Match_8h" ], + [ "IdentityPoints.h", "IdentityPoints_8h.html", [ + [ "IdentityPoints", "classmeow_1_1IdentityPoints.html", "classmeow_1_1IdentityPoints" ] + ] ], + [ "Photo.h", "Photo_8h.html", [ + [ "Photo", "classmeow_1_1Photo.html", "classmeow_1_1Photo" ] + ] ], + [ "ViewPort.h", "ViewPort_8h.html", [ + [ "ViewPort", "classmeow_1_1ViewPort.html", null ] + ] ], + [ "WatchBall.h", "WatchBall_8h.html", [ + [ "WatchBall", "classmeow_1_1WatchBall.html", "classmeow_1_1WatchBall" ] + ] ] +]; \ No newline at end of file diff --git a/doc/html/dir_540a4c8f2977878a343351220ffba92b.html b/doc/html/dir_540a4c8f2977878a343351220ffba92b.html new file mode 100644 index 0000000..27e55e9 --- /dev/null +++ b/doc/html/dir_540a4c8f2977878a343351220ffba92b.html @@ -0,0 +1,90 @@ + + + + + + + +Templates -- Meow: meowpp/oo Directory Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      oo Directory Reference
      +
      +
      + + + + + + + + + + + + + + +

      +Files

      file  ObjArray.h [code]
       
      file  ObjBase.h [code]
       
      file  ObjDictionary.h [code]
       
      file  ObjProperties.h [code]
       
      file  ObjSelector.h [code]
       
      file  ObjTypes.h [code]
       
      +
      +
      + + + + + diff --git a/doc/html/dir_540a4c8f2977878a343351220ffba92b.js b/doc/html/dir_540a4c8f2977878a343351220ffba92b.js new file mode 100644 index 0000000..60c2c3a --- /dev/null +++ b/doc/html/dir_540a4c8f2977878a343351220ffba92b.js @@ -0,0 +1,17 @@ +var dir_540a4c8f2977878a343351220ffba92b = +[ + [ "ObjArray.h", "ObjArray_8h.html", [ + [ "ObjArray", "classmeow_1_1ObjArray.html", "classmeow_1_1ObjArray" ] + ] ], + [ "ObjBase.h", "ObjBase_8h.html", [ + [ "ObjBase", "classmeow_1_1ObjBase.html", "classmeow_1_1ObjBase" ] + ] ], + [ "ObjDictionary.h", "ObjDictionary_8h.html", [ + [ "ObjDictionary", "classmeow_1_1ObjDictionary.html", "classmeow_1_1ObjDictionary" ] + ] ], + [ "ObjProperties.h", "ObjProperties_8h.html", [ + [ "ObjProperties", "classmeow_1_1ObjProperties.html", "classmeow_1_1ObjProperties" ] + ] ], + [ "ObjSelector.h", "ObjSelector_8h.html", "ObjSelector_8h" ], + [ "ObjTypes.h", "ObjTypes_8h.html", "ObjTypes_8h" ] +]; \ No newline at end of file diff --git a/doc/html/dir_77e0ab67466b1e7d76f50725a5ab9910.html b/doc/html/dir_77e0ab67466b1e7d76f50725a5ab9910.html new file mode 100644 index 0000000..6ecf96d --- /dev/null +++ b/doc/html/dir_77e0ab67466b1e7d76f50725a5ab9910.html @@ -0,0 +1,94 @@ + + + + + + + +Templates -- Meow: meowpp/math Directory Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      math Directory Reference
      +
      +
      + + + + + + + + + + + + + + + + + + +

      +Files

      file  LinearTransformation.h [code]
       
      file  LinearTransformations.h [code]
       
      file  Matrix.h [code]
       
      file  methods.h [code]
       
      file  Transformation.h [code]
       
      file  Transformations.h [code]
       
      file  utility.h [code]
       
      file  Vector.h [code]
       
      +
      +
      + + + + + diff --git a/doc/html/dir_77e0ab67466b1e7d76f50725a5ab9910.js b/doc/html/dir_77e0ab67466b1e7d76f50725a5ab9910.js new file mode 100644 index 0000000..e78e476 --- /dev/null +++ b/doc/html/dir_77e0ab67466b1e7d76f50725a5ab9910.js @@ -0,0 +1,24 @@ +var dir_77e0ab67466b1e7d76f50725a5ab9910 = +[ + [ "LinearTransformation.h", "LinearTransformation_8h.html", [ + [ "LinearTransformation", "classmeow_1_1LinearTransformation.html", "classmeow_1_1LinearTransformation" ] + ] ], + [ "LinearTransformations.h", "LinearTransformations_8h.html", [ + [ "Rotation3D", "classmeow_1_1Rotation3D.html", "classmeow_1_1Rotation3D" ] + ] ], + [ "Matrix.h", "Matrix_8h.html", [ + [ "Matrix", "classmeow_1_1Matrix.html", "classmeow_1_1Matrix" ] + ] ], + [ "methods.h", "methods_8h.html", "methods_8h" ], + [ "Transformation.h", "Transformation_8h.html", [ + [ "Transformation", "classmeow_1_1Transformation.html", "classmeow_1_1Transformation" ] + ] ], + [ "Transformations.h", "Transformations_8h.html", [ + [ "BallProjection", "classmeow_1_1BallProjection.html", "classmeow_1_1BallProjection" ], + [ "PhotoProjection", "classmeow_1_1PhotoProjection.html", "classmeow_1_1PhotoProjection" ] + ] ], + [ "utility.h", "math_2utility_8h.html", "math_2utility_8h" ], + [ "Vector.h", "Vector_8h.html", [ + [ "Vector", "classmeow_1_1Vector.html", "classmeow_1_1Vector" ] + ] ] +]; \ No newline at end of file diff --git a/doc/html/dir_92fecd8d02dd5e7a67429447fdf0f60f.html b/doc/html/dir_92fecd8d02dd5e7a67429447fdf0f60f.html new file mode 100644 index 0000000..7a4bbc8 --- /dev/null +++ b/doc/html/dir_92fecd8d02dd5e7a67429447fdf0f60f.html @@ -0,0 +1,99 @@ + + + + + + + +Templates -- Meow: meowpp Directory Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      meowpp Directory Reference
      +
      +
      + + + + + + + + + + + + + + +

      +Directories

      directory  colors
       
      directory  dsa
       
      directory  geo
       
      directory  gra
       
      directory  math
       
      directory  oo
       
      + + + + + + + +

      +Files

      file  Self.h [code]
       
      file  Usage.h [code]
       
      file  utility.h [code]
       
      +
      +
      + + + + + diff --git a/doc/html/dir_92fecd8d02dd5e7a67429447fdf0f60f.js b/doc/html/dir_92fecd8d02dd5e7a67429447fdf0f60f.js new file mode 100644 index 0000000..9ea3499 --- /dev/null +++ b/doc/html/dir_92fecd8d02dd5e7a67429447fdf0f60f.js @@ -0,0 +1,16 @@ +var dir_92fecd8d02dd5e7a67429447fdf0f60f = +[ + [ "colors", "dir_f6840b2fecd08a3779df34f0add0e074.html", "dir_f6840b2fecd08a3779df34f0add0e074" ], + [ "dsa", "dir_a17ff8dcb3a1c1b842af541700214096.html", "dir_a17ff8dcb3a1c1b842af541700214096" ], + [ "geo", "dir_a57e9e528cb28fd6752031b735908fb6.html", "dir_a57e9e528cb28fd6752031b735908fb6" ], + [ "gra", "dir_115d3279a93b9c99d8f569a34543848f.html", "dir_115d3279a93b9c99d8f569a34543848f" ], + [ "math", "dir_77e0ab67466b1e7d76f50725a5ab9910.html", "dir_77e0ab67466b1e7d76f50725a5ab9910" ], + [ "oo", "dir_540a4c8f2977878a343351220ffba92b.html", "dir_540a4c8f2977878a343351220ffba92b" ], + [ "Self.h", "Self_8h.html", [ + [ "Self", "classmeow_1_1Self.html", "classmeow_1_1Self" ] + ] ], + [ "Usage.h", "Usage_8h.html", [ + [ "Usage", "classmeow_1_1Usage.html", "classmeow_1_1Usage" ] + ] ], + [ "utility.h", "utility_8h.html", "utility_8h" ] +]; \ No newline at end of file diff --git a/doc/html/dir_a17ff8dcb3a1c1b842af541700214096.html b/doc/html/dir_a17ff8dcb3a1c1b842af541700214096.html new file mode 100644 index 0000000..c4442b1 --- /dev/null +++ b/doc/html/dir_a17ff8dcb3a1c1b842af541700214096.html @@ -0,0 +1,94 @@ + + + + + + + +Templates -- Meow: meowpp/dsa Directory Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      dsa Directory Reference
      +
      +
      + + + + + + + + + + + + + + + + + + +

      +Files

      file  BinaryIndexTree.h [code]
       
      file  DisjointSet.h [code]
       
      file  HashTable.h [code]
       
      file  KD_Tree.h [code]
       
      file  MergeableHeap.h [code]
       
      file  SegmentTree.h [code]
       
      file  SplayTree.h [code]
       
      file  VP_Tree.h [code]
       
      +
      +
      + + + + + diff --git a/doc/html/dir_a17ff8dcb3a1c1b842af541700214096.js b/doc/html/dir_a17ff8dcb3a1c1b842af541700214096.js new file mode 100644 index 0000000..dc82726 --- /dev/null +++ b/doc/html/dir_a17ff8dcb3a1c1b842af541700214096.js @@ -0,0 +1,30 @@ +var dir_a17ff8dcb3a1c1b842af541700214096 = +[ + [ "BinaryIndexTree.h", "BinaryIndexTree_8h.html", [ + [ "BinaryIndexTree", "classmeow_1_1BinaryIndexTree.html", "classmeow_1_1BinaryIndexTree" ] + ] ], + [ "DisjointSet.h", "DisjointSet_8h.html", [ + [ "DisjointSet", "classmeow_1_1DisjointSet.html", "classmeow_1_1DisjointSet" ] + ] ], + [ "HashTable.h", "HashTable_8h.html", [ + [ "HashTableList", "classmeow_1_1HashTableList.html", "classmeow_1_1HashTableList" ] + ] ], + [ "KD_Tree.h", "KD__Tree_8h.html", [ + [ "KD_Tree", "classmeow_1_1KD__Tree.html", "classmeow_1_1KD__Tree" ] + ] ], + [ "MergeableHeap.h", "MergeableHeap_8h.html", [ + [ "MergeableHeap", "classmeow_1_1MergeableHeap.html", "classmeow_1_1MergeableHeap" ] + ] ], + [ "SegmentTree.h", "SegmentTree_8h.html", [ + [ "SegmentTree", "classmeow_1_1SegmentTree.html", "classmeow_1_1SegmentTree" ] + ] ], + [ "SplayTree.h", "SplayTree_8h.html", [ + [ "SplayTree", "classmeow_1_1SplayTree.html", "classmeow_1_1SplayTree" ], + [ "Element", "classmeow_1_1SplayTree_1_1Element.html", "classmeow_1_1SplayTree_1_1Element" ], + [ "SplayTree_Range", "classmeow_1_1SplayTree__Range.html", "classmeow_1_1SplayTree__Range" ], + [ "Element", "classmeow_1_1SplayTree__Range_1_1Element.html", "classmeow_1_1SplayTree__Range_1_1Element" ] + ] ], + [ "VP_Tree.h", "VP__Tree_8h.html", [ + [ "VP_Tree", "classmeow_1_1VP__Tree.html", "classmeow_1_1VP__Tree" ] + ] ] +]; \ No newline at end of file diff --git a/doc/html/dir_a57e9e528cb28fd6752031b735908fb6.html b/doc/html/dir_a57e9e528cb28fd6752031b735908fb6.html new file mode 100644 index 0000000..d4c458a --- /dev/null +++ b/doc/html/dir_a57e9e528cb28fd6752031b735908fb6.html @@ -0,0 +1,80 @@ + + + + + + + +Templates -- Meow: meowpp/geo Directory Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      geo Directory Reference
      +
      +
      + + + + +

      +Files

      file  Vectors.h [code]
       
      +
      +
      + + + + + diff --git a/doc/html/dir_a57e9e528cb28fd6752031b735908fb6.js b/doc/html/dir_a57e9e528cb28fd6752031b735908fb6.js new file mode 100644 index 0000000..25539fc --- /dev/null +++ b/doc/html/dir_a57e9e528cb28fd6752031b735908fb6.js @@ -0,0 +1,7 @@ +var dir_a57e9e528cb28fd6752031b735908fb6 = +[ + [ "Vectors.h", "Vectors_8h.html", [ + [ "Vector2D", "classmeow_1_1Vector2D.html", "classmeow_1_1Vector2D" ], + [ "Vector3D", "classmeow_1_1Vector3D.html", "classmeow_1_1Vector3D" ] + ] ] +]; \ No newline at end of file diff --git a/doc/html/dir_f6840b2fecd08a3779df34f0add0e074.html b/doc/html/dir_f6840b2fecd08a3779df34f0add0e074.html new file mode 100644 index 0000000..f385973 --- /dev/null +++ b/doc/html/dir_f6840b2fecd08a3779df34f0add0e074.html @@ -0,0 +1,88 @@ + + + + + + + +Templates -- Meow: meowpp/colors Directory Reference + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      colors Directory Reference
      +
      +
      + + + + + + + + + + + + +

      +Files

      file  Color3_Space.h [code]
       
      file  HSL_Space.h [code]
       
      file  HSV_Space.h [code]
       
      file  RGB_Space.h [code]
       
      file  YUV_Space.h [code]
       
      +
      +
      + + + + + diff --git a/doc/html/dir_f6840b2fecd08a3779df34f0add0e074.js b/doc/html/dir_f6840b2fecd08a3779df34f0add0e074.js new file mode 100644 index 0000000..40d7bf0 --- /dev/null +++ b/doc/html/dir_f6840b2fecd08a3779df34f0add0e074.js @@ -0,0 +1,10 @@ +var dir_f6840b2fecd08a3779df34f0add0e074 = +[ + [ "Color3_Space.h", "Color3__Space_8h.html", [ + [ "Color3_Space", "classmeow_1_1Color3__Space.html", "classmeow_1_1Color3__Space" ] + ] ], + [ "HSL_Space.h", "HSL__Space_8h.html", "HSL__Space_8h" ], + [ "HSV_Space.h", "HSV__Space_8h.html", "HSV__Space_8h" ], + [ "RGB_Space.h", "RGB__Space_8h.html", "RGB__Space_8h" ], + [ "YUV_Space.h", "YUV__Space_8h.html", "YUV__Space_8h" ] +]; \ No newline at end of file diff --git a/doc/html/doxygen.png b/doc/html/doxygen.png new file mode 100644 index 0000000..a869daf Binary files /dev/null and b/doc/html/doxygen.png differ diff --git a/doc/html/dynsections.js b/doc/html/dynsections.js new file mode 100644 index 0000000..ed092c7 --- /dev/null +++ b/doc/html/dynsections.js @@ -0,0 +1,97 @@ +function toggleVisibility(linkObj) +{ + var base = $(linkObj).attr('id'); + var summary = $('#'+base+'-summary'); + var content = $('#'+base+'-content'); + var trigger = $('#'+base+'-trigger'); + var src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.hide(); + summary.show(); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + content.show(); + summary.hide(); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); + } + return false; +} + +function updateStripes() +{ + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); +} +function toggleLevel(level) +{ + $('table.directory tr').each(function(){ + var l = this.id.split('_').length-1; + var i = $('#img'+this.id.substring(3)); + var a = $('#arr'+this.id.substring(3)); + if (l + + + + + + +Templates -- Meow: File List + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + + + + + + + diff --git a/doc/html/files.js b/doc/html/files.js new file mode 100644 index 0000000..9a26517 --- /dev/null +++ b/doc/html/files.js @@ -0,0 +1,4 @@ +var files = +[ + [ "meowpp", "dir_92fecd8d02dd5e7a67429447fdf0f60f.html", "dir_92fecd8d02dd5e7a67429447fdf0f60f" ] +]; \ No newline at end of file diff --git a/doc/html/form_0.png b/doc/html/form_0.png new file mode 100644 index 0000000..971a8e2 Binary files /dev/null and b/doc/html/form_0.png differ diff --git a/doc/html/form_1.png b/doc/html/form_1.png new file mode 100644 index 0000000..4cf0251 Binary files /dev/null and b/doc/html/form_1.png differ diff --git a/doc/html/form_10.png b/doc/html/form_10.png new file mode 100644 index 0000000..3eae975 Binary files /dev/null and b/doc/html/form_10.png differ diff --git a/doc/html/form_11.png b/doc/html/form_11.png new file mode 100644 index 0000000..21e39e2 Binary files /dev/null and b/doc/html/form_11.png differ diff --git a/doc/html/form_12.png b/doc/html/form_12.png new file mode 100644 index 0000000..f598ba1 Binary files /dev/null and b/doc/html/form_12.png differ diff --git a/doc/html/form_13.png b/doc/html/form_13.png new file mode 100644 index 0000000..971a8e2 Binary files /dev/null and b/doc/html/form_13.png differ diff --git a/doc/html/form_14.png b/doc/html/form_14.png new file mode 100644 index 0000000..bd58fc6 Binary files /dev/null and b/doc/html/form_14.png differ diff --git a/doc/html/form_15.png b/doc/html/form_15.png new file mode 100644 index 0000000..b2f4821 Binary files /dev/null and b/doc/html/form_15.png differ diff --git a/doc/html/form_16.png b/doc/html/form_16.png new file mode 100644 index 0000000..417d032 Binary files /dev/null and b/doc/html/form_16.png differ diff --git a/doc/html/form_17.png b/doc/html/form_17.png new file mode 100644 index 0000000..69de8d1 Binary files /dev/null and b/doc/html/form_17.png differ diff --git a/doc/html/form_18.png b/doc/html/form_18.png new file mode 100644 index 0000000..c2ab3ab Binary files /dev/null and b/doc/html/form_18.png differ diff --git a/doc/html/form_19.png b/doc/html/form_19.png new file mode 100644 index 0000000..fefa694 Binary files /dev/null and b/doc/html/form_19.png differ diff --git a/doc/html/form_2.png b/doc/html/form_2.png new file mode 100644 index 0000000..eb362d5 Binary files /dev/null and b/doc/html/form_2.png differ diff --git a/doc/html/form_20.png b/doc/html/form_20.png new file mode 100644 index 0000000..e452108 Binary files /dev/null and b/doc/html/form_20.png differ diff --git a/doc/html/form_21.png b/doc/html/form_21.png new file mode 100644 index 0000000..36e9c9c Binary files /dev/null and b/doc/html/form_21.png differ diff --git a/doc/html/form_22.png b/doc/html/form_22.png new file mode 100644 index 0000000..d7cdb6a Binary files /dev/null and b/doc/html/form_22.png differ diff --git a/doc/html/form_23.png b/doc/html/form_23.png new file mode 100644 index 0000000..e2b658f Binary files /dev/null and b/doc/html/form_23.png differ diff --git a/doc/html/form_24.png b/doc/html/form_24.png new file mode 100644 index 0000000..d41fbd0 Binary files /dev/null and b/doc/html/form_24.png differ diff --git a/doc/html/form_25.png b/doc/html/form_25.png new file mode 100644 index 0000000..1e3174f Binary files /dev/null and b/doc/html/form_25.png differ diff --git a/doc/html/form_26.png b/doc/html/form_26.png new file mode 100644 index 0000000..2cfedc3 Binary files /dev/null and b/doc/html/form_26.png differ diff --git a/doc/html/form_27.png b/doc/html/form_27.png new file mode 100644 index 0000000..968c525 Binary files /dev/null and b/doc/html/form_27.png differ diff --git a/doc/html/form_28.png b/doc/html/form_28.png new file mode 100644 index 0000000..02ccaa7 Binary files /dev/null and b/doc/html/form_28.png differ diff --git a/doc/html/form_29.png b/doc/html/form_29.png new file mode 100644 index 0000000..b16484e Binary files /dev/null and b/doc/html/form_29.png differ diff --git a/doc/html/form_3.png b/doc/html/form_3.png new file mode 100644 index 0000000..0a00d6f Binary files /dev/null and b/doc/html/form_3.png differ diff --git a/doc/html/form_30.png b/doc/html/form_30.png new file mode 100644 index 0000000..701afcd Binary files /dev/null and b/doc/html/form_30.png differ diff --git a/doc/html/form_31.png b/doc/html/form_31.png new file mode 100644 index 0000000..6e554a2 Binary files /dev/null and b/doc/html/form_31.png differ diff --git a/doc/html/form_32.png b/doc/html/form_32.png new file mode 100644 index 0000000..273ce54 Binary files /dev/null and b/doc/html/form_32.png differ diff --git a/doc/html/form_33.png b/doc/html/form_33.png new file mode 100644 index 0000000..7d62335 Binary files /dev/null and b/doc/html/form_33.png differ diff --git a/doc/html/form_34.png b/doc/html/form_34.png new file mode 100644 index 0000000..e0314fb Binary files /dev/null and b/doc/html/form_34.png differ diff --git a/doc/html/form_35.png b/doc/html/form_35.png new file mode 100644 index 0000000..a0cbf2a Binary files /dev/null and b/doc/html/form_35.png differ diff --git a/doc/html/form_36.png b/doc/html/form_36.png new file mode 100644 index 0000000..0e136d7 Binary files /dev/null and b/doc/html/form_36.png differ diff --git a/doc/html/form_37.png b/doc/html/form_37.png new file mode 100644 index 0000000..ad6db38 Binary files /dev/null and b/doc/html/form_37.png differ diff --git a/doc/html/form_38.png b/doc/html/form_38.png new file mode 100644 index 0000000..1c66ea6 Binary files /dev/null and b/doc/html/form_38.png differ diff --git a/doc/html/form_39.png b/doc/html/form_39.png new file mode 100644 index 0000000..fce8e56 Binary files /dev/null and b/doc/html/form_39.png differ diff --git a/doc/html/form_4.png b/doc/html/form_4.png new file mode 100644 index 0000000..a9a9361 Binary files /dev/null and b/doc/html/form_4.png differ diff --git a/doc/html/form_40.png b/doc/html/form_40.png new file mode 100644 index 0000000..28e5d2f Binary files /dev/null and b/doc/html/form_40.png differ diff --git a/doc/html/form_41.png b/doc/html/form_41.png new file mode 100644 index 0000000..cbb4b0f Binary files /dev/null and b/doc/html/form_41.png differ diff --git a/doc/html/form_42.png b/doc/html/form_42.png new file mode 100644 index 0000000..148cac6 Binary files /dev/null and b/doc/html/form_42.png differ diff --git a/doc/html/form_43.png b/doc/html/form_43.png new file mode 100644 index 0000000..02ddba9 Binary files /dev/null and b/doc/html/form_43.png differ diff --git a/doc/html/form_44.png b/doc/html/form_44.png new file mode 100644 index 0000000..5f6c3ec Binary files /dev/null and b/doc/html/form_44.png differ diff --git a/doc/html/form_45.png b/doc/html/form_45.png new file mode 100644 index 0000000..de1f8b9 Binary files /dev/null and b/doc/html/form_45.png differ diff --git a/doc/html/form_46.png b/doc/html/form_46.png new file mode 100644 index 0000000..d210d37 Binary files /dev/null and b/doc/html/form_46.png differ diff --git a/doc/html/form_47.png b/doc/html/form_47.png new file mode 100644 index 0000000..e9a2ddc Binary files /dev/null and b/doc/html/form_47.png differ diff --git a/doc/html/form_48.png b/doc/html/form_48.png new file mode 100644 index 0000000..12484b7 Binary files /dev/null and b/doc/html/form_48.png differ diff --git a/doc/html/form_49.png b/doc/html/form_49.png new file mode 100644 index 0000000..2a01749 Binary files /dev/null and b/doc/html/form_49.png differ diff --git a/doc/html/form_5.png b/doc/html/form_5.png new file mode 100644 index 0000000..916325a Binary files /dev/null and b/doc/html/form_5.png differ diff --git a/doc/html/form_6.png b/doc/html/form_6.png new file mode 100644 index 0000000..54f82e6 Binary files /dev/null and b/doc/html/form_6.png differ diff --git a/doc/html/form_7.png b/doc/html/form_7.png new file mode 100644 index 0000000..ba3fdb2 Binary files /dev/null and b/doc/html/form_7.png differ diff --git a/doc/html/form_8.png b/doc/html/form_8.png new file mode 100644 index 0000000..f5d1c5a Binary files /dev/null and b/doc/html/form_8.png differ diff --git a/doc/html/form_9.png b/doc/html/form_9.png new file mode 100644 index 0000000..ddd9fee Binary files /dev/null and b/doc/html/form_9.png differ diff --git a/doc/html/formula.repository b/doc/html/formula.repository new file mode 100644 index 0000000..b50a0ed --- /dev/null +++ b/doc/html/formula.repository @@ -0,0 +1,50 @@ +\form#0:$ (x ,y ,z ) $ +\form#1:$ (x',y',z') $ +\form#2:$ \vec{\theta}=(\theta_x,\theta_y,\theta_z) $ +\form#3:\[ \left[ \begin{array}{c} x' \\ y' \\ z' \\ \end{array} \right] = \left[ \begin{array}{ccc} 2(n_x^2 - 1) \sin^2\phi + 1 & 2n_x n_y \sin^2\phi - 2n_z\cos \phi\sin \phi & 2n_x n_z \sin^2\phi + 2n_y\cos \phi\sin \phi \\ 2n_y n_x \sin^2\phi + 2n_z\cos \phi\sin \phi & 2(n_y^2 - 1) \sin^2\phi + 1 & 2n_y n_z \sin^2\phi - 2n_x\cos \phi\sin \phi \\ 2n_z n_x \sin^2\phi - 2n_y\cos \phi\sin \phi & 2n_z n_y \sin^2\phi + 2n_x\cos \phi\sin \phi & 2(n_z^2 - 1) \sin^2\phi + 1 \\ \end{array} \right] \left[ \begin{array}{c} x \\ y \\ z \\ \end{array} \right] \] +\form#4:$ \phi $ +\form#5:$ \vec{\theta} $ +\form#6:$ \phi = \frac{\left|\vec{\theta}\right|}{2} = \frac{1}{2}\sqrt{\theta_x^2 + \theta_y^2 + \theta_z^2} $ +\form#7:$ \vec{n} $ +\form#8:$ \vec{n} = (n_x,n_y,n_z) = \vec{\theta} / 2\phi $ +\form#9:\[ \left[ \begin{array}{ccc} 2(n_x^2 - 1) \sin^2\phi + 1 & 2n_x n_y \sin^2\phi - 2n_z\cos \phi\sin \phi & 2n_x n_z \sin^2\phi + 2n_y\cos \phi\sin \phi \\ 2n_y n_x \sin^2\phi + 2n_z\cos \phi\sin \phi & 2(n_y^2 - 1) \sin^2\phi + 1 & 2n_y n_z \sin^2\phi - 2n_x\cos \phi\sin \phi \\ 2n_z n_x \sin^2\phi - 2n_y\cos \phi\sin \phi & 2n_z n_y \sin^2\phi + 2n_x\cos \phi\sin \phi & 2(n_z^2 - 1) \sin^2\phi + 1 \\ \end{array} \right] \] +\form#10:\[ \left[ \begin{array}{ccc} 0 & 0 & 0 \\ 0 & 0 & -1 \\ 0 & 1 & 0 \\ \end{array} \right] \left[ \begin{array}{ccc} 2(n_x^2 - 1) \sin^2\phi + 1 & 2n_x n_y \sin^2\phi - 2n_z\cos \phi\sin \phi & 2n_x n_z \sin^2\phi + 2n_y\cos \phi\sin \phi \\ 2n_y n_x \sin^2\phi + 2n_z\cos \phi\sin \phi & 2(n_y^2 - 1) \sin^2\phi + 1 & 2n_y n_z \sin^2\phi - 2n_x\cos \phi\sin \phi \\ 2n_z n_x \sin^2\phi - 2n_y\cos \phi\sin \phi & 2n_z n_y \sin^2\phi + 2n_x\cos \phi\sin \phi & 2(n_z^2 - 1) \sin^2\phi + 1 \\ \end{array} \right] \left[ \begin{array}{c} x \\ y \\ z \\ \end{array} \right] \] +\form#11:\[ \left[ \begin{array}{ccc} 0 & 0 & 1 \\ 0 & 0 & 0 \\ -1 & 0 & 0 \\ \end{array} \right] \left[ \begin{array}{ccc} 2(n_x^2 - 1) \sin^2\phi + 1 & 2n_x n_y \sin^2\phi - 2n_z\cos \phi\sin \phi & 2n_x n_z \sin^2\phi + 2n_y\cos \phi\sin \phi \\ 2n_y n_x \sin^2\phi + 2n_z\cos \phi\sin \phi & 2(n_y^2 - 1) \sin^2\phi + 1 & 2n_y n_z \sin^2\phi - 2n_x\cos \phi\sin \phi \\ 2n_z n_x \sin^2\phi - 2n_y\cos \phi\sin \phi & 2n_z n_y \sin^2\phi + 2n_x\cos \phi\sin \phi & 2(n_z^2 - 1) \sin^2\phi + 1 \\ \end{array} \right] \left[ \begin{array}{c} x \\ y \\ z \\ \end{array} \right] \] +\form#12:\[ \left[ \begin{array}{ccc} 0 & -1 & 0 \\ 1 & 0 & 0 \\ 0 & 0 & 0 \\ \end{array} \right] \left[ \begin{array}{ccc} 2(n_x^2 - 1) \sin^2\phi + 1 & 2n_x n_y \sin^2\phi - 2n_z\cos \phi\sin \phi & 2n_x n_z \sin^2\phi + 2n_y\cos \phi\sin \phi \\ 2n_y n_x \sin^2\phi + 2n_z\cos \phi\sin \phi & 2(n_y^2 - 1) \sin^2\phi + 1 & 2n_y n_z \sin^2\phi - 2n_x\cos \phi\sin \phi \\ 2n_z n_x \sin^2\phi - 2n_y\cos \phi\sin \phi & 2n_z n_y \sin^2\phi + 2n_x\cos \phi\sin \phi & 2(n_z^2 - 1) \sin^2\phi + 1 \\ \end{array} \right] \left[ \begin{array}{c} x \\ y \\ z \\ \end{array} \right] \] +\form#13:$ (x,y,z) $ +\form#14:$ \vec{n}, \phi $ +\form#15:$ N $ +\form#16:$ p_0 $ +\form#17:$ P $ +\form#18:$ M $ +\form#19:\[ \begin{aligned} & (1 - p_0^N)^M \leq(1 - P) \\ \Rightarrow & M \log(1 - p_0^N) \leq \log(1 - P) \\ \Rightarrow & M \geq \frac{\log(1 - p)}{\log(1 - p_0^N)},~~ \because (1-p_0^N<1 \Rightarrow \log(1-p_0^N)<0) \end{aligned} \] +\form#20:$ M = \lceil \frac{\log(1 - P)}{\log(1 - p_0^N)} \rceil $ +\form#21:$ F: \mathbb{R} ^N \mapsto \mathbb{R}^M $ +\form#22:$ v $ +\form#23:$ F(v)^T F(v) = 0$ +\form#24:$ \epsilon $ +\form#25:$ F(v)^T F(v) < \epsilon $ +\form#26:$ v_0 $ +\form#27:$ v_1, v_2, v_3, v_4... $ +\form#28:$ v_k $ +\form#29:$ F(v_k)^TF(v_k)<\epsilon $ +\form#30:\[ v_{i+1} = v_i + (J(v_i)^TJ(v_i)+\lambda I_{N\times N})^{-1} J(v_i)^T F(v_i) \] +\form#31:$ J(v) $ +\form#32:\[ J(v) = \frac{d}{dv}F(v) = \left[ \begin{array}{ccccc} \frac{\partial F_1(v)}{\partial v_1} & \frac{\partial F_1(v)}{\partial v_2} & \frac{\partial F_1(v)}{\partial v_3} & ... & \frac{\partial F_1(v)}{\partial v_N} \\ \frac{\partial F_2(v)}{\partial v_1} & \frac{\partial F_2(v)}{\partial v_2} & \frac{\partial F_2(v)}{\partial v_3} & ... & \frac{\partial F_2(v)}{\partial v_N} \\ \frac{\partial F_3(v)}{\partial v_1} & \frac{\partial F_3(v)}{\partial v_2} & \frac{\partial F_3(v)}{\partial v_3} & ... & \frac{\partial F_3(v)}{\partial v_N} \\ . & . & . & & . \\ . & . & . & & . \\ . & . & . & & . \\ \frac{\partial F_M(v)}{\partial v_1} & \frac{\partial F_M(v)}{\partial v_2} & \frac{\partial F_M(v)}{\partial v_3} & ... & \frac{\partial F_M(v)}{\partial v_N} \\ \end{array} \right] \] +\form#33:$ \lambda $ +\form#34:$ F $ +\form#35:$ J $ +\form#36:$ \lambda I_{N \times N} $ +\form#37:\[ S_{top}(v) = \begin{cases} true & if~F(v)<\epsilon \\ false & else \end{cases} \] +\form#38:$ R $ +\form#39:\[ \left[ \begin{array}{c} x_1 \\ x_2 \\ x_3 \\ . \\ . \\ . \\ x_N \\ \end{array} \right] \stackrel{transformate}{\rightarrow} \left[ \begin{array}{c} \frac{x_1 \times R}{L} \\ \frac{x_2 \times R}{L} \\ \frac{x_3 \times R}{L} \\ . \\ . \\ . \\ \frac{x_N \times R}{L} \\ \end{array} \right] \\ \] +\form#40:$ L=\sqrt{x_1^2 + x_2^2 + x_3^2 + ... + x_N^2 } $ +\form#41:$ L $ +\form#42:$ f $ +\form#43:\[ \left[ \begin{array}{c} x_1 \\ x_2 \\ x_3 \\ . \\ . \\ . \\ x_N \\ \end{array} \right] \stackrel{transformate}{\rightarrow} \left[ \begin{array}{c} \frac{-x_1 \times f}{x_N} \\ \frac{-x_2 \times f}{x_N} \\ \frac{-x_3 \times f}{x_N} \\ . \\ . \\ . \\ -f \\ \end{array} \right] \\ \] +\form#44:$ x_N = -f $ +\form#45:$ L=\sqrt{x_1^2+x_2^2+...+x_N^2} $ +\form#46:\[ \frac{R}{L^3} \times \left[ \begin{array}{ccccc} L^2-x_1^2 & -x_1x_2 & -x_1x_3 & ... & -x_1x_N \\ -x_2x_1 & L^2-x_2^2 & -x_2x_3 & ... & -x_2x_N \\ -x_3x_1 & -x_3x_2 & L^2-x_3^2 & ... & -x_3x_N \\ . & . & . & & . \\ . & . & . & & . \\ . & . & . & & . \\ -x_Nx_1 & -x_Nx_2 & -x_Nx_3 & ... & L^2-x_N^2 \\ \end{array} \right] \] +\form#47:\[ R \times \left[ \begin{array}{c} \frac{x_1}{L} \\ \frac{x_2}{L} \\ \frac{x_3}{L} \\ . \\ . \\ . \\ \frac{x_N}{L} \\ \end{array} \right] \] +\form#48:\[ f \times \left[ \begin{array}{ccccc} \frac{-1}{x_N} & 0 & 0 & ... & \frac{1}{x_N^2} \\ 0 & \frac{-1}{x_N} & 0 & ... & \frac{1}{x_N^2} \\ 0 & 0 & \frac{-1}{x_N} & ... & \frac{1}{x_N^2} \\ . & . & . & & . \\ . & . & . & & . \\ . & . & . & & . \\ 0 & 0 & 0 & ... & 0 \\ \end{array} \right] \] +\form#49:\[ f \times \left[ \begin{array}{c} \frac{-x_1}{x_N} \\ \frac{-x_2}{x_N} \\ \frac{-x_3}{x_N} \\ . \\ . \\ . \\ -1 \\ \end{array} \right] \] diff --git a/doc/html/ftv2blank.png b/doc/html/ftv2blank.png new file mode 100644 index 0000000..63c605b Binary files /dev/null and b/doc/html/ftv2blank.png differ diff --git a/doc/html/ftv2cl.png b/doc/html/ftv2cl.png new file mode 100644 index 0000000..07335ce Binary files /dev/null and b/doc/html/ftv2cl.png differ diff --git a/doc/html/ftv2doc.png b/doc/html/ftv2doc.png new file mode 100644 index 0000000..97f2625 Binary files /dev/null and b/doc/html/ftv2doc.png differ diff --git a/doc/html/ftv2folderclosed.png b/doc/html/ftv2folderclosed.png new file mode 100644 index 0000000..47f36c4 Binary files /dev/null and b/doc/html/ftv2folderclosed.png differ diff --git a/doc/html/ftv2folderopen.png b/doc/html/ftv2folderopen.png new file mode 100644 index 0000000..aa5bb48 Binary files /dev/null and b/doc/html/ftv2folderopen.png differ diff --git a/doc/html/ftv2lastnode.png b/doc/html/ftv2lastnode.png new file mode 100644 index 0000000..63c605b Binary files /dev/null and b/doc/html/ftv2lastnode.png differ diff --git a/doc/html/ftv2link.png b/doc/html/ftv2link.png new file mode 100644 index 0000000..97f2625 Binary files /dev/null and b/doc/html/ftv2link.png differ diff --git a/doc/html/ftv2mlastnode.png b/doc/html/ftv2mlastnode.png new file mode 100644 index 0000000..58d9960 Binary files /dev/null and b/doc/html/ftv2mlastnode.png differ diff --git a/doc/html/ftv2mnode.png b/doc/html/ftv2mnode.png new file mode 100644 index 0000000..58d9960 Binary files /dev/null and b/doc/html/ftv2mnode.png differ diff --git a/doc/html/ftv2mo.png b/doc/html/ftv2mo.png new file mode 100644 index 0000000..4dbbfc3 Binary files /dev/null and b/doc/html/ftv2mo.png differ diff --git a/doc/html/ftv2node.png b/doc/html/ftv2node.png new file mode 100644 index 0000000..63c605b Binary files /dev/null and b/doc/html/ftv2node.png differ diff --git a/doc/html/ftv2ns.png b/doc/html/ftv2ns.png new file mode 100644 index 0000000..9dcd15a Binary files /dev/null and b/doc/html/ftv2ns.png differ diff --git a/doc/html/ftv2plastnode.png b/doc/html/ftv2plastnode.png new file mode 100644 index 0000000..9b9d905 Binary files /dev/null and b/doc/html/ftv2plastnode.png differ diff --git a/doc/html/ftv2pnode.png b/doc/html/ftv2pnode.png new file mode 100644 index 0000000..9b9d905 Binary files /dev/null and b/doc/html/ftv2pnode.png differ diff --git a/doc/html/ftv2splitbar.png b/doc/html/ftv2splitbar.png new file mode 100644 index 0000000..2e250cb Binary files /dev/null and b/doc/html/ftv2splitbar.png differ diff --git a/doc/html/ftv2vertline.png b/doc/html/ftv2vertline.png new file mode 100644 index 0000000..63c605b Binary files /dev/null and b/doc/html/ftv2vertline.png differ diff --git a/doc/html/functions.html b/doc/html/functions.html new file mode 100644 index 0000000..7bc9f30 --- /dev/null +++ b/doc/html/functions.html @@ -0,0 +1,100 @@ + + + + + + + +Templates -- Meow: Class Members + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + + + + + + + diff --git a/doc/html/functions_0x62.html b/doc/html/functions_0x62.html new file mode 100644 index 0000000..cac0a4d --- /dev/null +++ b/doc/html/functions_0x62.html @@ -0,0 +1,111 @@ + + + + + + + +Templates -- Meow: Class Members + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      Here is a list of all class members with links to the classes they belong to:
      + +

      - b -

      +
      +
      + + + + + diff --git a/doc/html/functions_0x63.html b/doc/html/functions_0x63.html new file mode 100644 index 0000000..292cbb7 --- /dev/null +++ b/doc/html/functions_0x63.html @@ -0,0 +1,202 @@ + + + + + + + +Templates -- Meow: Class Members + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      Here is a list of all class members with links to the classes they belong to:
      + +

      - c -

      +
      +
      + + + + + diff --git a/doc/html/functions_0x64.html b/doc/html/functions_0x64.html new file mode 100644 index 0000000..a053c94 --- /dev/null +++ b/doc/html/functions_0x64.html @@ -0,0 +1,111 @@ + + + + + + + +Templates -- Meow: Class Members + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + + + + + + + diff --git a/doc/html/functions_0x65.html b/doc/html/functions_0x65.html new file mode 100644 index 0000000..16d555c --- /dev/null +++ b/doc/html/functions_0x65.html @@ -0,0 +1,122 @@ + + + + + + + +Templates -- Meow: Class Members + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + + + + + + + diff --git a/doc/html/functions_0x66.html b/doc/html/functions_0x66.html new file mode 100644 index 0000000..66ea238 --- /dev/null +++ b/doc/html/functions_0x66.html @@ -0,0 +1,133 @@ + + + + + + + +Templates -- Meow: Class Members + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + + + + + + + diff --git a/doc/html/functions_0x67.html b/doc/html/functions_0x67.html new file mode 100644 index 0000000..5b644b2 --- /dev/null +++ b/doc/html/functions_0x67.html @@ -0,0 +1,110 @@ + + + + + + + +Templates -- Meow: Class Members + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      Here is a list of all class members with links to the classes they belong to:
      + +

      - g -

      +
      +
      + + + + + diff --git a/doc/html/functions_0x68.html b/doc/html/functions_0x68.html new file mode 100644 index 0000000..1c5fa11 --- /dev/null +++ b/doc/html/functions_0x68.html @@ -0,0 +1,129 @@ + + + + + + + +Templates -- Meow: Class Members + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      Here is a list of all class members with links to the classes they belong to:
      + +

      - h -

      +
      +
      + + + + + diff --git a/doc/html/functions_0x69.html b/doc/html/functions_0x69.html new file mode 100644 index 0000000..31639df --- /dev/null +++ b/doc/html/functions_0x69.html @@ -0,0 +1,144 @@ + + + + + + + +Templates -- Meow: Class Members + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      Here is a list of all class members with links to the classes they belong to:
      + +

      - i -

      +
      +
      + + + + + diff --git a/doc/html/functions_0x6a.html b/doc/html/functions_0x6a.html new file mode 100644 index 0000000..99362f8 --- /dev/null +++ b/doc/html/functions_0x6a.html @@ -0,0 +1,87 @@ + + + + + + + +Templates -- Meow: Class Members + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + + + + + + + diff --git a/doc/html/functions_0x6b.html b/doc/html/functions_0x6b.html new file mode 100644 index 0000000..7ec0300 --- /dev/null +++ b/doc/html/functions_0x6b.html @@ -0,0 +1,80 @@ + + + + + + + +Templates -- Meow: Class Members + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      Here is a list of all class members with links to the classes they belong to:
      + +

      - k -

      +
      +
      + + + + + diff --git a/doc/html/functions_0x6c.html b/doc/html/functions_0x6c.html new file mode 100644 index 0000000..b46a46c --- /dev/null +++ b/doc/html/functions_0x6c.html @@ -0,0 +1,106 @@ + + + + + + + +Templates -- Meow: Class Members + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      Here is a list of all class members with links to the classes they belong to:
      + +

      - l -

      +
      +
      + + + + + diff --git a/doc/html/functions_0x6d.html b/doc/html/functions_0x6d.html new file mode 100644 index 0000000..5e6c6ef --- /dev/null +++ b/doc/html/functions_0x6d.html @@ -0,0 +1,157 @@ + + + + + + + +Templates -- Meow: Class Members + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      Here is a list of all class members with links to the classes they belong to:
      + +

      - m -

      +
      +
      + + + + + diff --git a/doc/html/functions_0x6e.html b/doc/html/functions_0x6e.html new file mode 100644 index 0000000..2694055 --- /dev/null +++ b/doc/html/functions_0x6e.html @@ -0,0 +1,95 @@ + + + + + + + +Templates -- Meow: Class Members + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      Here is a list of all class members with links to the classes they belong to:
      + +

      - n -

      +
      +
      + + + + + diff --git a/doc/html/functions_0x6f.html b/doc/html/functions_0x6f.html new file mode 100644 index 0000000..5ea77a6 --- /dev/null +++ b/doc/html/functions_0x6f.html @@ -0,0 +1,260 @@ + + + + + + + +Templates -- Meow: Class Members + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      Here is a list of all class members with links to the classes they belong to:
      + +

      - o -

      +
      +
      + + + + + diff --git a/doc/html/functions_0x70.html b/doc/html/functions_0x70.html new file mode 100644 index 0000000..5876106 --- /dev/null +++ b/doc/html/functions_0x70.html @@ -0,0 +1,184 @@ + + + + + + + +Templates -- Meow: Class Members + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      Here is a list of all class members with links to the classes they belong to:
      + +

      - p -

      +
      +
      + + + + + diff --git a/doc/html/functions_0x71.html b/doc/html/functions_0x71.html new file mode 100644 index 0000000..d34dd7a --- /dev/null +++ b/doc/html/functions_0x71.html @@ -0,0 +1,80 @@ + + + + + + + +Templates -- Meow: Class Members + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      Here is a list of all class members with links to the classes they belong to:
      + +

      - q -

      +
      +
      + + + + + diff --git a/doc/html/functions_0x72.html b/doc/html/functions_0x72.html new file mode 100644 index 0000000..b8a3e9f --- /dev/null +++ b/doc/html/functions_0x72.html @@ -0,0 +1,218 @@ + + + + + + + +Templates -- Meow: Class Members + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      Here is a list of all class members with links to the classes they belong to:
      + +

      - r -

      +
      +
      + + + + + diff --git a/doc/html/functions_0x73.html b/doc/html/functions_0x73.html new file mode 100644 index 0000000..3e86bb8 --- /dev/null +++ b/doc/html/functions_0x73.html @@ -0,0 +1,140 @@ + + + + + + + +Templates -- Meow: Class Members + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + + + + + + + diff --git a/doc/html/functions_0x74.html b/doc/html/functions_0x74.html new file mode 100644 index 0000000..6ba3cea --- /dev/null +++ b/doc/html/functions_0x74.html @@ -0,0 +1,128 @@ + + + + + + + +Templates -- Meow: Class Members + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + + + + + + + diff --git a/doc/html/functions_0x75.html b/doc/html/functions_0x75.html new file mode 100644 index 0000000..5c4b735 --- /dev/null +++ b/doc/html/functions_0x75.html @@ -0,0 +1,105 @@ + + + + + + + +Templates -- Meow: Class Members + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      Here is a list of all class members with links to the classes they belong to:
      + +

      - u -

      +
      +
      + + + + + diff --git a/doc/html/functions_0x76.html b/doc/html/functions_0x76.html new file mode 100644 index 0000000..593a627 --- /dev/null +++ b/doc/html/functions_0x76.html @@ -0,0 +1,130 @@ + + + + + + + +Templates -- Meow: Class Members + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      Here is a list of all class members with links to the classes they belong to:
      + +

      - v -

      +
      +
      + + + + + diff --git a/doc/html/functions_0x77.html b/doc/html/functions_0x77.html new file mode 100644 index 0000000..326dae3 --- /dev/null +++ b/doc/html/functions_0x77.html @@ -0,0 +1,101 @@ + + + + + + + +Templates -- Meow: Class Members + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + + + + + + + diff --git a/doc/html/functions_0x78.html b/doc/html/functions_0x78.html new file mode 100644 index 0000000..49704c7 --- /dev/null +++ b/doc/html/functions_0x78.html @@ -0,0 +1,87 @@ + + + + + + + +Templates -- Meow: Class Members + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      Here is a list of all class members with links to the classes they belong to:
      + +

      - x -

      +
      +
      + + + + + diff --git a/doc/html/functions_0x79.html b/doc/html/functions_0x79.html new file mode 100644 index 0000000..9160808 --- /dev/null +++ b/doc/html/functions_0x79.html @@ -0,0 +1,106 @@ + + + + + + + +Templates -- Meow: Class Members + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      Here is a list of all class members with links to the classes they belong to:
      + +

      - y -

      +
      +
      + + + + + diff --git a/doc/html/functions_0x7a.html b/doc/html/functions_0x7a.html new file mode 100644 index 0000000..67578f8 --- /dev/null +++ b/doc/html/functions_0x7a.html @@ -0,0 +1,79 @@ + + + + + + + +Templates -- Meow: Class Members + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      Here is a list of all class members with links to the classes they belong to:
      + +

      - z -

      +
      +
      + + + + + diff --git a/doc/html/functions_0x7e.html b/doc/html/functions_0x7e.html new file mode 100644 index 0000000..37d975e --- /dev/null +++ b/doc/html/functions_0x7e.html @@ -0,0 +1,185 @@ + + + + + + + +Templates -- Meow: Class Members + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      Here is a list of all class members with links to the classes they belong to:
      + +

      - ~ -

      +
      +
      + + + + + diff --git a/doc/html/functions_dup.js b/doc/html/functions_dup.js new file mode 100644 index 0000000..6fc55dd --- /dev/null +++ b/doc/html/functions_dup.js @@ -0,0 +1,30 @@ +var functions_dup = +[ + [ "a", "functions.html", null ], + [ "b", "functions_0x62.html", null ], + [ "c", "functions_0x63.html", null ], + [ "d", "functions_0x64.html", null ], + [ "e", "functions_0x65.html", null ], + [ "f", "functions_0x66.html", null ], + [ "g", "functions_0x67.html", null ], + [ "h", "functions_0x68.html", null ], + [ "i", "functions_0x69.html", null ], + [ "j", "functions_0x6a.html", null ], + [ "k", "functions_0x6b.html", null ], + [ "l", "functions_0x6c.html", null ], + [ "m", "functions_0x6d.html", null ], + [ "n", "functions_0x6e.html", null ], + [ "o", "functions_0x6f.html", null ], + [ "p", "functions_0x70.html", null ], + [ "q", "functions_0x71.html", null ], + [ "r", "functions_0x72.html", null ], + [ "s", "functions_0x73.html", null ], + [ "t", "functions_0x74.html", null ], + [ "u", "functions_0x75.html", null ], + [ "v", "functions_0x76.html", null ], + [ "w", "functions_0x77.html", null ], + [ "x", "functions_0x78.html", null ], + [ "y", "functions_0x79.html", null ], + [ "z", "functions_0x7a.html", null ], + [ "~", "functions_0x7e.html", null ] +]; \ No newline at end of file diff --git a/doc/html/functions_func.html b/doc/html/functions_func.html new file mode 100644 index 0000000..0a279d3 --- /dev/null +++ b/doc/html/functions_func.html @@ -0,0 +1,100 @@ + + + + + + + +Templates -- Meow: Class Members - Functions + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + + + + + + + diff --git a/doc/html/functions_func.js b/doc/html/functions_func.js new file mode 100644 index 0000000..6b182ae --- /dev/null +++ b/doc/html/functions_func.js @@ -0,0 +1,30 @@ +var functions_func = +[ + [ "a", "functions_func.html", null ], + [ "b", "functions_func_0x62.html", null ], + [ "c", "functions_func_0x63.html", null ], + [ "d", "functions_func_0x64.html", null ], + [ "e", "functions_func_0x65.html", null ], + [ "f", "functions_func_0x66.html", null ], + [ "g", "functions_func_0x67.html", null ], + [ "h", "functions_func_0x68.html", null ], + [ "i", "functions_func_0x69.html", null ], + [ "j", "functions_func_0x6a.html", null ], + [ "k", "functions_func_0x6b.html", null ], + [ "l", "functions_func_0x6c.html", null ], + [ "m", "functions_func_0x6d.html", null ], + [ "n", "functions_func_0x6e.html", null ], + [ "o", "functions_func_0x6f.html", null ], + [ "p", "functions_func_0x70.html", null ], + [ "q", "functions_func_0x71.html", null ], + [ "r", "functions_func_0x72.html", null ], + [ "s", "functions_func_0x73.html", null ], + [ "t", "functions_func_0x74.html", null ], + [ "u", "functions_func_0x75.html", null ], + [ "v", "functions_func_0x76.html", null ], + [ "w", "functions_func_0x77.html", null ], + [ "x", "functions_func_0x78.html", null ], + [ "y", "functions_func_0x79.html", null ], + [ "z", "functions_func_0x7a.html", null ], + [ "~", "functions_func_0x7e.html", null ] +]; \ No newline at end of file diff --git a/doc/html/functions_func_0x62.html b/doc/html/functions_func_0x62.html new file mode 100644 index 0000000..ca77ae4 --- /dev/null +++ b/doc/html/functions_func_0x62.html @@ -0,0 +1,111 @@ + + + + + + + +Templates -- Meow: Class Members - Functions + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +  + +

      - b -

      +
      +
      + + + + + diff --git a/doc/html/functions_func_0x63.html b/doc/html/functions_func_0x63.html new file mode 100644 index 0000000..458e22d --- /dev/null +++ b/doc/html/functions_func_0x63.html @@ -0,0 +1,200 @@ + + + + + + + +Templates -- Meow: Class Members - Functions + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +  + +

      - c -

      +
      +
      + + + + + diff --git a/doc/html/functions_func_0x64.html b/doc/html/functions_func_0x64.html new file mode 100644 index 0000000..202dd95 --- /dev/null +++ b/doc/html/functions_func_0x64.html @@ -0,0 +1,111 @@ + + + + + + + +Templates -- Meow: Class Members - Functions + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + + + + + + + diff --git a/doc/html/functions_func_0x65.html b/doc/html/functions_func_0x65.html new file mode 100644 index 0000000..d8ac299 --- /dev/null +++ b/doc/html/functions_func_0x65.html @@ -0,0 +1,122 @@ + + + + + + + +Templates -- Meow: Class Members - Functions + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + + + + + + + diff --git a/doc/html/functions_func_0x66.html b/doc/html/functions_func_0x66.html new file mode 100644 index 0000000..e7927b3 --- /dev/null +++ b/doc/html/functions_func_0x66.html @@ -0,0 +1,118 @@ + + + + + + + +Templates -- Meow: Class Members - Functions + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + + + + + + + diff --git a/doc/html/functions_func_0x67.html b/doc/html/functions_func_0x67.html new file mode 100644 index 0000000..32a2641 --- /dev/null +++ b/doc/html/functions_func_0x67.html @@ -0,0 +1,110 @@ + + + + + + + +Templates -- Meow: Class Members - Functions + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +  + +

      - g -

      +
      +
      + + + + + diff --git a/doc/html/functions_func_0x68.html b/doc/html/functions_func_0x68.html new file mode 100644 index 0000000..efa0711 --- /dev/null +++ b/doc/html/functions_func_0x68.html @@ -0,0 +1,129 @@ + + + + + + + +Templates -- Meow: Class Members - Functions + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +  + +

      - h -

      +
      +
      + + + + + diff --git a/doc/html/functions_func_0x69.html b/doc/html/functions_func_0x69.html new file mode 100644 index 0000000..2d8cb89 --- /dev/null +++ b/doc/html/functions_func_0x69.html @@ -0,0 +1,133 @@ + + + + + + + +Templates -- Meow: Class Members - Functions + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + + + + + + + diff --git a/doc/html/functions_func_0x6a.html b/doc/html/functions_func_0x6a.html new file mode 100644 index 0000000..c56d81f --- /dev/null +++ b/doc/html/functions_func_0x6a.html @@ -0,0 +1,87 @@ + + + + + + + +Templates -- Meow: Class Members - Functions + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + + + + + + + diff --git a/doc/html/functions_func_0x6b.html b/doc/html/functions_func_0x6b.html new file mode 100644 index 0000000..7cd6e4d --- /dev/null +++ b/doc/html/functions_func_0x6b.html @@ -0,0 +1,80 @@ + + + + + + + +Templates -- Meow: Class Members - Functions + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + + + + + + + diff --git a/doc/html/functions_func_0x6c.html b/doc/html/functions_func_0x6c.html new file mode 100644 index 0000000..5ff63a0 --- /dev/null +++ b/doc/html/functions_func_0x6c.html @@ -0,0 +1,106 @@ + + + + + + + +Templates -- Meow: Class Members - Functions + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + + + + + + + diff --git a/doc/html/functions_func_0x6d.html b/doc/html/functions_func_0x6d.html new file mode 100644 index 0000000..ddeb883 --- /dev/null +++ b/doc/html/functions_func_0x6d.html @@ -0,0 +1,145 @@ + + + + + + + +Templates -- Meow: Class Members - Functions + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + + + + + + + diff --git a/doc/html/functions_func_0x6e.html b/doc/html/functions_func_0x6e.html new file mode 100644 index 0000000..db6e38c --- /dev/null +++ b/doc/html/functions_func_0x6e.html @@ -0,0 +1,95 @@ + + + + + + + +Templates -- Meow: Class Members - Functions + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + + + + + + + diff --git a/doc/html/functions_func_0x6f.html b/doc/html/functions_func_0x6f.html new file mode 100644 index 0000000..f835aa4 --- /dev/null +++ b/doc/html/functions_func_0x6f.html @@ -0,0 +1,260 @@ + + + + + + + +Templates -- Meow: Class Members - Functions + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +  + +

      - o -

      +
      +
      + + + + + diff --git a/doc/html/functions_func_0x70.html b/doc/html/functions_func_0x70.html new file mode 100644 index 0000000..0d5c9a7 --- /dev/null +++ b/doc/html/functions_func_0x70.html @@ -0,0 +1,184 @@ + + + + + + + +Templates -- Meow: Class Members - Functions + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +  + +

      - p -

      +
      +
      + + + + + diff --git a/doc/html/functions_func_0x71.html b/doc/html/functions_func_0x71.html new file mode 100644 index 0000000..90c3b0b --- /dev/null +++ b/doc/html/functions_func_0x71.html @@ -0,0 +1,80 @@ + + + + + + + +Templates -- Meow: Class Members - Functions + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + + + + + + + diff --git a/doc/html/functions_func_0x72.html b/doc/html/functions_func_0x72.html new file mode 100644 index 0000000..7a0b2c3 --- /dev/null +++ b/doc/html/functions_func_0x72.html @@ -0,0 +1,218 @@ + + + + + + + +Templates -- Meow: Class Members - Functions + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +  + +

      - r -

      +
      +
      + + + + + diff --git a/doc/html/functions_func_0x73.html b/doc/html/functions_func_0x73.html new file mode 100644 index 0000000..3e69980 --- /dev/null +++ b/doc/html/functions_func_0x73.html @@ -0,0 +1,140 @@ + + + + + + + +Templates -- Meow: Class Members - Functions + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + + + + + + + diff --git a/doc/html/functions_func_0x74.html b/doc/html/functions_func_0x74.html new file mode 100644 index 0000000..c9a2a53 --- /dev/null +++ b/doc/html/functions_func_0x74.html @@ -0,0 +1,125 @@ + + + + + + + +Templates -- Meow: Class Members - Functions + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + + + + + + + diff --git a/doc/html/functions_func_0x75.html b/doc/html/functions_func_0x75.html new file mode 100644 index 0000000..e7bf4e9 --- /dev/null +++ b/doc/html/functions_func_0x75.html @@ -0,0 +1,105 @@ + + + + + + + +Templates -- Meow: Class Members - Functions + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +  + +

      - u -

      +
      +
      + + + + + diff --git a/doc/html/functions_func_0x76.html b/doc/html/functions_func_0x76.html new file mode 100644 index 0000000..c3afdcf --- /dev/null +++ b/doc/html/functions_func_0x76.html @@ -0,0 +1,123 @@ + + + + + + + +Templates -- Meow: Class Members - Functions + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + + + + + + + diff --git a/doc/html/functions_func_0x77.html b/doc/html/functions_func_0x77.html new file mode 100644 index 0000000..a677ce3 --- /dev/null +++ b/doc/html/functions_func_0x77.html @@ -0,0 +1,101 @@ + + + + + + + +Templates -- Meow: Class Members - Functions + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + + + + + + + diff --git a/doc/html/functions_func_0x78.html b/doc/html/functions_func_0x78.html new file mode 100644 index 0000000..7512df2 --- /dev/null +++ b/doc/html/functions_func_0x78.html @@ -0,0 +1,87 @@ + + + + + + + +Templates -- Meow: Class Members - Functions + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + + + + + + + diff --git a/doc/html/functions_func_0x79.html b/doc/html/functions_func_0x79.html new file mode 100644 index 0000000..38d1918 --- /dev/null +++ b/doc/html/functions_func_0x79.html @@ -0,0 +1,106 @@ + + + + + + + +Templates -- Meow: Class Members - Functions + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + + + + + + + diff --git a/doc/html/functions_func_0x7a.html b/doc/html/functions_func_0x7a.html new file mode 100644 index 0000000..12793af --- /dev/null +++ b/doc/html/functions_func_0x7a.html @@ -0,0 +1,79 @@ + + + + + + + +Templates -- Meow: Class Members - Functions + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +  + +

      - z -

      +
      +
      + + + + + diff --git a/doc/html/functions_func_0x7e.html b/doc/html/functions_func_0x7e.html new file mode 100644 index 0000000..3caf78a --- /dev/null +++ b/doc/html/functions_func_0x7e.html @@ -0,0 +1,185 @@ + + + + + + + +Templates -- Meow: Class Members - Functions + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +  + +

      - ~ -

      +
      +
      + + + + + diff --git a/doc/html/functions_rela.html b/doc/html/functions_rela.html new file mode 100644 index 0000000..9efd231 --- /dev/null +++ b/doc/html/functions_rela.html @@ -0,0 +1,74 @@ + + + + + + + +Templates -- Meow: Class Members - Related Functions + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      + + + + + diff --git a/doc/html/functions_type.html b/doc/html/functions_type.html new file mode 100644 index 0000000..577e18b --- /dev/null +++ b/doc/html/functions_type.html @@ -0,0 +1,104 @@ + + + + + + + +Templates -- Meow: Class Members - Typedefs + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + + + + + + + diff --git a/doc/html/functions_vars.html b/doc/html/functions_vars.html new file mode 100644 index 0000000..e15570f --- /dev/null +++ b/doc/html/functions_vars.html @@ -0,0 +1,86 @@ + + + + + + + +Templates -- Meow: Class Members - Variables + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + + + + + + + diff --git a/doc/html/globals.html b/doc/html/globals.html new file mode 100644 index 0000000..3477660 --- /dev/null +++ b/doc/html/globals.html @@ -0,0 +1,80 @@ + + + + + + + +Templates -- Meow: File Members + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      Here is a list of all file members with links to the files they belong to:
      +
      +
      + + + + + diff --git a/doc/html/globals_defs.html b/doc/html/globals_defs.html new file mode 100644 index 0000000..963a2fd --- /dev/null +++ b/doc/html/globals_defs.html @@ -0,0 +1,80 @@ + + + + + + + +Templates -- Meow: File Members + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      + + + + + diff --git a/doc/html/hierarchy.html b/doc/html/hierarchy.html new file mode 100644 index 0000000..58f2fdb --- /dev/null +++ b/doc/html/hierarchy.html @@ -0,0 +1,148 @@ + + + + + + + +Templates -- Meow: Class Hierarchy + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      Class Hierarchy
      +
      +
      +
      This inheritance list is sorted roughly, but not completely, alphabetically:
      +
      [detail level 123]
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      oCmeow::BinaryIndexTree< Value >極度簡化的 SegmentTree 已無區間更新的操作
      oCmeow::Color3_Space< T >以三個channel所組成的色彩空間
      oCmeow::Color3_Space< double >
      |oCmeow::HSLf_Space以浮點數Y(亮度), U(色度), V(濃度) 三個值所組成的色彩空間
      |oCmeow::HSVf_Space以浮點數Y(亮度), U(色度), V(濃度) 三個值所組成的色彩空間
      |oCmeow::RGBf_Space以浮點數Red, Green, Blue 三個值所組成的色彩空間
      |\Cmeow::YUVf_Space以浮點數Y(亮度), U(色度), V(濃度) 三個值所組成的色彩空間
      oCmeow::Color3_Space< int >
      |\Cmeow::RGBi_Space以整數 Red, Green, Blue 三個值所組成的色彩空間
      oCmeow::DisjointSet用來維護一堆互斥集的資訊
      oCmeow::SplayTree< Key, Value >::Element類似 stliterator ,不過這邊叫做Element
      oCmeow::SplayTree_Range< Key, Value >::Element類似 stliterator ,不過這邊叫做Element
      oCmeow::FeaturePointIndexPair
      oCmeow::HashTableList< Data, HashFunc >一個當key相撞時會用list解決的hash_table
      oCmeow::KD_Tree< Vector, Scalar >k-dimension tree
      oCmeow::Matrix< Entry >matrix
      oCmeow::Matrix< Description >
      oCmeow::Matrix< double >
      oCmeow::Matrix< Pixel >
      oCmeow::Matrix< Scalar >
      oCmeow::MergeableHeap< Element >一個用 左偏樹 實作的 Maximum-Heap , 除了原本heap有的功能外, 還支援 merge 功能
      oCmeow::ObjBase一切物件的Base, 並要求每個物件都要有read, write, create, ... 等功能
      |oCmeow::IdentityPoints< int, double >
      |oCmeow::Bitmap< Pixel >二維點陣資料
      |oCmeow::Camera< Pixel >Camera
      |oCmeow::FeaturePoint< Scalar, Description >特徵點
      |oCmeow::FeaturePointsDetector< Pixel >
      ||\Cmeow::FeaturePointsDetector_Harris< Pixel >Harris corner detect
      |oCmeow::FeaturePointsMatch< Scalar, Description >
      ||\Cmeow::FeaturePointsMatch_K_Match< Scalar, Description >
      |oCmeow::IdentityPoints< ID, Scalar >把一個 std::map<ID,Vector<Scalar> > 包起來
      |oCmeow::ObjArray< T >純粹把 std::vector 包起來, 變成繼承自 ObjBase
      |oCmeow::ObjDictionary< Key, Value >純粹把 std::map 包起來, 變成繼承自 ObjBase
      |oCmeow::ObjProperties< SID >目前擺爛中
      |oCmeow::ObjType< Type, ReaderWriter >純粹把給定的 Type 包起來, 變成繼承自 ObjBase
      |oCmeow::Photo< Pixel >底片
      |oCmeow::ViewPort未完待續
      |\Cmeow::WatchBall< Pixel >多個camera, 一個offset, 一個rotation
      oCmeow::ObjSelector< id >利用register的概念, 達到runtime用string選擇要new的class
      oCmeow::ReaderWriter_double
      oCmeow::ReaderWriter_int
      oCmeow::ReaderWriter_size_t
      oCmeow::ReaderWriter_string
      oCmeow::SegmentTree< Value >中文名 線段樹
      oCmeow::Self< Data >具有copy on write, 且擁有比C++更靈活的reference機制
      oCmeow::Self< data_ >
      oCmeow::Self< Myself >
      oCmeow::SplayTree< Key, Value >是一種神乎其技的資料結構, 維護一堆 Key->Value . 並且支援 一些 std::map 難以快速實踐的操作, 如 split , merge , keyOffset
      oCmeow::SplayTree_Range< Key, Value >基本上跟SplayTree一樣, 不過這邊結合線段樹, 多了區間操作 (線段樹相關operator定義請見 SegmentTree )
      oCmeow::Transformation< Scalar >A base class for implementing kinds of transformations
      |oCmeow::BallProjection< Scalar >A ball projection is to project the given vector to a hyper-sphere
      |oCmeow::LinearTransformation< Scalar >A base class for implementing kinds of linear transformations
      ||\Cmeow::Rotation3D< Scalar >Rotation a point/vector alone an axis with given angle in 3D world
      |\Cmeow::PhotoProjection< Scalar >A photo projection is a kind of transformation that project point/vector to a flat photo
      oCmeow::Transformation< double >
      |oCmeow::LinearTransformation< double >
      ||\Cmeow::Rotation3D< double >
      |\Cmeow::PhotoProjection< double >
      oCmeow::Usage管理參數設置, 自訂usage document, 分析argc, argv
      oCmeow::Vector< Scalar >vector
      oCmeow::Vector2D< Scalar >2D's vector
      oCmeow::Vector2D< double >
      oCmeow::Vector3D< Scalar >3D's vector
      oCmeow::Vector3D< double >
      oCmeow::Vector3D< int >
      oCmeow::Vector3D< T >
      oCmeow::Vector< Description >
      oCmeow::Vector< double >
      oCmeow::VP_Tree< Vector, Scalar >跟KD_Tree很像歐
      oCdouble
      \Cint
      +
      +
      +
      + + + + + diff --git a/doc/html/hierarchy.js b/doc/html/hierarchy.js new file mode 100644 index 0000000..048c647 --- /dev/null +++ b/doc/html/hierarchy.js @@ -0,0 +1,83 @@ +var hierarchy = +[ + [ "meow::BinaryIndexTree< Value >", "classmeow_1_1BinaryIndexTree.html", null ], + [ "meow::Color3_Space< T >", "classmeow_1_1Color3__Space.html", null ], + [ "meow::Color3_Space< double >", "classmeow_1_1Color3__Space.html", [ + [ "meow::HSLf_Space", "classmeow_1_1HSLf__Space.html", null ], + [ "meow::HSVf_Space", "classmeow_1_1HSVf__Space.html", null ], + [ "meow::RGBf_Space", "classmeow_1_1RGBf__Space.html", null ], + [ "meow::YUVf_Space", "classmeow_1_1YUVf__Space.html", null ] + ] ], + [ "meow::Color3_Space< int >", "classmeow_1_1Color3__Space.html", [ + [ "meow::RGBi_Space", "classmeow_1_1RGBi__Space.html", null ] + ] ], + [ "meow::DisjointSet", "classmeow_1_1DisjointSet.html", null ], + [ "meow::SplayTree< Key, Value >::Element", "classmeow_1_1SplayTree_1_1Element.html", null ], + [ "meow::SplayTree_Range< Key, Value >::Element", "classmeow_1_1SplayTree__Range_1_1Element.html", null ], + [ "meow::FeaturePointIndexPair", "structmeow_1_1FeaturePointIndexPair.html", null ], + [ "meow::HashTableList< Data, HashFunc >", "classmeow_1_1HashTableList.html", null ], + [ "meow::KD_Tree< Vector, Scalar >", "classmeow_1_1KD__Tree.html", null ], + [ "meow::Matrix< Entry >", "classmeow_1_1Matrix.html", null ], + [ "meow::Matrix< Description >", "classmeow_1_1Matrix.html", null ], + [ "meow::Matrix< double >", "classmeow_1_1Matrix.html", null ], + [ "meow::Matrix< Pixel >", "classmeow_1_1Matrix.html", null ], + [ "meow::Matrix< Scalar >", "classmeow_1_1Matrix.html", null ], + [ "meow::MergeableHeap< Element >", "classmeow_1_1MergeableHeap.html", null ], + [ "meow::ObjBase", "classmeow_1_1ObjBase.html", [ + [ "meow::IdentityPoints< int, double >", "classmeow_1_1IdentityPoints.html", null ], + [ "meow::Bitmap< Pixel >", "classmeow_1_1Bitmap.html", null ], + [ "meow::Camera< Pixel >", "classmeow_1_1Camera.html", null ], + [ "meow::FeaturePoint< Scalar, Description >", "classmeow_1_1FeaturePoint.html", null ], + [ "meow::FeaturePointsDetector< Pixel >", "classmeow_1_1FeaturePointsDetector.html", [ + [ "meow::FeaturePointsDetector_Harris< Pixel >", "classmeow_1_1FeaturePointsDetector__Harris.html", null ] + ] ], + [ "meow::FeaturePointsMatch< Scalar, Description >", "classmeow_1_1FeaturePointsMatch.html", [ + [ "meow::FeaturePointsMatch_K_Match< Scalar, Description >", "classmeow_1_1FeaturePointsMatch__K__Match.html", null ] + ] ], + [ "meow::IdentityPoints< ID, Scalar >", "classmeow_1_1IdentityPoints.html", null ], + [ "meow::ObjArray< T >", "classmeow_1_1ObjArray.html", null ], + [ "meow::ObjDictionary< Key, Value >", "classmeow_1_1ObjDictionary.html", null ], + [ "meow::ObjProperties< SID >", "classmeow_1_1ObjProperties.html", null ], + [ "meow::ObjType< Type, ReaderWriter >", "classmeow_1_1ObjType.html", null ], + [ "meow::Photo< Pixel >", "classmeow_1_1Photo.html", null ], + [ "meow::ViewPort", "classmeow_1_1ViewPort.html", null ], + [ "meow::WatchBall< Pixel >", "classmeow_1_1WatchBall.html", null ] + ] ], + [ "meow::ObjSelector< id >", "classmeow_1_1ObjSelector.html", null ], + [ "meow::ReaderWriter_double", "classmeow_1_1ReaderWriter__double.html", null ], + [ "meow::ReaderWriter_int", "classmeow_1_1ReaderWriter__int.html", null ], + [ "meow::ReaderWriter_size_t", "classmeow_1_1ReaderWriter__size__t.html", null ], + [ "meow::ReaderWriter_string", "classmeow_1_1ReaderWriter__string.html", null ], + [ "meow::SegmentTree< Value >", "classmeow_1_1SegmentTree.html", null ], + [ "meow::Self< Data >", "classmeow_1_1Self.html", null ], + [ "meow::Self< data_ >", "classmeow_1_1Self.html", null ], + [ "meow::Self< Myself >", "classmeow_1_1Self.html", null ], + [ "meow::SplayTree< Key, Value >", "classmeow_1_1SplayTree.html", null ], + [ "meow::SplayTree_Range< Key, Value >", "classmeow_1_1SplayTree__Range.html", null ], + [ "meow::Transformation< Scalar >", "classmeow_1_1Transformation.html", [ + [ "meow::BallProjection< Scalar >", "classmeow_1_1BallProjection.html", null ], + [ "meow::LinearTransformation< Scalar >", "classmeow_1_1LinearTransformation.html", [ + [ "meow::Rotation3D< Scalar >", "classmeow_1_1Rotation3D.html", null ] + ] ], + [ "meow::PhotoProjection< Scalar >", "classmeow_1_1PhotoProjection.html", null ] + ] ], + [ "meow::Transformation< double >", "classmeow_1_1Transformation.html", [ + [ "meow::LinearTransformation< double >", "classmeow_1_1LinearTransformation.html", [ + [ "meow::Rotation3D< double >", "classmeow_1_1Rotation3D.html", null ] + ] ], + [ "meow::PhotoProjection< double >", "classmeow_1_1PhotoProjection.html", null ] + ] ], + [ "meow::Usage", "classmeow_1_1Usage.html", null ], + [ "meow::Vector< Scalar >", "classmeow_1_1Vector.html", null ], + [ "meow::Vector2D< Scalar >", "classmeow_1_1Vector2D.html", null ], + [ "meow::Vector2D< double >", "classmeow_1_1Vector2D.html", null ], + [ "meow::Vector3D< Scalar >", "classmeow_1_1Vector3D.html", null ], + [ "meow::Vector3D< double >", "classmeow_1_1Vector3D.html", null ], + [ "meow::Vector3D< int >", "classmeow_1_1Vector3D.html", null ], + [ "meow::Vector3D< T >", "classmeow_1_1Vector3D.html", null ], + [ "meow::Vector< Description >", "classmeow_1_1Vector.html", null ], + [ "meow::Vector< double >", "classmeow_1_1Vector.html", null ], + [ "meow::VP_Tree< Vector, Scalar >", "classmeow_1_1VP__Tree.html", null ], + [ "double", "classdouble.html", null ], + [ "int", "classint.html", null ] +]; \ No newline at end of file diff --git a/doc/html/index.html b/doc/html/index.html new file mode 100644 index 0000000..93e3ca6 --- /dev/null +++ b/doc/html/index.html @@ -0,0 +1,89 @@ + + + + + + + +Templates -- Meow: Main Page + + + + + + + + + + + +
      +
      + + + + + + + +
      +
      Templates -- Meow +  1.1.2 +
      +
      不能,也不應該先編譯成obj-file的templates
      +
      +
      + + +
      +
      + +
      +
      +
      + + + + + + + diff --git a/doc/html/jquery.js b/doc/html/jquery.js new file mode 100644 index 0000000..78ad0bd --- /dev/null +++ b/doc/html/jquery.js @@ -0,0 +1,77 @@ +/*! jQuery v1.7.1 jquery.com | jquery.org/license */ +(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!ck[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cl||(cl=c.createElement("iframe"),cl.frameBorder=cl.width=cl.height=0),b.appendChild(cl);if(!cm||!cl.createElement)cm=(cl.contentWindow||cl.contentDocument).document,cm.write((c.compatMode==="CSS1Compat"?"":"")+""),cm.close();d=cm.createElement(a),cm.body.appendChild(d),e=f.css(d,"display"),b.removeChild(cl)}ck[a]=e}return ck[a]}function cu(a,b){var c={};f.each(cq.concat.apply([],cq.slice(0,b)),function(){c[this]=a});return c}function ct(){cr=b}function cs(){setTimeout(ct,0);return cr=f.now()}function cj(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ci(){try{return new a.XMLHttpRequest}catch(b){}}function cc(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){if(c!=="border")for(;g=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?parseFloat(d):j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c
      a",d=q.getElementsByTagName("*"),e=q.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=q.getElementsByTagName("input")[0],b={leadingWhitespace:q.firstChild.nodeType===3,tbody:!q.getElementsByTagName("tbody").length,htmlSerialize:!!q.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:q.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete q.test}catch(s){b.deleteExpando=!1}!q.addEventListener&&q.attachEvent&&q.fireEvent&&(q.attachEvent("onclick",function(){b.noCloneEvent=!1}),q.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),q.appendChild(i),k=c.createDocumentFragment(),k.appendChild(q.lastChild),b.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,k.removeChild(i),k.appendChild(q),q.innerHTML="",a.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",q.style.width="2px",q.appendChild(j),b.reliableMarginRight=(parseInt((a.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(q.attachEvent)for(o in{submit:1,change:1,focusin:1})n="on"+o,p=n in q,p||(q.setAttribute(n,"return;"),p=typeof q[n]=="function"),b[o+"Bubbles"]=p;k.removeChild(q),k=g=h=j=q=i=null,f(function(){var a,d,e,g,h,i,j,k,m,n,o,r=c.getElementsByTagName("body")[0];!r||(j=1,k="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",m="visibility:hidden;border:0;",n="style='"+k+"border:5px solid #000;padding:0;'",o="
      "+""+"
      ",a=c.createElement("div"),a.style.cssText=m+"width:0;height:0;position:static;top:0;margin-top:"+j+"px",r.insertBefore(a,r.firstChild),q=c.createElement("div"),a.appendChild(q),q.innerHTML="
      t
      ",l=q.getElementsByTagName("td"),p=l[0].offsetHeight===0,l[0].style.display="",l[1].style.display="none",b.reliableHiddenOffsets=p&&l[0].offsetHeight===0,q.innerHTML="",q.style.width=q.style.paddingLeft="1px",f.boxModel=b.boxModel=q.offsetWidth===2,typeof q.style.zoom!="undefined"&&(q.style.display="inline",q.style.zoom=1,b.inlineBlockNeedsLayout=q.offsetWidth===2,q.style.display="",q.innerHTML="
      ",b.shrinkWrapBlocks=q.offsetWidth!==2),q.style.cssText=k+m,q.innerHTML=o,d=q.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,i={doesNotAddBorder:e.offsetTop!==5,doesAddBorderForTableAndCells:h.offsetTop===5},e.style.position="fixed",e.style.top="20px",i.fixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",i.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,i.doesNotIncludeMarginInBodyOffset=r.offsetTop!==j,r.removeChild(a),q=a=null,f.extend(b,i))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;h=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/\bhover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")}; +f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;le&&i.push({elem:this,matches:d.slice(e)});for(j=0;j0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

      ";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
      ";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h0)for(h=g;h=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/",""],legend:[1,"
      ","
      "],thead:[1,"","
      "],tr:[2,"","
      "],td:[3,"","
      "],col:[2,"","
      "],area:[1,"",""],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div
      ","
      "]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")), +f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function() +{for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||!bc.test("<"+a.nodeName)?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");b===c?bh.appendChild(o):U(b).appendChild(o),o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]===""&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return br.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bq,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bq.test(g)?g.replace(bq,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,b){var c,d,e;b=b.replace(bs,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b)));return c}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f===null&&g&&(e=g[b])&&(f=e),!bt.test(f)&&bu.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bD=/%20/g,bE=/\[\]$/,bF=/\r?\n/g,bG=/#.*$/,bH=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bI=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bJ=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bK=/^(?:GET|HEAD)$/,bL=/^\/\//,bM=/\?/,bN=/)<[^<]*)*<\/script>/gi,bO=/^(?:select|textarea)/i,bP=/\s+/,bQ=/([?&])_=[^&]*/,bR=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bS=f.fn.load,bT={},bU={},bV,bW,bX=["*/"]+["*"];try{bV=e.href}catch(bY){bV=c.createElement("a"),bV.href="",bV=bV.href}bW=bR.exec(bV.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bS)return bS.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
      ").append(c.replace(bN,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bO.test(this.nodeName)||bI.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bF,"\r\n")}}):{name:b.name,value:c.replace(bF,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b_(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b_(a,b);return a},ajaxSettings:{url:bV,isLocal:bJ.test(bW[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bX},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bZ(bT),ajaxTransport:bZ(bU),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?cb(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cc(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bH.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bG,"").replace(bL,bW[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bP),d.crossDomain==null&&(r=bR.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bW[1]&&r[2]==bW[2]&&(r[3]||(r[1]==="http:"?80:443))==(bW[3]||(bW[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bT,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bK.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bM.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bQ,"$1_="+x);d.url=y+(y===d.url?(bM.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bX+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bU,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)ca(g,a[g],c,e);return d.join("&").replace(bD,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cd=f.now(),ce=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cd++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ce.test(b.url)||e&&ce.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ce,l),b.url===j&&(e&&(k=k.replace(ce,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cf=a.ActiveXObject?function(){for(var a in ch)ch[a](0,1)}:!1,cg=0,ch;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ci()||cj()}:ci,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c) +{if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cf&&delete ch[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cg,cf&&(ch||(ch={},f(a).unload(cf)),ch[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var ck={},cl,cm,cn=/^(?:toggle|show|hide)$/,co=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cp,cq=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cr;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,d,"padding")):this[d]():null},f.fn["outer"+c]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,d,a?"margin":"border")):this[d]():null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNumeric(j)?j:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window); +/*! + * jQuery UI 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI + */ +(function(a,b){function d(b){return!a(b).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}function c(b,c){var e=b.nodeName.toLowerCase();if("area"===e){var f=b.parentNode,g=f.name,h;if(!b.href||!g||f.nodeName.toLowerCase()!=="map")return!1;h=a("img[usemap=#"+g+"]")[0];return!!h&&d(h)}return(/input|select|textarea|button|object/.test(e)?!b.disabled:"a"==e?b.href||c:c)&&d(b)}a.ui=a.ui||{};a.ui.version||(a.extend(a.ui,{version:"1.8.18",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}}),a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(b,c){return typeof b=="number"?this.each(function(){var d=this;setTimeout(function(){a(d).focus(),c&&c.call(d)},b)}):this._focus.apply(this,arguments)},scrollParent:function(){var b;a.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?b=this.parents().filter(function(){return/(relative|absolute|fixed)/.test(a.curCSS(this,"position",1))&&/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0):b=this.parents().filter(function(){return/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!b.length?a(document):b},zIndex:function(c){if(c!==b)return this.css("zIndex",c);if(this.length){var d=a(this[0]),e,f;while(d.length&&d[0]!==document){e=d.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){f=parseInt(d.css("zIndex"),10);if(!isNaN(f)&&f!==0)return f}d=d.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}}),a.each(["Width","Height"],function(c,d){function h(b,c,d,f){a.each(e,function(){c-=parseFloat(a.curCSS(b,"padding"+this,!0))||0,d&&(c-=parseFloat(a.curCSS(b,"border"+this+"Width",!0))||0),f&&(c-=parseFloat(a.curCSS(b,"margin"+this,!0))||0)});return c}var e=d==="Width"?["Left","Right"]:["Top","Bottom"],f=d.toLowerCase(),g={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};a.fn["inner"+d]=function(c){if(c===b)return g["inner"+d].call(this);return this.each(function(){a(this).css(f,h(this,c)+"px")})},a.fn["outer"+d]=function(b,c){if(typeof b!="number")return g["outer"+d].call(this,b);return this.each(function(){a(this).css(f,h(this,b,!0,c)+"px")})}}),a.extend(a.expr[":"],{data:function(b,c,d){return!!a.data(b,d[3])},focusable:function(b){return c(b,!isNaN(a.attr(b,"tabindex")))},tabbable:function(b){var d=a.attr(b,"tabindex"),e=isNaN(d);return(e||d>=0)&&c(b,!e)}}),a(function(){var b=document.body,c=b.appendChild(c=document.createElement("div"));c.offsetHeight,a.extend(c.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0}),a.support.minHeight=c.offsetHeight===100,a.support.selectstart="onselectstart"in c,b.removeChild(c).style.display="none"}),a.extend(a.ui,{plugin:{add:function(b,c,d){var e=a.ui[b].prototype;for(var f in d)e.plugins[f]=e.plugins[f]||[],e.plugins[f].push([c,d[f]])},call:function(a,b,c){var d=a.plugins[b];if(!!d&&!!a.element[0].parentNode)for(var e=0;e0)return!0;b[d]=1,e=b[d]>0,b[d]=0;return e},isOverAxis:function(a,b,c){return a>b&&a=9)&&!b.button)return this._mouseUp(b);if(this._mouseStarted){this._mouseDrag(b);return b.preventDefault()}this._mouseDistanceMet(b)&&this._mouseDelayMet(b)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,b)!==!1,this._mouseStarted?this._mouseDrag(b):this._mouseUp(b));return!this._mouseStarted},_mouseUp:function(b){a(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,b.target==this._mouseDownEvent.target&&a.data(b.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(b));return!1},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(a){return this.mouseDelayMet},_mouseStart:function(a){},_mouseDrag:function(a){},_mouseStop:function(a){},_mouseCapture:function(a){return!0}})})(jQuery); +/* + * jQuery UI Resizable 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Resizables + * + * Depends: + * jquery.ui.core.js + * jquery.ui.mouse.js + * jquery.ui.widget.js + */ +(function(a,b){a.widget("ui.resizable",a.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1e3},_create:function(){var b=this,c=this.options;this.element.addClass("ui-resizable"),a.extend(this,{_aspectRatio:!!c.aspectRatio,aspectRatio:c.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:c.helper||c.ghost||c.animate?c.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)&&(this.element.wrap(a('
      ').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("resizable",this.element.data("resizable")),this.elementIsWrapper=!0,this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")}),this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0}),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css({margin:this.originalElement.css("margin")}),this._proportionallyResize()),this.handles=c.handles||(a(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se");if(this.handles.constructor==String){this.handles=="all"&&(this.handles="n,e,s,w,se,sw,ne,nw");var d=this.handles.split(",");this.handles={};for(var e=0;e
      ');/sw|se|ne|nw/.test(f)&&h.css({zIndex:++c.zIndex}),"se"==f&&h.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),this.handles[f]=".ui-resizable-"+f,this.element.append(h)}}this._renderAxis=function(b){b=b||this.element;for(var c in this.handles){this.handles[c].constructor==String&&(this.handles[c]=a(this.handles[c],this.element).show());if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var d=a(this.handles[c],this.element),e=0;e=/sw|ne|nw|se|n|s/.test(c)?d.outerHeight():d.outerWidth();var f=["padding",/ne|nw|n/.test(c)?"Top":/se|sw|s/.test(c)?"Bottom":/^e$/.test(c)?"Right":"Left"].join("");b.css(f,e),this._proportionallyResize()}if(!a(this.handles[c]).length)continue}},this._renderAxis(this.element),this._handles=a(".ui-resizable-handle",this.element).disableSelection(),this._handles.mouseover(function(){if(!b.resizing){if(this.className)var a=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=a&&a[1]?a[1]:"se"}}),c.autoHide&&(this._handles.hide(),a(this.element).addClass("ui-resizable-autohide").hover(function(){c.disabled||(a(this).removeClass("ui-resizable-autohide"),b._handles.show())},function(){c.disabled||b.resizing||(a(this).addClass("ui-resizable-autohide"),b._handles.hide())})),this._mouseInit()},destroy:function(){this._mouseDestroy();var b=function(b){a(b).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){b(this.element);var c=this.element;c.after(this.originalElement.css({position:c.css("position"),width:c.outerWidth(),height:c.outerHeight(),top:c.css("top"),left:c.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle),b(this.originalElement);return this},_mouseCapture:function(b){var c=!1;for(var d in this.handles)a(this.handles[d])[0]==b.target&&(c=!0);return!this.options.disabled&&c},_mouseStart:function(b){var d=this.options,e=this.element.position(),f=this.element;this.resizing=!0,this.documentScroll={top:a(document).scrollTop(),left:a(document).scrollLeft()},(f.is(".ui-draggable")||/absolute/.test(f.css("position")))&&f.css({position:"absolute",top:e.top,left:e.left}),this._renderProxy();var g=c(this.helper.css("left")),h=c(this.helper.css("top"));d.containment&&(g+=a(d.containment).scrollLeft()||0,h+=a(d.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:g,top:h},this.size=this._helper?{width:f.outerWidth(),height:f.outerHeight()}:{width:f.width(),height:f.height()},this.originalSize=this._helper?{width:f.outerWidth(),height:f.outerHeight()}:{width:f.width(),height:f.height()},this.originalPosition={left:g,top:h},this.sizeDiff={width:f.outerWidth()-f.width(),height:f.outerHeight()-f.height()},this.originalMousePosition={left:b.pageX,top:b.pageY},this.aspectRatio=typeof d.aspectRatio=="number"?d.aspectRatio:this.originalSize.width/this.originalSize.height||1;var i=a(".ui-resizable-"+this.axis).css("cursor");a("body").css("cursor",i=="auto"?this.axis+"-resize":i),f.addClass("ui-resizable-resizing"),this._propagate("start",b);return!0},_mouseDrag:function(b){var c=this.helper,d=this.options,e={},f=this,g=this.originalMousePosition,h=this.axis,i=b.pageX-g.left||0,j=b.pageY-g.top||0,k=this._change[h];if(!k)return!1;var l=k.apply(this,[b,i,j]),m=a.browser.msie&&a.browser.version<7,n=this.sizeDiff;this._updateVirtualBoundaries(b.shiftKey);if(this._aspectRatio||b.shiftKey)l=this._updateRatio(l,b);l=this._respectSize(l,b),this._propagate("resize",b),c.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"}),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),this._updateCache(l),this._trigger("resize",b,this.ui());return!1},_mouseStop:function(b){this.resizing=!1;var c=this.options,d=this;if(this._helper){var e=this._proportionallyResizeElements,f=e.length&&/textarea/i.test(e[0].nodeName),g=f&&a.ui.hasScroll(e[0],"left")?0:d.sizeDiff.height,h=f?0:d.sizeDiff.width,i={width:d.helper.width()-h,height:d.helper.height()-g},j=parseInt(d.element.css("left"),10)+(d.position.left-d.originalPosition.left)||null,k=parseInt(d.element.css("top"),10)+(d.position.top-d.originalPosition.top)||null;c.animate||this.element.css(a.extend(i,{top:k,left:j})),d.helper.height(d.size.height),d.helper.width(d.size.width),this._helper&&!c.animate&&this._proportionallyResize()}a("body").css("cursor","auto"),this.element.removeClass("ui-resizable-resizing"),this._propagate("stop",b),this._helper&&this.helper.remove();return!1},_updateVirtualBoundaries:function(a){var b=this.options,c,e,f,g,h;h={minWidth:d(b.minWidth)?b.minWidth:0,maxWidth:d(b.maxWidth)?b.maxWidth:Infinity,minHeight:d(b.minHeight)?b.minHeight:0,maxHeight:d(b.maxHeight)?b.maxHeight:Infinity};if(this._aspectRatio||a)c=h.minHeight*this.aspectRatio,f=h.minWidth/this.aspectRatio,e=h.maxHeight*this.aspectRatio,g=h.maxWidth/this.aspectRatio,c>h.minWidth&&(h.minWidth=c),f>h.minHeight&&(h.minHeight=f),ea.width,k=d(a.height)&&e.minHeight&&e.minHeight>a.height;j&&(a.width=e.minWidth),k&&(a.height=e.minHeight),h&&(a.width=e.maxWidth),i&&(a.height=e.maxHeight);var l=this.originalPosition.left+this.originalSize.width,m=this.position.top+this.size.height,n=/sw|nw|w/.test(g),o=/nw|ne|n/.test(g);j&&n&&(a.left=l-e.minWidth),h&&n&&(a.left=l-e.maxWidth),k&&o&&(a.top=m-e.minHeight),i&&o&&(a.top=m-e.maxHeight);var p=!a.width&&!a.height;p&&!a.left&&a.top?a.top=null:p&&!a.top&&a.left&&(a.left=null);return a},_proportionallyResize:function(){var b=this.options;if(!!this._proportionallyResizeElements.length){var c=this.helper||this.element;for(var d=0;d');var d=a.browser.msie&&a.browser.version<7,e=d?1:0,f=d?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+f,height:this.element.outerHeight()+f,position:"absolute",left:this.elementOffset.left-e+"px",top:this.elementOffset.top-e+"px",zIndex:++c.zIndex}),this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(a,b,c){return{width:this.originalSize.width+b}},w:function(a,b,c){var d=this.options,e=this.originalSize,f=this.originalPosition;return{left:f.left+b,width:e.width-b}},n:function(a,b,c){var d=this.options,e=this.originalSize,f=this.originalPosition;return{top:f.top+c,height:e.height-c}},s:function(a,b,c){return{height:this.originalSize.height+c}},se:function(b,c,d){return a.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,c,d]))},sw:function(b,c,d){return a.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,c,d]))},ne:function(b,c,d){return a.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[b,c,d]))},nw:function(b,c,d){return a.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,c,d]))}},_propagate:function(b,c){a.ui.plugin.call(this,b,[c,this.ui()]),b!="resize"&&this._trigger(b,c,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),a.extend(a.ui.resizable,{version:"1.8.18"}),a.ui.plugin.add("resizable","alsoResize",{start:function(b,c){var d=a(this).data("resizable"),e=d.options,f=function(b){a(b).each(function(){var b=a(this);b.data("resizable-alsoresize",{width:parseInt(b.width(),10),height:parseInt(b.height(),10),left:parseInt(b.css("left"),10),top:parseInt(b.css("top"),10)})})};typeof e.alsoResize=="object"&&!e.alsoResize.parentNode?e.alsoResize.length?(e.alsoResize=e.alsoResize[0],f(e.alsoResize)):a.each(e.alsoResize,function(a){f(a)}):f(e.alsoResize)},resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.originalSize,g=d.originalPosition,h={height:d.size.height-f.height||0,width:d.size.width-f.width||0,top:d.position.top-g.top||0,left:d.position.left-g.left||0},i=function(b,d){a(b).each(function(){var b=a(this),e=a(this).data("resizable-alsoresize"),f={},g=d&&d.length?d:b.parents(c.originalElement[0]).length?["width","height"]:["width","height","top","left"];a.each(g,function(a,b){var c=(e[b]||0)+(h[b]||0);c&&c>=0&&(f[b]=c||null)}),b.css(f)})};typeof e.alsoResize=="object"&&!e.alsoResize.nodeType?a.each(e.alsoResize,function(a,b){i(a,b)}):i(e.alsoResize)},stop:function(b,c){a(this).removeData("resizable-alsoresize")}}),a.ui.plugin.add("resizable","animate",{stop:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d._proportionallyResizeElements,g=f.length&&/textarea/i.test(f[0].nodeName),h=g&&a.ui.hasScroll(f[0],"left")?0:d.sizeDiff.height,i=g?0:d.sizeDiff.width,j={width:d.size.width-i,height:d.size.height-h},k=parseInt(d.element.css("left"),10)+(d.position.left-d.originalPosition.left)||null,l=parseInt(d.element.css("top"),10)+(d.position.top-d.originalPosition.top)||null;d.element.animate(a.extend(j,l&&k?{top:l,left:k}:{}),{duration:e.animateDuration,easing:e.animateEasing,step:function(){var c={width:parseInt(d.element.css("width"),10),height:parseInt(d.element.css("height"),10),top:parseInt(d.element.css("top"),10),left:parseInt(d.element.css("left"),10)};f&&f.length&&a(f[0]).css({width:c.width,height:c.height}),d._updateCache(c),d._propagate("resize",b)}})}}),a.ui.plugin.add("resizable","containment",{start:function(b,d){var e=a(this).data("resizable"),f=e.options,g=e.element,h=f.containment,i=h instanceof a?h.get(0):/parent/.test(h)?g.parent().get(0):h;if(!!i){e.containerElement=a(i);if(/document/.test(h)||h==document)e.containerOffset={left:0,top:0},e.containerPosition={left:0,top:0},e.parentData={element:a(document),left:0,top:0,width:a(document).width(),height:a(document).height()||document.body.parentNode.scrollHeight};else{var j=a(i),k=[];a(["Top","Right","Left","Bottom"]).each(function(a,b){k[a]=c(j.css("padding"+b))}),e.containerOffset=j.offset(),e.containerPosition=j.position(),e.containerSize={height:j.innerHeight()-k[3],width:j.innerWidth()-k[1]};var l=e.containerOffset,m=e.containerSize.height,n=e.containerSize.width,o=a.ui.hasScroll(i,"left")?i.scrollWidth:n,p=a.ui.hasScroll(i)?i.scrollHeight:m;e.parentData={element:i,left:l.left,top:l.top,width:o,height:p}}}},resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.containerSize,g=d.containerOffset,h=d.size,i=d.position,j=d._aspectRatio||b.shiftKey,k={top:0,left:0},l=d.containerElement;l[0]!=document&&/static/.test(l.css("position"))&&(k=g),i.left<(d._helper?g.left:0)&&(d.size.width=d.size.width+(d._helper?d.position.left-g.left:d.position.left-k.left),j&&(d.size.height=d.size.width/e.aspectRatio),d.position.left=e.helper?g.left:0),i.top<(d._helper?g.top:0)&&(d.size.height=d.size.height+(d._helper?d.position.top-g.top:d.position.top),j&&(d.size.width=d.size.height*e.aspectRatio),d.position.top=d._helper?g.top:0),d.offset.left=d.parentData.left+d.position.left,d.offset.top=d.parentData.top+d.position.top;var m=Math.abs((d._helper?d.offset.left-k.left:d.offset.left-k.left)+d.sizeDiff.width),n=Math.abs((d._helper?d.offset.top-k.top:d.offset.top-g.top)+d.sizeDiff.height),o=d.containerElement.get(0)==d.element.parent().get(0),p=/relative|absolute/.test(d.containerElement.css("position"));o&&p +&&(m-=d.parentData.left),m+d.size.width>=d.parentData.width&&(d.size.width=d.parentData.width-m,j&&(d.size.height=d.size.width/d.aspectRatio)),n+d.size.height>=d.parentData.height&&(d.size.height=d.parentData.height-n,j&&(d.size.width=d.size.height*d.aspectRatio))},stop:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.position,g=d.containerOffset,h=d.containerPosition,i=d.containerElement,j=a(d.helper),k=j.offset(),l=j.outerWidth()-d.sizeDiff.width,m=j.outerHeight()-d.sizeDiff.height;d._helper&&!e.animate&&/relative/.test(i.css("position"))&&a(this).css({left:k.left-h.left-g.left,width:l,height:m}),d._helper&&!e.animate&&/static/.test(i.css("position"))&&a(this).css({left:k.left-h.left-g.left,width:l,height:m})}}),a.ui.plugin.add("resizable","ghost",{start:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.size;d.ghost=d.originalElement.clone(),d.ghost.css({opacity:.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof e.ghost=="string"?e.ghost:""),d.ghost.appendTo(d.helper)},resize:function(b,c){var d=a(this).data("resizable"),e=d.options;d.ghost&&d.ghost.css({position:"relative",height:d.size.height,width:d.size.width})},stop:function(b,c){var d=a(this).data("resizable"),e=d.options;d.ghost&&d.helper&&d.helper.get(0).removeChild(d.ghost.get(0))}}),a.ui.plugin.add("resizable","grid",{resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.size,g=d.originalSize,h=d.originalPosition,i=d.axis,j=e._aspectRatio||b.shiftKey;e.grid=typeof e.grid=="number"?[e.grid,e.grid]:e.grid;var k=Math.round((f.width-g.width)/(e.grid[0]||1))*(e.grid[0]||1),l=Math.round((f.height-g.height)/(e.grid[1]||1))*(e.grid[1]||1);/^(se|s|e)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l):/^(ne)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l,d.position.top=h.top-l):/^(sw)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l,d.position.left=h.left-k):(d.size.width=g.width+k,d.size.height=g.height+l,d.position.top=h.top-l,d.position.left=h.left-k)}});var c=function(a){return parseInt(a,10)||0},d=function(a){return!isNaN(parseInt(a,10))}})(jQuery); +/* + * jQuery hashchange event - v1.3 - 7/21/2010 + * http://benalman.com/projects/jquery-hashchange-plugin/ + * + * Copyright (c) 2010 "Cowboy" Ben Alman + * Dual licensed under the MIT and GPL licenses. + * http://benalman.com/about/license/ + */ +(function($,e,b){var c="hashchange",h=document,f,g=$.event.special,i=h.documentMode,d="on"+c in e&&(i===b||i>7);function a(j){j=j||location.href;return"#"+j.replace(/^[^#]*#?(.*)$/,"$1")}$.fn[c]=function(j){return j?this.bind(c,j):this.trigger(c)};$.fn[c].delay=50;g[c]=$.extend(g[c],{setup:function(){if(d){return false}$(f.start)},teardown:function(){if(d){return false}$(f.stop)}});f=(function(){var j={},p,m=a(),k=function(q){return q},l=k,o=k;j.start=function(){p||n()};j.stop=function(){p&&clearTimeout(p);p=b};function n(){var r=a(),q=o(m);if(r!==m){l(m=r,q);$(e).trigger(c)}else{if(q!==m){location.href=location.href.replace(/#.*/,"")+q}}p=setTimeout(n,$.fn[c].delay)}$.browser.msie&&!d&&(function(){var q,r;j.start=function(){if(!q){r=$.fn[c].src;r=r&&r+a();q=$('