vpmulderpicker.h

来自「本站以C语言和Java语言、嵌入式开发、算法实现为主」· C头文件 代码 · 共 88 行

H
88
字号
// vpMulderPicker.h: interface for the vpMulderPicker class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_VPMULDERPICKER_H__DC059560_F2A0_4710_9C7C_6B2255046C08__INCLUDED_)
#define AFX_VPMULDERPICKER_H__DC059560_F2A0_4710_9C7C_6B2255046C08__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "vpPositionable.h"
#include "vpSearchPath.h"
#include "vpKernel.h"
#include "vuMath.h"
#include <vuImage.h>
#include <vuImageFactory.h>
#include <GL/gl.h>
#include <time.h> 
#include <vsgu.h>
#include <vp.h>
#include <vpApp.h>
#include <vuAllocTracer.h>
#include <vpIsectorLOS.h>
#include <vsDof.h>
#include <vsLod.h>
#include <vrLight.h>
#include <vrMode.h>
#include <vpInput.h>
#include <vpMotionUfo.h>
#include <vpInputMouse.h>
#include <vsTraversalUser.h>
#include <vsGeometry.h>
#include <vpInputKeyboard.h>
#include <vrRenderStrategy.h>

class vpMulderPicker
{
private:
	vuField<vpIsectorLOS*> m_isector;
	vrRenderStrategyBounds *m_boundsStrategy;
	bool enabled;
	vsNode *selectedNode;

private:
	vsNode * getParent(vsNode *child, vuClassType *classType);
	vsNode * getParent(vsNode *child);

	    vsNode *pick(vpChannel *channel, float mx, float my);
	void setRenderStrategy(vsNode *root, vrRenderStrategy *strategy);
    vsTraversal::Result travFuncGeometry(vsNode *node, vrRenderStrategy *strategy);

public:
	enum PickerTargetModeType {

        MODE_OBJECT,   
        MODE_GEOMETRY, 
        MODE_DOF,      
        MODE_LOD,      
		MODE_NAMEDPART

    }modeType;


public:
	bool performPickProcessing(vpChannel *chan);
	void setEnable(bool e);
	void setName(char *e);
	void setTarget(const vsNode *e);
	void setIsectMask(unsigned long e);
	void setRenderEnable(bool e);
	void setTargetMode(PickerTargetModeType e);
	void setHighlightColor(float r, float g, float b, float a );
	void setRenderGeometryEnable(bool e);
	void setWireframeEnable(bool e);
	void setLineWidth(float e);

	vpMulderPicker();
	virtual ~vpMulderPicker();

	vsNode* getSelectNode();
	vuVec3<double> * get3DPos();



};

#endif // !defined(AFX_VPMULDERPICKER_H__DC059560_F2A0_4710_9C7C_6B2255046C08__INCLUDED_)

⌨️ 快捷键说明

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