// This file is generated by WOK (CPPExt). // Please do not edit this file; modify original file instead. // The copyright and license terms as defined for the original file apply to // this header file considered to be the "object code" form of the original source. #ifndef _Graphic2d_Buffer_HeaderFile #define _Graphic2d_Buffer_HeaderFile #ifndef _Standard_HeaderFile #include #endif #ifndef _Standard_DefineHandle_HeaderFile #include #endif #ifndef _Handle_Graphic2d_Buffer_HeaderFile #include #endif #ifndef _Standard_Integer_HeaderFile #include #endif #ifndef _Standard_Boolean_HeaderFile #include #endif #ifndef _Handle_Aspect_WindowDriver_HeaderFile #include #endif #ifndef _Standard_ShortReal_HeaderFile #include #endif #ifndef _Aspect_TypeOfDrawMode_HeaderFile #include #endif #ifndef _Graphic2d_ViewPtr_HeaderFile #include #endif #ifndef _Graphic2d_SequenceOfPrimitives_HeaderFile #include #endif #ifndef _Graphic2d_SequenceOfGraphicObject_HeaderFile #include #endif #ifndef _MMgt_TShared_HeaderFile #include #endif #ifndef _Handle_Graphic2d_View_HeaderFile #include #endif #ifndef _Quantity_Length_HeaderFile #include #endif #ifndef _Handle_Graphic2d_GraphicObject_HeaderFile #include #endif #ifndef _Handle_Graphic2d_Primitive_HeaderFile #include #endif #ifndef _Quantity_PlaneAngle_HeaderFile #include #endif #ifndef _Quantity_Factor_HeaderFile #include #endif #ifndef _Handle_Graphic2d_ViewMapping_HeaderFile #include #endif #ifndef _Standard_Real_HeaderFile #include #endif class Aspect_WindowDriver; class Graphic2d_View; class Graphic2d_GraphicObject; class Graphic2d_Primitive; class Graphic2d_ViewMapping; //! This class constructs a 2D graphic buffer in a view. It
//! manages a set of graphic objects and/or primitives.
//! To draw the buffer, the following elements are required:
//! - the override color
//! - the font
//! - a solid line type
//! - thickness of 1 pixel.
//! With this category , the user can drag the geometry
//! stored in the buffer without changing the fixed
//! background. This mechanism is reserved for the
//! special driver Aspect_WindowDriver: if no other
//! driver has been defined, nothing will be drawn. Both
//! this driver and view mapping are used to draw the buffer.
//! Warning
//! - This class manages dragging only. It does not
//! manage "sketching" or "rubberbanding". For example:
//! - There is no empty constructor for this
//! primitive. Therefore we must create a primitive
//! in a dummy object simply to add this primitive to the buffer.
//! - There is no Buffer->Add (anArrayOfPoints)
//! method. Therefor it is not possible to add
//! shapes to the buffer.
//! - There are no Polyline->ChangeApoint () nor
//! Circle->ChangeRadius () methods. Therefore
//! we must call the primitive's destructor to modify
//! the definition of one primitive in a buffer.
//! - The Graphic2d_Image class is a primitive. For
//! this class, we replace the definition of the image
//! with a rectangle with the same size and the same position.
//! - You can add or remove primitives to the buffer
//! after creating and displaying it again.
class Graphic2d_Buffer : public MMgt_TShared { public: //! Creates an empty graphic buffer in the view .
//! A graphic buffer manages a set of graphic objects
//! and/or primitives.
//! A buffer color and font index can be defined,
//! in place of the default overrideColor or systemFont.
//! When the drawmode is REPLACE the buffer is drawn with
//! the right color and background drawing is used for
//! restoring it at Erase() time.
//! When the drawmode is XOR the buffer is drawn or erase
//! with an optimal color depending of the background color
//! but some side effects can appears depending of
//! background drawing pixels values.
Standard_EXPORT Graphic2d_Buffer(const Handle(Graphic2d_View)& aView,const Quantity_Length aPivotX,const Quantity_Length aPivotY,const Standard_Integer aWidthIndex = 0,const Standard_Integer aColorIndex = 0,const Standard_Integer aFontIndex = 0,const Aspect_TypeOfDrawMode aDrawMode = Aspect_TODM_REPLACE); //! Deletes the graphic buffer .
Standard_EXPORT void Destroy() ; ~Graphic2d_Buffer() { Destroy(); } //! Adds the graphic object in the graphic
//! buffer .
Standard_EXPORT void Add(const Handle(Graphic2d_GraphicObject)& anObject) ; //! Adds the primitive in the graphic
//! buffer .
Standard_EXPORT void Add(const Handle(Graphic2d_Primitive)& aPrimitive) ; //! Removes the object from the graphic
//! buffer .
Standard_EXPORT void Remove(const Handle(Graphic2d_GraphicObject)& anObject) ; //! Removes the primitive from the graphic
//! buffer .
Standard_EXPORT void Remove(const Handle(Graphic2d_Primitive)& aPrimitive) ; //! Clears the graphic buffer .
//! Removes all the primitives from the graphic buffer .
Standard_EXPORT void Clear() ; //! Updates the default buffer color with a new
//! color index defines in the user ColorMap.
//! Update the default buffer font with a new
//! font index defines in the user FontMap.
//! Update the default buffer drawmode with
//! REPLACE or XOR .
//! You can specify the width index
//! - -1 draw all lines with the largest width
//! defined in the buffer
//! - 0 draw all lines with the default width
//! defined in the driver (1 pixel)
//! - draw all lines with the specified width
//!
//! You can specify the color index
//! - -1 draw all primitives with the color of
//! the first primitive color defined in the buffer.
//! - 0 draw all primitives with the default color.
//! You can specify the font index
//! - -1 draw all text primitives with the font of
//! the first primitive text defined in the buffer.
//! - 0 draw all text primitives with the default font.
//! Warning: The buffer is redisplayed again if it was posted.
Standard_EXPORT void SetAttrib(const Standard_Integer aWidthIndex,const Standard_Integer aColorIndex,const Standard_Integer aFontIndex,const Aspect_TypeOfDrawMode aDrawMode) ; //! Updates the buffer pivot position.
//! Warning: The buffer is redisplayed again if it was posted.
Standard_EXPORT void SetPivot(const Quantity_Length aPivotX,const Quantity_Length aPivotY) ; //! Updates the buffer pivot position with the actual position.
Standard_EXPORT void SetPivot() ; //! Moves the graphic buffer at the specified
//! position. The new position of the buffer is :
//! ( + , + )
Standard_EXPORT void Move(const Quantity_Length aDeltaX,const Quantity_Length aDeltaY) ; //! Rotates the graphic buffer with the specified
//! absolute counter clockwise angle from the pivot X axis.
Standard_EXPORT void Rotate(const Quantity_PlaneAngle anAngle) ; //! Scales the graphic buffer with the specified
//! absolute scale factor from the pivot point.
Standard_EXPORT void Scale(const Quantity_Factor aFactor) ; //! Returns the view which manages the graphic buffer .
Standard_EXPORT Handle_Graphic2d_View View() const; //! Returns Standard_True if the graphic buffer
//! is empty, Standard_False if not.
Standard_EXPORT Standard_Boolean IsEmpty() const; //! Returns Standard_True if the primitive
//! is in the graphic buffer , Standard_False if not.
Standard_EXPORT Standard_Boolean IsIn(const Handle(Graphic2d_Primitive)& aPrimitive) const; //! Returns Standard_True if the graphic object
//! is in the graphic buffer , Standard_False if not.
Standard_EXPORT Standard_Boolean IsIn(const Handle(Graphic2d_GraphicObject)& anObject) const; //! Post the graphic buffer in the current View driver
//! and display it.
//! Warning: The view driver must be defined and of type WindowDriver
//! or nothing is drawn .
Standard_EXPORT void Post() ; //! Post the graphic buffer in a View driver and display it.
Standard_EXPORT void Post(const Handle(Aspect_WindowDriver)& aDriver,const Handle(Graphic2d_ViewMapping)& aViewMapping,const Standard_Real aXPosition,const Standard_Real aYPosition,const Standard_Real aScale) ; //! Unpost the graphic buffer from the view and erase it.
Standard_EXPORT void UnPost() ; //! Returns Standard_True if the graphic buffer
//! is posted in the view, Standard_False if not.
Standard_EXPORT Standard_Boolean IsPosted() const; //! Returns the value of the rotation angle of the
//! graphic buffer .
Standard_EXPORT Quantity_PlaneAngle Angle() const; //! Returns the value of the scale factor of the
//! graphic buffer .
Standard_EXPORT Quantity_Factor Scale() const; //! Returns the actual value of the X pivot point.
//! of the graphic buffer .
Standard_EXPORT Quantity_Length Xpivot() const; //! Returns the actual value of the Y pivot point.
//! of the graphic buffer .
Standard_EXPORT Quantity_Length Ypivot() const; friend class Graphic2d_View; DEFINE_STANDARD_RTTI(Graphic2d_Buffer) protected: private: //! Returns Standard_True if the graphic buffer
//! is posted in the view with the driver ,
//! Standard_False if not.
Standard_EXPORT Standard_Boolean IsPosted(const Handle(Aspect_WindowDriver)& aDriver) const; //! Update the internal buffer with new primitives
//! if any and draw it at screen.
Standard_EXPORT void Draw() ; //! Erase the internal buffer from the screen.
Standard_EXPORT void Erase() ; //! Erase and Reload the internal graphic buffer before
//! drawing to the current drawer.
//! Keep the actual position if is FALSE.
Standard_EXPORT void ReLoad(const Standard_Boolean ResetPosition = Standard_True) ; //! Returns Standard_True if the buffer contains
//! lines and the maximum width of the lines in the
//! buffer
Standard_EXPORT Standard_Boolean MaxWidth(Quantity_Length& theWidth,Standard_Integer& theIndex) const; Standard_Integer myBufferId; Standard_Boolean myBufferIsPosted; Handle_Aspect_WindowDriver myDriver; Standard_ShortReal myPivotX; Standard_ShortReal myPivotY; Standard_Integer myWidthIndex; Standard_Integer myColorIndex; Standard_Integer myFontIndex; Aspect_TypeOfDrawMode myDrawMode; Graphic2d_ViewPtr myPView; Graphic2d_SequenceOfPrimitives myPrimitives; Graphic2d_SequenceOfGraphicObject myObjects; }; // other Inline functions and methods (like "C++: function call" methods) #endif