1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-14 13:30:48 +03:00

0026885: Visualization - drop redundant aspects from structure level

Graphic3d_CStructure and OpenGl_Structure do not store structure aspects anymore.
Graphic3d_Structure, Prs3d_Presentation - structure aspect methods have been removed.

AIS_InteractiveObject::SetAspect() - globalChange argument has been removed.

Undocumented test methods V3d::DrawSphere(), ::SetPlane(), ::PickGrid() have been removed.
This commit is contained in:
kgv
2016-06-20 19:10:51 +03:00
committed by bugmaster
parent a47d34efa9
commit 2831708b17
29 changed files with 75 additions and 1207 deletions

View File

@@ -42,14 +42,4 @@ Graphic3d_CStructure::Graphic3d_CStructure (const Handle(Graphic3d_StructureMana
myGraphicDriver (theManager->GraphicDriver())
{
Id = myGraphicDriver->NewIdentification();
ContextLine.IsDef = 1,
ContextFillArea.IsDef = 1,
ContextMarker.IsDef = 1,
ContextText.IsDef = 1;
ContextLine.IsSet = 0,
ContextFillArea.IsSet = 0,
ContextMarker.IsSet = 0,
ContextText.IsSet = 0;
}

View File

@@ -92,9 +92,6 @@ public:
//! Disconnect other structure to this one
virtual void Disconnect (Graphic3d_CStructure& theStructure) = 0;
//! Synchronize structure aspects
virtual void UpdateAspects() = 0;
//! Synchronize structure transformation
virtual void UpdateTransformation() = 0;
@@ -122,11 +119,6 @@ public:
int Priority;
int PreviousPriority;
CALL_DEF_CONTEXTLINE ContextLine;
CALL_DEF_CONTEXTFILLAREA ContextFillArea;
CALL_DEF_CONTEXTMARKER ContextMarker;
CALL_DEF_CONTEXTTEXT ContextText;
CALL_DEF_COLOR HighlightColor;
Graphic3d_Mat4 Transformation;

View File

@@ -822,7 +822,7 @@ void Graphic3d_Group::GroupPrimitivesAspect (const Handle(Graphic3d_AspectLine3d
Quantity_Color aColor;
Graphic3d_MaterialAspect aFront, aBack;
const CALL_DEF_CONTEXTLINE& anAspLine = ContextLine.IsSet ? ContextLine : myStructure->CStructure()->ContextLine;
const CALL_DEF_CONTEXTLINE& anAspLine = ContextLine;
aColor.SetValues (Standard_Real (anAspLine.Color.r),
Standard_Real (anAspLine.Color.g),
Standard_Real (anAspLine.Color.b), Quantity_TOC_RGB);
@@ -831,7 +831,7 @@ void Graphic3d_Group::GroupPrimitivesAspect (const Handle(Graphic3d_AspectLine3d
theAspLine->SetWidth (Standard_Real (anAspLine.Width));
theAspLine->SetShaderProgram (anAspLine.ShaderProgram);
const CALL_DEF_CONTEXTTEXT& anAspText = ContextText.IsSet ? ContextText : myStructure->CStructure()->ContextText;
const CALL_DEF_CONTEXTTEXT& anAspText = ContextText;
aColor.SetValues (Standard_Real (anAspText.Color.r),
Standard_Real (anAspText.Color.g),
Standard_Real (anAspText.Color.b), Quantity_TOC_RGB);
@@ -847,7 +847,7 @@ void Graphic3d_Group::GroupPrimitivesAspect (const Handle(Graphic3d_AspectLine3d
theAspText->SetDisplayType (Aspect_TypeOfDisplayText (anAspText.DisplayType));
theAspText->SetShaderProgram (anAspText.ShaderProgram);
const CALL_DEF_CONTEXTMARKER& anAspMarker = ContextMarker.IsSet ? ContextMarker : myStructure->CStructure()->ContextMarker;
const CALL_DEF_CONTEXTMARKER& anAspMarker = ContextMarker;
aColor.SetValues (Standard_Real (anAspMarker.Color.r),
Standard_Real (anAspMarker.Color.g),
Standard_Real (anAspMarker.Color.b), Quantity_TOC_RGB);
@@ -860,7 +860,7 @@ void Graphic3d_Group::GroupPrimitivesAspect (const Handle(Graphic3d_AspectLine3d
theAspMarker->SetMarkerImage (ContextMarker.MarkerImage);
}
const CALL_DEF_CONTEXTFILLAREA& anAspFill = ContextFillArea.IsSet ? ContextFillArea : myStructure->CStructure()->ContextFillArea;
const CALL_DEF_CONTEXTFILLAREA& anAspFill = ContextFillArea;
// Interior
theAspFill->SetInteriorStyle (Aspect_InteriorStyle (anAspFill.Style));
aColor.SetValues (Standard_Real (anAspFill.IntColor.r),

View File

@@ -13,33 +13,28 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <Graphic3d_Structure.hxx>
#include <Aspect_PolygonOffsetMode.hxx>
#include <Bnd_Box.hxx>
#include <gp_Pnt.hxx>
#include <Graphic3d_AspectFillArea3d.hxx>
#include <Graphic3d_AspectLine3d.hxx>
#include <Graphic3d_AspectMarker3d.hxx>
#include <Graphic3d_AspectText3d.hxx>
#include <Graphic3d_DataStructureManager.hxx>
#include <Graphic3d_GraphicDriver.hxx>
#include <Graphic3d_Group.hxx>
#include <Graphic3d_MapIteratorOfMapOfStructure.hxx>
#include <Graphic3d_MapOfStructure.hxx>
#include <Graphic3d_MaterialAspect.hxx>
#include <Graphic3d_PriorityDefinitionError.hxx>
#include <Graphic3d_Structure.hxx>
#include "Graphic3d_Structure.pxx"
#include <Graphic3d_StructureDefinitionError.hxx>
#include <Graphic3d_StructureManager.hxx>
#include <Graphic3d_TextureMap.hxx>
#include <Graphic3d_TransformError.hxx>
#include <Graphic3d_Vector.hxx>
#include <Quantity_Color.hxx>
#include <Standard_Type.hxx>
#include <TColStd_Array2OfReal.hxx>
#include "Graphic3d_Structure.pxx"
#include <stdio.h>
IMPLEMENT_STANDARD_RTTIEXT(Graphic3d_Structure,MMgt_TShared)
//=============================================================================
@@ -56,17 +51,6 @@ Graphic3d_Structure::Graphic3d_Structure (const Handle(Graphic3d_StructureManage
myVisual (Graphic3d_TOS_ALL)
{
myCStructure = theManager->GraphicDriver()->CreateStructure (theManager);
// default aspects
Handle(Graphic3d_AspectLine3d) aAspectLine3d = new Graphic3d_AspectLine3d();
Handle(Graphic3d_AspectText3d) aAspectText3d = new Graphic3d_AspectText3d();
Handle(Graphic3d_AspectMarker3d) aAspectMarker3d = new Graphic3d_AspectMarker3d();
Handle(Graphic3d_AspectFillArea3d) aAspectFillArea3d = new Graphic3d_AspectFillArea3d();
theManager->PrimitivesAspect (aAspectLine3d, aAspectText3d, aAspectMarker3d, aAspectFillArea3d);
aAspectFillArea3d->SetPolygonOffsets (Aspect_POM_Fill, 1.0, 0.0);
// update the associated CStructure
UpdateStructure (aAspectLine3d, aAspectText3d, aAspectMarker3d, aAspectFillArea3d);
}
//=============================================================================
@@ -84,17 +68,6 @@ Graphic3d_Structure::Graphic3d_Structure (const Handle(Graphic3d_StructureManage
myVisual (thePrs->myVisual)
{
myCStructure = thePrs->myCStructure->ShadowLink (theManager);
// default aspects
Handle(Graphic3d_AspectLine3d) aAspectLine3d = new Graphic3d_AspectLine3d();
Handle(Graphic3d_AspectText3d) aAspectText3d = new Graphic3d_AspectText3d();
Handle(Graphic3d_AspectMarker3d) aAspectMarker3d = new Graphic3d_AspectMarker3d();
Handle(Graphic3d_AspectFillArea3d) aAspectFillArea3d = new Graphic3d_AspectFillArea3d();
theManager->PrimitivesAspect (aAspectLine3d, aAspectText3d, aAspectMarker3d, aAspectFillArea3d);
aAspectFillArea3d->SetPolygonOffsets (Aspect_POM_Fill, 1.0, 0.0);
// update the associated CStructure
UpdateStructure (aAspectLine3d, aAspectText3d, aAspectMarker3d, aAspectFillArea3d);
}
//=============================================================================
@@ -501,21 +474,6 @@ Standard_Boolean Graphic3d_Structure::IsEmpty() const
return Standard_True;
}
//=============================================================================
//function : PrimitivesAspect
//purpose :
//=============================================================================
void Graphic3d_Structure::PrimitivesAspect (Handle(Graphic3d_AspectLine3d)& theAspLine,
Handle(Graphic3d_AspectText3d)& theAspText,
Handle(Graphic3d_AspectMarker3d)& theAspMarker,
Handle(Graphic3d_AspectFillArea3d)& theAspFill) const
{
theAspLine = Line3dAspect();
theAspText = Text3dAspect();
theAspMarker = Marker3dAspect();
theAspFill = FillArea3dAspect();
}
//=============================================================================
//function : GroupsWithFacet
//purpose :
@@ -664,229 +622,6 @@ void Graphic3d_Structure::GraphicDisconnect (const Handle(Graphic3d_Structure)&
myCStructure->Disconnect (*theDaughter->myCStructure);
}
//=============================================================================
//function : Line3dAspect
//purpose :
//=============================================================================
Handle(Graphic3d_AspectLine3d) Graphic3d_Structure::Line3dAspect() const
{
const Standard_Real anRGB[3] =
{
Standard_Real (myCStructure->ContextLine.Color.r),
Standard_Real (myCStructure->ContextLine.Color.g),
Standard_Real (myCStructure->ContextLine.Color.b)
};
Quantity_Color aColor;
aColor.SetValues (anRGB[0], anRGB[1], anRGB[2], Quantity_TOC_RGB);
Aspect_TypeOfLine aLType = Aspect_TypeOfLine (myCStructure->ContextLine.LineType);
Standard_Real aWidth = Standard_Real (myCStructure->ContextLine.Width);
Handle(Graphic3d_AspectLine3d) anAspLine = new Graphic3d_AspectLine3d (aColor, aLType, aWidth);
anAspLine->SetShaderProgram (myCStructure->ContextLine.ShaderProgram);
return anAspLine;
}
//=============================================================================
//function : Text3dAspect
//purpose :
//=============================================================================
Handle(Graphic3d_AspectText3d) Graphic3d_Structure::Text3dAspect() const
{
const Standard_Real anRGB[3] =
{
Standard_Real (myCStructure->ContextText.Color.r),
Standard_Real (myCStructure->ContextText.Color.g),
Standard_Real (myCStructure->ContextText.Color.b)
};
Quantity_Color aColor;
aColor.SetValues (anRGB[0], anRGB[1], anRGB[2], Quantity_TOC_RGB);
Standard_CString aFont = Standard_CString (myCStructure->ContextText.Font);
Standard_Real anExpansion = Standard_Real (myCStructure->ContextText.Expan);
Standard_Real aSpace = Standard_Real (myCStructure->ContextText.Space);
Aspect_TypeOfStyleText aStyle = Aspect_TypeOfStyleText (myCStructure->ContextText.Style);
Aspect_TypeOfDisplayText aDispType = Aspect_TypeOfDisplayText (myCStructure->ContextText.DisplayType);
Handle(Graphic3d_AspectText3d) anAspText = new Graphic3d_AspectText3d (aColor, aFont, anExpansion, aSpace, aStyle, aDispType);
anAspText->SetShaderProgram (myCStructure->ContextText.ShaderProgram);
return anAspText;
}
//=============================================================================
//function : Marker3dAspect
//purpose :
//=============================================================================
Handle(Graphic3d_AspectMarker3d) Graphic3d_Structure::Marker3dAspect() const
{
const Standard_Real anRGB[3] =
{
Standard_Real (myCStructure->ContextMarker.Color.r),
Standard_Real (myCStructure->ContextMarker.Color.g),
Standard_Real (myCStructure->ContextMarker.Color.b)
};
Quantity_Color aColor;
aColor.SetValues (anRGB[0], anRGB[1], anRGB[2], Quantity_TOC_RGB);
Aspect_TypeOfMarker aMType = myCStructure->ContextMarker.MarkerType;
Standard_Real aScale = Standard_Real (myCStructure->ContextMarker.Scale);
Handle(Graphic3d_AspectMarker3d) anAspMarker = new Graphic3d_AspectMarker3d (aMType, aColor, aScale);
anAspMarker->SetShaderProgram (myCStructure->ContextMarker.ShaderProgram);
return anAspMarker;
}
//=============================================================================
//function : FillArea3dAspect
//purpose :
//=============================================================================
Handle(Graphic3d_AspectFillArea3d) Graphic3d_Structure::FillArea3dAspect() const
{
// Back Material
Graphic3d_MaterialAspect aBack;
aBack.SetShininess (Standard_Real (myCStructure->ContextFillArea.Back.Shininess));
aBack.SetAmbient (Standard_Real (myCStructure->ContextFillArea.Back.Ambient));
aBack.SetDiffuse (Standard_Real (myCStructure->ContextFillArea.Back.Diffuse));
aBack.SetSpecular (Standard_Real (myCStructure->ContextFillArea.Back.Specular));
aBack.SetTransparency (Standard_Real (myCStructure->ContextFillArea.Back.Transparency));
aBack.SetEmissive (Standard_Real (myCStructure->ContextFillArea.Back.Emission));
if (myCStructure->ContextFillArea.Back.IsAmbient == 1)
aBack.SetReflectionModeOn (Graphic3d_TOR_AMBIENT);
else
aBack.SetReflectionModeOff (Graphic3d_TOR_AMBIENT);
if (myCStructure->ContextFillArea.Back.IsDiffuse == 1)
aBack.SetReflectionModeOn (Graphic3d_TOR_DIFFUSE);
else
aBack.SetReflectionModeOff (Graphic3d_TOR_DIFFUSE);
if (myCStructure->ContextFillArea.Back.IsSpecular == 1)
aBack.SetReflectionModeOn (Graphic3d_TOR_SPECULAR);
else
aBack.SetReflectionModeOff (Graphic3d_TOR_SPECULAR);
if (myCStructure->ContextFillArea.Back.IsEmission == 1)
aBack.SetReflectionModeOn (Graphic3d_TOR_EMISSION);
else
aBack.SetReflectionModeOff (Graphic3d_TOR_EMISSION);
Quantity_Color aColor (Standard_Real (myCStructure->ContextFillArea.Back.ColorSpec.r),
Standard_Real (myCStructure->ContextFillArea.Back.ColorSpec.g),
Standard_Real (myCStructure->ContextFillArea.Back.ColorSpec.b), Quantity_TOC_RGB);
aBack.SetSpecularColor (aColor);
aColor.SetValues (Standard_Real (myCStructure->ContextFillArea.Back.ColorAmb.r),
Standard_Real (myCStructure->ContextFillArea.Back.ColorAmb.g),
Standard_Real (myCStructure->ContextFillArea.Back.ColorAmb.b), Quantity_TOC_RGB);
aBack.SetAmbientColor (aColor);
aColor.SetValues (Standard_Real (myCStructure->ContextFillArea.Back.ColorDif.r),
Standard_Real (myCStructure->ContextFillArea.Back.ColorDif.g),
Standard_Real (myCStructure->ContextFillArea.Back.ColorDif.b), Quantity_TOC_RGB);
aBack.SetDiffuseColor (aColor);
aColor.SetValues (Standard_Real (myCStructure->ContextFillArea.Back.ColorEms.r),
Standard_Real (myCStructure->ContextFillArea.Back.ColorEms.g),
Standard_Real (myCStructure->ContextFillArea.Back.ColorEms.b), Quantity_TOC_RGB);
aBack.SetEmissiveColor (aColor);
aBack.SetEnvReflexion (myCStructure->ContextFillArea.Back.EnvReflexion);
aBack.SetMaterialType (myCStructure->ContextFillArea.Back.IsPhysic ? Graphic3d_MATERIAL_PHYSIC : Graphic3d_MATERIAL_ASPECT);
aBack.SetRefractionIndex (Standard_Real (myCStructure->ContextFillArea.Back.RefractionIndex));
aBack.SetBSDF (myCStructure->ContextFillArea.Back.BSDF);
// Front Material
Graphic3d_MaterialAspect aFront;
aFront.SetShininess (Standard_Real (myCStructure->ContextFillArea.Front.Shininess));
aFront.SetAmbient (Standard_Real (myCStructure->ContextFillArea.Front.Ambient));
aFront.SetDiffuse (Standard_Real (myCStructure->ContextFillArea.Front.Diffuse));
aFront.SetSpecular (Standard_Real (myCStructure->ContextFillArea.Front.Specular));
aFront.SetTransparency (Standard_Real (myCStructure->ContextFillArea.Front.Transparency));
aFront.SetEmissive (Standard_Real (myCStructure->ContextFillArea.Front.Emission));
if (myCStructure->ContextFillArea.Front.IsAmbient == 1)
aFront.SetReflectionModeOn (Graphic3d_TOR_AMBIENT);
else
aFront.SetReflectionModeOff (Graphic3d_TOR_AMBIENT);
if (myCStructure->ContextFillArea.Front.IsDiffuse == 1)
aFront.SetReflectionModeOn (Graphic3d_TOR_DIFFUSE);
else
aFront.SetReflectionModeOff (Graphic3d_TOR_DIFFUSE);
if (myCStructure->ContextFillArea.Front.IsSpecular == 1)
aFront.SetReflectionModeOn (Graphic3d_TOR_SPECULAR);
else
aFront.SetReflectionModeOff (Graphic3d_TOR_SPECULAR);
if (myCStructure->ContextFillArea.Front.Emission == 1)
aFront.SetReflectionModeOn (Graphic3d_TOR_EMISSION);
else
aFront.SetReflectionModeOff (Graphic3d_TOR_EMISSION);
aColor.SetValues (Standard_Real (myCStructure->ContextFillArea.Front.ColorSpec.r),
Standard_Real (myCStructure->ContextFillArea.Front.ColorSpec.g),
Standard_Real (myCStructure->ContextFillArea.Front.ColorSpec.b), Quantity_TOC_RGB);
aFront.SetSpecularColor (aColor);
aColor.SetValues (Standard_Real (myCStructure->ContextFillArea.Front.ColorAmb.r),
Standard_Real (myCStructure->ContextFillArea.Front.ColorAmb.g),
Standard_Real (myCStructure->ContextFillArea.Front.ColorAmb.b), Quantity_TOC_RGB);
aFront.SetAmbientColor (aColor);
aColor.SetValues (Standard_Real (myCStructure->ContextFillArea.Front.ColorDif.r),
Standard_Real (myCStructure->ContextFillArea.Front.ColorDif.g),
Standard_Real (myCStructure->ContextFillArea.Front.ColorDif.b), Quantity_TOC_RGB);
aFront.SetDiffuseColor (aColor);
aColor.SetValues (Standard_Real (myCStructure->ContextFillArea.Front.ColorEms.r),
Standard_Real (myCStructure->ContextFillArea.Front.ColorEms.g),
Standard_Real (myCStructure->ContextFillArea.Front.ColorEms.b), Quantity_TOC_RGB);
aFront.SetEmissiveColor (aColor);
aFront.SetEnvReflexion (myCStructure->ContextFillArea.Front.EnvReflexion);
aFront.SetMaterialType (myCStructure->ContextFillArea.Front.IsPhysic ? Graphic3d_MATERIAL_PHYSIC : Graphic3d_MATERIAL_ASPECT);
aFront.SetRefractionIndex (Standard_Real (myCStructure->ContextFillArea.Front.RefractionIndex));
aFront.SetBSDF (myCStructure->ContextFillArea.Front.BSDF);
Quantity_Color anIntColor (Standard_Real (myCStructure->ContextFillArea.IntColor.r),
Standard_Real (myCStructure->ContextFillArea.IntColor.g),
Standard_Real (myCStructure->ContextFillArea.IntColor.b), Quantity_TOC_RGB);
Quantity_Color anEdgeColor (Standard_Real (myCStructure->ContextFillArea.EdgeColor.r),
Standard_Real (myCStructure->ContextFillArea.EdgeColor.g),
Standard_Real (myCStructure->ContextFillArea.EdgeColor.b), Quantity_TOC_RGB);
Handle(Graphic3d_AspectFillArea3d) anAspFill = new Graphic3d_AspectFillArea3d (Aspect_InteriorStyle (myCStructure->ContextFillArea.Style),
anIntColor, anEdgeColor,
Aspect_TypeOfLine (myCStructure->ContextFillArea.LineType),
Standard_Real (myCStructure->ContextFillArea.Width),
aFront, aBack);
// Edges
if (myCStructure->ContextFillArea.Edge == 1)
anAspFill->SetEdgeOn();
else
anAspFill->SetEdgeOff();
// Hatch
anAspFill->SetHatchStyle (Aspect_HatchStyle (myCStructure->ContextFillArea.Hatch));
// Materials
// Front and Back face
if (myCStructure->ContextFillArea.Distinguish == 1)
anAspFill->SetDistinguishOn();
else
anAspFill->SetDistinguishOff();
if (myCStructure->ContextFillArea.BackFace == 1)
anAspFill->SuppressBackFace();
else
anAspFill->AllowBackFace();
// Texture
anAspFill->SetTextureMap (myCStructure->ContextFillArea.Texture.TextureMap);
if (myCStructure->ContextFillArea.Texture.doTextureMap == 1)
{
anAspFill->SetTextureMapOn();
}
else
{
anAspFill->SetTextureMapOff();
}
anAspFill->SetShaderProgram (myCStructure->ContextFillArea.ShaderProgram);
anAspFill->SetPolygonOffsets (myCStructure->ContextFillArea.PolygonOffsetMode,
myCStructure->ContextFillArea.PolygonOffsetFactor,
myCStructure->ContextFillArea.PolygonOffsetUnits);
return anAspFill;
}
//=============================================================================
//function : Groups
//purpose :
@@ -905,273 +640,6 @@ Standard_Integer Graphic3d_Structure::NumberOfGroups() const
return myCStructure->Groups().Length();
}
//=============================================================================
//function : SetPrimitivesAspect
//purpose :
//=============================================================================
void Graphic3d_Structure::SetPrimitivesAspect (const Handle(Graphic3d_AspectLine3d)& theAspLine)
{
if (IsDeleted()) return;
Standard_Real aWidth;
Quantity_Color aColor;
Aspect_TypeOfLine aLType;
theAspLine->Values (aColor, aLType, aWidth);
myCStructure->ContextLine.Color.r = float (aColor.Red());
myCStructure->ContextLine.Color.g = float (aColor.Green());
myCStructure->ContextLine.Color.b = float (aColor.Blue());
myCStructure->ContextLine.LineType = int (aLType);
myCStructure->ContextLine.Width = float (aWidth);
myCStructure->ContextLine.ShaderProgram = theAspLine->ShaderProgram();
myCStructure->ContextLine.IsDef = 1;
myCStructure->UpdateAspects();
// Attributes are "IsSet" during the first update of context (line, marker...)
myCStructure->ContextLine.IsSet = 1;
myCStructure->ContextFillArea.IsSet = 1;
myCStructure->ContextMarker.IsSet = 1;
myCStructure->ContextText.IsSet = 1;
Update();
}
//=============================================================================
//function : SetPrimitivesAspect
//purpose :
//=============================================================================
void Graphic3d_Structure::SetPrimitivesAspect (const Handle(Graphic3d_AspectFillArea3d)& theAspFill)
{
if (IsDeleted()) return;
Standard_Real anRGB[3];
Standard_Real aWidth;
Quantity_Color anIntColor;
Quantity_Color aBackIntColor;
Quantity_Color anEdgeColor;
Aspect_TypeOfLine aLType;
Aspect_InteriorStyle aStyle;
theAspFill->Values (aStyle, anIntColor, aBackIntColor, anEdgeColor, aLType, aWidth);
anIntColor.Values (anRGB[0], anRGB[1], anRGB[2], Quantity_TOC_RGB);
myCStructure->ContextFillArea.Style = aStyle;
myCStructure->ContextFillArea.IntColor.r = float (anRGB[0]);
myCStructure->ContextFillArea.IntColor.g = float (anRGB[1]);
myCStructure->ContextFillArea.IntColor.b = float (anRGB[2]);
if (theAspFill->Distinguish())
{
aBackIntColor.Values (anRGB[0], anRGB[1], anRGB[2], Quantity_TOC_RGB);
}
myCStructure->ContextFillArea.BackIntColor.r = float(anRGB[0]);
myCStructure->ContextFillArea.BackIntColor.g = float(anRGB[1]);
myCStructure->ContextFillArea.BackIntColor.b = float(anRGB[2]);
// Edges
myCStructure->ContextFillArea.Edge = theAspFill->Edge () ? 1 : 0;
myCStructure->ContextFillArea.EdgeColor.r = float (anEdgeColor.Red());
myCStructure->ContextFillArea.EdgeColor.g = float (anEdgeColor.Green());
myCStructure->ContextFillArea.EdgeColor.b = float (anEdgeColor.Blue());
myCStructure->ContextFillArea.LineType = aLType;
myCStructure->ContextFillArea.Width = float (aWidth);
myCStructure->ContextFillArea.Hatch = theAspFill->HatchStyle();
// Front and Back face
myCStructure->ContextFillArea.Distinguish = theAspFill->Distinguish() ? 1 : 0;
myCStructure->ContextFillArea.BackFace = theAspFill->BackFace() ? 1 : 0;
// Back Material
const Graphic3d_MaterialAspect& aBack = theAspFill->BackMaterial();
// Light specificity
myCStructure->ContextFillArea.Back.Shininess = float (aBack.Shininess());
myCStructure->ContextFillArea.Back.Ambient = float (aBack.Ambient());
myCStructure->ContextFillArea.Back.Diffuse = float (aBack.Diffuse());
myCStructure->ContextFillArea.Back.Specular = float (aBack.Specular());
myCStructure->ContextFillArea.Back.Transparency = float (aBack.Transparency());
myCStructure->ContextFillArea.Back.RefractionIndex = float (aBack.RefractionIndex());
myCStructure->ContextFillArea.Back.BSDF = aBack.BSDF();
myCStructure->ContextFillArea.Back.Emission = float (aBack.Emissive());
// Reflection mode
myCStructure->ContextFillArea.Back.IsAmbient = (aBack.ReflectionMode (Graphic3d_TOR_AMBIENT) ? 1 : 0);
myCStructure->ContextFillArea.Back.IsDiffuse = (aBack.ReflectionMode (Graphic3d_TOR_DIFFUSE) ? 1 : 0);
myCStructure->ContextFillArea.Back.IsSpecular = (aBack.ReflectionMode (Graphic3d_TOR_SPECULAR) ? 1 : 0);
myCStructure->ContextFillArea.Back.IsEmission = (aBack.ReflectionMode (Graphic3d_TOR_EMISSION) ? 1 : 0);
// Material type
//JR/Hp
myCStructure->ContextFillArea.Back.IsPhysic = (aBack.MaterialType (Graphic3d_MATERIAL_PHYSIC) ? 1 : 0 );
// Specular Color
myCStructure->ContextFillArea.Back.ColorSpec.r = float (aBack.SpecularColor().Red());
myCStructure->ContextFillArea.Back.ColorSpec.g = float (aBack.SpecularColor().Green());
myCStructure->ContextFillArea.Back.ColorSpec.b = float (aBack.SpecularColor().Blue());
// Ambient color
myCStructure->ContextFillArea.Back.ColorAmb.r = float (aBack.AmbientColor().Red());
myCStructure->ContextFillArea.Back.ColorAmb.g = float (aBack.AmbientColor().Green());
myCStructure->ContextFillArea.Back.ColorAmb.b = float (aBack.AmbientColor().Blue());
// Diffuse color
myCStructure->ContextFillArea.Back.ColorDif.r = float (aBack.DiffuseColor().Red());
myCStructure->ContextFillArea.Back.ColorDif.g = float (aBack.DiffuseColor().Green());
myCStructure->ContextFillArea.Back.ColorDif.b = float (aBack.DiffuseColor().Blue());
// Emissive color
myCStructure->ContextFillArea.Back.ColorEms.r = float (aBack.EmissiveColor().Red());
myCStructure->ContextFillArea.Back.ColorEms.g = float (aBack.EmissiveColor().Green());
myCStructure->ContextFillArea.Back.ColorEms.b = float (aBack.EmissiveColor().Blue());
myCStructure->ContextFillArea.Back.EnvReflexion =
float ((theAspFill->BackMaterial ()).EnvReflexion());
// Front Material
const Graphic3d_MaterialAspect& aFront = theAspFill->FrontMaterial();
// Light specificity
myCStructure->ContextFillArea.Front.Shininess = float (aFront.Shininess());
myCStructure->ContextFillArea.Front.Ambient = float (aFront.Ambient());
myCStructure->ContextFillArea.Front.Diffuse = float (aFront.Diffuse());
myCStructure->ContextFillArea.Front.Specular = float (aFront.Specular());
myCStructure->ContextFillArea.Front.Transparency = float (aFront.Transparency());
myCStructure->ContextFillArea.Front.RefractionIndex = float (aFront.RefractionIndex());
myCStructure->ContextFillArea.Front.BSDF = aFront.BSDF();
myCStructure->ContextFillArea.Front.Emission = float (aFront.Emissive());
// Reflection mode
myCStructure->ContextFillArea.Front.IsAmbient = (aFront.ReflectionMode (Graphic3d_TOR_AMBIENT) ? 1 : 0);
myCStructure->ContextFillArea.Front.IsDiffuse = (aFront.ReflectionMode (Graphic3d_TOR_DIFFUSE) ? 1 : 0);
myCStructure->ContextFillArea.Front.IsSpecular = (aFront.ReflectionMode (Graphic3d_TOR_SPECULAR) ? 1 : 0);
myCStructure->ContextFillArea.Front.IsEmission = (aFront.ReflectionMode (Graphic3d_TOR_EMISSION) ? 1 : 0);
// Materail type
//JR/Hp
myCStructure->ContextFillArea.Front.IsPhysic = (aFront.MaterialType (Graphic3d_MATERIAL_PHYSIC) ? 1 : 0);
// Specular Color
myCStructure->ContextFillArea.Front.ColorSpec.r = float (aFront.SpecularColor().Red());
myCStructure->ContextFillArea.Front.ColorSpec.g = float (aFront.SpecularColor().Green());
myCStructure->ContextFillArea.Front.ColorSpec.b = float (aFront.SpecularColor().Blue());
// Ambient color
myCStructure->ContextFillArea.Front.ColorAmb.r = float (aFront.AmbientColor().Red());
myCStructure->ContextFillArea.Front.ColorAmb.g = float (aFront.AmbientColor().Green());
myCStructure->ContextFillArea.Front.ColorAmb.b = float (aFront.AmbientColor().Blue());
// Diffuse color
myCStructure->ContextFillArea.Front.ColorDif.r = float (aFront.DiffuseColor().Red());
myCStructure->ContextFillArea.Front.ColorDif.g = float (aFront.DiffuseColor().Green());
myCStructure->ContextFillArea.Front.ColorDif.b = float (aFront.DiffuseColor().Blue());
// Emissive color
myCStructure->ContextFillArea.Front.ColorEms.r = float (aFront.EmissiveColor().Red());
myCStructure->ContextFillArea.Front.ColorEms.g = float (aFront.EmissiveColor().Green());
myCStructure->ContextFillArea.Front.ColorEms.b = float (aFront.EmissiveColor().Blue());
myCStructure->ContextFillArea.Front.EnvReflexion = float (aFront.EnvReflexion());
myCStructure->ContextFillArea.IsDef = 1; // Definition material ok
myCStructure->ContextFillArea.Texture.TextureMap = theAspFill->TextureMap();
myCStructure->ContextFillArea.Texture.doTextureMap = theAspFill->TextureMapState() ? 1 : 0;
myCStructure->ContextFillArea.ShaderProgram = theAspFill->ShaderProgram();
Standard_Integer aPolyMode;
Standard_ShortReal aPolyFactor, aPolyUnits;
theAspFill->PolygonOffsets (aPolyMode, aPolyFactor, aPolyUnits);
myCStructure->ContextFillArea.PolygonOffsetMode = aPolyMode;
myCStructure->ContextFillArea.PolygonOffsetFactor = aPolyFactor;
myCStructure->ContextFillArea.PolygonOffsetUnits = aPolyUnits;
myCStructure->UpdateAspects();
// Attributes are "IsSet" during the first update of context (line, marker...)
myCStructure->ContextLine.IsSet = 1;
myCStructure->ContextFillArea.IsSet = 1;
myCStructure->ContextMarker.IsSet = 1;
myCStructure->ContextText.IsSet = 1;
Update();
}
//=============================================================================
//function : SetPrimitivesAspect
//purpose :
//=============================================================================
void Graphic3d_Structure::SetPrimitivesAspect (const Handle(Graphic3d_AspectText3d)& theAspText)
{
if (IsDeleted()) return;
Standard_CString aFont;
Standard_Real aSpace, anExpansion, aTextAngle;
Quantity_Color aColor, aColorSub;
Aspect_TypeOfStyleText aStyle;
Aspect_TypeOfDisplayText aDispType;
Standard_Boolean isTextZoomable;
Font_FontAspect aTextFontAspect;
theAspText->Values (aColor, aFont, anExpansion, aSpace, aStyle, aDispType, aColorSub, isTextZoomable, aTextAngle, aTextFontAspect);
myCStructure->ContextText.Color.r = float (aColor.Red());
myCStructure->ContextText.Color.g = float (aColor.Green());
myCStructure->ContextText.Color.b = float (aColor.Blue());
myCStructure->ContextText.Font = aFont;
myCStructure->ContextText.Expan = float (anExpansion);
myCStructure->ContextText.Space = float (aSpace);
myCStructure->ContextText.Style = aStyle;
myCStructure->ContextText.DisplayType = aDispType;
myCStructure->ContextText.ColorSubTitle.r = float (aColorSub.Red());
myCStructure->ContextText.ColorSubTitle.g = float (aColorSub.Green());
myCStructure->ContextText.ColorSubTitle.b = float (aColorSub.Blue());
myCStructure->ContextText.TextZoomable = isTextZoomable;
myCStructure->ContextText.TextAngle = float (aTextAngle);
myCStructure->ContextText.TextFontAspect = aTextFontAspect;
myCStructure->ContextText.ShaderProgram = theAspText->ShaderProgram();
myCStructure->ContextText.IsDef = 1;
myCStructure->UpdateAspects();
// Attributes are "IsSet" during the first update of a context (line, marker...)
myCStructure->ContextLine.IsSet = 1;
myCStructure->ContextFillArea.IsSet = 1;
myCStructure->ContextMarker.IsSet = 1;
myCStructure->ContextText.IsSet = 1;
Update();
}
//=============================================================================
//function : SetPrimitivesAspect
//purpose :
//=============================================================================
void Graphic3d_Structure::SetPrimitivesAspect (const Handle(Graphic3d_AspectMarker3d)& theAspMarker)
{
if (IsDeleted()) return;
Standard_Real aScale;
Quantity_Color aColor;
Aspect_TypeOfMarker aMType;
theAspMarker->Values (aColor, aMType, aScale);
myCStructure->ContextMarker.Color.r = float (aColor.Red());
myCStructure->ContextMarker.Color.g = float (aColor.Green());
myCStructure->ContextMarker.Color.b = float (aColor.Blue());
myCStructure->ContextMarker.MarkerType = aMType;
myCStructure->ContextMarker.Scale = float (aScale);
myCStructure->ContextMarker.ShaderProgram = theAspMarker->ShaderProgram();
myCStructure->ContextMarker.IsDef = 1;
myCStructure->UpdateAspects();
// Attributes are "IsSet" during the first update of a context (line, marker...)
myCStructure->ContextLine.IsSet = 1;
myCStructure->ContextFillArea.IsSet = 1;
myCStructure->ContextMarker.IsSet = 1;
myCStructure->ContextText.IsSet = 1;
Update();
}
//=============================================================================
//function : SetVisual
//purpose :
@@ -1997,182 +1465,6 @@ void Graphic3d_Structure::Update (const bool theUpdateLayer) const
theUpdateLayer ? myCStructure->ZLayer() : Graphic3d_ZLayerId_UNKNOWN);
}
//=============================================================================
//function : UpdateStructure
//purpose :
//=============================================================================
void Graphic3d_Structure::UpdateStructure (const Handle(Graphic3d_AspectLine3d)& theAspLine,
const Handle(Graphic3d_AspectText3d)& theAspText,
const Handle(Graphic3d_AspectMarker3d)& theAspMarker,
const Handle(Graphic3d_AspectFillArea3d)& theAspFill)
{
Standard_CString aFont;
Standard_Real aSpace, anExpansion, aWidth, aScale;
Quantity_Color aColor, anIntColor, aBackIntColor, anEdgeColor, aColorSub;
Aspect_TypeOfLine aLType;
Aspect_TypeOfMarker aMType;
Aspect_InteriorStyle aStyle;
Aspect_TypeOfStyleText aStyleT;
Aspect_TypeOfDisplayText aDisplayType;
Standard_Boolean aTextZoomable;
Standard_Real aTextAngle;
Font_FontAspect aTextFontAspect;
theAspLine->Values (aColor, aLType, aWidth);
myCStructure->ContextLine.Color.r = float (aColor.Red());
myCStructure->ContextLine.Color.g = float (aColor.Green());
myCStructure->ContextLine.Color.b = float (aColor.Blue());
myCStructure->ContextLine.LineType = aLType;
myCStructure->ContextLine.Width = float (aWidth);
myCStructure->ContextLine.ShaderProgram = theAspLine->ShaderProgram();
theAspMarker->Values (aColor, aMType, aScale);
myCStructure->ContextMarker.Color.r = float (aColor.Red());
myCStructure->ContextMarker.Color.g = float (aColor.Green());
myCStructure->ContextMarker.Color.b = float (aColor.Blue());
myCStructure->ContextMarker.MarkerType = aMType;
myCStructure->ContextMarker.Scale = float (aScale);
myCStructure->ContextMarker.ShaderProgram = theAspMarker->ShaderProgram();
theAspText->Values (aColor, aFont, anExpansion, aSpace, aStyleT, aDisplayType, aColorSub, aTextZoomable, aTextAngle, aTextFontAspect);
myCStructure->ContextText.Color.r = float (aColor.Red());
myCStructure->ContextText.Color.g = float (aColor.Green());
myCStructure->ContextText.Color.b = float (aColor.Blue());
myCStructure->ContextText.Font = aFont;
myCStructure->ContextText.Expan = float (anExpansion);
myCStructure->ContextText.Style = aStyleT;
myCStructure->ContextText.DisplayType = aDisplayType;
myCStructure->ContextText.Space = float (aSpace);
myCStructure->ContextText.ColorSubTitle.r = float (aColorSub.Red());
myCStructure->ContextText.ColorSubTitle.g = float (aColorSub.Green());
myCStructure->ContextText.ColorSubTitle.b = float (aColorSub.Blue());
myCStructure->ContextText.TextZoomable = aTextZoomable;
myCStructure->ContextText.TextAngle = float (aTextAngle);
myCStructure->ContextText.TextFontAspect = aTextFontAspect;
myCStructure->ContextText.ShaderProgram = theAspText->ShaderProgram();
Standard_Real anRGB[3];
theAspFill->Values (aStyle, anIntColor, aBackIntColor, anEdgeColor, aLType, aWidth);
anIntColor.Values (anRGB[0], anRGB[1], anRGB[2], Quantity_TOC_RGB);
myCStructure->ContextFillArea.Style = aStyle;
myCStructure->ContextFillArea.IntColor.r = float (anRGB[0]);
myCStructure->ContextFillArea.IntColor.g = float (anRGB[1]);
myCStructure->ContextFillArea.IntColor.b = float (anRGB[2]);
if (theAspFill->Distinguish())
{
aBackIntColor.Values (anRGB[0], anRGB[1], anRGB[2], Quantity_TOC_RGB);
}
myCStructure->ContextFillArea.BackIntColor.r = float (anRGB[0]);
myCStructure->ContextFillArea.BackIntColor.g = float (anRGB[1]);
myCStructure->ContextFillArea.BackIntColor.b = float (anRGB[2]);
// Edges
myCStructure->ContextFillArea.Edge = theAspFill->Edge () ? 1:0;
myCStructure->ContextFillArea.EdgeColor.r = float (anEdgeColor.Red());
myCStructure->ContextFillArea.EdgeColor.g = float (anEdgeColor.Green());
myCStructure->ContextFillArea.EdgeColor.b = float (anEdgeColor.Blue());
myCStructure->ContextFillArea.LineType = aLType;
myCStructure->ContextFillArea.Width = float (aWidth);
myCStructure->ContextFillArea.Hatch = theAspFill->HatchStyle();
// Front and Back face
myCStructure->ContextFillArea.Distinguish = theAspFill->Distinguish() ? 1 : 0;
myCStructure->ContextFillArea.BackFace = theAspFill->BackFace() ? 1 : 0;
// Back Material
const Graphic3d_MaterialAspect& aBack = theAspFill->BackMaterial();
// Light specificity
myCStructure->ContextFillArea.Back.Shininess = float (aBack.Shininess());
myCStructure->ContextFillArea.Back.Ambient = float (aBack.Ambient());
myCStructure->ContextFillArea.Back.Diffuse = float (aBack.Diffuse());
myCStructure->ContextFillArea.Back.Specular = float (aBack.Specular());
myCStructure->ContextFillArea.Back.Transparency = float (aBack.Transparency());
myCStructure->ContextFillArea.Back.Emission = float (aBack.Emissive());
// Reflection mode
myCStructure->ContextFillArea.Back.IsAmbient = (aBack.ReflectionMode (Graphic3d_TOR_AMBIENT) ? 1 : 0);
myCStructure->ContextFillArea.Back.IsDiffuse = (aBack.ReflectionMode (Graphic3d_TOR_DIFFUSE) ? 1 : 0);
myCStructure->ContextFillArea.Back.IsSpecular = (aBack.ReflectionMode (Graphic3d_TOR_SPECULAR) ? 1 : 0);
myCStructure->ContextFillArea.Back.IsEmission = (aBack.ReflectionMode (Graphic3d_TOR_EMISSION) ? 1 : 0);
// Material type
myCStructure->ContextFillArea.Back.IsPhysic = (aBack.MaterialType (Graphic3d_MATERIAL_PHYSIC) ? 1 : 0);
// Specular color
myCStructure->ContextFillArea.Back.ColorSpec.r = float (aBack.SpecularColor().Red());
myCStructure->ContextFillArea.Back.ColorSpec.g = float (aBack.SpecularColor().Green());
myCStructure->ContextFillArea.Back.ColorSpec.b = float (aBack.SpecularColor().Blue());
// Ambient color
myCStructure->ContextFillArea.Back.ColorAmb.r = float (aBack.AmbientColor().Red());
myCStructure->ContextFillArea.Back.ColorAmb.g = float (aBack.AmbientColor().Green());
myCStructure->ContextFillArea.Back.ColorAmb.b = float (aBack.AmbientColor().Blue());
// Diffuse color
myCStructure->ContextFillArea.Back.ColorDif.r = float (aBack.DiffuseColor().Red());
myCStructure->ContextFillArea.Back.ColorDif.g = float (aBack.DiffuseColor().Green());
myCStructure->ContextFillArea.Back.ColorDif.b = float (aBack.DiffuseColor().Blue());
// Emissive color
myCStructure->ContextFillArea.Back.ColorEms.r = float (aBack.EmissiveColor().Red());
myCStructure->ContextFillArea.Back.ColorEms.g = float (aBack.EmissiveColor().Green());
myCStructure->ContextFillArea.Back.ColorEms.b = float (aBack.EmissiveColor().Blue());
myCStructure->ContextFillArea.Back.EnvReflexion = float (aBack.EnvReflexion());
// Front Material
const Graphic3d_MaterialAspect& aFront = theAspFill->FrontMaterial();
// Light specificity
myCStructure->ContextFillArea.Front.Shininess = float (aFront.Shininess());
myCStructure->ContextFillArea.Front.Ambient = float (aFront.Ambient());
myCStructure->ContextFillArea.Front.Diffuse = float (aFront.Diffuse());
myCStructure->ContextFillArea.Front.Specular = float (aFront.Specular());
myCStructure->ContextFillArea.Front.Transparency = float (aFront.Transparency());
myCStructure->ContextFillArea.Front.Emission = float (aFront.Emissive());
// Reflection mode
myCStructure->ContextFillArea.Front.IsAmbient = (aFront.ReflectionMode (Graphic3d_TOR_AMBIENT) ? 1 : 0);
myCStructure->ContextFillArea.Front.IsDiffuse = (aFront.ReflectionMode (Graphic3d_TOR_DIFFUSE) ? 1 : 0);
myCStructure->ContextFillArea.Front.IsSpecular = (aFront.ReflectionMode (Graphic3d_TOR_SPECULAR) ? 1 : 0);
myCStructure->ContextFillArea.Front.IsEmission = (aFront.ReflectionMode (Graphic3d_TOR_EMISSION) ? 1 : 0);
// Material type
myCStructure->ContextFillArea.Front.IsPhysic = (aFront.MaterialType (Graphic3d_MATERIAL_PHYSIC) ? 1 : 0);
// Specular color
myCStructure->ContextFillArea.Front.ColorSpec.r = float (aFront.SpecularColor().Red());
myCStructure->ContextFillArea.Front.ColorSpec.g = float (aFront.SpecularColor().Green());
myCStructure->ContextFillArea.Front.ColorSpec.b = float (aFront.SpecularColor().Blue());
// Ambient color
myCStructure->ContextFillArea.Front.ColorAmb.r = float (aFront.AmbientColor().Red());
myCStructure->ContextFillArea.Front.ColorAmb.g = float (aFront.AmbientColor().Green());
myCStructure->ContextFillArea.Front.ColorAmb.b = float (aFront.AmbientColor().Blue());
// Diffuse color
myCStructure->ContextFillArea.Front.ColorDif.r = float (aFront.DiffuseColor().Red());
myCStructure->ContextFillArea.Front.ColorDif.g = float (aFront.DiffuseColor().Green());
myCStructure->ContextFillArea.Front.ColorDif.b = float (aFront.DiffuseColor().Blue());
// Emissive color
myCStructure->ContextFillArea.Front.ColorEms.r = float (aFront.EmissiveColor().Red());
myCStructure->ContextFillArea.Front.ColorEms.g = float (aFront.EmissiveColor().Green());
myCStructure->ContextFillArea.Front.ColorEms.b = float (aFront.EmissiveColor().Blue());
myCStructure->ContextFillArea.Front.EnvReflexion = float (aFront.EnvReflexion());
myCStructure->ContextFillArea.Texture.TextureMap = theAspFill->TextureMap();
myCStructure->ContextFillArea.Texture.doTextureMap = theAspFill->TextureMapState() ? 1 : 0;
myCStructure->ContextFillArea.ShaderProgram = theAspFill->ShaderProgram();
Standard_Integer aPolyMode;
Standard_ShortReal aPolyFactor, aPolyUnits;
theAspFill->PolygonOffsets (aPolyMode, aPolyFactor, aPolyUnits);
myCStructure->ContextFillArea.PolygonOffsetMode = aPolyMode;
myCStructure->ContextFillArea.PolygonOffsetFactor = aPolyFactor;
myCStructure->ContextFillArea.PolygonOffsetUnits = aPolyUnits;
}
//=============================================================================
//function : GraphicHighlight
//purpose :

View File

@@ -49,10 +49,6 @@ class Graphic3d_TransformError;
class Graphic3d_Group;
class Graphic3d_StructureManager;
class Quantity_Color;
class Graphic3d_AspectLine3d;
class Graphic3d_AspectFillArea3d;
class Graphic3d_AspectText3d;
class Graphic3d_AspectMarker3d;
class Graphic3d_DataStructureManager;
class Bnd_Box;
class gp_Pnt;
@@ -78,7 +74,6 @@ public:
//! Creates a graphic object in the manager theManager.
//! It will appear in all the views of the visualiser.
//! Warning: The default values AspectLine, AspectFillArea, AspectText and AspectMarker are NOT applied to the structure.
//! The structure is not displayed when it is created.
Standard_EXPORT Graphic3d_Structure(const Handle(Graphic3d_StructureManager)& theManager);
@@ -172,23 +167,7 @@ public:
//! Get clip planes slicing the structure on rendering.
//! @return set of clip planes.
Standard_EXPORT const Graphic3d_SequenceOfHClipPlane& GetClipPlanes() const;
//! Modifies the default attributes for lines
//! in the structure <me>.
Standard_EXPORT void SetPrimitivesAspect (const Handle(Graphic3d_AspectLine3d)& CTX);
//! Modifies the default attributes for faces
//! in the structure <me>.
Standard_EXPORT void SetPrimitivesAspect (const Handle(Graphic3d_AspectFillArea3d)& CTX);
//! Modifies the default attributes for text
//! in the structure <me>.
Standard_EXPORT void SetPrimitivesAspect (const Handle(Graphic3d_AspectText3d)& CTX);
//! Modifies the default attributes for markers
//! in the structure <me>.
Standard_EXPORT void SetPrimitivesAspect (const Handle(Graphic3d_AspectMarker3d)& CTX);
//! Modifies the visibility indicator to Standard_True or
//! Standard_False for the structure <me>.
//! The default value at the definition of <me> is
@@ -241,10 +220,7 @@ public:
//! Returns Standard_True if the structure <me> contains
//! Polygons, Triangles or Quadrangles.
Standard_EXPORT Standard_Boolean ContainsFacet() const;
//! Returns the values of the current default attributes.
Standard_EXPORT Handle(Graphic3d_AspectFillArea3d) FillArea3dAspect() const;
//! Returns the groups sequence included in the structure <me> (internal storage).
Standard_EXPORT const Graphic3d_SequenceOfGroup& Groups() const;
@@ -285,14 +261,7 @@ public:
//! Returns the visibility indicator for the structure <me>.
Standard_EXPORT Standard_Boolean IsVisible() const;
//! Returns the values of the current default attributes.
Standard_EXPORT Handle(Graphic3d_AspectLine3d) Line3dAspect() const;
//! Returns the current group of graphic attributes used
//! for 3d marker primitives.
Standard_EXPORT Handle(Graphic3d_AspectMarker3d) Marker3dAspect() const;
//! Returns the coordinates of the boundary box of the structure <me>.
//! If <theToIgnoreInfiniteFlag> is TRUE, the method returns actual graphical
//! boundaries of the Graphic3d_Group components. Otherwise, the
@@ -303,13 +272,7 @@ public:
//! Warning: If the structure <me> is empty then the empty box is returned,
//! If the structure <me> is infinite then the whole box is returned.
Standard_EXPORT Bnd_Box MinMaxValues (const Standard_Boolean theToIgnoreInfiniteFlag = Standard_False) const;
//! Returns the current values of the default attributes.
Standard_EXPORT void PrimitivesAspect (Handle(Graphic3d_AspectLine3d)& CTXL, Handle(Graphic3d_AspectText3d)& CTXT, Handle(Graphic3d_AspectMarker3d)& CTXM, Handle(Graphic3d_AspectFillArea3d)& CTXF) const;
//! Returns the values of the current default attributes.
Standard_EXPORT Handle(Graphic3d_AspectText3d) Text3dAspect() const;
//! Returns the visualisation mode for the structure <me>.
Standard_EXPORT Graphic3d_TypeOfStructure Visual() const;
@@ -535,9 +498,8 @@ private:
//! Calls the Update method of the StructureManager which contains the Structure <me>.
//! If theUpdateLayer is true then invalidates bounding box of ZLayer.
Standard_EXPORT void Update (const bool theUpdateLayer = false) const;
//! Updates the c structure associated to <me>.
Standard_EXPORT void UpdateStructure (const Handle(Graphic3d_AspectLine3d)& CTXL, const Handle(Graphic3d_AspectText3d)& CTXT, const Handle(Graphic3d_AspectMarker3d)& CTXM, const Handle(Graphic3d_AspectFillArea3d)& CTXF);
protected:
Handle(Graphic3d_CStructure) myCStructure;
Graphic3d_IndexedMapOfAddress myAncestors;