00001 /*============================================================================= 00002 ** THE CONTENT OF THIS WORK IS PROPRIETARY TO FEI S.A.S, (FEI S.A.S.), ** 00003 ** AND IS DISTRIBUTED UNDER A LICENSE AGREEMENT. ** 00004 ** ** 00005 ** REPRODUCTION, DISCLOSURE, OR USE, IN WHOLE OR IN PART, OTHER THAN AS ** 00006 ** SPECIFIED IN THE LICENSE ARE NOT TO BE UNDERTAKEN EXCEPT WITH PRIOR ** 00007 ** WRITTEN AUTHORIZATION OF FEI S.A.S. ** 00008 ** ** 00009 ** RESTRICTED RIGHTS LEGEND ** 00010 ** USE, DUPLICATION, OR DISCLOSURE BY THE GOVERNMENT OF THE CONTENT OF THIS ** 00011 ** WORK OR RELATED DOCUMENTATION IS SUBJECT TO RESTRICTIONS AS SET FORTH IN ** 00012 ** SUBPARAGRAPH (C)(1) OF THE COMMERCIAL COMPUTER SOFTWARE RESTRICTED RIGHT ** 00013 ** CLAUSE AT FAR 52.227-19 OR SUBPARAGRAPH (C)(1)(II) OF THE RIGHTS IN ** 00014 ** TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 52.227-7013. ** 00015 ** ** 00016 ** COPYRIGHT (C) 1996-2022 BY FEI S.A.S, ** 00017 ** BORDEAUX, FRANCE ** 00018 ** ALL RIGHTS RESERVED ** 00019 =============================================================================*/ 00020 00021 #pragma once 00022 00023 #include <Inventor/actions/SoHighlightRenderAction.h> 00024 00025 SO_PIMPL_PUBLIC_DECLARATION( SoHaloHighlightRenderAction ) 00026 00027 00147 class SoHaloHighlightRenderAction : public SoHighlightRenderAction 00148 { 00149 SO_ACTION_HEADER( SoHaloHighlightRenderAction ); 00150 SO_PIMPL_PUBLIC_HEADER( SoHaloHighlightRenderAction ) 00151 00152 public: 00153 SoHaloHighlightRenderAction(); 00154 SoHaloHighlightRenderAction( const SbViewportRegion& viewportRegion ); 00155 00156 virtual ~SoHaloHighlightRenderAction(); 00157 00169 void setHaloColor( const SbColor& color ); 00170 00174 const SbColor& getHaloColor() const; 00175 00194 void setHaloWidth( int width ); 00195 00199 int getHaloWidth() const; 00200 00214 void setHaloAlwaysVisible( bool alwaysVisible ); 00215 00219 bool isHaloAlwaysVisible() const; 00220 00237 void setHaloSmoothFactor( float smoothFactor ); 00238 00242 float getHaloSmoothFactor() const; 00243 00244 static void initClass(); 00245 static void exitClass(); 00246 00247 private: 00249 virtual bool shouldTraverseHighlightPass() const; 00250 00251 private: 00253 virtual SoNode* getPreTraversalNode(); 00254 00256 virtual SoNode* getPostTraversalNode(); 00257 00258 private: 00259 // Copy Constructor Forbidden 00260 SoHaloHighlightRenderAction( const SoHaloHighlightRenderAction& ) : SoHighlightRenderAction() {} 00261 00262 void commonConstructor(); 00263 }; 00264