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