mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-09 13:22:24 +03:00
0028889: Visualization, V3d_View - View specific Graphic3d_Structure should be removed if the view is removed
V3d_View::Remove() - erase trihedron and grid structures from structure manager.
This commit is contained in:
@@ -11,14 +11,11 @@
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
// Modified 23/02/98 : FMN ; Remplacement PI par Standard_PI
|
||||
|
||||
#include <Aspect_CircularGrid.hxx>
|
||||
#include <Aspect_Grid.hxx>
|
||||
|
||||
#include <Standard_NegativeValue.hxx>
|
||||
#include <Standard_NullValue.hxx>
|
||||
#include <Standard_NumericError.hxx>
|
||||
#include <Standard_Type.hxx>
|
||||
|
||||
IMPLEMENT_STANDARD_RTTIEXT(Aspect_CircularGrid,Aspect_Grid)
|
||||
|
||||
|
@@ -28,12 +28,9 @@ class Standard_NegativeValue;
|
||||
class Standard_NullValue;
|
||||
class Standard_NumericError;
|
||||
|
||||
class Aspect_CircularGrid;
|
||||
DEFINE_STANDARD_HANDLE(Aspect_CircularGrid, Aspect_Grid)
|
||||
|
||||
class Aspect_CircularGrid : public Aspect_Grid
|
||||
{
|
||||
|
||||
DEFINE_STANDARD_RTTIEXT(Aspect_CircularGrid, Aspect_Grid)
|
||||
public:
|
||||
|
||||
//! creates a new grid. By default this grid is not
|
||||
@@ -49,7 +46,7 @@ public:
|
||||
Standard_EXPORT void SetGridValues (const Standard_Real XOrigin, const Standard_Real YOrigin, const Standard_Real RadiusStep, const Standard_Integer DivisionNumber, const Standard_Real RotationAngle);
|
||||
|
||||
//! returns the point of the grid the closest to the point X,Y
|
||||
Standard_EXPORT void Compute (const Standard_Real X, const Standard_Real Y, Standard_Real& gridX, Standard_Real& gridY) const Standard_OVERRIDE;
|
||||
Standard_EXPORT virtual void Compute (const Standard_Real X, const Standard_Real Y, Standard_Real& gridX, Standard_Real& gridY) const Standard_OVERRIDE;
|
||||
|
||||
//! returns the x step of the grid.
|
||||
Standard_EXPORT Standard_Real RadiusStep() const;
|
||||
@@ -57,9 +54,7 @@ public:
|
||||
//! returns the x step of the grid.
|
||||
Standard_EXPORT Standard_Integer DivisionNumber() const;
|
||||
|
||||
Standard_EXPORT void Init() Standard_OVERRIDE;
|
||||
|
||||
DEFINE_STANDARD_RTTIEXT(Aspect_CircularGrid,Aspect_Grid)
|
||||
Standard_EXPORT virtual void Init() Standard_OVERRIDE;
|
||||
|
||||
private:
|
||||
|
||||
@@ -71,4 +66,6 @@ private:
|
||||
|
||||
};
|
||||
|
||||
DEFINE_STANDARD_HANDLE(Aspect_CircularGrid, Aspect_Grid)
|
||||
|
||||
#endif // _Aspect_CircularGrid_HeaderFile
|
||||
|
@@ -11,123 +11,96 @@
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
|
||||
#include <Aspect_Grid.hxx>
|
||||
#include <Quantity_Color.hxx>
|
||||
#include <Standard_Type.hxx>
|
||||
|
||||
IMPLEMENT_STANDARD_RTTIEXT(Aspect_Grid,Standard_Transient)
|
||||
|
||||
Aspect_Grid::Aspect_Grid(
|
||||
const Standard_Real anXOrigin,
|
||||
const Standard_Real anYOrigin,
|
||||
const Standard_Real anAngle,
|
||||
const Quantity_Color& aColor,
|
||||
const Quantity_Color& aTenthColor)
|
||||
: myRotationAngle(anAngle),
|
||||
myXOrigin(anXOrigin),
|
||||
myYOrigin(anYOrigin),
|
||||
myColor(aColor),
|
||||
myTenthColor(aTenthColor),
|
||||
myIsActive(Standard_False),
|
||||
myDrawMode(Aspect_GDM_Lines)
|
||||
Aspect_Grid::Aspect_Grid (const Standard_Real theXOrigin,
|
||||
const Standard_Real theYOrigin,
|
||||
const Standard_Real theAngle,
|
||||
const Quantity_Color& theColor,
|
||||
const Quantity_Color& theTenthColor)
|
||||
: myRotationAngle (theAngle),
|
||||
myXOrigin (theXOrigin),
|
||||
myYOrigin (theYOrigin),
|
||||
myColor (theColor),
|
||||
myTenthColor (theTenthColor),
|
||||
myIsActive (Standard_False),
|
||||
myDrawMode (Aspect_GDM_Lines)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
|
||||
void Aspect_Grid::SetXOrigin(const Standard_Real anOrigin) {
|
||||
myXOrigin = anOrigin;
|
||||
void Aspect_Grid::SetXOrigin (const Standard_Real theOrigin)
|
||||
{
|
||||
myXOrigin = theOrigin;
|
||||
Init();
|
||||
UpdateDisplay();
|
||||
}
|
||||
|
||||
void Aspect_Grid::SetYOrigin(const Standard_Real anOrigin) {
|
||||
myYOrigin = anOrigin;
|
||||
void Aspect_Grid::SetYOrigin (const Standard_Real theOrigin)
|
||||
{
|
||||
myYOrigin = theOrigin;
|
||||
Init();
|
||||
UpdateDisplay();
|
||||
}
|
||||
|
||||
void Aspect_Grid::SetRotationAngle(const Standard_Real anAngle){
|
||||
|
||||
|
||||
myRotationAngle = anAngle;
|
||||
Init();
|
||||
UpdateDisplay();
|
||||
}
|
||||
void Aspect_Grid::Rotate(const Standard_Real anAngle) {
|
||||
myRotationAngle += anAngle;
|
||||
Init();
|
||||
UpdateDisplay();
|
||||
}
|
||||
void Aspect_Grid::Translate(const Standard_Real aDx,
|
||||
const Standard_Real aDy) {
|
||||
myXOrigin += aDx;
|
||||
myYOrigin += aDy;
|
||||
void Aspect_Grid::SetRotationAngle (const Standard_Real theAngle)
|
||||
{
|
||||
myRotationAngle = theAngle;
|
||||
Init();
|
||||
UpdateDisplay();
|
||||
}
|
||||
|
||||
void Aspect_Grid::SetColors(const Quantity_Color& aColor,
|
||||
const Quantity_Color& aTenthColor) {
|
||||
myColor = aColor;
|
||||
myTenthColor = aTenthColor;
|
||||
void Aspect_Grid::Rotate (const Standard_Real theAngle)
|
||||
{
|
||||
myRotationAngle += theAngle;
|
||||
Init();
|
||||
UpdateDisplay();
|
||||
}
|
||||
|
||||
void Aspect_Grid::Colors(Quantity_Color& aColor,
|
||||
Quantity_Color& aTenthColor) const {
|
||||
aColor = myColor;
|
||||
aTenthColor = myTenthColor;
|
||||
void Aspect_Grid::Translate (const Standard_Real theDx,
|
||||
const Standard_Real theDy)
|
||||
{
|
||||
myXOrigin += theDx;
|
||||
myYOrigin += theDy;
|
||||
Init();
|
||||
UpdateDisplay();
|
||||
}
|
||||
|
||||
void Aspect_Grid::Hit(const Standard_Real X,
|
||||
const Standard_Real Y,
|
||||
Standard_Real& gridX,
|
||||
Standard_Real& gridY) const {
|
||||
if (myIsActive) {
|
||||
Compute(X,Y,gridX,gridY);}
|
||||
else{
|
||||
gridX = X;
|
||||
gridY = Y;
|
||||
void Aspect_Grid::SetColors (const Quantity_Color& theColor,
|
||||
const Quantity_Color& theTenthColor)
|
||||
{
|
||||
myColor = theColor;
|
||||
myTenthColor = theTenthColor;
|
||||
UpdateDisplay();
|
||||
}
|
||||
|
||||
void Aspect_Grid::Colors (Quantity_Color& theColor,
|
||||
Quantity_Color& theTenthColor) const
|
||||
{
|
||||
theColor = myColor;
|
||||
theTenthColor = myTenthColor;
|
||||
}
|
||||
|
||||
void Aspect_Grid::Hit (const Standard_Real theX,
|
||||
const Standard_Real theY,
|
||||
Standard_Real& theGridX,
|
||||
Standard_Real& theGridY) const
|
||||
{
|
||||
if (myIsActive)
|
||||
{
|
||||
Compute (theX, theY, theGridX, theGridY);
|
||||
}
|
||||
else
|
||||
{
|
||||
theGridX = theX;
|
||||
theGridY = theY;
|
||||
}
|
||||
}
|
||||
void Aspect_Grid::Activate () {
|
||||
myIsActive = Standard_True;
|
||||
}
|
||||
|
||||
void Aspect_Grid::Deactivate () {
|
||||
myIsActive = Standard_False;
|
||||
}
|
||||
|
||||
Standard_Real Aspect_Grid::XOrigin() const {
|
||||
return myXOrigin;
|
||||
}
|
||||
|
||||
Standard_Real Aspect_Grid::YOrigin() const {
|
||||
return myYOrigin;
|
||||
}
|
||||
|
||||
Standard_Real Aspect_Grid::RotationAngle() const {
|
||||
return myRotationAngle;
|
||||
}
|
||||
|
||||
Standard_Boolean Aspect_Grid::IsActive() const {
|
||||
return myIsActive;
|
||||
}
|
||||
void Aspect_Grid::Display() {}
|
||||
|
||||
void Aspect_Grid::Erase () const {}
|
||||
|
||||
void Aspect_Grid::UpdateDisplay () {}
|
||||
|
||||
|
||||
Standard_Boolean Aspect_Grid::IsDisplayed() const {
|
||||
return Standard_False;}
|
||||
|
||||
void Aspect_Grid::SetDrawMode(const Aspect_GridDrawMode aDrawMode) {
|
||||
myDrawMode = aDrawMode;
|
||||
void Aspect_Grid::SetDrawMode (const Aspect_GridDrawMode theDrawMode)
|
||||
{
|
||||
myDrawMode = theDrawMode;
|
||||
UpdateDisplay();
|
||||
}
|
||||
Aspect_GridDrawMode Aspect_Grid::DrawMode() const {
|
||||
return myDrawMode;
|
||||
}
|
||||
|
@@ -25,12 +25,9 @@
|
||||
#include <Aspect_GridDrawMode.hxx>
|
||||
#include <Standard_Transient.hxx>
|
||||
|
||||
class Aspect_Grid;
|
||||
DEFINE_STANDARD_HANDLE(Aspect_Grid, Standard_Transient)
|
||||
|
||||
class Aspect_Grid : public Standard_Transient
|
||||
{
|
||||
|
||||
DEFINE_STANDARD_RTTIEXT(Aspect_Grid, Standard_Transient)
|
||||
public:
|
||||
|
||||
//! defines the x Origin of the grid.
|
||||
@@ -39,7 +36,7 @@ public:
|
||||
//! defines the y Origin of the grid.
|
||||
Standard_EXPORT void SetYOrigin (const Standard_Real anOrigin);
|
||||
|
||||
//! defines the orientation of the the grid.
|
||||
//! defines the orientation of the grid.
|
||||
Standard_EXPORT void SetRotationAngle (const Standard_Real anAngle);
|
||||
|
||||
//! Rotate the grid from a relative angle.
|
||||
@@ -62,23 +59,23 @@ public:
|
||||
//! activates the grid. The Hit method will return
|
||||
//! gridx and gridx computed according to the steps
|
||||
//! of the grid.
|
||||
Standard_EXPORT void Activate();
|
||||
void Activate() { myIsActive = Standard_True; }
|
||||
|
||||
//! deactivates the grid. The hit method will return
|
||||
//! gridx and gridx as the enter value X & Y.
|
||||
Standard_EXPORT void Deactivate();
|
||||
void Deactivate() { myIsActive = Standard_False; }
|
||||
|
||||
//! returns the x Origin of the grid.
|
||||
Standard_EXPORT Standard_Real XOrigin() const;
|
||||
Standard_Real XOrigin() const { return myXOrigin; }
|
||||
|
||||
//! returns the x Origin of the grid.
|
||||
Standard_EXPORT Standard_Real YOrigin() const;
|
||||
Standard_Real YOrigin() const { return myYOrigin; }
|
||||
|
||||
//! returns the x Angle of the grid.
|
||||
Standard_EXPORT Standard_Real RotationAngle() const;
|
||||
Standard_Real RotationAngle() const { return myRotationAngle; }
|
||||
|
||||
//! Returns TRUE when the grid is active.
|
||||
Standard_EXPORT Standard_Boolean IsActive() const;
|
||||
Standard_Boolean IsActive() const { return myIsActive; }
|
||||
|
||||
//! Returns the colors of the grid.
|
||||
Standard_EXPORT void Colors (Quantity_Color& aColor, Quantity_Color& aTenthColor) const;
|
||||
@@ -87,41 +84,43 @@ public:
|
||||
Standard_EXPORT void SetDrawMode (const Aspect_GridDrawMode aDrawMode);
|
||||
|
||||
//! Returns the grid aspect.
|
||||
Standard_EXPORT Aspect_GridDrawMode DrawMode() const;
|
||||
|
||||
Aspect_GridDrawMode DrawMode() const { return myDrawMode; }
|
||||
|
||||
//! Display the grid at screen.
|
||||
Standard_EXPORT virtual void Display();
|
||||
Standard_EXPORT virtual void Display() = 0;
|
||||
|
||||
//! Erase the grid from screen.
|
||||
Standard_EXPORT virtual void Erase() const;
|
||||
Standard_EXPORT virtual void Erase() const = 0;
|
||||
|
||||
//! Returns TRUE when the grid is displayed at screen.
|
||||
Standard_EXPORT virtual Standard_Boolean IsDisplayed() const;
|
||||
Standard_EXPORT virtual Standard_Boolean IsDisplayed() const = 0;
|
||||
|
||||
Standard_EXPORT virtual void Init() = 0;
|
||||
|
||||
DEFINE_STANDARD_RTTIEXT(Aspect_Grid,Standard_Transient)
|
||||
|
||||
protected:
|
||||
|
||||
//! creates a new grid. By default this grid is not
|
||||
//! active.
|
||||
Standard_EXPORT Aspect_Grid(const Standard_Real anXOrigin = 0.0, const Standard_Real anYOrigin = 0.0, const Standard_Real aRotationAngle = 0, const Quantity_Color& aColor = Quantity_NOC_GRAY50, const Quantity_Color& aTenthColor = Quantity_NOC_GRAY70);
|
||||
//! Creates a new grid. By default this grid is not active.
|
||||
Standard_EXPORT Aspect_Grid (const Standard_Real theXOrigin = 0.0,
|
||||
const Standard_Real theYOrigin = 0.0,
|
||||
const Standard_Real theRotationAngle = 0,
|
||||
const Quantity_Color& theColor = Quantity_NOC_GRAY50,
|
||||
const Quantity_Color& theTenthColor = Quantity_NOC_GRAY70);
|
||||
|
||||
//! Updates the grid parameters.
|
||||
Standard_EXPORT virtual void UpdateDisplay();
|
||||
Standard_EXPORT virtual void UpdateDisplay() = 0;
|
||||
|
||||
protected:
|
||||
|
||||
Standard_Real myRotationAngle;
|
||||
Standard_Real myXOrigin;
|
||||
Standard_Real myYOrigin;
|
||||
Quantity_Color myColor;
|
||||
Quantity_Color myTenthColor;
|
||||
|
||||
private:
|
||||
|
||||
Standard_Boolean myIsActive;
|
||||
Aspect_GridDrawMode myDrawMode;
|
||||
|
||||
};
|
||||
|
||||
DEFINE_STANDARD_HANDLE(Aspect_Grid, Standard_Transient)
|
||||
|
||||
#endif // _Aspect_Grid_HeaderFile
|
||||
|
@@ -11,13 +11,11 @@
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
// Modified 23/02/98 : FMN ; Remplacement PI par Standard_PI
|
||||
|
||||
#include <Aspect_RectangularGrid.hxx>
|
||||
|
||||
#include <Standard_NegativeValue.hxx>
|
||||
#include <Standard_NullValue.hxx>
|
||||
#include <Standard_NumericError.hxx>
|
||||
#include <Standard_Type.hxx>
|
||||
|
||||
IMPLEMENT_STANDARD_RTTIEXT(Aspect_RectangularGrid,Aspect_Grid)
|
||||
|
||||
@@ -157,5 +155,3 @@ Standard_Boolean Aspect_RectangularGrid::CheckAngle(const Standard_Real alpha,
|
||||
const Standard_Real beta) const {
|
||||
return (Abs( Sin(alpha) * Cos(beta + M_PI / 2.) - Cos(alpha) * Sin(beta + M_PI / 2.)) != 0) ;
|
||||
}
|
||||
|
||||
|
||||
|
@@ -27,15 +27,11 @@ class Standard_NegativeValue;
|
||||
class Standard_NullValue;
|
||||
class Standard_NumericError;
|
||||
|
||||
class Aspect_RectangularGrid;
|
||||
DEFINE_STANDARD_HANDLE(Aspect_RectangularGrid, Aspect_Grid)
|
||||
|
||||
class Aspect_RectangularGrid : public Aspect_Grid
|
||||
{
|
||||
|
||||
DEFINE_STANDARD_RTTIEXT(Aspect_RectangularGrid, Aspect_Grid)
|
||||
public:
|
||||
|
||||
|
||||
//! creates a new grid. By default this grid is not
|
||||
//! active.
|
||||
//! The first angle is given relatively to the horizontal.
|
||||
@@ -56,7 +52,7 @@ public:
|
||||
Standard_EXPORT void SetGridValues (const Standard_Real XOrigin, const Standard_Real YOrigin, const Standard_Real XStep, const Standard_Real YStep, const Standard_Real RotationAngle);
|
||||
|
||||
//! returns the point of the grid the closest to the point X,Y
|
||||
Standard_EXPORT void Compute (const Standard_Real X, const Standard_Real Y, Standard_Real& gridX, Standard_Real& gridY) const Standard_OVERRIDE;
|
||||
Standard_EXPORT virtual void Compute (const Standard_Real X, const Standard_Real Y, Standard_Real& gridX, Standard_Real& gridY) const Standard_OVERRIDE;
|
||||
|
||||
//! returns the x step of the grid.
|
||||
Standard_EXPORT Standard_Real XStep() const;
|
||||
@@ -70,14 +66,14 @@ public:
|
||||
//! returns the y Angle of the grid, relatively to the vertical.
|
||||
Standard_EXPORT Standard_Real SecondAngle() const;
|
||||
|
||||
Standard_EXPORT void Init() Standard_OVERRIDE;
|
||||
|
||||
DEFINE_STANDARD_RTTIEXT(Aspect_RectangularGrid,Aspect_Grid)
|
||||
Standard_EXPORT virtual void Init() Standard_OVERRIDE;
|
||||
|
||||
private:
|
||||
|
||||
Standard_EXPORT Standard_Boolean CheckAngle (const Standard_Real alpha, const Standard_Real beta) const;
|
||||
|
||||
private:
|
||||
|
||||
Standard_Real myXStep;
|
||||
Standard_Real myYStep;
|
||||
Standard_Real myFirstAngle;
|
||||
@@ -91,4 +87,6 @@ private:
|
||||
|
||||
};
|
||||
|
||||
DEFINE_STANDARD_HANDLE(Aspect_RectangularGrid, Aspect_Grid)
|
||||
|
||||
#endif // _Aspect_RectangularGrid_HeaderFile
|
||||
|
Reference in New Issue
Block a user