Cleaning up yaml, and adding funtionality.
authorTrevor Irons <tirons@egi.utah.edu>
Thu, 16 Jun 2016 18:14:36 +0000 (12:14 -0600)
committerTrevor Irons <tirons@egi.utah.edu>
Thu, 16 Jun 2016 18:14:36 +0000 (12:14 -0600)
examples/DEMGrain.cpp
include/DEM4Core
src/CMakeLists.txt
src/DEMParticle.cpp

index 2a7eb01..a07831a 100644 (file)
 
 #include "LemmaCore"
 #include "DEM4Core"
+
 using namespace Lemma;
 int main()
 {
-    auto Grain = DEMParticle::NewSP();
-    Grain->SetCentreMass( (Vector3r() << 2,3,4).finished() );
+    auto Grain = DEMGrain::NewSP();
+    Grain->SetCentreMass( (Vector3r() << 2.254,3.14,4.).finished() );
     std::cout << *Grain << std::endl;
     YAML::Node ng = Grain->Serialize();
 
@@ -31,11 +32,14 @@ int main()
 
     //Grain->SetCentreMass( pos );
 
-    auto Grain2 = DEMParticle::DeSerialize(ng);
+    auto Grain2 = DEMGrain::DeSerialize(ng);
     std::cout << *Grain2 << std::endl;
 
-    if ( Grain2 != Grain) {
+/*
+    if ( *Grain2 != *Grain) {
         std::cout << "Not Equal" << std::endl;
     }
+*/
+
 }
 
index d41a689..0e4fb53 100644 (file)
@@ -1 +1,5 @@
 #include "DEMParticle.h"
+#include "DEMGrain.h"
+
+/* vim: set tabstop=4 expandtab: */
+/* vim: set filetype=cpp: */
index 3307769..45f0fbe 100644 (file)
@@ -1,5 +1,6 @@
 set (DEMSOURCE
        ${DEMSOURCE}
        ${CMAKE_CURRENT_SOURCE_DIR}/DEMParticle.cpp
+       ${CMAKE_CURRENT_SOURCE_DIR}/DEMGrain.cpp
        PARENT_SCOPE
 )
index b90ac1c..f5b0234 100644 (file)
 namespace Lemma {
 
 // ====================  FRIEND METHODS  =====================
-#ifdef HAVE_YAMLCPP
+
 std::ostream &operator << (std::ostream &stream, const DEMParticle &ob) {
     stream << ob.Serialize()  << "\n---\n"; // End of doc --- as a direct stream should encapulste thingy
     return stream;
 }
-#else
-std::ostream &operator<<(std::ostream &stream, const DEMParticle& ob) {
-    stream << *(LemmaObject*)(&ob);
-    return stream;
-}
-#endif
 
 // ====================  LIFECYCLE     =======================
 
@@ -45,7 +39,6 @@ DEMParticle::DEMParticle (const std::string& name) : LemmaObject(name) {
 
 }  // -----  end of method DEMParticle::DEMParticle  (constructor)  -----
 
-#ifdef HAVE_YAMLCPP
 //--------------------------------------------------------------------------------------
 //       Class:  DEMParticle
 //      Method:  DEMParticle
@@ -54,7 +47,6 @@ DEMParticle::DEMParticle (const std::string& name) : LemmaObject(name) {
 DEMParticle::DEMParticle (const YAML::Node& node) : LemmaObject(node) {
     this->centreMass = node["centreMass"].as<Vector3r>();
 }  // -----  end of method DEMParticle::DEMParticle  (constructor)  -----
-#endif
 
 //--------------------------------------------------------------------------------------
 //       Class:  DEMParticle
@@ -75,14 +67,13 @@ DEMParticle::~DEMParticle () {
 
 }  // -----  end of method DEMParticle::~DEMParticle  (destructor)  -----
 
-#ifdef HAVE_YAMLCPP
 //--------------------------------------------------------------------------------------
 //       Class:  DEMParticle
 //      Method:  Serialize
 //--------------------------------------------------------------------------------------
 YAML::Node  DEMParticle::Serialize (  ) const {
     YAML::Node node = LemmaObject::Serialize();;
-    node.SetTag( this->GetName() );
+    node.SetTag( GetName() );
     // FILL IN CLASS SPECIFICS HERE
     node["centreMass"] = centreMass;
     return node;
@@ -93,12 +84,12 @@ YAML::Node  DEMParticle::Serialize (  ) const {
 //      Method:  DeSerialize
 //--------------------------------------------------------------------------------------
 std::shared_ptr<DEMParticle> DEMParticle::DeSerialize ( const YAML::Node& node  ) {
+    if (node.Tag() != "DEMParticle") {
+        throw  DeSerializeTypeMismatch( "DEMParticle", node.Tag());
+    }
     std::shared_ptr<DEMParticle> Object(new  DEMParticle(node), LemmaObjectDeleter() );
-    DESERIALIZECHECK( node, Object.get() )
-        return Object ;
+    return Object ;
 }              // -----  end of method DEMParticle::DeSerialize  -----
-#endif
-
 
 //--------------------------------------------------------------------------------------
 //       Class:  DEMParticle
@@ -120,3 +111,5 @@ void DEMParticle::SetCentreMass ( const Vector3r& pos ) {
 
 }              // -----  end of Lemma  name  -----
 
+/* vim: set tabstop=4 expandtab: */
+/* vim: set filetype=cpp: */