diff --git a/adm/UDLIST b/adm/UDLIST index 230909c1b2..9108f29a69 100644 --- a/adm/UDLIST +++ b/adm/UDLIST @@ -223,7 +223,6 @@ p StdPrs p StdSelect p TColQuantity p V3d -p Viewer p Visual3d p Voxel p WNT diff --git a/src/Aspect/Aspect.cdl b/src/Aspect/Aspect.cdl index 2490f15dd1..5907dd9772 100755 --- a/src/Aspect/Aspect.cdl +++ b/src/Aspect/Aspect.cdl @@ -86,7 +86,6 @@ uses Quantity, TColQuantity, Resource, - Viewer, MMgt is @@ -297,9 +296,6 @@ is ---Purpose: Creates and controles all identifiers. ---Category: Classes - deferred class GraphicDriver; - ---Purpose: Defines a graphic driver (3d library) - class FontStyle; ---Purpose: Defines a Font Style ---Category: The classes diff --git a/src/Aspect/Aspect_ColorScale.cdl b/src/Aspect/Aspect_ColorScale.cdl index 1c0010a50d..12d24f2cf8 100755 --- a/src/Aspect/Aspect_ColorScale.cdl +++ b/src/Aspect/Aspect_ColorScale.cdl @@ -26,7 +26,6 @@ uses TypeOfColorScalePosition from Aspect, ColorMap from Aspect, SequenceOfColor from Aspect, - View from Viewer, Color from Quantity, AsciiString from TCollection, ExtendedString from TCollection, diff --git a/src/Aspect/Aspect_GraphicDriver.cdl b/src/Aspect/Aspect_GraphicDriver.cdl deleted file mode 100755 index 65d447fadb..0000000000 --- a/src/Aspect/Aspect_GraphicDriver.cdl +++ /dev/null @@ -1,28 +0,0 @@ --- Created on: 1997-01-28 --- Created by: CAL --- Copyright (c) 1997-1999 Matra Datavision --- Copyright (c) 1999-2012 OPEN CASCADE SAS --- --- The content of this file is subject to the Open CASCADE Technology Public --- License Version 6.5 (the "License"). You may not use the content of this file --- except in compliance with the License. Please obtain a copy of the License --- at http://www.opencascade.org and read it completely before using this file. --- --- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its --- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France. --- --- The Original Code and all software distributed under the License is --- distributed on an "AS IS" basis, without warranty of any kind, and the --- Initial Developer hereby disclaims all such warranties, including without --- limitation, any warranties of merchantability, fitness for a particular --- purpose or non-infringement. Please see the License for the specific terms --- and conditions governing the rights and limitations under the License. - - -deferred class GraphicDriver from Aspect inherits TShared - -is - - Initialize; - -end GraphicDriver from Aspect; diff --git a/src/Aspect/Aspect_GraphicDriver.cxx b/src/Aspect/Aspect_GraphicDriver.cxx deleted file mode 100755 index 6fccd91991..0000000000 --- a/src/Aspect/Aspect_GraphicDriver.cxx +++ /dev/null @@ -1,27 +0,0 @@ -// Created on: 1997-01-28 -// Created by: CAL -// Copyright (c) 1997-1999 Matra Datavision -// Copyright (c) 1999-2012 OPEN CASCADE SAS -// -// The content of this file is subject to the Open CASCADE Technology Public -// License Version 6.5 (the "License"). You may not use the content of this file -// except in compliance with the License. Please obtain a copy of the License -// at http://www.opencascade.org and read it completely before using this file. -// -// The Initial Developer of the Original Code is Open CASCADE S.A.S., having its -// main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France. -// -// The Original Code and all software distributed under the License is -// distributed on an "AS IS" basis, without warranty of any kind, and the -// Initial Developer hereby disclaims all such warranties, including without -// limitation, any warranties of merchantability, fitness for a particular -// purpose or non-infringement. Please see the License for the specific terms -// and conditions governing the rights and limitations under the License. - - - - -#include - -Aspect_GraphicDriver::Aspect_GraphicDriver () { -} diff --git a/src/Graphic3d/Graphic3d_GraphicDriver.cdl b/src/Graphic3d/Graphic3d_GraphicDriver.cdl index 2dc81d0b06..2301f2be0a 100755 --- a/src/Graphic3d/Graphic3d_GraphicDriver.cdl +++ b/src/Graphic3d/Graphic3d_GraphicDriver.cdl @@ -18,7 +18,7 @@ -- purpose or non-infringement. Please see the License for the specific terms -- and conditions governing the rights and limitations under the License. -deferred class GraphicDriver from Graphic3d inherits GraphicDriver from Aspect +deferred class GraphicDriver from Graphic3d inherits TShared ---Version: @@ -51,7 +51,6 @@ uses Array1OfEdge from Aspect, CLayer2d from Aspect, - GraphicDriver from Aspect, TypeOfTriedronEcho from Aspect, TypeOfTriedronPosition from Aspect, Handle from Aspect, diff --git a/src/PrsMgr/PrsMgr.cdl b/src/PrsMgr/PrsMgr.cdl index 5276cfbdb2..8df9ba810e 100755 --- a/src/PrsMgr/PrsMgr.cdl +++ b/src/PrsMgr/PrsMgr.cdl @@ -40,7 +40,7 @@ uses TopLoc, Prs3d,Graphic3d, Quantity,Geom, - Viewer, + V3d, TColStd, gp diff --git a/src/PrsMgr/PrsMgr_PresentationManager.cdl b/src/PrsMgr/PrsMgr_PresentationManager.cdl index e072c2f3bf..164ee9f9a4 100755 --- a/src/PrsMgr/PrsMgr_PresentationManager.cdl +++ b/src/PrsMgr/PrsMgr_PresentationManager.cdl @@ -30,7 +30,7 @@ inherits TShared from MMgt uses Presentation from PrsMgr, PresentableObject from PrsMgr, - View from Viewer, + View from V3d, ListOfTransient from TColStd @@ -151,7 +151,7 @@ is -- aPresentableObject with the mode aMode from the -- list of objects in immediate mode. - EndDraw(me: mutable; aView: View from Viewer; DoubleBuffer: Boolean from Standard = Standard_False) + EndDraw(me: mutable; aView: View from V3d; DoubleBuffer: Boolean from Standard = Standard_False) ---Purpose: Allows rapid drawing of the view aView by avoiding -- an update of the whole background. If DoubleBuffer -- is true, the background is drawn. diff --git a/src/PrsMgr/PrsMgr_PresentationManager3d.cdl b/src/PrsMgr/PrsMgr_PresentationManager3d.cdl index c411597bad..72b22883ab 100755 --- a/src/PrsMgr/PrsMgr_PresentationManager3d.cdl +++ b/src/PrsMgr/PrsMgr_PresentationManager3d.cdl @@ -49,7 +49,7 @@ uses --NameOfPhysicalMaterial from Graphic3d, Presentation from PrsMgr, Presentation3d from PrsMgr, - View from Viewer, + View from V3d, ShadingAspect from Prs3d, Presentation from Prs3d is @@ -88,7 +88,7 @@ is ---Purpose: stores in a list of structure to be displayed -- in immediate mode. will be taken in account in EndDraw Method. - EndDraw(me: mutable; aView: View from Viewer; DoubleBuffer: Boolean from Standard = Standard_False) + EndDraw(me: mutable; theView: View from V3d; DoubleBuffer: Boolean from Standard = Standard_False) is redefined static; diff --git a/src/PrsMgr/PrsMgr_PresentationManager3d.cxx b/src/PrsMgr/PrsMgr_PresentationManager3d.cxx index 1df00902fa..8aa22e2a43 100755 --- a/src/PrsMgr/PrsMgr_PresentationManager3d.cxx +++ b/src/PrsMgr/PrsMgr_PresentationManager3d.cxx @@ -162,12 +162,9 @@ void PrsMgr_PresentationManager3d::BeginDraw() //purpose : //======================================================================= -void PrsMgr_PresentationManager3d::EndDraw(const Handle(Viewer_View)& aView, const Standard_Boolean DoubleBuffer) { - - - Handle(V3d_View) v; - v =*((Handle(V3d_View)*)&aView); - if (!v->TransientManagerBeginDraw(DoubleBuffer,Standard_True)) +void PrsMgr_PresentationManager3d::EndDraw(const Handle(V3d_View)& theView, const Standard_Boolean DoubleBuffer) +{ + if (!theView->TransientManagerBeginDraw (DoubleBuffer, Standard_True)) { myImmediateMode = Standard_False; return; diff --git a/src/TKService/PACKAGES b/src/TKService/PACKAGES index fe1881a4a6..4ace95d0e5 100755 --- a/src/TKService/PACKAGES +++ b/src/TKService/PACKAGES @@ -1,7 +1,6 @@ Aspect InterfaceGraphic SelectBasics -Viewer Xw AlienImage Image @@ -10,4 +9,3 @@ WNT Cocoa TColQuantity Font - diff --git a/src/V3d/V3d.cdl b/src/V3d/V3d.cdl index a775d557e1..f52e78b48b 100755 --- a/src/V3d/V3d.cdl +++ b/src/V3d/V3d.cdl @@ -47,7 +47,6 @@ package V3d uses - Viewer, TColStd, Graphic3d, Visual3d, @@ -77,6 +76,7 @@ is --Category: The Exceptions -------------------------- + exception BadValue inherits OutOfRange; exception UnMapped inherits DomainError; ----------------------------- @@ -181,7 +181,7 @@ is class Viewer; ---Purpose: Provides the services of a 3D viewer. - deferred class View; + class View; ---Purpose: Provides a set of services common to all types of view. class OrthographicView; diff --git a/src/V3d/V3d_DirectionalLight.cdl b/src/V3d/V3d_DirectionalLight.cdl index e214c503f9..c47a73d638 100755 --- a/src/V3d/V3d_DirectionalLight.cdl +++ b/src/V3d/V3d_DirectionalLight.cdl @@ -44,7 +44,7 @@ uses Group from Graphic3d, View from V3d -raises BadValue from Viewer +raises BadValue from V3d is @@ -76,11 +76,11 @@ is ---Purpose : Defines the direction of the light source -- by a predefined orientation. - SetDirection ( me : mutable; Xm, Ym, Zm : Parameter ) raises BadValue from Viewer is static; + SetDirection ( me : mutable; Xm, Ym, Zm : Parameter ) raises BadValue from V3d is static; ---Level: Public ---Purpose : Defines the direction of the light source by the predefined -- vector Xm,Ym,Zm. - -- Warning: raises BadValue from Viewer if the vector is null. + -- Warning: raises BadValue from V3d if the vector is null. SetDisplayPosition (me : mutable; X,Y,Z : Coordinate) is static; ---Level: Public diff --git a/src/V3d/V3d_DirectionalLight.cxx b/src/V3d/V3d_DirectionalLight.cxx index 91ac0b36e3..d51e343682 100755 --- a/src/V3d/V3d_DirectionalLight.cxx +++ b/src/V3d/V3d_DirectionalLight.cxx @@ -54,7 +54,7 @@ #include #include #include -#include +#include #include #include #include @@ -105,7 +105,7 @@ void V3d_DirectionalLight::SetDirection(const V3d_TypeOfOrientation Direction) { void V3d_DirectionalLight::SetDirection(const Standard_Real Vx, const Standard_Real Vy, const Standard_Real Vz) { - Viewer_BadValue_Raise_if( sqrt( Vx*Vx + Vy*Vy + Vz*Vz ) <= 0.,"V3d_DirectionalLight::SetDirection, null vector" ); + V3d_BadValue_Raise_if( sqrt( Vx*Vx + Vy*Vy + Vz*Vz ) <= 0.,"V3d_DirectionalLight::SetDirection, null vector" ); Graphic3d_Vector V(Vx,Vy,Vz) ; V.Normalize() ; diff --git a/src/V3d/V3d_Light.cdl b/src/V3d/V3d_Light.cdl index 5466e28dfb..d645083e93 100755 --- a/src/V3d/V3d_Light.cdl +++ b/src/V3d/V3d_Light.cdl @@ -53,7 +53,7 @@ uses Structure from Graphic3d raises - BadValue from Viewer + BadValue from V3d is diff --git a/src/V3d/V3d_PerspectiveView.cdl b/src/V3d/V3d_PerspectiveView.cdl index 4affee805c..5046855cd5 100755 --- a/src/V3d/V3d_PerspectiveView.cdl +++ b/src/V3d/V3d_PerspectiveView.cdl @@ -39,7 +39,7 @@ uses raises - BadValue from Viewer + BadValue from V3d is @@ -86,8 +86,8 @@ is -- TAN(Angle/2) = Size/Length -- Size expresses the smallest dimension of the window. -- Length expresses the focal length. - raises BadValue from Viewer - ---Purpose: Warning! raises BadValue from Viewer + raises BadValue from V3d + ---Purpose: Warning! raises BadValue from V3d -- if the opening angle is <= 0 or >= PI is static; @@ -102,7 +102,7 @@ is -- angle of opening of the perspective in RADIANS, -- aspect ratio of window width to its height and -- near and far clipping planes - raises BadValue from Viewer + raises BadValue from V3d -- if the opening angle is <= 0 or >= PI or -- the ZNear<0, ZFar<0 or ZNear>=Zfar. is static; diff --git a/src/V3d/V3d_PerspectiveView.cxx b/src/V3d/V3d_PerspectiveView.cxx index 0dbc528d3c..3a702d8a3b 100755 --- a/src/V3d/V3d_PerspectiveView.cxx +++ b/src/V3d/V3d_PerspectiveView.cxx @@ -45,7 +45,7 @@ #include #include #include -#include +#include V3d_PerspectiveView::V3d_PerspectiveView (const Handle(V3d_Viewer)& VM):V3d_View (VM,V3d_PERSPECTIVE) { MyViewMapping.SetProjection(Visual3d_TOP_PERSPECTIVE) ; @@ -79,7 +79,7 @@ void V3d_PerspectiveView::SetAngle(const Standard_Real Angle) { Standard_Real focale,Umin,Vmin,Umax,Vmax,Dxv,Dyv,Rap,Xrp,Yrp; - Viewer_BadValue_Raise_if ( Angle <= 0. || Angle >= M_PI, "V3d_PerspectiveView::SetAngle, bad angle"); + V3d_BadValue_Raise_if ( Angle <= 0. || Angle >= M_PI, "V3d_PerspectiveView::SetAngle, bad angle"); MyViewMapping.WindowLimit(Umin,Vmin,Umax,Vmax) ; Dxv = Abs(Umax - Umin)/2. ; Dyv = Abs(Vmax - Vmin)/2.; @@ -125,8 +125,8 @@ void V3d_PerspectiveView::SetPerspective(const Standard_Real Angle, const Standa { Standard_Real Umin,Vmin,Umax,Vmax,Xrp,Yrp,Zrp,du,dv; - Viewer_BadValue_Raise_if ( ZNear <= 0. || ZFar <= 0. || ZNear >= ZFar, "V3d_PerspectiveView::SetPerspective, bad distances"); - Viewer_BadValue_Raise_if ( Angle <= 0. || Angle >= M_PI, "V3d_PerspectiveView::SetAngle, bad angle"); + V3d_BadValue_Raise_if ( ZNear <= 0. || ZFar <= 0. || ZNear >= ZFar, "V3d_PerspectiveView::SetPerspective, bad distances"); + V3d_BadValue_Raise_if ( Angle <= 0. || Angle >= M_PI, "V3d_PerspectiveView::SetAngle, bad angle"); Graphic3d_Vertex PRP = MyViewMapping.ProjectionReferencePoint() ; Xrp = Yrp = Zrp = 0.; diff --git a/src/V3d/V3d_Plane.cdl b/src/V3d/V3d_Plane.cdl index cec745e521..30de00030b 100755 --- a/src/V3d/V3d_Plane.cdl +++ b/src/V3d/V3d_Plane.cdl @@ -45,7 +45,7 @@ uses raises - BadValue from Viewer + BadValue from V3d is @@ -61,8 +61,8 @@ is ---Level : Public ---Purpose: Creates a clipping plane using the equation : -- *X + *Y + *Z + = 0.0 - raises BadValue from Viewer; - ---Purpose: Warning! raises BadValue from Viewer + raises BadValue from V3d; + ---Purpose: Warning! raises BadValue from V3d -- if the norm of the plane is NULL. -------------------------------------------------------- @@ -72,8 +72,8 @@ is SetPlane( me : mutable; A,B,C,D : Parameter) ---Level : Public ---Purpose: Modifies the plane equation. - raises BadValue from Viewer - ---Purpose: Warning! raises BadValue from Viewer + raises BadValue from V3d + ---Purpose: Warning! raises BadValue from V3d -- if the norm of the plane is NULL. -- If the norm of the plane is NULL. is static; diff --git a/src/V3d/V3d_Plane.cxx b/src/V3d/V3d_Plane.cxx index 64d55ed743..b3ba033cac 100755 --- a/src/V3d/V3d_Plane.cxx +++ b/src/V3d/V3d_Plane.cxx @@ -31,7 +31,7 @@ #include #include -#include +#include #include #include @@ -42,7 +42,7 @@ V3d_Plane::V3d_Plane(const Standard_Real A, const Standard_Real B, const Standard_Real C, const Standard_Real D) { - Viewer_BadValue_Raise_if( sqrt(A*A + B*B + C*C) <= 0., "V3d_Plane::V3d_Plane, bad plane coefficients"); + V3d_BadValue_Raise_if( sqrt(A*A + B*B + C*C) <= 0., "V3d_Plane::V3d_Plane, bad plane coefficients"); MyPlane = new Visual3d_ClipPlane(A,B,C,D) ; } @@ -51,7 +51,7 @@ V3d_Plane::V3d_Plane(const Standard_Real A, const Standard_Real B, const Standar void V3d_Plane::SetPlane(const Standard_Real A, const Standard_Real B, const Standard_Real C, const Standard_Real D) { - Viewer_BadValue_Raise_if( sqrt(A*A + B*B + C*C) <= 0., "V3d_Plane::SetPlane, bad plane coefficients"); + V3d_BadValue_Raise_if( sqrt(A*A + B*B + C*C) <= 0., "V3d_Plane::SetPlane, bad plane coefficients"); MyPlane->SetPlane(A,B,C,D) ; if( IsDisplayed() ) diff --git a/src/V3d/V3d_PositionLight.cdl b/src/V3d/V3d_PositionLight.cdl index 1a67910d30..467c87d98b 100755 --- a/src/V3d/V3d_PositionLight.cdl +++ b/src/V3d/V3d_PositionLight.cdl @@ -42,7 +42,7 @@ uses Vertex from Graphic3d, Group from Graphic3d -raises BadValue from Viewer +raises BadValue from V3d is @@ -61,10 +61,10 @@ is ---Purpose: Defines the target of the light (the center -- of the sphere) - SetRadius ( me : mutable; Radius : Parameter) raises BadValue from Viewer is static; + SetRadius ( me : mutable; Radius : Parameter) raises BadValue from V3d is static; ---Level: Public ---Purpose: Define the radius. - ---Warning: raises BadValue from Viewer if the radius is <= 0 or if the light is directional + ---Warning: raises BadValue from V3d if the radius is <= 0 or if the light is directional OnHideFace (me : mutable; aView : View from V3d); ---Level: Public diff --git a/src/V3d/V3d_PositionLight.cxx b/src/V3d/V3d_PositionLight.cxx index 8a7a640b17..fa8afe9a1c 100755 --- a/src/V3d/V3d_PositionLight.cxx +++ b/src/V3d/V3d_PositionLight.cxx @@ -39,7 +39,7 @@ #include #include #include -#include +#include #include #include #include @@ -74,8 +74,8 @@ void V3d_PositionLight::SetTarget(const Standard_Real X, const Standard_Real Y, void V3d_PositionLight::SetRadius(const Standard_Real Radius) { - Viewer_BadValue_Raise_if( Radius <= 0. , "V3d_PositionLight::SetRadius, bad radius"); - Viewer_BadValue_Raise_if( MyType == V3d_DIRECTIONAL , "V3d_PositionLight::SetRadius, bad light type"); + V3d_BadValue_Raise_if( Radius <= 0. , "V3d_PositionLight::SetRadius, bad radius"); + V3d_BadValue_Raise_if( MyType == V3d_DIRECTIONAL , "V3d_PositionLight::SetRadius, bad light type"); Standard_Real X0,Y0,Z0, Xn,Yn,Zn, Xp,Yp,Zp; diff --git a/src/V3d/V3d_PositionalLight.cdl b/src/V3d/V3d_PositionalLight.cdl index 58928b0aa2..d82a3fb816 100755 --- a/src/V3d/V3d_PositionalLight.cdl +++ b/src/V3d/V3d_PositionalLight.cdl @@ -51,7 +51,7 @@ uses Vertex from Graphic3d, Group from Graphic3d -raises BadValue from Viewer +raises BadValue from V3d is @@ -71,8 +71,8 @@ is -- A1,A2 being the two factors of attenuation -- Length is the distance of the isolated source -- from the surface. - raises BadValue from Viewer; - ---Purpose: Warning! raises BadValue from Viewer + raises BadValue from V3d; + ---Purpose: Warning! raises BadValue from V3d -- if one of the attenuation coefficients is not between 0 et 1. Create ( VM : mutable Viewer ; Xt,Yt,Zt : Coordinate; @@ -93,8 +93,8 @@ is -- F = 1/(A1 + A2*Length) where: -- - A1,A2 are the two attenuation factors, and -- - Length is the distance from the isolated source. - raises BadValue from Viewer; - ---Purpose: Warning! raises BadValue from Viewer + raises BadValue from V3d; + ---Purpose: Warning! raises BadValue from V3d -- if one of the attenuation coefficients is not between 0 et 1. @@ -106,10 +106,10 @@ is ---Level: Public ---Purpose: Defines the position of the light source. - SetAttenuation( me : mutable; A1,A2 : Coefficient ) raises BadValue from Viewer is static; + SetAttenuation( me : mutable; A1,A2 : Coefficient ) raises BadValue from V3d is static; ---Level: Public ---Purpose: Defines the attenuation factors. - -- Warning: raises BadValue from Viewer + -- Warning: raises BadValue from V3d -- if one of the attenuation coefficients is not between 0 et 1. --------------------------------------------------- diff --git a/src/V3d/V3d_PositionalLight.cxx b/src/V3d/V3d_PositionalLight.cxx index cf5bcd6191..16d6dd113a 100755 --- a/src/V3d/V3d_PositionalLight.cxx +++ b/src/V3d/V3d_PositionalLight.cxx @@ -54,7 +54,7 @@ #include #include #include -#include +#include #include #include #include @@ -74,7 +74,7 @@ V3d_PositionalLight::V3d_PositionalLight(const Handle(V3d_Viewer)& VM, const Sta Graphic3d_Vertex P(X,Y,Z) ; Graphic3d_Vertex T(0.,0.,0.); - Viewer_BadValue_Raise_if ( A1 < 0 || A1 > 1. || A2 < 0 || A2 > 1, + V3d_BadValue_Raise_if ( A1 < 0 || A1 > 1. || A2 < 0 || A2 > 1, "V3d_PositionalLight, bad coefficients"); MyType = V3d_POSITIONAL ; @@ -89,7 +89,7 @@ V3d_PositionalLight::V3d_PositionalLight(const Handle(V3d_Viewer)& VM, const Sta Graphic3d_Vertex T(Xt,Yt,Zt) ; Graphic3d_Vertex P(Xp,Yp,Zp) ; - Viewer_BadValue_Raise_if ( A1 < 0 || A1 > 1. || A2 < 0 || A2 > 1, + V3d_BadValue_Raise_if ( A1 < 0 || A1 > 1. || A2 < 0 || A2 > 1, "V3d_PositionalLight, bad coefficients"); MyType = V3d_POSITIONAL ; @@ -108,7 +108,7 @@ void V3d_PositionalLight::SetPosition(const Standard_Real Xp, const Standard_Rea void V3d_PositionalLight::SetAttenuation(const Standard_Real A1, const Standard_Real A2) { - Viewer_BadValue_Raise_if ( A1 < 0 || A1 > 1. || A2 < 0 || A2 > 1, + V3d_BadValue_Raise_if ( A1 < 0 || A1 > 1. || A2 < 0 || A2 > 1, "V3d_PositionalLight::SetAttenuation, bad coefficients"); MyLight->SetAttenuation1(A1) ; diff --git a/src/V3d/V3d_SpotLight.cdl b/src/V3d/V3d_SpotLight.cdl index f85fe40d5b..13e4354350 100755 --- a/src/V3d/V3d_SpotLight.cdl +++ b/src/V3d/V3d_SpotLight.cdl @@ -45,7 +45,7 @@ uses Vertex from Graphic3d, Group from Graphic3d -raises BadValue from Viewer +raises BadValue from V3d is @@ -69,8 +69,8 @@ is -- The concentration factor determines the dispersion -- of the light on the surface, the default value -- (1.0) corresponds to a minimum of dispersion . - raises BadValue from Viewer; - ---Purpose: Warning! raises BadValue from Viewer - + raises BadValue from V3d; + ---Purpose: Warning! raises BadValue from V3d - -- If one of the coefficients is not between 0 and 1 . -- If the lighting angle is <= 0 ou > PI . @@ -87,8 +87,8 @@ is -- Xt,Yt,Zt : Coordinate of light source Target. -- Xp,Yp,Zp : Coordinate of light source Position. -- The others parameters describe before. - raises BadValue from Viewer; - ---Purpose: Warning! raises BadValue from Viewer - + raises BadValue from V3d; + ---Purpose: Warning! raises BadValue from V3d - -- If one of the coefficients is not between 0 and 1 . -- If the lighting angle is <= 0 ou > PI . @@ -100,7 +100,7 @@ is ---Level: Public ---Purpose: Defines the position of the light source. - SetDirection ( me : mutable; Vx, Vy, Vz : Parameter ) raises BadValue from Viewer is static; + SetDirection ( me : mutable; Vx, Vy, Vz : Parameter ) raises BadValue from V3d is static; ---Level: Public ---Purpose : Defines the direction of the light source. -- If the normal vector is NULL. @@ -110,21 +110,21 @@ is ---Purpose : Defines the direction of the light source -- according to a predefined directional vector. - SetAttenuation( me : mutable; A1,A2 : Coefficient ) raises BadValue from Viewer is static; + SetAttenuation( me : mutable; A1,A2 : Coefficient ) raises BadValue from V3d is static; ---Level: Public ---Purpose: Defines the coefficients of attenuation. - -- Warning! raises BadValue from Viewer + -- Warning! raises BadValue from V3d -- if one of the coefficient is <0 ou >1 . - SetConcentration( me : mutable; C : Coefficient ) raises BadValue from Viewer is static; + SetConcentration( me : mutable; C : Coefficient ) raises BadValue from V3d is static; ---Level: Public ---Purpose: Defines the coefficient of concentration. -- if the coefficient is <0 ou >1 . - SetAngle ( me : mutable; Angle : PlaneAngle ) raises BadValue from Viewer is static; + SetAngle ( me : mutable; Angle : PlaneAngle ) raises BadValue from V3d is static; ---Level: Public ---Purpose: Defines the spot angle in RADIANS. - -- Warning: raises BadValue from from Viewer + -- Warning: raises BadValue from from V3d -- If the angle is <= 0 ou > PI . --------------------------------------------------- diff --git a/src/V3d/V3d_SpotLight.cxx b/src/V3d/V3d_SpotLight.cxx index 5efaad003e..44047a657f 100755 --- a/src/V3d/V3d_SpotLight.cxx +++ b/src/V3d/V3d_SpotLight.cxx @@ -67,7 +67,7 @@ V3d_SpotLight::V3d_SpotLight(const Handle(V3d_Viewer)& VM, const Standard_Real X, const Standard_Real Y, const Standard_Real Z, const V3d_TypeOfOrientation Direction, const Quantity_NameOfColor Name, const Standard_Real A1, const Standard_Real A2, const Standard_Real CN, const Standard_Real AN):V3d_PositionLight(VM) { - Viewer_BadValue_Raise_if( A1 < 0 || A1 > 1. || A2 < 0 || A2 > 1 + V3d_BadValue_Raise_if( A1 < 0 || A1 > 1. || A2 < 0 || A2 > 1 || AN < 0. || AN > M_PI, "V3d_SpotLight, bad coefficient or angle"); Quantity_Color C(Name) ; @@ -84,7 +84,7 @@ V3d_SpotLight::V3d_SpotLight(const Handle(V3d_Viewer)& VM, const Standard_Real X V3d_SpotLight::V3d_SpotLight(const Handle(V3d_Viewer)& VM, const Standard_Real Xt, const Standard_Real Yt, const Standard_Real Zt, const Standard_Real Xp, const Standard_Real Yp, const Standard_Real Zp, const Quantity_NameOfColor Name, const Standard_Real A1, const Standard_Real A2, const Standard_Real CN, const Standard_Real AN):V3d_PositionLight(VM) { - Viewer_BadValue_Raise_if( A1 < 0 || A1 > 1. || A2 < 0 || A2 > 1 + V3d_BadValue_Raise_if( A1 < 0 || A1 > 1. || A2 < 0 || A2 > 1 || AN < 0. || AN > M_PI, "V3d_SpotLight, bad coefficient or angle"); Quantity_Color C(Name) ; @@ -121,7 +121,7 @@ void V3d_SpotLight::SetDirection(const V3d_TypeOfOrientation Direction) { void V3d_SpotLight::SetAttenuation(const Standard_Real A1, const Standard_Real A2) { - Viewer_BadValue_Raise_if( A1 < 0 || A1 > 1. || A2 < 0 || A2 > 1 , + V3d_BadValue_Raise_if( A1 < 0 || A1 > 1. || A2 < 0 || A2 > 1 , "V3d_SpotLight::SetAttenuation, bad coefficients"); MyLight->SetAttenuation1(A1) ; @@ -131,7 +131,7 @@ void V3d_SpotLight::SetAttenuation(const Standard_Real A1, const Standard_Real A void V3d_SpotLight::SetConcentration(const Standard_Real C) { - Viewer_BadValue_Raise_if( C < 0 || C > 1., + V3d_BadValue_Raise_if( C < 0 || C > 1., "V3d_SpotLight::SetConcentration, bad coefficient"); MyLight->SetConcentration(C) ; @@ -139,7 +139,7 @@ void V3d_SpotLight::SetConcentration(const Standard_Real C) { void V3d_SpotLight::SetAngle(const Standard_Real Angle) { - Viewer_BadValue_Raise_if( Angle <= 0. || Angle >= M_PI, + V3d_BadValue_Raise_if( Angle <= 0. || Angle >= M_PI, "V3d_SpotLight::SetAngle, bad angle"); MyLight->SetAngle(Angle) ; diff --git a/src/V3d/V3d_View.cdl b/src/V3d/V3d_View.cdl index 4888f3094d..06059187ce 100755 --- a/src/V3d/V3d_View.cdl +++ b/src/V3d/V3d_View.cdl @@ -64,7 +64,7 @@ -- NKV - 23/07/07 -> Define custom projection and model view matrixes -- NKV - 08/02/07 -> Add ConvertWithProj() method -deferred class View from V3d +class View from V3d inherits TShared from MMgt ---Purpose: Defines the application object VIEW for the -- VIEWER application. @@ -83,11 +83,6 @@ deferred class View from V3d -- View->Move(10.,20.,0.,True) (Starting motion) -- View->Move(15.,-5.,0.,False) (Next motion) - -inherits - - View from Viewer - uses -- S3892 @@ -155,15 +150,15 @@ uses raises - BadValue from Viewer, TypeMismatch from Standard, + BadValue from V3d, TypeMismatch from Standard, MultiplyDefined from Standard,UnMapped from V3d is - Initialize ( VM : mutable Viewer; Type : TypeOfView from V3d = V3d_ORTHOGRAPHIC ); + Create ( VM : mutable Viewer; Type : TypeOfView from V3d = V3d_ORTHOGRAPHIC ); ---Purpose: Initialises the view. - Initialize ( VM : mutable Viewer ; V : View from V3d; Type : TypeOfView from V3d = V3d_ORTHOGRAPHIC ); + Create ( VM : mutable Viewer ; V : View from V3d; Type : TypeOfView from V3d = V3d_ORTHOGRAPHIC ); ---Purpose: Initialises the view by copying. -------------------------------------------------------- @@ -210,7 +205,7 @@ is ---Level: Public ---Purpose: Destroys the view. - Update ( me ) is redefined static; + Update ( me ) is static; ---Level: Public ---Purpose: Deprecated, Redraw() should be used instead. @@ -323,8 +318,8 @@ is ---Purpose: Definition of an axis from its origin and -- its orientation . -- This will be the current axis for rotations and movements. - raises BadValue from Viewer; - ---Purpose: Warning! raises BadValue from Viewer if the vector normal is NULL. . + raises BadValue from V3d; + ---Purpose: Warning! raises BadValue from V3d if the vector normal is NULL. . SetShadingModel ( me : mutable; Model : TypeOfShadingModel ); ---Level: Public @@ -362,7 +357,7 @@ is SetZClippingWidth ( me : mutable; Width : Length ) ---Level: Public ---Purpose: Defines the thicknes around the medium clippling plane. . - raises BadValue from Viewer; + raises BadValue from V3d; -- If the thickness is <= 0 SetZClippingType ( me : mutable; Type : TypeOfZclipping ); @@ -376,7 +371,7 @@ is SetZCueingWidth ( me : mutable; Width : Length ) ---Level: Public ---Purpose: Defines the thickness around the medium plane. - raises BadValue from Viewer; + raises BadValue from V3d; -- If thickness is <= 0 SetZCueingOn ( me : mutable ); @@ -390,13 +385,13 @@ is SetLightOn( me : mutable ; MyLight : Light from V3d ) ---Level: Public ---Purpose: Activates MyLight in the view. - raises BadValue from Viewer; + raises BadValue from V3d; -- If No More Light can be activated in MyView . SetLightOn( me : mutable ) ---Level: Public ---Purpose: Activates all the lights defined in this view. - raises BadValue from Viewer; + raises BadValue from V3d; -- If No More Light can be activated in MyView . SetLightOff( me : mutable ; MyLight : Light from V3d ); @@ -419,14 +414,14 @@ is SetPlaneOn( me : mutable ; MyPlane : Plane from V3d ) ---Level: Public ---Purpose: Activates the clipping plane in this view. - raises BadValue from Viewer ; + raises BadValue from V3d ; ---Purpose: If No More Plane can be activated in MyView . SetPlaneOn( me : mutable ) ---Level: Public ---Purpose: Activate all the clipping planes defined in -- this view. - raises BadValue from Viewer; + raises BadValue from V3d; ---Purpose: If No More Plane can be activated in MyView . SetPlaneOff( me : mutable ; MyPlane : Plane from V3d ); @@ -443,6 +438,11 @@ is returns Boolean from Standard; ---Level: Public ---Purpose: Returns TRUE when the plane is active in this view. + + SetImmediateUpdate(me: mutable; theImmediateUpdate: Boolean from Standard) + returns Boolean from Standard; + ---Purpose: sets the immediate update mode and returns the previous one. + --------------------------------------------------- -- Triedron methods @@ -638,8 +638,8 @@ is -- for which the origin is the view point of the projection, -- with a relative angular value in RADIANS with respect to -- the initial position expressed by Start = Standard_True - raises BadValue from Viewer; - ---Purpose: Warning! raises BadValue from Viewer + raises BadValue from V3d; + ---Purpose: Warning! raises BadValue from V3d -- If the eye, the view point, or the high point are -- aligned or confused. @@ -652,7 +652,7 @@ is -- for which the origin is Gravity point {X,Y,Z}, -- with a relative angular value in RADIANS with respect to -- the initial position expressed by Start = Standard_True - raises BadValue from Viewer; + raises BadValue from V3d; ---Purpose: If the eye, the view point, or the high point are -- aligned or confused. @@ -688,7 +688,7 @@ is ---Purpose: Movement of the eye parallel to the coordinate system -- of reference of the screen a distance relative to the -- initial position expressed by Start = Standard_True. - raises BadValue from Viewer; + raises BadValue from V3d; -- If the eye, the view point, or the high point are -- aligned or confused. @@ -699,7 +699,7 @@ is -- coordinate system of reference of the view a distance -- relative to the initial position expressed by -- Start = Standard_True. - raises BadValue from Viewer; + raises BadValue from V3d; -- If the eye, view point, or high point are aligned or confused. Move ( me : mutable ; Length : Length ; @@ -708,7 +708,7 @@ is ---Purpose: Movement of the eye parllel to the current axis -- a distance relative to the initial position -- expressed by Start = Standard_True - raises BadValue from Viewer; + raises BadValue from V3d; -- If the eye, view point, or high point are aligned or confused. Translate ( me : mutable ; Dx,Dy,Dz : Length ; @@ -718,7 +718,7 @@ is -- frame of reference of the screen a distance relative -- to the initial position expressed by -- Start = Standard_True - raises BadValue from Viewer; + raises BadValue from V3d; -- If the eye, view point, or high point are aligned or confused. Translate ( me : mutable ; Axe : TypeOfAxe ; Length : Length ; @@ -742,7 +742,7 @@ is ---Purpose: places the point of the view corresponding -- at the pixel position x,y at the center of the window -- and updates the view. - is redefined static; + is static; Turn ( me : mutable ; Ax,Ay,Az : PlaneAngle ; Start : Boolean = Standard_True ) @@ -752,7 +752,7 @@ is -- projection with a relative angular value in RADIANS -- with respect to the initial position expressed by -- Start = Standard_True - raises BadValue from Viewer; + raises BadValue from V3d; -- If the eye, view point, or high point are aligned or confused. Turn ( me : mutable ; Axe : TypeOfAxe ; Angle : PlaneAngle ; @@ -778,51 +778,51 @@ is -- the reference frame of the view with respect to the -- Y screen axis with an absolute angular value in -- RADIANS. - raises BadValue from Viewer; + raises BadValue from V3d; -- If the eye, view point, or high point are aligned or confused. SetEye( me : mutable ; X,Y,Z : Coordinate ) ---Level: Public ---Purpose: Defines the position of the eye.. - raises BadValue from Viewer ; + raises BadValue from V3d ; -- If the eye, view point, or high point are aligned or confused. SetDepth( me : mutable ; Depth : Length ) ---Level: Public ---Purpose: Defines the Depth of the eye from the view point -- without update the projection . - raises BadValue from Viewer ; + raises BadValue from V3d ; -- If the Depth is <= 0. SetProj( me : mutable ; Vx,Vy,Vz : Parameter ) ---Level: Public ---Purpose: Defines the orientation of the projection. - raises BadValue from Viewer ; + raises BadValue from V3d ; -- If the eye, view point, or high point are aligned or confused. SetProj( me : mutable ; Orientation : TypeOfOrientation ) ---Level: Public ---Purpose: Defines the orientation of the projection . - raises BadValue from Viewer ; + raises BadValue from V3d ; -- If the eye, view point, or high point are aligned or confused. -- Updates the view SetAt( me : mutable ; X,Y,Z : Coordinate ) ---Level: Public ---Purpose: Defines the position of the view point. - raises BadValue from Viewer ; + raises BadValue from V3d ; -- If the eye, view point, or high point are aligned or confused. SetUp( me : mutable ; Vx,Vy,Vz : Parameter ) ---Level: Public ---Purpose: Defines the orientation of the high point. - raises BadValue from Viewer ; + raises BadValue from V3d ; -- If the eye, view point, or high point are aligned or confused. SetUp( me : mutable ; Orientation : TypeOfOrientation ) ---Level: Public ---Purpose: Defines the orientation(SO) of the high point. - raises BadValue from Viewer ; + raises BadValue from V3d ; -- If the eye, view point, or high point are aligned or confused. SetViewOrientation ( me : mutable; VO : ViewOrientation from Visual3d ); @@ -849,20 +849,20 @@ is ---Level: Public ---Purpose: translates the center of the view and zooms the view. -- Updates the view. - raises BadValue from Viewer ; + raises BadValue from V3d ; SetCenter ( me : mutable ; Xc , Yc : Coordinate ) ---Level: Public ---Purpose: Defines the centre of the view. -- Updates the view. - raises BadValue from Viewer ; + raises BadValue from V3d ; -- If one of the dimensions of the projection is NULL. SetCenter ( me : mutable ; X,Y: Integer from Standard) ---Level: Public ---Purpose: Defines the centre of the view from a pixel position. -- Updates the view. - raises BadValue from Viewer ; + raises BadValue from V3d ; -- If one of the dimensions of the projection is NULL. SetSize ( me : mutable ; Size : Length ) @@ -871,7 +871,7 @@ is -- center and height/width ratio of the window supporting -- the view. -- NOTE than the Depth of the View is NOT modified . - raises BadValue from Viewer ; + raises BadValue from V3d ; -- If the size of the view is <= 0 SetZSize ( me : mutable ; Size : Length ) @@ -882,7 +882,7 @@ is -- Any Object located Above the Front Plane or -- behind the Back Plane will be Clipped . -- NOTE than the XY Size of the View is NOT modified . - raises BadValue from Viewer ; + raises BadValue from V3d ; -- If the size of the view is <= 0 SetZoom ( me : mutable ; Coef : Factor ; Start : Boolean = Standard_True ) @@ -890,7 +890,7 @@ is ---Purpose: Zooms the view by a factor relative to the initial -- value expressed by Start = Standard_True -- Updates the view. - raises BadValue from Viewer ; + raises BadValue from V3d ; -- If the zoom coefficient is <= 0 SetScale ( me : mutable ; Coef : Factor ) @@ -898,7 +898,7 @@ is ---Purpose: Zooms the view by a factor relative to the value -- initialised by SetViewMappingDefault(). -- Updates the view. - raises BadValue from Viewer ; + raises BadValue from V3d ; -- If the zoom coefficient is <= 0 SetAxialScale ( me : mutable ; Sx, Sy, Sz : Real from Standard ) @@ -911,7 +911,7 @@ is -- || 0 0 Sz 0 || -- || 0 0 0 1 || -- Updates the view. - raises BadValue from Viewer ; + raises BadValue from V3d ; -- If the one of factors <= 0 FitAll ( me : mutable ; Coef : Coefficient = 0.01; @@ -921,7 +921,7 @@ is -- so as to occupy the maximum space while respecting the -- margin coefficient and the initial height /width ratio. -- NOTE than the original Z size of the view is NOT modified . - raises BadValue from Viewer ; + raises BadValue from V3d ; -- If the margin coefficient is <0 ou >= 1 or -- Updates the view @@ -931,7 +931,7 @@ is -- visualised so as to occupy the maximum Z amount of space -- while respecting the margin coefficient . -- NOTE than the original XY size of the view is NOT modified . - raises BadValue from Viewer ; + raises BadValue from V3d ; -- If the margin coefficient is <0 ou or -- If No Objects are displayed in the view @@ -949,7 +949,7 @@ is -- the maximum space while respecting the initial -- height/width ratio. -- NOTE than the original Z size of the view is NOT modified . - raises BadValue from Viewer; + raises BadValue from V3d; -- If the defined projection window has zero size. @@ -959,9 +959,9 @@ is -- the maximum space while respecting the initial -- height/width ratio. -- NOTE than the original Z size of the view is NOT modified . - raises BadValue from Viewer + raises BadValue from V3d -- If the defined projection window has zero size. - is redefined static; + is static; SetViewingVolume ( me : mutable ; Left, Right, Bottom, Top, ZNear, ZFar : Real from Standard) ---Level: Public @@ -970,7 +970,7 @@ is -- Width/heigth aspect ratio should be preserved by the caller -- of this method similarly to SetSize() to avoid unexpected -- visual results like non-uniform scaling of objects in the view. - raises BadValue from Viewer; + raises BadValue from V3d; -- If the ZNear<0, ZFar<0 or ZNear>=Zfar. SetViewMapping ( me : mutable; VM : ViewMapping from Visual3d ); @@ -1265,7 +1265,7 @@ is Window ( me ) returns mutable Window from Aspect ---Level: Public ---Purpose: Returns the Aspect Window associated with the view. - raises BadValue from Viewer; + raises BadValue from V3d; -- If MyView is not associated with a window Type( me ) returns TypeOfView from V3d; @@ -1387,6 +1387,9 @@ is Matrix : Array2OfReal from TColStd ) returns Vector from Graphic3d is private ; ---Purpose: Transforms the vector V according to the matrice Matrix . + + ImmediateUpdate (me) is static protected; + ---Purpose: ----------------------------------------- ---Category: TransientManager methods @@ -1539,7 +1542,7 @@ is Plot ( me : mutable ) ---Purpose: Create a 2D View for plotting the contents of the view - raises BadValue from Viewer; + raises BadValue from V3d; -- if the plotter is undefined. Compute ( me; AVertex : Vertex from Graphic3d ) @@ -1743,6 +1746,7 @@ fields MyAnimationFlags : Integer from Standard; MyTransparencyFlag : Boolean from Standard; + myImmediateUpdate: Boolean from Standard is protected; friends SetViewOn from class Viewer from V3d ( me : mutable ), diff --git a/src/V3d/V3d_View.cxx b/src/V3d/V3d_View.cxx index a87e48632b..d9d0f7ee99 100755 --- a/src/V3d/V3d_View.cxx +++ b/src/V3d/V3d_View.cxx @@ -160,7 +160,7 @@ To solve the problem (for lack of a better solution) I make 2 passes. #include #include #include -#include +#include #include #include #include @@ -682,7 +682,7 @@ void V3d_View::SetAxis(const Standard_Real X, const Standard_Real Y, const Stand Standard_Real D,Nx = Vx,Ny = Vy,Nz = Vz ; D = Sqrt( Vx*Vx + Vy*Vy + Vz*Vz ) ; - Viewer_BadValue_Raise_if ( D <= 0. , "V3d_View::SetAxis, bad axis"); + V3d_BadValue_Raise_if ( D <= 0. , "V3d_View::SetAxis, bad axis"); Nx /= D ; Ny /= D ; Nz /= D ; MyDefaultViewPoint.SetCoord(X,Y,Z) ; MyDefaultViewAxis.SetCoord(Nx,Ny,Nz) ; @@ -771,7 +771,7 @@ void V3d_View::Rotate(const Standard_Real ax, const Standard_Real ay, const Stan MyViewReferenceUp = MyViewOrientation.ViewReferenceUp() ; if (!ScreenAxis(MyViewReferencePlane,MyViewReferenceUp, MyXscreenAxis,MyYscreenAxis,MyZscreenAxis)) - Viewer_BadValue::Raise ("V3d_View::Rotate, alignment of Eye,At,Up"); + V3d_BadValue::Raise ("V3d_View::Rotate, alignment of Eye,At,Up"); } InitMatrix(Matrix) ; @@ -823,7 +823,7 @@ void V3d_View::Rotate(const Standard_Real ax, const Standard_Real ay, const Stan MyViewReferenceUp = MyViewOrientation.ViewReferenceUp() ; if (!ScreenAxis(MyViewReferencePlane,MyViewReferenceUp, MyXscreenAxis,MyYscreenAxis,MyZscreenAxis)) - Viewer_BadValue::Raise ("V3d_View::Rotate, alignment of Eye,At,Up"); + V3d_BadValue::Raise ("V3d_View::Rotate, alignment of Eye,At,Up"); } InitMatrix(Matrix) ; @@ -973,7 +973,7 @@ void V3d_View::Turn(const Standard_Real ax, const Standard_Real ay, const Standa MyViewReferenceUp = MyViewOrientation.ViewReferenceUp() ; if (!ScreenAxis(MyViewReferencePlane,MyViewReferenceUp, MyXscreenAxis,MyYscreenAxis,MyZscreenAxis)) - Viewer_BadValue::Raise ("V3d_View::Turn, alignment of Eye,At,Up"); + V3d_BadValue::Raise ("V3d_View::Turn, alignment of Eye,At,Up"); } InitMatrix(Matrix) ; @@ -1099,7 +1099,7 @@ void V3d_View::SetTwist(const Standard_Real angle) MyXscreenAxis,MyYscreenAxis,MyZscreenAxis) ; } - Viewer_BadValue_Raise_if( !TheStatus,"V3d_ViewSetTwist, alignment of Eye,At,Up,"); + V3d_BadValue_Raise_if( !TheStatus,"V3d_ViewSetTwist, alignment of Eye,At,Up,"); MyViewReferencePoint = MyViewOrientation.ViewReferencePoint() ; RotAxis(MyViewReferencePoint,MyZscreenAxis,Angle,Matrix) ; @@ -1132,7 +1132,7 @@ void V3d_View::SetEye(const Standard_Real X,const Standard_Real Y,const Standard MyViewReferenceUp = MyViewOrientation.ViewReferenceUp() ; Xpn = X - Xat ; Ypn = Y - Yat ; Zpn = Z - Zat ; Zrp = Sqrt(Xpn*Xpn + Ypn*Ypn + Zpn*Zpn) ; - Viewer_BadValue_Raise_if( Zrp <= 0. , "V3d_View::SetEye:: Eye,At are Confused"); + V3d_BadValue_Raise_if( Zrp <= 0. , "V3d_View::SetEye:: Eye,At are Confused"); Xpn /= Zrp ; Ypn /= Zrp ; Zpn /= Zrp ; MyViewReferencePlane.SetCoord(Xpn,Ypn,Zpn) ; @@ -1171,9 +1171,9 @@ void V3d_View::SetDepth(const Standard_Real Depth) { Standard_Real Xrp,Yrp,Zrp ; #ifdef IMP250200 - Viewer_BadValue_Raise_if( Depth == 0. ,"V3d_View::SetDepth, bad depth"); + V3d_BadValue_Raise_if( Depth == 0. ,"V3d_View::SetDepth, bad depth"); #else - Viewer_BadValue_Raise_if( Depth <= 0. ,"V3d_View::SetDepth, bad depth"); + V3d_BadValue_Raise_if( Depth <= 0. ,"V3d_View::SetDepth, bad depth"); #endif MyViewReferencePoint = MyViewOrientation.ViewReferencePoint() ; @@ -1231,7 +1231,7 @@ void V3d_View::SetProj( const Standard_Real Vx,const Standard_Real Vy, const Sta { Standard_Real Angle ; - Viewer_BadValue_Raise_if( Sqrt(Vx*Vx + Vy*Vy + Vz*Vz) <= 0., + V3d_BadValue_Raise_if( Sqrt(Vx*Vx + Vy*Vy + Vz*Vz) <= 0., "V3d_View::SetProj, null projection vector"); Angle = Twist() ; @@ -1290,7 +1290,7 @@ void V3d_View::SetAt(const Standard_Real X,const Standard_Real Y,const Standard_ Xeye = Zrp*Xpn + Xat ; Yeye = Zrp*Ypn + Yat ; Zeye = Zrp*Zpn + Zat ; Xpn = Xeye - X ; Ypn = Yeye - Y ; Zpn = Zeye - Z ; Zrp = Sqrt(Xpn*Xpn + Ypn*Ypn + Zpn*Zpn) ; - Viewer_BadValue_Raise_if( Zrp <= 0., + V3d_BadValue_Raise_if( Zrp <= 0., "V3d_View::SetAt, Eye,At are Confused"); Xpn /= Zrp ; Ypn /= Zrp ; Zpn /= Zrp ; @@ -1332,7 +1332,7 @@ void V3d_View::SetAt(const Standard_Real X,const Standard_Real Y,const Standard_ void V3d_View::SetUp(const Standard_Real Vx,const Standard_Real Vy,const Standard_Real Vz) { Standard_Boolean TheStatus ; - Viewer_BadValue_Raise_if( Sqrt(Vx*Vx + Vy*Vy + Vz*Vz) <= 0. , + V3d_BadValue_Raise_if( Sqrt(Vx*Vx + Vy*Vy + Vz*Vz) <= 0. , "V3d_View::SetUp, nullUp vector"); MyViewReferencePlane = MyViewOrientation.ViewReferencePlane() ; @@ -1355,7 +1355,7 @@ void V3d_View::SetUp(const Standard_Real Vx,const Standard_Real Vy,const Standar TheStatus = ScreenAxis(MyViewReferencePlane,MyViewReferenceUp, MyXscreenAxis,MyYscreenAxis,MyZscreenAxis) ; } - Viewer_BadValue_Raise_if( !TheStatus,"V3d_View::Setup, alignment of Eye,At,Up"); + V3d_BadValue_Raise_if( !TheStatus,"V3d_View::Setup, alignment of Eye,At,Up"); MyViewReferenceUp = MyYscreenAxis ; MyViewOrientation.SetViewReferenceUp(MyViewReferenceUp) ; @@ -1386,7 +1386,7 @@ void V3d_View::SetUp( const V3d_TypeOfOrientation Orientation ) TheStatus = ScreenAxis(MyViewReferencePlane,MyViewReferenceUp, MyXscreenAxis,MyYscreenAxis,MyZscreenAxis) ; } - Viewer_BadValue_Raise_if( !TheStatus, "V3d_View::SetUp, alignment of Eye,At,Up"); + V3d_BadValue_Raise_if( !TheStatus, "V3d_View::SetUp, alignment of Eye,At,Up"); MyViewReferenceUp = MyYscreenAxis ; MyViewOrientation.SetViewReferenceUp(MyViewReferenceUp) ; @@ -1434,7 +1434,7 @@ void V3d_View::Reset( const Standard_Boolean update ) void V3d_View::Panning(const Standard_Real Dx, const Standard_Real Dy, const Quantity_Factor aZoomFactor, const Standard_Boolean Start) { Standard_Real Umin,Vmin,Umax,Vmax,Xrp,Yrp,Zrp,Dxv,Dyv ; - Viewer_BadValue_Raise_if( aZoomFactor <= 0.,"V3d_View::Panning, bad zoom factor"); + V3d_BadValue_Raise_if( aZoomFactor <= 0.,"V3d_View::Panning, bad zoom factor"); if( Start ) { MyProjReferencePoint = MyViewMapping.ProjectionReferencePoint() ; @@ -1443,7 +1443,7 @@ void V3d_View::Panning(const Standard_Real Dx, const Standard_Real Dy, const Qua MyYwindowCenter = (Vmin + Vmax)/2. ; MyWindowWidth = Abs(Umax - Umin) ; MyWindowHeight = Abs(Vmax - Vmin) ; - Viewer_BadValue_Raise_if( MyWindowWidth <= 0. || MyWindowHeight <= 0. , + V3d_BadValue_Raise_if( MyWindowWidth <= 0. || MyWindowHeight <= 0. , "V3d_View::Panning, Window Size is NULL"); } MyProjReferencePoint.Coord(Xrp,Yrp,Zrp) ; @@ -1477,7 +1477,7 @@ void V3d_View::SetCenter(const Standard_Real Xc, const Standard_Real Yc) MyXwindowCenter = Xrp = Xc ; MyYwindowCenter = Yrp = Yc ; MyViewMapping.WindowLimit(Umin,Vmin,Umax,Vmax) ; MyWindowWidth = Abs(Umax - Umin) ; MyWindowHeight = Abs(Vmax - Vmin) ; - Viewer_BadValue_Raise_if( MyWindowWidth <= 0. || MyWindowHeight <= 0. , + V3d_BadValue_Raise_if( MyWindowWidth <= 0. || MyWindowHeight <= 0. , "V3d_View::SetCenter, Window Size is NULL"); Umin = Xc - MyWindowWidth/2. ; Vmin = Yc - MyWindowHeight/2. ; @@ -1495,7 +1495,7 @@ void V3d_View::SetSize(const Standard_Real Size) { Standard_Real Umin,Vmin,Umax,Vmax,Rap ; - Viewer_BadValue_Raise_if( Size <= 0., + V3d_BadValue_Raise_if( Size <= 0., "V3d_View::SetSize, Window Size is NULL"); @@ -1534,7 +1534,7 @@ void V3d_View::SetZSize(const Standard_Real Size) if( Zmax <= MyViewMapping.FrontPlaneDistance() ) return; } #else - Viewer_BadValue_Raise_if( Size <= 0., + V3d_BadValue_Raise_if( Size <= 0., "V3d_View::SetZSize, Window ZSize is NULL"); #endif @@ -1563,7 +1563,7 @@ void V3d_View::SetZSize(const Standard_Real Size) void V3d_View::SetZoom(const Standard_Real Coef,const Standard_Boolean Start) { Standard_Real Umin,Vmin,Umax,Vmax,Dxv,Dyv ; - Viewer_BadValue_Raise_if( Coef <= 0.,"V3d_View::SetZoom, bad coefficient"); + V3d_BadValue_Raise_if( Coef <= 0.,"V3d_View::SetZoom, bad coefficient"); if( Start ) { MyViewMapping.WindowLimit(Umin,Vmin,Umax,Vmax) ; @@ -1598,7 +1598,7 @@ void V3d_View::SetScale( const Standard_Real Coef ) Standard_Real Umin,Vmin,Umax,Vmax,Xrp,Yrp,Dxv,Dyv ; Visual3d_ViewMapping VMD = MyView->ViewMappingDefault() ; - Viewer_BadValue_Raise_if( Coef <= 0. ,"V3d_View::SetScale, bad coefficient"); + V3d_BadValue_Raise_if( Coef <= 0. ,"V3d_View::SetScale, bad coefficient"); VMD.WindowLimit(Umin,Vmin,Umax,Vmax) ; Dxv = Abs(Umax - Umin) ; Dyv = Abs(Vmax - Vmin) ; @@ -1616,7 +1616,7 @@ void V3d_View::SetAxialScale( const Standard_Real Sx, const Standard_Real Sy, co { Standard_Real Xmin,Ymin,Zmin,Xmax,Ymax,Zmax,U,V,W ; Standard_Real Umin,Vmin,Wmin,Umax,Vmax,Wmax ; - Viewer_BadValue_Raise_if( Sx <= 0. || Sy <= 0. || Sz <= 0.,"V3d_View::SetAxialScale, bad coefficient"); + V3d_BadValue_Raise_if( Sx <= 0. || Sy <= 0. || Sz <= 0.,"V3d_View::SetAxialScale, bad coefficient"); MyViewOrientation.SetAxialScale( Sx, Sy, Sz ); Aspect_TypeOfUpdate updateMode = MyView->ViewManager()->UpdateMode(); @@ -2586,7 +2586,7 @@ void V3d_View::SetViewingVolume(const Standard_Real Left, const Standard_Real Ri { Standard_Real Umin,Vmin,Umax,Vmax,Xrp,Yrp,Zrp; - Viewer_BadValue_Raise_if ( ZNear <= 0. || ZFar <= 0. || ZNear >= ZFar, "V3d_View::SetVolume, bad distances"); + V3d_BadValue_Raise_if ( ZNear <= 0. || ZFar <= 0. || ZNear >= ZFar, "V3d_View::SetVolume, bad distances"); MyProjReferencePoint = MyViewMapping.ProjectionReferencePoint() ; MyProjReferencePoint.Coord(Xrp,Yrp,Zrp) ; @@ -2900,7 +2900,7 @@ void V3d_View::ZoomAtPoint(const Standard_Integer mouseStartX, Standard_Real dzoom = fabs(d) / 100.0 + 1.0; dzoom = (d > 0) ? dzoom : 1.0 / dzoom; - Viewer_BadValue_Raise_if( dzoom <= 0.,"V3d_View::ZoomAtPoint, bad coefficient"); + V3d_BadValue_Raise_if( dzoom <= 0.,"V3d_View::ZoomAtPoint, bad coefficient"); Standard_Real Umin,Vmin,Umax,Vmax; MyViewMapping.WindowLimit(Umin,Vmin,Umax,Vmax); @@ -2988,7 +2988,7 @@ void V3d_View::FitAll(const Handle(Aspect_Window)& aWindow, Standard_Integer Xpixel,Ypixel; //Standard_Integer Xleft,Yup,Xright,Ylow ; - Viewer_BadValue_Raise_if( (Xmin == Xmax) || (Ymin == Ymax) , + V3d_BadValue_Raise_if( (Xmin == Xmax) || (Ymin == Ymax) , "V3d_View::FitAll, Window Size is NULL"); MyProjReferencePoint = MyViewMapping.ProjectionReferencePoint() ; @@ -3256,7 +3256,7 @@ void V3d_View::SetPlotter(const Handle(Graphic3d_Plotter)& aPlotter) void V3d_View::Plot() { - Viewer_BadValue_Raise_if( !MyPlotter.IsNull(), "view has no plotter"); + V3d_BadValue_Raise_if( !MyPlotter.IsNull(), "view has no plotter"); MyView->Plot(MyPlotter); } @@ -3456,3 +3456,15 @@ Standard_Boolean V3d_View::ToPixMap (Image_PixMap& theImage, cView->ptrFBO = aPrevFBOPtr; return isSuccess; } + +void V3d_View::ImmediateUpdate() const +{ + if (myImmediateUpdate) Update(); +} + +Standard_Boolean V3d_View::SetImmediateUpdate (const Standard_Boolean theImmediateUpdate) +{ + Standard_Boolean aPreviousMode = myImmediateUpdate; + myImmediateUpdate = theImmediateUpdate; + return aPreviousMode; +} diff --git a/src/V3d/V3d_View_1.cxx b/src/V3d/V3d_View_1.cxx index 47b6da514c..14b6fa6189 100755 --- a/src/V3d/V3d_View_1.cxx +++ b/src/V3d/V3d_View_1.cxx @@ -60,7 +60,7 @@ void V3d_View::SetZClippingDepth(const Standard_Real Depth) { void V3d_View::SetZClippingWidth(const Standard_Real Width) { Standard_Real Front,Back,Depth ; - Viewer_BadValue_Raise_if( Width <= 0.,"V3d_View::SetZClippingWidth, bad width"); + V3d_BadValue_Raise_if( Width <= 0.,"V3d_View::SetZClippingWidth, bad width"); Front = MyViewContext.ZClippingFrontPlane() ; Back = MyViewContext.ZClippingBackPlane() ; @@ -136,7 +136,7 @@ void V3d_View::SetZCueingDepth(const Standard_Real Depth) { void V3d_View::SetZCueingWidth(const Standard_Real Width) { Standard_Real Front,Back,Depth ; - Viewer_BadValue_Raise_if( Width <= 0.,"V3d_View::SetZCueingWidth, bad width"); + V3d_BadValue_Raise_if( Width <= 0.,"V3d_View::SetZCueingWidth, bad width"); Front = MyViewContext.DepthCueingFrontPlane() ; Back = MyViewContext.DepthCueingBackPlane() ; diff --git a/src/V3d/V3d_View_2.cxx b/src/V3d/V3d_View_2.cxx index 62218b6cd7..56c29389da 100755 --- a/src/V3d/V3d_View_2.cxx +++ b/src/V3d/V3d_View_2.cxx @@ -54,10 +54,10 @@ void V3d_View::SetLightOn( const Handle(V3d_Light)& TheLight ) { if( !MyActiveLights.Contains(TheLight)){ #ifdef GER61454 - Viewer_BadValue_Raise_if( MyActiveLights.Extent() >= MyView->LightLimit(), + V3d_BadValue_Raise_if( MyActiveLights.Extent() >= MyView->LightLimit(), "too many lights"); #else -// Viewer_BadValue_Raise_if( MyActiveLights.Extent() >= Visual3d_Light::Limit(), +// V3d_BadValue_Raise_if( MyActiveLights.Extent() >= Visual3d_Light::Limit(), // "too many lights"); #endif MyActiveLights.Append(TheLight) ; @@ -123,14 +123,14 @@ void V3d_View::SetPlaneOn( const Handle(V3d_Plane)& ThePlane ) { #ifdef GER61454 if( !MyActivePlanes.Contains(ThePlane)) { - Viewer_BadValue_Raise_if( MyActivePlanes.Extent() >= MyView->PlaneLimit(), "too many planes"); + V3d_BadValue_Raise_if( MyActivePlanes.Extent() >= MyView->PlaneLimit(), "too many planes"); MyActivePlanes.Append(ThePlane) ; } MyViewContext.SetClipPlaneOn(ThePlane->Plane()) ; MyView->SetContext(MyViewContext); #else //GER61454 if( !MyActivePlanes.Contains(ThePlane)) { - Viewer_BadValue_Raise_if( MyActivePlanes.Extent() >= Visual3d_ClipPlane::Limit(), "too many planes"); + V3d_BadValue_Raise_if( MyActivePlanes.Extent() >= Visual3d_ClipPlane::Limit(), "too many planes"); MyActivePlanes.Append(ThePlane) ; MyViewContext.SetClipPlaneOn(ThePlane->Plane()) ; @@ -156,7 +156,7 @@ void V3d_View::SetPlaneOn( ) { #ifdef GER61454 for(MyViewer->InitDefinedPlanes();MyViewer->MoreDefinedPlanes();MyViewer->NextDefinedPlanes()) { if(!MyActivePlanes.Contains(MyViewer->DefinedPlane())) { - Viewer_BadValue_Raise_if( MyActivePlanes.Extent() >= MyView->PlaneLimit(), "too many planes"); + V3d_BadValue_Raise_if( MyActivePlanes.Extent() >= MyView->PlaneLimit(), "too many planes"); MyActivePlanes.Append(MyViewer->DefinedPlane()); } MyViewContext.SetClipPlaneOn(MyViewer->DefinedPlane()->Plane()); @@ -165,7 +165,7 @@ void V3d_View::SetPlaneOn( ) { #else //GER61454 for(MyViewer->InitDefinedPlanes();MyViewer->MoreDefinedPlanes();MyViewer->NextDefinedPlanes()) { if(!MyActivePlanes.Contains(MyViewer->DefinedPlane())) { - Viewer_BadValue_Raise_if( MyActivePlanes.Extent() >= Visual3d_ClipPlane::Limit(), + V3d_BadValue_Raise_if( MyActivePlanes.Extent() >= Visual3d_ClipPlane::Limit(), "too many planes"); MyActivePlanes.Append(MyViewer->DefinedPlane()); MyViewContext.SetClipPlaneOn(MyViewer->DefinedPlane()->Plane()); diff --git a/src/V3d/V3d_View_3.cxx b/src/V3d/V3d_View_3.cxx index 0e0568b827..11b63f2bac 100755 --- a/src/V3d/V3d_View_3.cxx +++ b/src/V3d/V3d_View_3.cxx @@ -60,7 +60,7 @@ void V3d_View::Move(const Standard_Real Dx, const Standard_Real Dy, const Standa MyViewReferenceUp = MyViewOrientation.ViewReferenceUp() ; if (!ScreenAxis(MyViewReferencePlane,MyViewReferenceUp, MyXscreenAxis,MyYscreenAxis,MyZscreenAxis)) - Viewer_BadValue::Raise ("V3d_View::Move, alignment of Eye,At,Up"); + V3d_BadValue::Raise ("V3d_View::Move, alignment of Eye,At,Up"); } MyXscreenAxis.Coord(XX,XY,XZ) ; MyYscreenAxis.Coord(YX,YY,YZ) ; @@ -71,7 +71,7 @@ void V3d_View::Move(const Standard_Real Dx, const Standard_Real Dy, const Standa Yeye = Zrp*Ypn + Dx*XY + Dy*YY + Dz*ZY ; Zeye = Zrp*Zpn + Dx*XZ + Dy*YZ + Dz*ZZ ; Zrp = sqrt( Xeye*Xeye + Yeye*Yeye + Zeye*Zeye ) ; - Viewer_BadValue_Raise_if( Zrp <= 0. ,"V3d_View::Move:: Eye,At are Confused"); + V3d_BadValue_Raise_if( Zrp <= 0. ,"V3d_View::Move:: Eye,At are Confused"); #ifdef DEB Standard_Real focale = #endif @@ -122,7 +122,7 @@ void V3d_View::Move(const Standard_Real Length, const Standard_Boolean Start) { Yeye = Zrp*Ypn + Vy*Length ; Zeye = Zrp*Zpn + Vz*Length ; Zrp = sqrt( Xeye*Xeye + Yeye*Yeye + Zeye*Zeye ) ; - Viewer_BadValue_Raise_if( Zrp <= 0. ,"V3d_View::Move:: Eye,At are Confused"); + V3d_BadValue_Raise_if( Zrp <= 0. ,"V3d_View::Move:: Eye,At are Confused"); #ifdef DEB Standard_Real focale = @@ -185,7 +185,7 @@ void V3d_View::Translate(const Standard_Real Dx, const Standard_Real Dy, const S MyProjReferencePoint = MyViewMapping.ProjectionReferencePoint(); if (!ScreenAxis(MyViewReferencePlane,MyViewReferenceUp, MyXscreenAxis,MyYscreenAxis,MyZscreenAxis)) - Viewer_BadValue::Raise ("V3d_View::Translate, alignment of Eye,At,Up"); + V3d_BadValue::Raise ("V3d_View::Translate, alignment of Eye,At,Up"); } MyXscreenAxis.Coord(XX,XY,XZ) ; MyYscreenAxis.Coord(YX,YY,YZ) ; diff --git a/src/V3d/V3d_Viewer.cdl b/src/V3d/V3d_Viewer.cdl index 2a76ea7156..764af740c5 100755 --- a/src/V3d/V3d_Viewer.cdl +++ b/src/V3d/V3d_Viewer.cdl @@ -28,7 +28,7 @@ -- Add ShowGridEcho() private method -- SAV - 26/11/02 -> Add new field to store grid echo aspect -class Viewer from V3d +class Viewer from V3d inherits TShared from MMgt ---Version: @@ -41,10 +41,6 @@ class Viewer from V3d ---References: -inherits - - Viewer from Viewer - uses GraphicDriver from Graphic3d, @@ -86,29 +82,29 @@ uses raises - BadValue from Viewer + BadValue from V3d is - Create ( theDriver : GraphicDriver from Graphic3d; - aName : ExtString from Standard; - aDomain : CString from Standard = ""; - ViewSize : Length from Quantity = 1000.0 ; - ViewProj : TypeOfOrientation from V3d= V3d_XposYnegZpos ; - ViewBackground : NameOfColor from Quantity = Quantity_NOC_GRAY30; - Visualization : TypeOfVisualization from V3d = V3d_ZBUFFER; - ShadingModel : TypeOfShadingModel from V3d = V3d_GOURAUD ; - UpdateMode : TypeOfUpdate from V3d = V3d_WAIT; - ComputedMode : Boolean from Standard = Standard_True; - DefaultComputedMode: Boolean from Standard = Standard_True; - SurfaceDetail : TypeOfSurfaceDetail from V3d = V3d_TEX_NONE) + Create (theDriver : GraphicDriver from Graphic3d; + theName : ExtString from Standard; + theDomain : CString from Standard = ""; + theViewSize : Length from Quantity = 1000.0 ; + theViewProj : TypeOfOrientation from V3d= V3d_XposYnegZpos ; + theViewBackground : NameOfColor from Quantity = Quantity_NOC_GRAY30; + theVisualization : TypeOfVisualization from V3d = V3d_ZBUFFER; + theShadingModel : TypeOfShadingModel from V3d = V3d_GOURAUD ; + theUpdateMode : TypeOfUpdate from V3d = V3d_WAIT; + theComputedMode : Boolean from Standard = Standard_True; + theDefaultComputedMode: Boolean from Standard = Standard_True; + theSurfaceDetail : TypeOfSurfaceDetail from V3d = V3d_TEX_NONE) returns mutable Viewer from V3d ---Purpose: Create a Viewer with the given graphic driver and the given parameters or -- with their default values. -- Currently creating of more than 100 viewer instances -- is not supported and leads to an exception. -- This limitation might be addressed in some future OCCT releases. - raises BadValue from Viewer ; + raises BadValue from V3d ; ---Purpose: If the size of the view is <= 0 -- if ComputedMode is false, only the degenerate mode will be used. -- @@ -137,7 +133,7 @@ is ---Purpose: Activates a particular view in the Viewer . -- Must be call if the Window attached to the view -- has been Deiconified . - raises BadValue from Viewer; + raises BadValue from V3d; -- If the view is not mapped on the window. SetViewOff (me:mutable); @@ -150,10 +146,10 @@ is ---Purpose: Deactivates a particular view in the Viewer. -- Must be call if the Window attached to the view -- has been Iconified . - raises BadValue from Viewer; + raises BadValue from V3d; -- If the view is not mapped on the window. - Update (me:mutable ) is redefined static; + Update (me:mutable ) is static; ---Level: Public ---Purpose: Deprecated, Redraw() should be used instead. @@ -218,7 +214,7 @@ is ---Level: Public ---Purpose: Gives a default size for the creation of views of -- the viewer. - raises BadValue from Viewer; + raises BadValue from V3d; -- If the size of the view is <= 0 SetDefaultViewProj (me:mutable; Orientation : TypeOfOrientation ); @@ -281,13 +277,13 @@ is SetLightOn(me:mutable; MyLight : Light from V3d ) ---Level: Public ---Purpose: Activates MyLight in the viewer. - raises BadValue from Viewer; + raises BadValue from V3d; -- If No More Light can be activated in MyViewer . SetLightOn(me:mutable) ---Level: Public ---Purpose: Activates all the lights defined in this viewer. - raises BadValue from Viewer; + raises BadValue from V3d; -- If No More Light can be activated in MyViewer . SetLightOff(me:mutable; MyLight : Light from V3d ); @@ -696,8 +692,25 @@ is -- from lowest layer to highest ( foreground ). The first layer ID -- in sequence is the default layer that can't be removed. + Driver(me) returns mutable GraphicDriver from Graphic3d + is static; + ---C++: return const & + + NextName(me) returns ExtString from Standard + is static; + + Domain(me) returns CString from Standard + is static; + + IncrCount(me:mutable) is static protected; + fields + myNextCount: Integer from Standard; + myDriver: GraphicDriver from Graphic3d; + myName: ExtendedString from TCollection; + myDomain: AsciiString from TCollection; + MyViewer: ViewManager from Visual3d ; MyDefinedViews: ListOfTransient from V3d; MyActiveViews: ListOfTransient from V3d; diff --git a/src/V3d/V3d_Viewer.cxx b/src/V3d/V3d_Viewer.cxx index a444346ada..59719bba14 100755 --- a/src/V3d/V3d_Viewer.cxx +++ b/src/V3d/V3d_Viewer.cxx @@ -46,15 +46,29 @@ #include #include #include -#include +#include #include #include /*----------------------------------------------------------------------*/ //-Constructor: -V3d_Viewer::V3d_Viewer(const Handle(Graphic3d_GraphicDriver)& theDriver , const Standard_ExtString aName, const Standard_CString aDomain,const Standard_Real ViewSize , const V3d_TypeOfOrientation ViewProj , const Quantity_NameOfColor ViewBackground , const V3d_TypeOfVisualization Visualization , const V3d_TypeOfShadingModel ShadingModel , const V3d_TypeOfUpdate UpdateMode, const Standard_Boolean ComputedMode , const Standard_Boolean DefaultComputedMode , const V3d_TypeOfSurfaceDetail SurfaceDetail ) -:Viewer_Viewer(theDriver,aName,aDomain,-1), +V3d_Viewer::V3d_Viewer (const Handle(Graphic3d_GraphicDriver)& theDriver, + const Standard_ExtString theName, + const Standard_CString theDomain, + const Standard_Real theViewSize, + const V3d_TypeOfOrientation theViewProj, + const Quantity_NameOfColor theViewBackground, + const V3d_TypeOfVisualization theVisualization, + const V3d_TypeOfShadingModel theShadingModel, + const V3d_TypeOfUpdate theUpdateMode, + const Standard_Boolean theComputedMode, + const Standard_Boolean theDefaultComputedMode, + const V3d_TypeOfSurfaceDetail theSurfaceDetail) +:myNextCount (-1), +myDriver (theDriver), +myName (TCollection_ExtendedString (theName)), +myDomain (TCollection_AsciiString (theDomain)), MyDefinedViews(), MyActiveViews(), MyDefinedLights(), @@ -65,36 +79,35 @@ myDefinedViewsIterator(), myActiveLightsIterator(), myDefinedLightsIterator(), myDefinedPlanesIterator(), -myComputedMode(ComputedMode), -myDefaultComputedMode(DefaultComputedMode), -myPrivilegedPlane(gp_Ax3(gp_Pnt(0.,0.,0),gp_Dir(0.,0.,1.),gp_Dir(1.,0.,0.))), -myDisplayPlane(Standard_False), -myDisplayPlaneLength(ViewSize) +myComputedMode (theComputedMode), +myDefaultComputedMode (theDefaultComputedMode), +myPrivilegedPlane (gp_Ax3 (gp_Pnt (0.,0.,0), gp_Dir (0.,0.,1.), gp_Dir (1.,0.,0.))), +myDisplayPlane (Standard_False), +myDisplayPlaneLength (theViewSize) #ifdef IMP240100 -,myGridEcho(Standard_True),myGridEchoStructure(),myGridEchoGroup() +,myGridEcho (Standard_True), myGridEchoStructure(), myGridEchoGroup() #endif { - - MyViewer = new Visual3d_ViewManager(theDriver) ; + MyViewer = new Visual3d_ViewManager (theDriver); // san (16/09/2010): It has been decided to turn depth test ON // by default, as this is important for new font rendering // (without it, there are numerous texture rendering artefacts) MyViewer->SetZBufferAuto (Standard_False); - SetUpdateMode( UpdateMode ) ; - SetDefaultViewSize(ViewSize) ; - SetDefaultViewProj(ViewProj) ; - SetDefaultBackgroundColor(ViewBackground) ; - SetDefaultVisualization(Visualization) ; - SetDefaultShadingModel(ShadingModel) ; - SetDefaultSurfaceDetail(SurfaceDetail) ; - SetDefaultAngle(M_PI / 2.); - SetDefaultTypeOfView(V3d_ORTHOGRAPHIC); + SetUpdateMode (theUpdateMode); + SetDefaultViewSize (theViewSize); + SetDefaultViewProj (theViewProj); + SetDefaultBackgroundColor (theViewBackground); + SetDefaultVisualization (theVisualization); + SetDefaultShadingModel (theShadingModel); + SetDefaultSurfaceDetail (theSurfaceDetail); + SetDefaultAngle (M_PI / 2.); + SetDefaultTypeOfView (V3d_ORTHOGRAPHIC); Quantity_Color Color1 (Quantity_NOC_GRAY50); Quantity_Color Color2 (Quantity_NOC_GRAY70); // Quantity_Color White (Quantity_NOC_WHITE); - myRGrid = new V3d_RectangularGrid(this,Color1,Color2); - myCGrid = new V3d_CircularGrid(this,Color1,Color2); + myRGrid = new V3d_RectangularGrid (this, Color1, Color2); + myCGrid = new V3d_CircularGrid (this, Color1, Color2); myGridType = Aspect_GT_Rectangular; } @@ -233,7 +246,7 @@ void V3d_Viewer::SetDefaultBgGradientColors( const Quantity_Color& Color1, void V3d_Viewer::SetDefaultViewSize(const Standard_Real Size) { - Viewer_BadValue_Raise_if( Size <= 0. ,"V3d_Viewer::SetDefaultViewSize, bad size"); + V3d_BadValue_Raise_if( Size <= 0. ,"V3d_Viewer::SetDefaultViewSize, bad size"); MyViewSize = Size ; } @@ -395,3 +408,46 @@ void V3d_Viewer::GetAllZLayers (TColStd_SequenceOfInteger& theLayerSeq) const { MyViewer->GetAllZLayers (theLayerSeq); } + +//======================================================================= +//function : Domain +//purpose : +//======================================================================= + +Standard_CString V3d_Viewer::Domain() const +{ + return myDomain.ToCString(); +} + +//======================================================================= +//function : Driver +//purpose : +//======================================================================= + +const Handle(Graphic3d_GraphicDriver)& V3d_Viewer::Driver() const +{ + return myDriver; +} + +//======================================================================= +//function : NextName +//purpose : +//======================================================================= + +Standard_ExtString V3d_Viewer::NextName() const +{ + TCollection_ExtendedString aNextName = TCollection_ExtendedString (myName.ToExtString()); + aNextName.AssignCat (TCollection_ExtendedString (myNextCount)); + + return aNextName.ToExtString(); +} + +//======================================================================= +//function : IncrCount +//purpose : +//======================================================================= + +void V3d_Viewer::IncrCount() +{ + myNextCount++; +} \ No newline at end of file diff --git a/src/V3d/V3d_Viewer_2.cxx b/src/V3d/V3d_Viewer_2.cxx index 3f1aae7153..7afc4fd0f6 100755 --- a/src/V3d/V3d_Viewer_2.cxx +++ b/src/V3d/V3d_Viewer_2.cxx @@ -20,7 +20,7 @@ #include #include #include -#include +#include #include void V3d_Viewer::UpdateLights() { @@ -33,7 +33,7 @@ void V3d_Viewer::SetLightOn( const Handle(V3d_Light)& TheLight ) { if(!MyActiveLights.Contains(TheLight)) { -// Viewer_BadValue_Raise_if( MyActiveLights.Extent() >= Visual3d_Light::Limit(), +// V3d_BadValue_Raise_if( MyActiveLights.Extent() >= Visual3d_Light::Limit(), // "too many lights"); MyActiveLights.Append(TheLight) ; } @@ -54,7 +54,7 @@ void V3d_Viewer::SetLightOn() { for (InitDefinedLights();MoreDefinedLights();NextDefinedLights()) { if(!MyActiveLights.Contains(DefinedLight())) { -// Viewer_BadValue_Raise_if( MyActiveLights.Extent() >= Visual3d_Light::Limit(), +// V3d_BadValue_Raise_if( MyActiveLights.Extent() >= Visual3d_Light::Limit(), // "too many lights"); MyActiveLights.Append(DefinedLight()); for (InitActiveViews();MoreActiveViews();NextActiveViews()) { diff --git a/src/Viewer/Viewer.cdl b/src/Viewer/Viewer.cdl deleted file mode 100755 index cc13d5cba7..0000000000 --- a/src/Viewer/Viewer.cdl +++ /dev/null @@ -1,33 +0,0 @@ --- Created on: 1995-04-06 --- Created by: Jean-Louis Frenkel --- Copyright (c) 1995-1999 Matra Datavision --- Copyright (c) 1999-2012 OPEN CASCADE SAS --- --- The content of this file is subject to the Open CASCADE Technology Public --- License Version 6.5 (the "License"). You may not use the content of this file --- except in compliance with the License. Please obtain a copy of the License --- at http://www.opencascade.org and read it completely before using this file. --- --- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its --- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France. --- --- The Original Code and all software distributed under the License is --- distributed on an "AS IS" basis, without warranty of any kind, and the --- Initial Developer hereby disclaims all such warranties, including without --- limitation, any warranties of merchantability, fitness for a particular --- purpose or non-infringement. Please see the License for the specific terms --- and conditions governing the rights and limitations under the License. - - -package Viewer - -uses MMgt,TCollection,Graphic3d,Quantity - -is - - deferred class Viewer; - deferred class View; - - exception BadValue inherits OutOfRange; - -end Viewer; diff --git a/src/Viewer/Viewer_View.cdl b/src/Viewer/Viewer_View.cdl deleted file mode 100755 index a7bde65139..0000000000 --- a/src/Viewer/Viewer_View.cdl +++ /dev/null @@ -1,66 +0,0 @@ --- Created on: 1996-03-07 --- Created by: Jean-Louis Frenkel --- Copyright (c) 1996-1999 Matra Datavision --- Copyright (c) 1999-2012 OPEN CASCADE SAS --- --- The content of this file is subject to the Open CASCADE Technology Public --- License Version 6.5 (the "License"). You may not use the content of this file --- except in compliance with the License. Please obtain a copy of the License --- at http://www.opencascade.org and read it completely before using this file. --- --- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its --- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France. --- --- The Original Code and all software distributed under the License is --- distributed on an "AS IS" basis, without warranty of any kind, and the --- Initial Developer hereby disclaims all such warranties, including without --- limitation, any warranties of merchantability, fitness for a particular --- purpose or non-infringement. Please see the License for the specific terms --- and conditions governing the rights and limitations under the License. - - -deferred class View from Viewer inherits TShared from MMgt - ---Purpose: This class defines a view. -uses - Length from Quantity,Factor from Quantity -raises - BadValue from Viewer -is - Initialize; - - Update(me) - ---Purpose: Clears the window and redraws all primitives. - is deferred; - - - SetImmediateUpdate(me: mutable; onoff: Boolean from Standard) - ---Purpose: sets the immediate update mode and returns the previous one. - returns Boolean from Standard; - - ImmediateUpdate(me) - ---Purpose: - is static protected; - - WindowFit(me: mutable ; Xmin, Ymin, Xmax, Ymax : Integer) - ---Purpose: Centres the defined pixel window defined by the - -- minimum and maximum pixels Xmin, Ymin, Xmax, - -- Ymax so that it occupies the largest possible space - -- while maintaining the initial height/width ratio. - -- Exceptions - -- Viewer_BadValue if the size of the defined - -- projection window is equal to 0. - raises BadValue from Viewer - is deferred; - - Place (me:mutable; x,y: Integer from Standard; - aZoomFactor: Factor from Quantity = 1) - ---Purpose: Sets the center of the object space defined by x, y - -- and the zoom factor aZoomFactor. The view is updated. - is deferred; - -fields - - myImmediateUpdate: Boolean from Standard is protected; - - -end View from Viewer; diff --git a/src/Viewer/Viewer_View.cxx b/src/Viewer/Viewer_View.cxx deleted file mode 100755 index babd592ed5..0000000000 --- a/src/Viewer/Viewer_View.cxx +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright (c) 1999-2012 OPEN CASCADE SAS -// -// The content of this file is subject to the Open CASCADE Technology Public -// License Version 6.5 (the "License"). You may not use the content of this file -// except in compliance with the License. Please obtain a copy of the License -// at http://www.opencascade.org and read it completely before using this file. -// -// The Initial Developer of the Original Code is Open CASCADE S.A.S., having its -// main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France. -// -// The Original Code and all software distributed under the License is -// distributed on an "AS IS" basis, without warranty of any kind, and the -// Initial Developer hereby disclaims all such warranties, including without -// limitation, any warranties of merchantability, fitness for a particular -// purpose or non-infringement. Please see the License for the specific terms -// and conditions governing the rights and limitations under the License. - -#include - -Viewer_View::Viewer_View():myImmediateUpdate (Standard_True) {} - -void Viewer_View::ImmediateUpdate() const { - if (myImmediateUpdate) Update(); -} - -Standard_Boolean Viewer_View::SetImmediateUpdate(const Standard_Boolean onoff) { - Standard_Boolean p = myImmediateUpdate; - myImmediateUpdate = onoff; - return p; -} diff --git a/src/Viewer/Viewer_Viewer.cdl b/src/Viewer/Viewer_Viewer.cdl deleted file mode 100755 index a9170e5656..0000000000 --- a/src/Viewer/Viewer_Viewer.cdl +++ /dev/null @@ -1,54 +0,0 @@ --- Created on: 1995-04-06 --- Created by: Jean-Louis Frenkel --- Copyright (c) 1995-1999 Matra Datavision --- Copyright (c) 1999-2012 OPEN CASCADE SAS --- --- The content of this file is subject to the Open CASCADE Technology Public --- License Version 6.5 (the "License"). You may not use the content of this file --- except in compliance with the License. Please obtain a copy of the License --- at http://www.opencascade.org and read it completely before using this file. --- --- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its --- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France. --- --- The Original Code and all software distributed under the License is --- distributed on an "AS IS" basis, without warranty of any kind, and the --- Initial Developer hereby disclaims all such warranties, including without --- limitation, any warranties of merchantability, fitness for a particular --- purpose or non-infringement. Please see the License for the specific terms --- and conditions governing the rights and limitations under the License. - - -deferred class Viewer from Viewer inherits TShared from MMgt - -uses - AsciiString,ExtendedString from TCollection, - GraphicDriver from Graphic3d - -is - Initialize( aDriver: GraphicDriver from Graphic3d; - aName: ExtString from Standard; - aDomain: CString from Standard; - aNextCount: Integer from Standard); - - Update(me: mutable) is deferred; - - - Driver(me) returns mutable GraphicDriver from Graphic3d - is static; - ---C++: return const & - - NextName(me) returns ExtString from Standard - is static; - - Domain(me) returns CString from Standard - is static; - - IncrCount(me:mutable) is static protected; - -fields - myNextCount: Integer from Standard; - myDomain: AsciiString from TCollection; - myName: ExtendedString from TCollection; - myDriver: GraphicDriver from Graphic3d; -end Viewer from Viewer; diff --git a/src/Viewer/Viewer_Viewer.cxx b/src/Viewer/Viewer_Viewer.cxx deleted file mode 100755 index d625099f50..0000000000 --- a/src/Viewer/Viewer_Viewer.cxx +++ /dev/null @@ -1,59 +0,0 @@ -// Copyright (c) 1999-2012 OPEN CASCADE SAS -// -// The content of this file is subject to the Open CASCADE Technology Public -// License Version 6.5 (the "License"). You may not use the content of this file -// except in compliance with the License. Please obtain a copy of the License -// at http://www.opencascade.org and read it completely before using this file. -// -// The Initial Developer of the Original Code is Open CASCADE S.A.S., having its -// main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France. -// -// The Original Code and all software distributed under the License is -// distributed on an "AS IS" basis, without warranty of any kind, and the -// Initial Developer hereby disclaims all such warranties, including without -// limitation, any warranties of merchantability, fitness for a particular -// purpose or non-infringement. Please see the License for the specific terms -// and conditions governing the rights and limitations under the License. - -// Modified 27/12/98 : FMN ; PERF: OPTIMISATION LOADER (LOPTIM) - -#include - - -#define LOPTIM -#ifndef LOPTIM -static TCollection_ExtendedString nm; -#else -static TCollection_ExtendedString& _nm() { - static TCollection_ExtendedString nm(""); -return nm; -} -#define nm _nm() -#endif // LOPTIM - -Viewer_Viewer::Viewer_Viewer(const Handle(Graphic3d_GraphicDriver)& theDriver, - const Standard_ExtString aName, - const Standard_CString aDomain, - const Standard_Integer aNextCount) -:myNextCount(aNextCount), -myDomain(TCollection_AsciiString(aDomain)), -myName(TCollection_ExtendedString(aName)), -myDriver(theDriver) -{} - -Standard_CString Viewer_Viewer::Domain() const { - return myDomain.ToCString(); -} -const Handle(Graphic3d_GraphicDriver)& Viewer_Viewer::Driver() const { - return myDriver; -} - -Standard_ExtString Viewer_Viewer::NextName () const { - nm = TCollection_ExtendedString(myName.ToExtString()); - nm.AssignCat(TCollection_ExtendedString(myNextCount)); - - return nm.ToExtString(); -} -void Viewer_Viewer::IncrCount() { - myNextCount++; -} diff --git a/src/Visual3d/Visual3d_TransientManager.cxx b/src/Visual3d/Visual3d_TransientManager.cxx index 1deb8cab53..d26388ed09 100755 --- a/src/Visual3d/Visual3d_TransientManager.cxx +++ b/src/Visual3d/Visual3d_TransientManager.cxx @@ -126,9 +126,7 @@ Handle(Visual3d_Layer) UnderLayer = AView->UnderLayer (); } // Begin rendering - Handle(Aspect_GraphicDriver) agd = AView->GraphicDriver (); - - theGraphicDriver = *(Handle(Graphic3d_GraphicDriver) *) &agd; + theGraphicDriver = AView->GraphicDriver(); if (theGraphicDriver->BeginImmediatMode (theCView, UnderCLayer, OverCLayer, DoubleBuffer, RetainMode)) @@ -170,10 +168,8 @@ void Visual3d_TransientManager::ClearDraw (const Handle(Visual3d_View)& AView, OverCLayer = AView->OverLayer()->CLayer(); theCView.ptrOverLayer = (CALL_DEF_LAYER *) &OverCLayer; } - Handle(Aspect_GraphicDriver) agd = AView->GraphicDriver (); - - theGraphicDriver = *(Handle(Graphic3d_GraphicDriver) *) &agd; + theGraphicDriver = AView->GraphicDriver(); theGraphicDriver->ClearImmediatMode (theCView, aFlush); } @@ -205,9 +201,8 @@ Standard_Boolean Visual3d_TransientManager::BeginAddDraw (const Handle(Visual3d_ OverCLayer = AView->OverLayer()->CLayer(); theCView.ptrOverLayer = (CALL_DEF_LAYER *) &OverCLayer; } - Handle(Aspect_GraphicDriver) agd = AView->GraphicDriver (); - theGraphicDriver = *(Handle(Graphic3d_GraphicDriver) *) &agd; + theGraphicDriver = AView->GraphicDriver (); if (theGraphicDriver->BeginAddMode (theCView)) { diff --git a/src/Visual3d/Visual3d_View.cdl b/src/Visual3d/Visual3d_View.cdl index 7c8601162b..fc7e549bc9 100755 --- a/src/Visual3d/Visual3d_View.cdl +++ b/src/Visual3d/Visual3d_View.cdl @@ -75,7 +75,6 @@ uses Background from Aspect, GradientBackground from Aspect, - GraphicDriver from Aspect, Window from Aspect, TypeOfUpdate from Aspect, TypeOfHighlightMethod from Aspect, @@ -1050,7 +1049,7 @@ is ---Category: Private methods GraphicDriver ( me ) - returns GraphicDriver from Aspect + returns GraphicDriver from Graphic3d is static; ---Level: Internal ---Purpose: Returns the associated GraphicDriver. diff --git a/src/Visual3d/Visual3d_View.cxx b/src/Visual3d/Visual3d_View.cxx index f27fe580d5..e66712044d 100755 --- a/src/Visual3d/Visual3d_View.cxx +++ b/src/Visual3d/Visual3d_View.cxx @@ -3524,7 +3524,7 @@ Standard_Boolean Visual3d_View::DegenerateModeIsOn () const { } -const Handle(Aspect_GraphicDriver)& Visual3d_View::GraphicDriver () const { +const Handle(Graphic3d_GraphicDriver)& Visual3d_View::GraphicDriver () const { return MyGraphicDriver;