⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 osggeoanimation.h

📁 最新osg包
💻 H
字号:
// animation features of the CarbonGraphics .geo format// This file is required by external simulations to enable the user to// control the GEO internal, user & external variables.// The user creates one or two functions (here uvarupdate, extvarupdate).// These functions are demonstrated in geodemo.cpp.// Consider a model as being a class (or a subroutine).  The class has a 'draw' method// supplied by OSG, and the model can be animated (parts of the model //	rotate, move, change colour, become invisible etc.).//// The model developer attaches 'behaviours' to parts of the model (using the Geo graphical editor)// and assigns these behaviours to depend on variables.  There are 3 pools of variables://	Internal, usually time dependent variables which cannot be modified by the developer.//	User variables - may be a function of other variables, defined in the editor.//	External variables - the user written callback function extvarupdate sets these values on each frame of simulation.//	User & external variables may be defined as a mathematical or logical function of // all the variables (external variables, internal variables & user variables).// as a design rule, you should not normally attach a function to uvarupdate// these variables should be considered as local variables within a function and not accessed by the program.// The external variables should call a user written extvarupdate routine which can// access Ethernet, a data file, shared memory or any other code to model the dynamics of your model.#ifndef _GEO_ANIM_H_#define _GEO_ANIM_H_#include <osg/PositionAttitudeTransform>class geoHeader: public osg::PositionAttitudeTransform {	// structure for header of .geo file	// adds position attitude orientation for not Z up models,	// plus animation variables.public:	geoHeader() { 		uvarupdate=NULL; extvarupdate=NULL;	};	geoHeader(const geoHeader &geo,const osg::CopyOp& copyop=osg::CopyOp::SHALLOW_COPY) :		osg::PositionAttitudeTransform(geo,copyop)	{ 	//	const geoHeaderGeo *ghg=static_cast<const geoHeaderGeo *> (&geo);	}	~geoHeader() {}	void setUserUpdate(double (*ufn)(const double time,const double val, const std::string name) )	{ // pass the address of a user written function in the Update phase.		uvarupdate=ufn;	}	void setExternUpdate(double (*ufn)(const double time,const double val, const std::string name) )	{ // pass the address of a user written function in the Update phase.		extvarupdate=ufn;	}	double (* uvarupdate)(const double t, const double val, const std::string name); // called when variables are updated, you write this!	double (* extvarupdate)(const double t, const double val, const std::string name); // called when variables are updated, you write this!private:};#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -