1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-09-03 14:10:33 +03:00
This commit is contained in:
Nikolay Gavrilov
2022-08-05 16:08:52 +03:00
parent cdf1107f7b
commit a6282d9209
2 changed files with 2 additions and 316 deletions

View File

@@ -39,19 +39,10 @@ IMPLEMENT_STANDARD_RTTIEXT(AIS_TextLabel,AIS_InteractiveObject)
//purpose :
//=======================================================================
AIS_TextLabel::AIS_TextLabel()
<<<<<<< HEAD
: myText ("?"),
myHasOrientation3D (Standard_False),
myHasOwnAnchorPoint (Standard_True),
myHasFlipping (Standard_False)
=======
: myText ("?"),
myFont ("Courier"),
myFontAspect (Font_FA_Regular),
myHasOrientation3D (Standard_False),
myHasOwnAnchorPoint (Standard_True),
myHasFlipping (Standard_False)
>>>>>>> 05ac0c7d75 (0030922: Visualization - OpenGl_Text wrong local transformation if text has not own attach point)
{
myDrawer->SetTextAspect (new Prs3d_TextAspect());
myDrawer->SetDisplayMode (0);
@@ -313,7 +304,6 @@ void AIS_TextLabel::Compute (const Handle(PrsMgr_PresentationManager)& ,
}
gp_Ax2 anOrientation = myOrientation3D;
anOrientation.SetLocation (aPosition);
<<<<<<< HEAD
Standard_Boolean aHasOwnAnchor = HasOwnAnchorPoint();
if (myHasFlipping)
{
@@ -322,14 +312,13 @@ void AIS_TextLabel::Compute (const Handle(PrsMgr_PresentationManager)& ,
Handle(Graphic3d_Text) aText =
Prs3d_Text::Draw (thePrs->CurrentGroup(), anAsp, myText, anOrientation, aHasOwnAnchor);
aText->SetTextFormatter (myFormatter);
=======
/*
Standard_Boolean aHasOwnAnchor = HasOwnAnchorPoint();
if (myHasFlipping)
aHasOwnAnchor = Standard_False; // always not using own anchor if flipping
Prs3d_Text::Draw (Prs3d_Root::CurrentGroup (thePrs), anAsp, myText, myOrientation3D, aHasOwnAnchor);
>>>>>>> 05ac0c7d75 (0030922: Visualization - OpenGl_Text wrong local transformation if text has not own attach point)
Prs3d_Text::Draw (Prs3d_Root::CurrentGroup (thePrs), anAsp, myText, myOrientation3D, aHasOwnAnchor);*/
if (myHasFlipping && isInit)
{
thePrs->CurrentGroup()->SetFlippingOptions (Standard_False, gp_Ax2());

View File

@@ -2543,22 +2543,8 @@ static int VDrawText (Draw_Interpretor& theDI,
const bool toFlip = Draw::ParseOnOffNoIterator (theArgsNb, theArgVec, anArgIt);
aTextPrs->SetFlipping (toFlip);
}
<<<<<<< HEAD
else if (aParam == "-ownanchor"
|| aParam == "-noownanchor")
=======
else if (aParam == "-ownanchor")
{
if (++anArgIt >= theArgsNb)
{
std::cout << "Error: wrong number of values for parameter '" << aParam.ToCString() << "'.\n";
return 1;
}
aTextPrs->SetOwnAnchorPoint (Draw::Atoi (theArgVec[anArgIt]) == 1);
}
else if (aParam == "-disptype"
|| aParam == "-displaytype")
>>>>>>> 05ac0c7d75 (0030922: Visualization - OpenGl_Text wrong local transformation if text has not own attach point)
{
const bool isOwnAnchor = Draw::ParseOnOffNoIterator (theArgsNb, theArgVec, anArgIt);
aTextPrs->SetOwnAnchorPoint (isOwnAnchor);
@@ -6798,7 +6784,6 @@ static int VNormals (Draw_Interpretor& theDI,
void ViewerTest::ObjectCommands(Draw_Interpretor& theCommands)
{
<<<<<<< HEAD
const char* aGroup = "AIS Viewer";
const char* aFileName = __FILE__;
auto addCmd = [&](const char* theName, Draw_Interpretor::CommandFunction theFunc, const char* theHelp)
@@ -7124,294 +7109,6 @@ Creates and displays a sphere.
addCmd ("vobjzlayer", VObjZLayer, /* [vobjzlayer] */ R"(
vobjzlayer : set/get object [layerid] - set or get z layer id for the interactive object
)" /* [vobjzlayer] */);
=======
const char *group ="AISObjects";
theCommands.Add ("vtrihedron",
"vtrihedron : vtrihedron name"
"\n\t\t: [-dispMode {wireframe|shading} ]"
"\n\t\t: [-origin x y z ]"
"\n\t\t: [-zaxis u v w -xaxis u v w ]"
"\n\t\t: [-drawAxes {X|Y|Z|XY|YZ|XZ|XYZ}]"
"\n\t\t: [-hideLabels {on|off}]"
"\n\t\t: [-hideArrows {on|off}]"
"\n\t\t: [-label {XAxis|YAxis|ZAxis} value]"
"\n\t\t: [-attribute {XAxisLength|YAxisLength|ZAxisLength"
"\n\t\t: |TubeRadiusPercent|ConeRadiusPercent"
"\n\t\t: |ConeLengthPercent|OriginRadiusPercent"
"\n\t\t: |ShadingNumberOfFacettes} value]"
"\n\t\t: [-color {Origin|XAxis|YAxis|ZAxis|XOYAxis|YOZAxis"
"\n\t\t: |XOZAxis|Whole} {r g b | colorName}]"
"\n\t\t: [-textColor {r g b | colorName}]"
"\n\t\t: [-arrowColor {r g b | colorName}]"
"\n\t\t: [-priority {Origin|XAxis|YAxis|ZAxis|XArrow"
"\n\t\t: |YArrow|ZArrow|XOYAxis|YOZAxis"
"\n\t\t: |XOZAxis|Whole} value]"
"\n\t\t:"
"\n\t\t: Creates a new *AIS_Trihedron* object or changes parameters of "
"\n\t\t: existing trihedron. If no argument is set,"
"\n\t\t: the default trihedron (0XYZ) is created."
"\n\t\t: -dispMode mode of visualization: wf - wireframe,"
"\n\t\t: sh - shading."
"\n\t\t: Default value is wireframe."
"\n\t\t: -origin allows to set trihedron location."
"\n\t\t: -zaxis/-xaxis allows to set trihedron X and Z"
"\n\t\t: directions. The directions should"
"\n\t\t: be orthogonal. Y direction is calculated."
"\n\t\t: -drawAxes allows to set what axes are drawn in the"
"\n\t\t: trihedron, default state is XYZ"
"\n\t\t: -hideLabels allows to show/hide trihedron labels"
"\n\t\t: -hideArrows allows to show/hide trihedron arrows"
"\n\t\t: -label allows to change default X/Y/Z titles of axes"
"\n\t\t: -attribute sets parameters of trihedron"
"\n\t\t: -color sets color properties of parts of trihedron"
"\n\t\t: -textColor sets color properties of trihedron labels"
"\n\t\t: -arrowColor sets color properties of trihedron arrows"
"\n\t\t: -priority allows to change default selection priority"
"\n\t\t: of trihedron components",
__FILE__,VTrihedron,group);
theCommands.Add("vtri2d",
"vtri2d Name"
"\n\t\t: Creates a plane with a 2D trihedron from an interactively selected face.",
__FILE__,VTrihedron2D ,group);
theCommands.Add("vplanetri",
"vplanetri name"
"\n\t\t: Create a plane from a trihedron selection. If no arguments are set, the default",
__FILE__,VPlaneTrihedron ,group);
theCommands.Add("vsize",
"vsize : vsize [name(Default=Current)] [size(Default=100)] "
"\n\t\t: Changes the size of a named or selected trihedron."
"\n\t\t: If the name is not defined: it affects the selected trihedrons otherwise nothing is done."
"\n\t\t: If the value is not defined: it is set to 100 by default.",
__FILE__,VSize,group);
theCommands.Add("vaxis",
"vaxis name [Xa] [Ya] [Za] [Xb] [Yb] [Zb]"
"\n\t\t: Creates an axis. If the values are not defined, an axis is created by interactive selection of two vertices or one edge",
__FILE__,VAxisBuilder,group);
theCommands.Add("vaxispara",
"vaxispara name "
"\n\t\t: Creates an axis by interactive selection of an edge and a vertex.",
__FILE__,VAxisBuilder,group);
theCommands.Add("vaxisortho",
"vaxisortho name "
"\n\t\t: Creates an axis by interactive selection of an edge and a vertex. The axis will be orthogonal to the selected edge.",
__FILE__,VAxisBuilder,group);
theCommands.Add("vpoint",
"vpoint PointName [Xa] [Ya] [Za] "
"\n\t\t: Creates a point from coordinates. If the values are not defined,"
"\n\t\t: a point is created by interactive selection of a vertice or an edge (in the center of the edge).",
__FILE__,VPointBuilder,group);
theCommands.Add("vplane",
"vplane PlaneName [AxisName/PlaneName/PointName] [PointName/PointName/PointName] [Nothing/Nothing/PointName] [TypeOfSensitivity {0|1}]"
"\n\t\t: Creates a plane from named or interactively selected entities."
"\n\t\t: TypeOfSensitivity:"
"\n\t\t: 0 - Interior"
"\n\t\t: 1 - Boundary",
__FILE__,VPlaneBuilder,group);
theCommands.Add ("vchangeplane", "vchangeplane usage: \n"
" vchangeplane <plane_name>"
" [x=center_x y=center_y z=center_z]"
" [dx=dir_x dy=dir_y dz=dir_z]"
" [sx=size_x sy=size_y]"
" [noupdate]\n"
" - changes parameters of the plane:\n"
" - x y z - center\n"
" - dx dy dz - normal\n"
" - sx sy - plane sizes\n"
" - noupdate - do not update/redisplay the plane in context\n"
" Please enter coordinates in format \"param=value\" in arbitrary order.",
__FILE__, VChangePlane, group);
theCommands.Add("vplanepara",
"vplanepara PlaneName "
"\n\t\t: Creates a plane from interactively selected vertex and face.",
__FILE__,VPlaneBuilder,group);
theCommands.Add("vplaneortho",
"vplaneortho PlaneName "
"\n\t\t: Creates a plane from interactive selected face and coplanar edge. ",
__FILE__,VPlaneBuilder,group);
theCommands.Add("vline",
"vline LineName [Xa/PointName] [Ya/PointName] [Za] [Xb] [Yb] [Zb] "
"\n\t\t: Creates a line from coordinates, named or interactively selected vertices. ",
__FILE__,VLineBuilder,group);
theCommands.Add("vcircle",
"vcircle CircleName [PointName PointName PointName IsFilled]\n\t\t\t\t\t[PlaneName PointName Radius IsFilled]"
"\n\t\t: Creates a circle from named or interactively selected entities."
"\n\t\t: Parameter IsFilled is defined as 0 or 1.",
__FILE__,VCircleBuilder,group);
theCommands.Add ("vdrawtext",
"vdrawtext name text"
"\n\t\t: [-pos X=0 Y=0 Z=0]"
"\n\t\t: [-color {R G B|name}=yellow]"
"\n\t\t: [-halign {left|center|right}=left]"
"\n\t\t: [-valign {top|center|bottom|topfirstline}=bottom}]"
"\n\t\t: [-angle angle=0]"
"\n\t\t: [-zoom {0|1}=0]"
"\n\t\t: [-height height=16]"
"\n\t\t: [-aspect {regular|bold|italic|boldItalic}=regular]"
"\n\t\t: [-font font=Times]"
"\n\t\t: [-2d]"
"\n\t\t: [-perspos {X Y Z}=0 0 0], where"
"\n\t\t X and Y define the coordinate origin in 2d space relative to the view window"
"\n\t\t Example: X=0 Y=0 is center, X=1 Y=1 is upper right corner etc..."
"\n\t\t Z coordinate defines the gap from border of view window (except center position)."
"\n\t\t: [-disptype {blend|decal|shadow|subtitle|dimension|normal}=normal}"
"\n\t\t: [-subcolor {R G B|name}=white]"
"\n\t\t: [-noupdate]"
"\n\t\t: [-plane NormX NormY NormZ DirX DirY DirZ]"
"\n\t\t: [-flipping]"
"\n\t\t: [-ownanchor {0|1}=1]"
"\n\t\t: Display text label at specified position.",
__FILE__, VDrawText, group);
theCommands.Add("vdrawsphere",
"vdrawsphere: vdrawsphere shapeName Fineness [X=0.0 Y=0.0 Z=0.0] [Radius=100.0] [ToShowEdges=0] [ToPrintInfo=1]\n",
__FILE__,VDrawSphere,group);
theCommands.Add ("vlocation",
"vlocation name"
"\n\t\t: [-reset]"
"\n\t\t: [-copyFrom otherName]"
"\n\t\t: [-translate X Y [Z]]"
"\n\t\t: [-rotate x y z dx dy dz angle]"
"\n\t\t: [-scale [X Y Z] scale]"
"\n\t\t: [-mirror x y z dx dy dz]"
"\n\t\t: [-setLocation X Y [Z]]"
"\n\t\t: [-setRotation QX QY QZ QW]"
"\n\t\t: [-setScale [X Y Z] scale]"
"\n\t\t: [-inheritParentTrsf {on|off}]"
"\n\t\t: Object local transformation management:"
"\n\t\t: -reset reset transformation to identity"
"\n\t\t: -translate translate object"
"\n\t\t: -rotate applies rotation to local transformation"
"\n\t\t: -scale applies scale to local transformation"
"\n\t\t: -mirror applies mirror to local transformation"
"\n\t\t: -setLocation assign object location"
"\n\t\t: -setRotation assign object rotation (quaternion)"
"\n\t\t: -setScale assign object scale factor"
"\n\t\t: -inheritParentTrsf option to inherit parent"
"\n\t\t: transformation or not (ON by default)",
__FILE__, VSetLocation, group);
theCommands.Add ("vsetlocation",
"alias for vlocation",
__FILE__, VSetLocation, group);
theCommands.Add ("vchild",
"vchild parent [-add] [-remove] [-ignoreParentTrsf {0|1}] child1 [child2] [...]"
"\n\t\t: Command for testing low-level presentation connections."
"\n\t\t: vconnect command should be used instead.",
__FILE__, VChild, group);
theCommands.Add("vparent",
"vparent parent [-ignoreVisu]"
"\n\t\t: Command for testing object properties as parent in the hierarchy."
"\n\t\t: Arguments:"
"\n\t\t: -ignoreVisu do not propagate the visual state (display/erase/color) to children objects",
__FILE__, VParent, group);
theCommands.Add ("vcomputehlr",
"vcomputehlr shapeInput hlrResult [-algoType {algo|polyAlgo}=polyAlgo]"
"\n\t\t: [eyeX eyeY eyeZ dirX dirY dirZ upX upY upZ]"
"\n\t\t: [-showTangentEdges {on|off}=off] [-nbIsolines N=0] [-showHiddenEdges {on|off}=off]"
"\n\t\t: Arguments:"
"\n\t\t: shapeInput - name of the initial shape"
"\n\t\t: hlrResult - result HLR object from initial shape"
"\n\t\t: eye, dir are eye position and look direction"
"\n\t\t: up is the look up direction vector"
"\n\t\t: -algoType HLR algorithm to use"
"\n\t\t: -showTangentEdges include tangent edges"
"\n\t\t: -nbIsolines include isolines"
"\n\t\t: -showHiddenEdges include hidden edges"
"\n\t\t: Use vtop to see projected HLR shape.",
__FILE__, VComputeHLR, group);
theCommands.Add("vdrawparray",
"vdrawparray name TypeOfArray={points|segments|polylines|triangles"
"\n\t\t: |trianglefans|trianglestrips|quads|quadstrips|polygons}"
"\n\t\t: [-deinterleaved|-mutable]"
"\n\t\t: [vertex={'v' x y z [normal={'n' nx ny nz}] [color={'c' r g b}] [texel={'t' tx ty}]]"
"\n\t\t: [bound= {'b' nbVertices [bound_color={'c' r g b}]]"
"\n\t\t: [edge= {'e' vertexId]"
"\n\t\t: [-shape shapeName] [-patch]"
"\n\t\t: Commands create an Interactive Object for specified Primitive Array definition (Graphic3d_ArrayOfPrimitives)"
"\n\t\t: with the main purpose is covering various combinations by tests",
__FILE__,VDrawPArray,group);
theCommands.Add("vconnect",
"vconnect name Xo Yo Zo object1 object2 ... [color=NAME]"
"\n\t\t: Creates and displays AIS_ConnectedInteractive object from input object and location.",
__FILE__, VConnect, group);
theCommands.Add("vconnectto",
"vconnectto : instance_name Xo Yo Zo object [-nodisplay|-noupdate|-update]"
" Makes an instance 'instance_name' of 'object' with position (Xo Yo Zo)."
"\n\t\t: -nodisplay - only creates interactive object, but not displays it",
__FILE__, VConnectTo,group);
theCommands.Add("vdisconnect",
"vdisconnect assembly_name (object_name | object_number | 'all')"
" Disconnects all objects from assembly or disconnects object by name or number (use vlistconnected to enumerate assembly children).",
__FILE__,VDisconnect,group);
theCommands.Add("vaddconnected",
"vaddconnected assembly_name object_name"
"Adds object to assembly.",
__FILE__,VAddConnected,group);
theCommands.Add("vlistconnected",
"vlistconnected assembly_name"
"Lists objects in assembly.",
__FILE__,VListConnected,group);
theCommands.Add("vselmode",
"vselmode [object] selectionMode {on|off}"
"\n\t\t: [{-add|-set|-globalOrLocal}=-globalOrLocal]"
"\n\t\t: Switches selection mode for the specified object or for all objects in context."
"\n\t\t: Selection mode is either an integer number specific to Interactive Object,"
"\n\t\t: or sub-shape type in case of AIS_Shape:"
"\n\t\t: Shape, Vertex, Edge, Wire, Face, Shell, Solid, CompSolid, Compound"
"\n\t\t: The integer mode 0 (Shape in case of AIS_Shape) is reserved for selecting object as whole."
"\n\t\t: Additional options:"
"\n\t\t: -add already activated selection modes will be left activated"
"\n\t\t: -set already activated selection modes will be deactivated"
"\n\t\t: -globalOrLocal (default) if new mode is Global selection mode,"
"\n\t\t: then active local selection modes will be deactivated"
"\n\t\t: and the samthen active local selection modes will be deactivated",
__FILE__, VSetSelectionMode, group);
theCommands.Add("vselnext",
"vselnext : hilight next detected",
__FILE__, VSelectionNext, group);
theCommands.Add("vselprev",
"vselnext : hilight previous detected",
__FILE__, VSelectionPrevious, group);
theCommands.Add("vtriangle",
"vtriangle Name PointName PointName PointName"
"\n\t\t: Creates and displays a filled triangle from named points.",
__FILE__, VTriangle,group);
theCommands.Add("vsegment",
"vsegment Name PointName PointName"
"\n\t\t: Creates and displays a segment from named points.",
__FILE__, VTriangle,group);
theCommands.Add("vobjzlayer",
"vobjzlayer : set/get object [layerid] - set or get z layer id for the interactive object",
__FILE__, VObjZLayer, group);
>>>>>>> 05ac0c7d75 (0030922: Visualization - OpenGl_Text wrong local transformation if text has not own attach point)
addCmd ("vpolygonoffset", VPolygonOffset, /* [vpolygonoffset] */ R"(
vpolygonoffset [object [mode factor units]]