From e2c0143ffad6aa9a6f69944e1e63547a5efff22b Mon Sep 17 00:00:00 2001
From: Walter Van Herck <w.van.herck@fz-juelich.de>
Date: Thu, 27 Sep 2018 17:08:40 +0200
Subject: [PATCH] Add tetragonal lattice factory methods in Lattice

---
 Core/Lattice/Lattice.cpp | 18 +++++++++++++++++-
 Core/Lattice/Lattice.h   |  4 ++++
 2 files changed, 21 insertions(+), 1 deletion(-)

diff --git a/Core/Lattice/Lattice.cpp b/Core/Lattice/Lattice.cpp
index 73a5dc34973..775fa83ff13 100644
--- a/Core/Lattice/Lattice.cpp
+++ b/Core/Lattice/Lattice.cpp
@@ -163,7 +163,7 @@ Lattice Lattice::createFCCLattice(double a)
 Lattice Lattice::createHexagonalLattice(double a, double c)
 {
     kvector_t a1(a, 0.0, 0.0);
-    kvector_t a2(-a/2.0, std::sqrt(3.0)*a/2.0, 0);
+    kvector_t a2(-a/2.0, std::sqrt(3.0)*a/2.0, 0.0);
     kvector_t a3(0.0, 0.0, c);
     return Lattice(a1, a2, a3);
 }
@@ -176,6 +176,22 @@ Lattice Lattice::createHCPLattice(double a, double c)
     return Lattice(a1, a2, a3);
 }
 
+Lattice Lattice::createTetragonalLattice(double a, double c)
+{
+    kvector_t a1(a, 0.0, 0.0);
+    kvector_t a2(0.0, a, 0.0);
+    kvector_t a3(0.0, 0.0, c);
+    return Lattice(a1, a2, a3);
+}
+
+Lattice Lattice::createBCTLattice(double a, double c)
+{
+    kvector_t a1(a, 0.0, 0.0);
+    kvector_t a2(0.0, a, 0.0);
+    kvector_t a3(a/2.0, a/2.0, c/2.0);
+    return Lattice(a1, a2, a3);
+}
+
 void Lattice::onChange()
 {
     m_cache_ok = false;
diff --git a/Core/Lattice/Lattice.h b/Core/Lattice/Lattice.h
index f409672c485..b7e087e46cd 100644
--- a/Core/Lattice/Lattice.h
+++ b/Core/Lattice/Lattice.h
@@ -83,6 +83,10 @@ public:
 
     static Lattice createHCPLattice(double a, double c);
 
+    static Lattice createTetragonalLattice(double a, double c);
+
+    static Lattice createBCTLattice(double a, double c);
+
     void onChange() override;
 
 private:
-- 
GitLab