#ifndef OSG_POINT #define OSG_POINT 1 #include #include #include namespace osg { /** Point - encapsulates the OpenGL point smmothing and size state.*/ class SG_EXPORT Point : public StateAttribute { public : Point(); virtual Object* clone() const { return new Point(); } virtual bool isSameKindAs(const Object* obj) const { return dynamic_cast(obj)!=NULL; } virtual const char* className() const { return "Point"; } virtual const Type getType() const { return POINT; } virtual void setStateSetModes(StateSet& ds,const GLModeValue value) const { ds.setMode(GL_POINT_SMOOTH,value); } void setSize(const float size); inline const float getSize() const { return _size; } void setFadeThresholdSize(const float fadeThresholdSize); inline const float getFadeThresholdSize() const { return _fadeThresholdSize; } void setDistanceAttenuation(const Vec3& distanceAttenuation); inline const Vec3& getDistanceAttenuation() const { return _distanceAttenuation; } virtual void apply(State& state) const; static void init_GL_EXT(); protected : virtual ~Point(); float _size; float _fadeThresholdSize; Vec3 _distanceAttenuation; }; }; #endif