diff --git a/doc/ICPWithoutYaml.md b/doc/ICPWithoutYaml.md index daee0dea..a3c8706c 100644 --- a/doc/ICPWithoutYaml.md +++ b/doc/ICPWithoutYaml.md @@ -20,26 +20,26 @@ Prepare the objects for the DataFilters: // Prepare reading filters name = "MinDistDataPointsFilter"; params["minDist"] = "1.0"; -PM::DataPointsFilter* minDist_read = +std::shared_ptr minDist_read = PM::get().DataPointsFilterRegistrar.create(name, params); params.clear(); name = "RandomSamplingDataPointsFilter"; params["prob"] = "0.05"; -PM::DataPointsFilter* rand_read = +std::shared_ptr rand_read = PM::get().DataPointsFilterRegistrar.create(name, params); params.clear(); // Prepare reference filters name = "MinDistDataPointsFilter"; params["minDist"] = "1.0"; -PM::DataPointsFilter* minDist_ref = +std::shared_ptr minDist_ref = PM::get().DataPointsFilterRegistrar.create(name, params); params.clear(); name = "RandomSamplingDataPointsFilter"; params["prob"] = "0.05"; -PM::DataPointsFilter* rand_ref = +std::shared_ptr rand_ref = PM::get().DataPointsFilterRegistrar.create(name, params); params.clear(); ``` @@ -51,7 +51,7 @@ Prepare the objects for the Matchers: name = "KDTreeMatcher"; params["knn"] = "1"; params["epsilon"] = "3.16"; -PM::Matcher* kdtree = +std::shared_ptr kdtree = PM::get().MatcherRegistrar.create(name, params); params.clear(); ``` @@ -62,7 +62,7 @@ Prepare the objects for the OutlierFilters: // Prepare outlier filters name = "TrimmedDistOutlierFilter"; params["ratio"] = "0.75"; -PM::OutlierFilter* trim = +std::shared_ptr trim = PM::get().OutlierFilterRegistrar.create(name, params); params.clear(); ``` @@ -72,7 +72,7 @@ Prepare the object for the ErrorMinimizer: ```cpp // Prepare error minimization name = "PointToPointErrorMinimizer"; -PM::ErrorMinimizer* pointToPoint = +std::shared_ptr pointToPoint = PM::get().ErrorMinimizerRegistrar.create(name); ``` @@ -82,7 +82,7 @@ Prepare the objects for the TransformationCheckers: // Prepare outlier filters name = "CounterTransformationChecker"; params["maxIterationCount"] = "150"; -PM::TransformationChecker* maxIter = +std::shared_ptr maxIter = PM::get().TransformationCheckerRegistrar.create(name, params); params.clear(); @@ -90,7 +90,7 @@ name = "DifferentialTransformationChecker"; params["minDiffRotErr"] = "0.001"; params["minDiffTransErr"] = "0.01"; params["smoothLength"] = "4"; -PM::TransformationChecker* diff = +std::shared_ptr diff = PM::get().TransformationCheckerRegistrar.create(name, params); params.clear(); ``` @@ -99,7 +99,7 @@ Prepare the objects for the Inspector: ```cpp // Prepare inspector -PM::Inspector* nullInspect = +std::shared_ptr nullInspect = PM::get().InspectorRegistrar.create("NullInspector"); ``` @@ -107,11 +107,11 @@ Prepare the objects for the Transformation: ```cpp // Prepare transformation -PM::Transformation* rigidTrans = +std::shared_ptr rigidTrans = PM::get().TransformationRegistrar.create("RigidTransformation"); ``` -Finally, build the complet solution: +Finally, build the complete solution: ```cpp // Build ICP solution @@ -121,16 +121,18 @@ icp.readingDataPointsFilters.push_back(rand_read); icp.referenceDataPointsFilters.push_back(minDist_ref); icp.referenceDataPointsFilters.push_back(rand_ref); -icp.matcher.reset(kdtree); - +icp.matcher = kdtree; + icp.outlierFilters.push_back(trim); - -icp.errorMinimizer.reset(pointToPoint); + +icp.errorMinimizer = pointToPoint; icp.transformationCheckers.push_back(maxIter); icp.transformationCheckers.push_back(diff); - -icp.inspector.reset(nullInspect); + +// toggle to write vtk files per iteration +icp.inspector = nullInspect; +//icp.inspector = vtkInspect; icp.transformations.push_back(rigidTrans); ``` diff --git a/doc/Transformations.md b/doc/Transformations.md index 2454f442..0a1bc1f2 100644 --- a/doc/Transformations.md +++ b/doc/Transformations.md @@ -40,8 +40,8 @@ int main(int argc, char *argv[]) { std::cout << "Transformation Matrix: " << std::endl << T << std::endl; - PM::Transformation* rigidTrans; - rigidTrans = PM::get().REG(Transformation).create("RigidTransformation").get(); + std::shared_ptr rigidTrans; + rigidTrans = PM::get().REG(Transformation).create("RigidTransformation"); if (!rigidTrans->checkParameters(T)) { std::cout << "WARNING: T does not represent a valid rigid transformation\nProjecting onto an orthogonal basis" diff --git a/examples/icp_customized.cpp b/examples/icp_customized.cpp index e3e69316..c5f4d131 100644 --- a/examples/icp_customized.cpp +++ b/examples/icp_customized.cpp @@ -136,15 +136,14 @@ int main(int argc, char *argv[]) std::shared_ptr nullInspect = PM::get().InspectorRegistrar.create("NullInspector"); - //name = "VTKFileInspector"; - // params["dumpDataLinks"] = "1"; - // params["dumpReading"] = "1"; - // params["dumpReference"] = "1"; +// name = "VTKFileInspector"; +// params["dumpDataLinks"] = "1"; +// params["dumpReading"] = "1"; +// params["dumpReference"] = "1"; +// std::shared_ptr vtkInspect = +// PM::get().InspectorRegistrar.create(name, params); +// params.clear(); - //PM::Inspector* vtkInspect = - // PM::get().InspectorRegistrar.create(name, params); - params.clear(); - // Prepare transformation std::shared_ptr rigidTrans = PM::get().TransformationRegistrar.create("RigidTransformation");