1# $Header: /var/cvs/mbdyn/mbdyn/mbdyn-1.0/modules/module-octave/demo/my_func4.m,v 1.7 2017/01/12 14:56:29 masarati Exp $ 2# 3# MBDyn (C) is a multibody analysis code. 4# http://www.mbdyn.org 5# 6# Copyright (C) 1996-2017 7# 8# Pierangelo Masarati <masarati@aero.polimi.it> 9# Paolo Mantegazza <mantegazza@aero.polimi.it> 10# 11# Dipartimento di Ingegneria Aerospaziale - Politecnico di Milano 12# via La Masa, 34 - 20156 Milano, Italy 13# http://www.aero.polimi.it 14# 15# Changing this copyright notice is forbidden. 16# 17# This program is free software; you can redistribute it and/or modify 18# it under the terms of the GNU General Public License as published by 19# the Free Software Foundation (version 2 of the License). 20# 21# 22# This program is distributed in the hope that it will be useful, 23# but WITHOUT ANY WARRANTY; without even the implied warranty of 24# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 25# GNU General Public License for more details. 26# 27# You should have received a copy of the GNU General Public License 28# along with this program; if not, write to the Free Software 29# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 30# 31################################################################# 32## 33## AUTHOR: Reinhard Resch <r.resch@secop.com> 34## Copyright (C) 2011(-2017) all rights reserved. 35## 36## The copyright of this code is transferred 37## to Pierangelo Masarati and Paolo Mantegazza 38## for use in the software MBDyn as described 39## in the GNU Public License version 2.1 40## 41################################################################## 42 43function y = my_func4(t, pDM) 44 persistent f = pDM.GetVariable("f"); 45 persistent pNode1 = pDM.GetStructNode(int32(1)); 46 persistent MBDYN_VERSION = pDM.GetVersion(); 47 48 %printf("mboct: MBDyn version %s\n", MBDYN_VERSION); 49 %disp(typeinfo(pDM)); 50 51 X = pNode1.GetXCurr(); 52 R = pNode1.GetRCurr(); 53 V = pNode1.GetVCurr(); 54 W = pNode1.GetWCurr(); 55 56 XPP = pNode1.GetXPPCurr(); 57 WP = pNode1.GetWPCurr(); 58 59 [phi] = rotation_matrix_to_euler123(R); 60 61%{ 62 disp("mboct: X="); disp(X); 63 disp("mboct: phi="); disp(phi*180/pi); 64 disp("mboct: V="); disp(V); 65 disp("mboct: W="); disp(W); 66%} 67 y = norm(X); 68endfunction 69