0025808: Visualization - Initialization of Prs3d_PointAspect by custom Graphic3d_Aspe...
authorasl <asl@opencascade.com>
Thu, 5 Mar 2015 11:39:03 +0000 (14:39 +0300)
committerbugmaster <bugmaster@opencascade.com>
Thu, 5 Mar 2015 11:40:04 +0000 (14:40 +0300)
the constructor accepting the Graphic3d_AspectMarker3d is implemented

constructor with graphic3d aspect and SetAspect() method are implemented for other aspect classes

patch for non-initialized class fields

src/Prs3d/Prs3d_ArrowAspect.cdl
src/Prs3d/Prs3d_ArrowAspect.cxx
src/Prs3d/Prs3d_LineAspect.cdl
src/Prs3d/Prs3d_LineAspect.cxx
src/Prs3d/Prs3d_PointAspect.cdl
src/Prs3d/Prs3d_PointAspect.cxx
src/Prs3d/Prs3d_ShadingAspect.cdl
src/Prs3d/Prs3d_ShadingAspect.cxx
src/Prs3d/Prs3d_TextAspect.cdl
src/Prs3d/Prs3d_TextAspect.cxx

index 5b657a3..54ceab9 100644 (file)
@@ -33,11 +33,15 @@ is
        -- in representations of lengths. The lengths displayed
        -- are either on their own or in chamfers, fillets,
        -- diameters and radii.    
+
     Create (anAngle: PlaneAngle from Quantity; aLength: Length from Quantity)
     returns ArrowAspect from Prs3d;
        --- Purpose: Constructs a framework to display an arrow with a
        -- shaft of the length aLength and having a head with
        -- sides at the angle anAngle from each other.   
+
+    Create( theAspect: AspectLine3d from Graphic3d )
+    returns ArrowAspect from Prs3d;
         
     SetAngle(me: mutable; anAngle: PlaneAngle from Quantity)
        ---Purpose: defines the angle of the arrows.
@@ -62,6 +66,8 @@ is
 
     Aspect(me) returns AspectLine3d  from  Graphic3d;
 
+    SetAspect( me: mutable; theAspect: AspectLine3d from Graphic3d );
+
 fields
            myArrowAspect: AspectLine3d  from  Graphic3d;
            myAngle: PlaneAngle from Quantity;
index 1f63561..818c6b9 100644 (file)
@@ -30,6 +30,12 @@ Prs3d_ArrowAspect::Prs3d_ArrowAspect (const Quantity_PlaneAngle anAngle,
                Quantity_Color(Quantity_NOC_WHITE), Aspect_TOL_SOLID, 1.0);
 }
 
+Prs3d_ArrowAspect::Prs3d_ArrowAspect( const Handle( Graphic3d_AspectLine3d )& theAspect )
+  : myAngle(M_PI/180.*10), myLength(1.)
+{
+  myArrowAspect = theAspect;
+}
+
 void Prs3d_ArrowAspect::SetAngle ( const Quantity_PlaneAngle anAngle) {
   Prs3d_InvalidAngle_Raise_if ( anAngle <= 0.  ||
                               anAngle >= M_PI /2. , "");
@@ -49,6 +55,7 @@ Quantity_Length Prs3d_ArrowAspect::Length () const
 return myLength;
 }
 
+
 void Prs3d_ArrowAspect::SetColor(const Quantity_Color &aColor) {
   myArrowAspect->SetColor(aColor);
 }
@@ -60,3 +67,10 @@ void Prs3d_ArrowAspect::SetColor(const Quantity_NameOfColor aColor) {
 Handle(Graphic3d_AspectLine3d) Prs3d_ArrowAspect::Aspect() const {
   return myArrowAspect;
 }
+
+
+void Prs3d_ArrowAspect::SetAspect( const Handle( Graphic3d_AspectLine3d )& theAspect )
+{
+  myArrowAspect = theAspect;
+}
+
index a543fa4..436f9a4 100644 (file)
@@ -49,6 +49,9 @@ is
            aType: TypeOfLine from Aspect;
            aWidth: Real from Standard)
            returns LineAspect from Prs3d;
+
+    Create( theAspect: AspectLine3d from Graphic3d )
+    returns LineAspect from Prs3d;
            
     SetColor (me: mutable; aColor: Color from Quantity) is static;
 
@@ -72,6 +75,8 @@ is
     is static;
        --- Purpose: Returns the line aspect. This is defined as the set of
        -- color, type and thickness attributes.
+
+    SetAspect( me: mutable; theAspect: AspectLine3d from Graphic3d );
             
 fields
 
index 740d21c..39ba7c9 100644 (file)
@@ -28,6 +28,13 @@ Prs3d_LineAspect::Prs3d_LineAspect (const Quantity_NameOfColor aColor,
     (Quantity_Color(aColor),aType,aWidth);
 }
 
+Prs3d_LineAspect::Prs3d_LineAspect( const Handle( Graphic3d_AspectLine3d )& theAspect )
+{
+  myAspect = theAspect;
+}
+
+
+
 void Prs3d_LineAspect::SetColor(const Quantity_Color &aColor) {
  myAspect->SetColor(aColor);
 }
@@ -47,3 +54,8 @@ void Prs3d_LineAspect::SetWidth(const Standard_Real aWidth){
 Handle (Graphic3d_AspectLine3d) Prs3d_LineAspect::Aspect () const {
   return myAspect;
 }
+
+void Prs3d_LineAspect::SetAspect( const Handle( Graphic3d_AspectLine3d )& theAspect )
+{
+  myAspect = theAspect;
+}
index 8f59b92..b8c0a4c 100644 (file)
@@ -50,6 +50,8 @@ is
              returns PointAspect from Prs3d;
        ---Purpose: defines only the urer defined marker point.
 
+    Create( theAspect : AspectMarker3d from Graphic3d )
+    returns PointAspect from Prs3d;
             
     SetColor (me: mutable; aColor: Color from Quantity) is static;
  
@@ -70,6 +72,8 @@ is
     
     Aspect(me) returns AspectMarker3d from Graphic3d 
     is static;
+
+    SetAspect( me: mutable; theAspect: AspectMarker3d from Graphic3d );
     
     GetTextureSize (me:mutable; AWidth     : out Integer from Standard;
                                    AHeight    : out Integer from Standard);
index 49b0adc..0e15571 100644 (file)
@@ -37,10 +37,17 @@ Prs3d_PointAspect::Prs3d_PointAspect (const Quantity_Color &aColor,
     (aColor,aWidth,aHeight,aTexture);
 }
 
+Prs3d_PointAspect::Prs3d_PointAspect( const Handle( Graphic3d_AspectMarker3d )& theAspect ) 
+{
+  myAspect = theAspect;
+}
+
+
 void Prs3d_PointAspect::SetColor(const Quantity_Color &aColor) {
   myAspect->SetColor(aColor);
 }
 
+
 void Prs3d_PointAspect::SetColor(const Quantity_NameOfColor aColor) {
   myAspect->SetColor(Quantity_Color(aColor));
 }
@@ -57,6 +64,11 @@ Handle (Graphic3d_AspectMarker3d) Prs3d_PointAspect::Aspect () const {
   return myAspect;
 }
 
+void Prs3d_PointAspect::SetAspect( const Handle( Graphic3d_AspectMarker3d )& theAspect ) 
+{
+  myAspect = theAspect;
+}
+
 void Prs3d_PointAspect::GetTextureSize(Standard_Integer& AWidth, Standard_Integer& AHeight)
 {
   myAspect->GetTextureSize( AWidth, AHeight);
index 4b1bcbe..40aabf6 100644 (file)
@@ -35,6 +35,9 @@ is
     Create
        ---Purpose: Constructs an empty framework to display shading.
     returns ShadingAspect from Prs3d;
+
+    Create( theAspect: AspectFillArea3d from Graphic3d )
+    returns ShadingAspect from Prs3d;
     
     SetColor (me: mutable; aColor: Color from Quantity;
                                   aModel: TypeOfFacingModel from Aspect = Aspect_TOFM_BOTH_SIDE)
@@ -61,9 +64,6 @@ is
        --- Purpose: Change the polygons transparency value.
        --  Warning : aValue must be in the range 0,1. 0 is the default (NO transparent)
 
-    SetAspect(me:mutable; Asp : AspectFillArea3d from Graphic3d);
-       --- Purpose: Change the polygons aspect properties.
-
     Color (me; aModel: TypeOfFacingModel from Aspect = Aspect_TOFM_FRONT_SIDE) 
     returns Color from Quantity is static;
        --- Purpose: Returns the polygons color.
@@ -80,6 +80,8 @@ is
 
     Aspect (me) returns AspectFillArea3d from Graphic3d;
        --- Purpose: Returns the polygons aspect properties.
+
+    SetAspect( me: mutable; theAspect: AspectFillArea3d from Graphic3d );
     
 fields
 
index dac08d1..5cedc1a 100644 (file)
@@ -38,6 +38,10 @@ Prs3d_ShadingAspect::Prs3d_ShadingAspect () {
                                             aMat);
 }
 
+Prs3d_ShadingAspect::Prs3d_ShadingAspect( const Handle( Graphic3d_AspectFillArea3d )& theAspect )
+{
+  myAspect = theAspect;
+}
 
 //=======================================================================
 //function : SetColor
@@ -171,12 +175,11 @@ Standard_Real aValue(0.);
 //purpose  : 
 //=======================================================================
 
-void Prs3d_ShadingAspect::SetAspect(const Handle(Graphic3d_AspectFillArea3d)& Asp)
+void Prs3d_ShadingAspect::SetAspect( const Handle( Graphic3d_AspectFillArea3d )& theAspect )
 {
-  myAspect=Asp;
+  myAspect = theAspect;
 }
 
 Handle (Graphic3d_AspectFillArea3d) Prs3d_ShadingAspect::Aspect () const {
   return myAspect;
 }
-
index f5659f1..ba7dbec 100644 (file)
@@ -33,6 +33,9 @@ is
     Create returns TextAspect from Prs3d;  
         --- Purpose: Constructs an empty framework for defining display attributes of text.   
 
+    Create( theAspect: AspectText3d from Graphic3d )
+    returns TextAspect from Prs3d;
+
     SetColor(me: mutable; aColor:  Color  from  Quantity);
  
     SetColor(me: mutable; aColor:  NameOfColor  from  Quantity);
@@ -100,6 +103,8 @@ is
         -- -   font
         -- -   height/width ratio, that is, the expansion factor, and
         -- -   space between characters.
+
+    SetAspect( me: mutable; theAspect: AspectText3d from Graphic3d );
     
 fields
     myTextAspect: AspectText3d  from  Graphic3d; 
index efd33c6..c0527ba 100644 (file)
@@ -32,6 +32,17 @@ Prs3d_TextAspect::Prs3d_TextAspect ()
                                              0.);
 }
 
+Prs3d_TextAspect::Prs3d_TextAspect( const Handle( Graphic3d_AspectText3d )& theAspect )
+: myAngle(0.),
+  myHeight(16.),
+  myHorizontalJustification(Graphic3d_HTA_LEFT),
+  myVerticalJustification(Graphic3d_VTA_BOTTOM),
+  myOrientation(Graphic3d_TP_RIGHT)
+{
+  myTextAspect = theAspect;
+}
+
+
 void Prs3d_TextAspect::SetColor(const Quantity_Color &aColor) {
   myTextAspect->SetColor(aColor);
 }
@@ -87,3 +98,8 @@ Graphic3d_TextPath Prs3d_TextAspect::Orientation () const {return myOrientation;
 Handle(Graphic3d_AspectText3d) Prs3d_TextAspect::Aspect() const {
   return myTextAspect;
 }
+
+void Prs3d_TextAspect::SetAspect( const Handle( Graphic3d_AspectText3d )& theAspect )
+{
+  myTextAspect = theAspect;
+}