From 41210da7400e8132ee37d896f6a3319f682f9c11 Mon Sep 17 00:00:00 2001
From: Tobias Schmidt <tobias.schmidt@unibas.ch>
Date: Fri, 29 Jul 2011 17:59:13 +0200
Subject: [PATCH] ConnectorImpl::SetDir/SetDirAndLength only set local_rot_ if
 direction =! 0

---
 modules/mol/base/src/impl/connector_impl.cc | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

diff --git a/modules/mol/base/src/impl/connector_impl.cc b/modules/mol/base/src/impl/connector_impl.cc
index 8bafe009b..3a5a61532 100644
--- a/modules/mol/base/src/impl/connector_impl.cc
+++ b/modules/mol/base/src/impl/connector_impl.cc
@@ -92,14 +92,22 @@ Real ConnectorImpl::GetLength() const
 }
 
 void ConnectorImpl::SetDir(const geom::Vec3& dir) {
-  geom::Vec3 v=Normalize(dir);
-  local_rot_=find_rotation(v);
+  if(Length(dir)==0) {
+    local_rot_=geom::Mat3(1,0,0,0,1,0,0,0,1);
+  } else {
+    geom::Vec3 v=Normalize(dir);
+    local_rot_=find_rotation(v);
+  }
 }
 
 void ConnectorImpl::SetDirAndLength(const geom::Vec3& dir) {
   len_=Length(dir);
-  geom::Vec3 v=dir/len_;
-  local_rot_=find_rotation(v);
+  if(len_==0) {
+    local_rot_=geom::Mat3(1,0,0,0,1,0,0,0,1);
+  } else {
+    geom::Vec3 v=dir/len_;
+    local_rot_=find_rotation(v);
+  }
 }
 
 bool ConnectorImpl::IsConnectorOf(const AtomImplPtr& a,
-- 
GitLab