getfem-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Getfem-commits] r5168 - /trunk/getfem/interface/src/gf_mesher_object.cc


From: Yves . Renard
Subject: [Getfem-commits] r5168 - /trunk/getfem/interface/src/gf_mesher_object.cc
Date: Tue, 08 Dec 2015 11:49:18 -0000

Author: renard
Date: Tue Dec  8 12:49:17 2015
New Revision: 5168

URL: http://svn.gna.org/viewcvs/getfem?rev=5168&view=rev
Log:
small simplification

Modified:
    trunk/getfem/interface/src/gf_mesher_object.cc

Modified: trunk/getfem/interface/src/gf_mesher_object.cc
URL: 
http://svn.gna.org/viewcvs/getfem/trunk/getfem/interface/src/gf_mesher_object.cc?rev=5168&r1=5167&r2=5168&view=diff
==============================================================================
--- trunk/getfem/interface/src/gf_mesher_object.cc      (original)
+++ trunk/getfem/interface/src/gf_mesher_object.cc      Tue Dec  8 12:49:17 2015
@@ -44,7 +44,7 @@
   int arg_in_min, arg_in_max, arg_out_min, arg_out_max;
   virtual void run(getfemint::mexargs_in& in,
                   getfemint::mexargs_out& out,
-                  pgetfemint_mesher_object &pmo) = 0;
+                  getfem::pmesher_signed_distance &psd) = 0;
 };
 
 typedef std::shared_ptr<sub_mesher_object> psub_command;
@@ -56,7 +56,7 @@
     struct subc : public sub_mesher_object {                           \
       virtual void run(getfemint::mexargs_in& in,                      \
                       getfemint::mexargs_out& out,                     \
-                      pgetfemint_mesher_object &pmo)                   \
+                      getfem::pmesher_signed_distance &psd) override   \
       { dummy_func(in); dummy_func(out); code }                                
\
     };                                                                 \
     psub_command psubc = std::make_shared<subc>();                     \
@@ -85,10 +85,7 @@
        getfem::base_node bncenter(gmm::vect_size(center));
        gmm::copy(center, bncenter);
 
-       getfem::pmesher_signed_distance ball
-       = getfem::new_mesher_ball(bncenter, radius);
-       
-       pmo = getfemint_mesher_object::get_from(ball);
+       psd = getfem::new_mesher_ball(bncenter, radius);
        );
 
     /address@hidden MF = ('half space', @vec origin, @vec normal_vector)
@@ -107,14 +104,12 @@
        getfem::base_node bnn(gmm::vect_size(n));
        gmm::copy(n, bnn);
 
-       getfem::pmesher_signed_distance half
-       = getfem::new_mesher_half_space(bnorigin, bnn);
-
-       pmo = getfemint_mesher_object::get_from(half);
+       psd = getfem::new_mesher_half_space(bnorigin, bnn);
        );
 
     /address@hidden MF = ('cylinder', @vec origin, @vec n, @scalar length, 
@scalar radius)
-      Represents a cylinder (in any dimension) of a certain radius whose axis 
is determined by the origin, a vector `n` and a certain length.
+      Represents a cylinder (in any dimension) of a certain radius whose axis
+      is determined by the origin, a vector `n` and a certain length.
       @*/
     sub_command
       ("cylinder", 4, 4, 0, 1,
@@ -128,14 +123,12 @@
        getfem::base_node bnn(gmm::vect_size(n));
        gmm::copy(n, bnn);
 
-       getfem::pmesher_signed_distance cyl
-       = getfem::new_mesher_cylinder(bnorigin, bnn, length, radius);
-
-       pmo = getfemint_mesher_object::get_from(cyl);
-       );
-
-        /address@hidden MF = ('cone', @vec origin, @vec n, @scalar length, 
@scalar half_angle)
-      Represents a cone (in any dimension) of a certain half-angle (in 
radians) whose axis is determined by the origin, a vector `n` and a certain 
length.
+       psd = getfem::new_mesher_cylinder(bnorigin, bnn, length, radius);
+       );
+
+    /address@hidden MF = ('cone', @vec origin, @vec n, @scalar length, @scalar 
half_angle)
+      Represents a cone (in any dimension) of a certain half-angle (in radians)
+      whose axis is determined by the origin, a vector `n` and a certain 
length.
       @*/
     sub_command
       ("cone", 4, 4, 0, 1,
@@ -149,10 +142,7 @@
        getfem::base_node bnn(gmm::vect_size(n));
        gmm::copy(n, bnn);
 
-       getfem::pmesher_signed_distance cone
-       = getfem::new_mesher_cone(bnorigin, bnn, length, half_angle);
-
-       pmo = getfemint_mesher_object::get_from(cone);
+       psd = getfem::new_mesher_cone(bnorigin, bnn, length, half_angle);
        );
 
     /address@hidden MF = ('torus', @scalar R, @scalar r)
@@ -164,11 +154,7 @@
       ("torus", 2, 2, 0, 1,
        double R = in.pop().to_scalar();
        double r = in.pop().to_scalar();
-
-       getfem::pmesher_signed_distance torus
-         = getfem::new_mesher_torus(R, r);
-
-       pmo = getfemint_mesher_object::get_from(torus);
+       psd  = getfem::new_mesher_torus(R, r);
        );
 
     
@@ -187,10 +173,7 @@
        getfem::base_node rrmin(N); getfem::base_node rrmax(N);
        gmm::copy(rmin, rrmin); gmm::copy(rmax, rrmax);
 
-       getfem::pmesher_signed_distance rectangle
-         = getfem::new_mesher_rectangle(rrmin, rrmax);
-
-       pmo = getfemint_mesher_object::get_from(rectangle);
+       psd = getfem::new_mesher_rectangle(rrmin, rrmax);
        );
 
 
@@ -199,21 +182,12 @@
       @*/
     sub_command
       ("intersect", 2, 100, 0, 1,
-
        std::vector<getfem::pmesher_signed_distance> vd;
-
-       getfem::pmesher_signed_distance psd
-          = in.pop().to_const_mesher_object();
-       vd.push_back(psd);
-
-       while (in.remaining()) {
-        psd = in.pop().to_const_mesher_object();
-        vd.push_back(psd);
-       }
-       
-       getfem::pmesher_signed_distance psd2 
-         = getfem::new_mesher_intersection(vd);
-       pmo = getfemint_mesher_object::get_from(psd2);
+       vd.push_back(in.pop().to_const_mesher_object());
+       while (in.remaining())
+        vd.push_back(in.pop().to_const_mesher_object());
+       
+       psd = getfem::new_mesher_intersection(vd);
        );
 
     /address@hidden MF = ('union', @tmo object1 , @tmo object2, ...)
@@ -221,20 +195,12 @@
       @*/
     sub_command
       ("union", 2, 100, 0, 1,
-
        std::vector<getfem::pmesher_signed_distance> vd;
-
-       getfem::pmesher_signed_distance psd
-       = in.pop().to_const_mesher_object();
-       vd.push_back(psd);
-
-       while (in.remaining()) {
-        psd = in.pop().to_const_mesher_object();
-        vd.push_back(psd);
-       }
-       
-       getfem::pmesher_signed_distance psd2 = getfem::new_mesher_union(vd);
-       pmo = getfemint_mesher_object::get_from(psd2);
+       vd.push_back(in.pop().to_const_mesher_object());
+       while (in.remaining())
+        vd.push_back(in.pop().to_const_mesher_object());
+       
+       psd = getfem::new_mesher_union(vd);
        );
 
     /address@hidden MF = ('set minus', @tmo object1 , @tmo object2)
@@ -242,21 +208,15 @@
       @*/
     sub_command
       ("set minus", 2, 100, 0, 1,
-
-       getfem::pmesher_signed_distance psd1
-          = in.pop().to_const_mesher_object();
-       getfem::pmesher_signed_distance psd2
-          = in.pop().to_const_mesher_object();
-       
-       getfem::pmesher_signed_distance psd
-         = getfem::new_mesher_setminus(psd1, psd2);
-       pmo = getfemint_mesher_object::get_from(psd);
+       getfem::pmesher_signed_distance psd1 = 
in.pop().to_const_mesher_object();
+       getfem::pmesher_signed_distance psd2 = 
in.pop().to_const_mesher_object();
+       psd = getfem::new_mesher_setminus(psd1, psd2);
        );
   }
 
 
   if (m_in.narg() < 1) THROW_BADARG("Wrong number of input arguments");
-  getfemint_mesher_object *pmo = NULL;
+  getfem::pmesher_signed_distance psd;
   
   std::string init_cmd   = m_in.pop().to_string();
   std::string cmd        = cmd_normalize(init_cmd);
@@ -267,10 +227,10 @@
     check_cmd(cmd, it->first.c_str(), m_in, m_out, it->second->arg_in_min,
              it->second->arg_in_max, it->second->arg_out_min,
              it->second->arg_out_max);
-    it->second->run(m_in, m_out, pmo);
+    it->second->run(m_in, m_out, psd);
   }
   else bad_cmd(init_cmd);
 
- 
+  getfemint_mesher_object *pmo = getfemint_mesher_object::get_from(psd);
   m_out.pop().from_object_id(pmo->get_id(), MESHER_OBJECT_CLASS_ID);
 }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]