1 | #ifndef _FROG_ELEMENT_EVENT_NUCLINT_H__
|
---|
2 | #define _FROG_ELEMENT_EVENT_NUCLINT_H__
|
---|
3 |
|
---|
4 | #include "FROG_Element_Base.h"
|
---|
5 | #include "FROG_Objects_Extended.h"
|
---|
6 |
|
---|
7 | class FROG_Element_Event_NuclInt : public FROG_Element_Base {
|
---|
8 | public :
|
---|
9 | float PosX; float PosY; float PosZ; float likelihood;
|
---|
10 | FROG_Objects_Extended* frogObjects_;
|
---|
11 | unsigned int nameId_;
|
---|
12 |
|
---|
13 | virtual bool isCompactible(){ return true; }
|
---|
14 |
|
---|
15 | static unsigned int sizeOf(){ return FROG_Element_Base::sizeOf() + 4*sizeof(float);}
|
---|
16 |
|
---|
17 | FROG_Element_Event_NuclInt(float posX, float posY, float posZ, float likeli):
|
---|
18 | FROG_Element_Base(C_RECO_NUCL),
|
---|
19 | PosX(posX), PosY(posY), PosZ(posZ), likelihood(likeli)
|
---|
20 | {
|
---|
21 | size_ = sizeOf();
|
---|
22 | }
|
---|
23 |
|
---|
24 | FROG_Element_Event_NuclInt(FILE* pFile) : FROG_Element_Base(C_RECO_NUCL)
|
---|
25 | {
|
---|
26 | size_ = sizeOf();
|
---|
27 | fread(&PosX ,sizeof(PosX) ,1,pFile);
|
---|
28 | fread(&PosY ,sizeof(PosY) ,1,pFile);
|
---|
29 | fread(&PosZ ,sizeof(PosZ) ,1,pFile);
|
---|
30 | fread(&likelihood ,sizeof(likelihood) ,1,pFile);
|
---|
31 | }
|
---|
32 |
|
---|
33 | virtual void write () {
|
---|
34 | size_ = sizeOf();
|
---|
35 | data_ = new unsigned char[size_-6];
|
---|
36 | data_ = FillBuffer( data_, &PosX, sizeof(PosX));
|
---|
37 | data_ = FillBuffer( data_, &PosY, sizeof(PosY));
|
---|
38 | data_ = FillBuffer( data_, &PosZ, sizeof(PosZ));
|
---|
39 | data_ = FillBuffer( data_, &likelihood, sizeof(likelihood));
|
---|
40 | data_ = (unsigned char*)((unsigned long)data_ - (size_-6) );
|
---|
41 | }
|
---|
42 |
|
---|
43 | #ifdef FROG_OPENGL
|
---|
44 | virtual void display(bool UseDisplayList=true, float* color=NULL){
|
---|
45 | // first Init Colors & Style!
|
---|
46 | init(NULL);
|
---|
47 | glColor4fv (style_->color_);
|
---|
48 |
|
---|
49 | if(Start_Display(UseDisplayList)){
|
---|
50 | glLoadName( nameId_ );
|
---|
51 |
|
---|
52 | if(style_->marker_>0){
|
---|
53 | glBindTexture(GL_TEXTURE_2D,frogObjects_->getMarker(style_->marker_));
|
---|
54 | glEnable(GL_TEXTURE_2D);
|
---|
55 | glTexEnvf( GL_POINT_SPRITE_ARB, GL_COORD_REPLACE_ARB, GL_TRUE );
|
---|
56 | glEnable( GL_POINT_SPRITE_ARB );
|
---|
57 | }
|
---|
58 |
|
---|
59 | glPointSize (style_->markerSize_);
|
---|
60 | glBegin (GL_POINTS);
|
---|
61 | glVertex3f(PosX, PosY, PosZ);
|
---|
62 | glEnd();
|
---|
63 |
|
---|
64 | if(style_->marker_>0){
|
---|
65 | glDisable( GL_POINT_SPRITE_ARB );
|
---|
66 | glDisable(GL_TEXTURE_2D);
|
---|
67 | glBindTexture(GL_TEXTURE_2D,0);
|
---|
68 | }
|
---|
69 |
|
---|
70 | End_Display(UseDisplayList);
|
---|
71 | }
|
---|
72 | }
|
---|
73 | #endif
|
---|
74 |
|
---|
75 | virtual void init(void* frogObjects){
|
---|
76 | if(frogObjects!=NULL){
|
---|
77 | frogObjects_ = (FROG_Objects_Extended*) frogObjects;
|
---|
78 | nameId_ = frogObjects_->frogEvent_->name_map.size();
|
---|
79 | frogObjects_->frogEvent_->name_map.push_back(this);
|
---|
80 | }else if(frogObjects==NULL && frogObjects_ != NULL){
|
---|
81 | if(mother_ != NULL && mother_->style_ !=NULL){ style_ = mother_->style_;
|
---|
82 | }else{ style_ = new FROG_Objects_Style(); }
|
---|
83 | }
|
---|
84 | }
|
---|
85 |
|
---|
86 | };
|
---|
87 | #endif
|
---|