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);
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)
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]]