Browse Source

Implemented ClearXXX() methods

Konstantin Ladutenko 10 years ago
parent
commit
6436aa768a
2 changed files with 35 additions and 2 deletions
  1. 34 2
      nmie.cc
  2. 1 0
      nmie.h

+ 34 - 2
nmie.cc

@@ -288,7 +288,6 @@ namespace nmie {
   // ********************************************************************** //
   void MultiLayerMie::GenerateIndex() {
     index_.clear();
-    //index_.push_back({0.0, 0.0});
     for (auto index : target_index_) index_.push_back(index);
     for (auto index : coating_index_) index_.push_back(index);
   }  // end of void MultiLayerMie::GenerateIndex();
@@ -326,6 +325,39 @@ namespace nmie {
   // ********************************************************************** //
   // ********************************************************************** //
   // ********************************************************************** //
+  void MultiLayerMie::ClearTarget() {
+    target_width_.clear();
+    target_index_.clear();
+  }
+  // ********************************************************************** //
+  // ********************************************************************** //
+  // ********************************************************************** //
+  void MultiLayerMie::ClearCoating() {
+    coating_width_.clear();
+    coating_index_.clear();
+  }
+  // ********************************************************************** //
+  // ********************************************************************** //
+  // ********************************************************************** //
+  void MultiLayerMie::ClearLayers() {
+    ClearTarget();
+    ClearCoating();
+  }
+  // ********************************************************************** //
+  // ********************************************************************** //
+  // ********************************************************************** //
+  void MultiLayerMie::ClearAllDesign() {
+    ClearLayers();
+    size_parameter_.clear();
+    index_.clear();
+  }
+  // ********************************************************************** //
+  // ********************************************************************** //
+  // ********************************************************************** //
+  //                         Computational core
+  // ********************************************************************** //
+  // ********************************************************************** //
+  // ********************************************************************** //
   // Calculate Nstop - equation (17)
   //
   void MultiLayerMie::Nstop() {
@@ -961,7 +993,7 @@ c    MM       + 1  and - 1, alternately
   // ********************************************************************** //
   void MultiLayerMie::ConvertToSP() {
     if (target_width_.size() + coating_width_.size() == 0)
-      return;  // Nothing to convert
+      return;  // Nothing to convert, we suppose that SP was set directly
     GenerateSizeParameter();
     GenerateIndex();
     if (size_parameter_.size() != index_.size())

+ 1 - 0
nmie.h

@@ -106,6 +106,7 @@ namespace nmie {
     void ClearTarget();
     void ClearCoating();
     void ClearLayers();
+    void ClearAllDesign(); //Layers + SP + index_
 
     // Applied units requests
     double GetTotalRadius();