From 0ea5fc66924303d1bf73ba283a383e2aadee02f2 Mon Sep 17 00:00:00 2001 From: neodarz Date: Sat, 11 Aug 2018 20:21:34 +0200 Subject: Initial commit --- .../index.html | 177 +++++++++++++++++++++ 1 file changed, 177 insertions(+) create mode 100644 cvs/cvsweb.cgi/code/client/Attic/move_listener.h?rev=1.2&content-type=text/x-cvsweb-markup&hideattic=0&sortby=date/index.html (limited to 'cvs/cvsweb.cgi/code/client/Attic/move_listener.h?rev=1.2&content-type=text/x-cvsweb-markup&hideattic=0&sortby=date') diff --git a/cvs/cvsweb.cgi/code/client/Attic/move_listener.h?rev=1.2&content-type=text/x-cvsweb-markup&hideattic=0&sortby=date/index.html b/cvs/cvsweb.cgi/code/client/Attic/move_listener.h?rev=1.2&content-type=text/x-cvsweb-markup&hideattic=0&sortby=date/index.html new file mode 100644 index 00000000..7346d11d --- /dev/null +++ b/cvs/cvsweb.cgi/code/client/Attic/move_listener.h?rev=1.2&content-type=text/x-cvsweb-markup&hideattic=0&sortby=date/index.html @@ -0,0 +1,177 @@ + + + +code/client/move_listener.h - view - 1.2 + +
[BACK] Return to move_listener.h + CVS log [TXT][DIR] Up to Nevrax / code / client

File: Nevrax / code / client / Attic / move_listener.h (download)
+Revision 1.2, Mon Dec 4 17:58:09 2000 UTC (19 months, 3 weeks ago) by coutelas +
Branch: MAIN +
Changes since 1.1: +75 -65 + lines
+no message
+
+

/** \file move_listener.h
+ * <File description>
+ *
+ * $Id: move_listener.h,v 1.2 2000/12/04 17:58:09 coutelas Exp $
+ */
+
+/* Copyright, 2000 Nevrax Ltd.
+ *
+ * This file is part of NEVRAX NEL.
+ * NEVRAX NEL is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+
+ * NEVRAX NEL is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with NEVRAX NEL; see the file COPYING. If not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ * MA 02111-1307, USA.
+ */
+
+#ifndef NL_MOVE_LISTENER_H
+#define NL_MOVE_LISTENER_H
+
+#include "nel/misc/types_nl.h"
+#include "nel/misc/event_listener.h"
+#include "nel/misc/matrix.h"
+#include "nel/3d/viewport.h"
+#include "nel/3d/scene.h"
+#include "nel/3d/camera.h"
+
+
+
+namespace NL3D 
+{
+
+
+/**
+ * CMoveListener is a listener that handle a 3d matrix with mouse events.
+ * \author Stephane Coutelas
+ * \author Nevrax France
+ * \date 2000
+ */
+class CMoveListener : public NLMISC::IEventListener
+{
+public:
+        
+        /** 
+         * TMoveMode. 
+         * moving modes
+         */
+        enum TMoveMode
+        {
+                WALK,
+                FREE
+        };
+        
+        /** 
+         * Constructor. 
+         * You should call init then.
+         */
+        CMoveListener();
+
+
+        /** 
+         * Constructor. 
+         * You should call init then.
+         * \param scene the scene
+         * \param w screen width in pixels
+         * \param h screen height in pixels
+         * \param camera the camera
+         */
+        void init(CScene * scene, uint w, uint h, const class CCamera& camera)
+        {
+                _Scene = scene;
+                _Width = w;
+                _Height = h;
+                
+                _Viewport = scene->getViewport();
+
+                float dummy;
+                _ViewMatrix = camera.getMatrix ();
+                camera.getFrustum (_Left, _Right, _Bottom, _Top, _Depth, dummy);
+        }
+
+        /**
+         * Set the moving mode
+         * \param m the moving mode
+         */
+        void setMode(TMoveMode m)
+        {
+                _Mode = m;
+        }
+
+        /** 
+     * Register the listener to the server.
+         */
+        void addToServer (NLMISC::CEventServer& server);
+
+        /** 
+          * Unregister the listener to the server.
+          */
+        void removeFromServer (NLMISC::CEventServer& server);
+        
+
+private:
+
+        /// Internal use
+        virtual void operator()(const NLMISC::CEvent& event);
+
+        /// moving mode
+        TMoveMode _Mode;
+        
+        /// view matrix
+        NLMISC::CMatrix _ViewMatrix;
+
+        /// viewport
+        NL3D::CViewport        _Viewport;
+        
+        /// true if previous mouse move event was re-centering cursor
+        bool _CursorReset;
+
+        CScene * _Scene;
+        
+        /// screen width
+        uint _Width;
+
+        /// screen height
+        uint _Height;
+
+        ///frustum parameters
+        float _Top;
+        float _Bottom;
+        float _Left;
+        float _Right;
+        float _Depth;
+        
+        /// current position
+        CVector _Pos;
+
+        ///current rotation z angle
+        float _RotZ;
+
+        ///current rotation x angle
+        float _RotX;
+        
+        /// step for translation
+        static const float _StepTrans;
+
+        /// step for rotation
+        static const float _StepRot;
+
+}; // NL3D
+
+}
+
+#endif // NL_MOVE_LISTENER_H
+
+/* End of move_listener.h */
+
\ No newline at end of file -- cgit v1.2.1