Show
Ignore:
Timestamp:
11/21/14 21:16:16 (38 hours ago)
Author:
robert
Message:

From Alberto Luaces,"the current code uses the preprocessor for generating the plugin path in
a way that when CMAKE_INSTALL_PREFIX contains something along the lines
of

/usr/x86_64-linux-gnu/

it gets substituted as

/usr/x86_64-1-gnu/

that is, the string is preprocessed again, thereby making changes to
anything that matches any defined symbol, as "linux" in this example
(https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=763816).

Quoting that path directly in CMake scripts solves that problem.
"

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • OpenSceneGraph/trunk/include/osgGA/GUIEventAdapter

    r13160 r13376  
    2222namespace osgGA{ 
    2323 
    24  
     24struct PointerData : public osg::Referenced 
     25{ 
     26    PointerData(): 
     27        object(0), 
     28        x(0.0f), 
     29        xMin(-1.0f), 
     30        xMax(1.0f), 
     31        y(0.0f), 
     32        yMin(-1.0f), 
     33        yMax(1.0f) {} 
     34     
     35    PointerData(osg::Object* obj, float in_x, float in_xMin, float in_xMax, float in_y, float in_yMin, float in_yMax): 
     36        object(obj), 
     37        x(in_x), 
     38        xMin(in_xMin), 
     39        xMax(in_xMax), 
     40        y(in_y), 
     41        yMin(in_yMin), 
     42        yMax(in_yMax) {} 
     43     
     44    PointerData(const PointerData& pd): 
     45        object(pd.object), 
     46        x(pd.x), 
     47        xMin(pd.xMin), 
     48        xMax(pd.xMax), 
     49        y(pd.y), 
     50        yMin(pd.yMin), 
     51        yMax(pd.yMax) {} 
     52     
     53    PointerData& operator = (const PointerData& pd) 
     54    { 
     55        if (&pd==this) return *this; 
     56     
     57        object = pd.object; 
     58        x = pd.x; 
     59        xMin = pd.xMin; 
     60        xMax = pd.xMax; 
     61        y = pd.y; 
     62        yMin = pd.yMin; 
     63        yMax = pd.yMax; 
     64         
     65        return *this; 
     66    } 
     67     
     68    osg::observer_ptr<osg::Object> object; 
     69    float x, xMin, xMax; 
     70    float y, yMin, yMax; 
     71     
     72    float getXnormalized() const { return (x-xMin)/(xMax-xMin)*2.0f-1.0f; } 
     73    float getYnormalized() const { return (y-yMin)/(yMax-yMin)*2.0f-1.0f; } 
     74}; 
     75 
     76     
    2577/** Event class for storing Keyboard, mouse and window events. 
    2678*/ 
     
    426478 
    427479        void setGraphicsContext(osg::GraphicsContext* context) { _context = context; } 
     480        osg::GraphicsContext* getGraphicsContext() { return _context.get(); } 
    428481        const osg::GraphicsContext* getGraphicsContext() const { return _context.get(); } 
    429482 
     
    515568        float getY() const { return _my; } 
    516569 
     570#if 1 
     571        inline float getXnormalized() const 
     572        { 
     573            return _pointerDataList.size()>=1 ?  
     574                   _pointerDataList[_pointerDataList.size()-1]->getXnormalized(): 
     575                   2.0f*(getX()-getXmin())/(getXmax()-getXmin())-1.0f; 
     576        } 
     577 
     578        inline float getYnormalized() const 
     579        { 
     580            if (_pointerDataList.size()>=1) return _pointerDataList[_pointerDataList.size()-1]->getYnormalized(); 
     581            if (_mouseYOrientation==Y_INCREASING_UPWARDS) return 2.0f*(getY()-getYmin())/(getYmax()-getYmin())-1.0f; 
     582            else return -(2.0f*(getY()-getYmin())/(getYmax()-getYmin())-1.0f); 
     583        } 
     584#else 
    517585        /** 
    518586         * return the current mouse x value normalized to the range of -1 to 1. 
     
    534602            else return -(2.0f*(getY()-getYmin())/(getYmax()-getYmin())-1.0f); 
    535603        } 
    536  
     604#endif 
    537605        /// set mouse-Y orientation (mouse-Y increases upwards or downwards). 
    538606        void setMouseYOrientation(MouseYOrientation myo) { _mouseYOrientation = myo; } 
     
    616684        TouchData* getTouchData() const { return _touchData.get(); } 
    617685        bool isMultiTouchEvent() const { return (_touchData.valid()); } 
     686 
     687         
     688        typedef std::vector< osg::ref_ptr<PointerData> > PointerDataList; 
     689        void setPointerDataList(const PointerDataList& pdl) { _pointerDataList = pdl; } 
     690        PointerDataList& getPointerDataList() { return _pointerDataList; } 
     691        const PointerDataList& getPointerDataList() const { return _pointerDataList; } 
     692 
     693        unsigned int getNumPointerData() const { return _pointerDataList.size(); } 
     694        PointerData* getPointerData(unsigned int i) { return _pointerDataList[i].get(); } 
     695        const PointerData* getPointerData(unsigned int i) const { return _pointerDataList[i].get(); } 
     696 
     697        PointerData* getPointerData(osg::Object* obj) { for(unsigned int i=0;i<_pointerDataList.size(); ++i) { if (_pointerDataList[i]->object==obj) return _pointerDataList[i].get(); } return 0; } 
     698        const PointerData* getPointerData(osg::Object* obj) const { for(unsigned int i=0;i<_pointerDataList.size(); ++i) { if (_pointerDataList[i]->object==obj) return _pointerDataList[i].get(); } return 0; } 
     699        void addPointerData(PointerData* pd) { _pointerDataList.push_back(pd); } 
     700         
     701        void copyPointerDataFrom(const osgGA::GUIEventAdapter& sourceEvent); 
    618702 
    619703    protected: 
     
    665749 
    666750        osg::ref_ptr<TouchData> _touchData; 
     751 
     752 
     753        PointerDataList _pointerDataList; 
    667754}; 
    668755