:mod:`woo.gl` ========================== .. inheritance-diagram:: woo.gl :parts: 2 .. automodule:: woo.gl :members: :undoc-members: :exclude-members: GlCPhysFunctor, GlFieldDispatcher, GlShapeDispatcher, ActReactGlRep, GlBoundFunctor, GlSetup, GlShapeFunctor, Gl1_Tetra, Gl1_ConcretePhys, Gl1_GridBound, Gl1_Rod, LabelGlRep, TensorGlRep, GlData, Gl1_Capsule, Gl1_Aabb, Gl1_Wall, GlExtraDrawer, Gl1_DemField, DisplayParameters, Gl1_Membrane, Gl1_Sphere, VectorGlRep, GlExtra_EnergyTrackerGrid, Gl1_Node, GlNodeDispatcher, GlNodeFunctor, GlCPhysDispatcher, Gl1_InfCylinder, Renderer, GlFieldFunctor, Gl1_CPhys, GlExtra_AnisoPorosityAnalyzer, Gl1_Ellipsoid, GlBoundDispatcher, ScalarGlRep, Gl1_Cone, Gl1_Tet4, Gl1_Facet, CylGlRep .. rst-class:: html-toggle .. rst-class:: emphasized GlBoundFunctor -------------- :obj:`~woo.core.Object` → :obj:`~woo.core.Functor` → :obj:`~woo.gl.GlBoundFunctor` .. graphviz:: digraph GlBoundFunctor { rankdir=LR; margin=.2; "GlBoundFunctor" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="woo.gl.html#woo.gl.GlBoundFunctor"]; "Gl1_Aabb" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="woo.gl.html#woo.gl.GlBoundFunctor"]; "GlBoundFunctor" -> "Gl1_Aabb" [arrowsize=0.5,style="setlinewidth(0.5)"] "Gl1_GridBound" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="woo.gl.html#woo.gl.GlBoundFunctor"]; "GlBoundFunctor" -> "Gl1_GridBound" [arrowsize=0.5,style="setlinewidth(0.5)"] } .. autoclass:: GlBoundFunctor :members: :exclude-members: __init__, __getstate__, __setstate__ :special-members: .. rst-class:: html-toggle .. rst-class:: emphasized Gl1_Aabb ++++++++ :obj:`~woo.core.Object` → :obj:`~woo.core.Functor` → :obj:`~woo.gl.GlBoundFunctor` → :obj:`~woo.gl.Gl1_Aabb` .. autoclass:: Gl1_Aabb :members: :exclude-members: __init__, __getstate__, __setstate__ :special-members: .. rst-class:: html-toggle .. rst-class:: emphasized Gl1_GridBound +++++++++++++ :obj:`~woo.core.Object` → :obj:`~woo.core.Functor` → :obj:`~woo.gl.GlBoundFunctor` → :obj:`~woo.gl.Gl1_GridBound` .. autoclass:: Gl1_GridBound :members: :exclude-members: __init__, __getstate__, __setstate__ :special-members: .. rst-class:: html-toggle .. rst-class:: emphasized TensorGlRep ----------- :obj:`~woo.core.Object` → :obj:`~woo.core.NodeVisRep` → :obj:`~woo.gl.TensorGlRep` .. autoclass:: TensorGlRep :members: :exclude-members: val, eigVec, eigVal, skew, relSz, skewRelSz, scaleExp, range, skewRange, __init__, __getstate__, __setstate__ :special-members: .. attribute:: val (= Matrix3(0,0,0, 0,0,0, 0,0,0)) Value to be rendered. [type: Matrix3r] .. attribute:: eigVec (= Matrix3(0,0,0, 0,0,0, 0,0,0)) eigenvectors as columns, updated in postLoad. [type: Matrix3r, not saved, read-only in python] .. attribute:: eigVal (= Vector3(0,0,0)) eigenvalues of corresponding eigenvectors, updated in postLoad. [type: Vector3r, not saved, read-only in python] .. attribute:: skew (= Vector3(0,0,0)) skew (asymmetric) components of the tensor [type: Vector3r, not saved] .. attribute:: relSz (= 0.1) Size of maximum-length arrows, relative to scene radius [type: Real] .. attribute:: skewRelSz (= -1.0) Size of maximum-length skew curved arrows; if negative, use relSz instead. [type: Real] .. attribute:: scaleExp (= 1.0) Exponent for scaling arrow sizem kuje wutg VectorGlRep. NaN disables scaling, making all arrows the same size. [type: Real] .. attribute:: range (= None) Extrema values for symmetric components. [type: shared_ptr<:obj:`ScalarRange `>] .. attribute:: skewRange (= None) Extrema values for skew components [type: shared_ptr<:obj:`ScalarRange `>] .. rst-class:: html-toggle .. rst-class:: emphasized GlData ------ :obj:`~woo.core.Object` → :obj:`~woo.core.NodeData` → :obj:`~woo.gl.GlData` .. autoclass:: GlData :members: :exclude-members: refPos, refOri, dGlPos, dGlOri, dCellDist, __init__, __getstate__, __setstate__ :special-members: .. attribute:: refPos (= Vector3(nan,nan,nan)) Reference position (for displacement scaling) [type: Vector3r, unit: m] .. attribute:: refOri (= Quaternion((nan,nan,nan),nan)) Reference orientation (for rotation scaling) [type: Quaternionr] .. attribute:: dGlPos (= Vector3(nan,nan,nan)) Difference from real spatial position when rendered. (when [0] is NaN, the node is clipped and should not be rendered at all) [type: Vector3r, unit: m] .. attribute:: dGlOri (= Quaternion((nan,nan,nan),nan)) Difference from real spatial orientation when rendered. [type: Quaternionr] .. attribute:: dCellDist (= Vector3i(0,0,0)) How much is canonicalized point from the real one. [type: Vector3i] .. rst-class:: html-toggle .. rst-class:: emphasized GlCPhysFunctor -------------- :obj:`~woo.core.Object` → :obj:`~woo.core.Functor` → :obj:`~woo.gl.GlCPhysFunctor` .. graphviz:: digraph GlCPhysFunctor { rankdir=LR; margin=.2; "GlCPhysFunctor" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="woo.gl.html#woo.gl.GlCPhysFunctor"]; "Gl1_ConcretePhys" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="woo.gl.html#woo.gl.GlCPhysFunctor"]; "Gl1_CPhys" -> "Gl1_ConcretePhys" [arrowsize=0.5,style="setlinewidth(0.5)"] "Gl1_CPhys" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="woo.gl.html#woo.gl.GlCPhysFunctor"]; "GlCPhysFunctor" -> "Gl1_CPhys" [arrowsize=0.5,style="setlinewidth(0.5)"] } .. autoclass:: GlCPhysFunctor :members: :exclude-members: __init__, __getstate__, __setstate__ :special-members: .. rst-class:: html-toggle .. rst-class:: emphasized Gl1_CPhys +++++++++ :obj:`~woo.core.Object` → :obj:`~woo.core.Functor` → :obj:`~woo.gl.GlCPhysFunctor` → :obj:`~woo.gl.Gl1_CPhys` .. graphviz:: digraph Gl1_CPhys { rankdir=LR; margin=.2; "Gl1_CPhys" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="woo.gl.html#woo.gl.Gl1_CPhys"]; "Gl1_ConcretePhys" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="woo.gl.html#woo.gl.Gl1_CPhys"]; "Gl1_CPhys" -> "Gl1_ConcretePhys" [arrowsize=0.5,style="setlinewidth(0.5)"] } .. autoclass:: Gl1_CPhys :members: :exclude-members: range, shearRange, shearColor, signFilter, relMaxRad, slices, slices_range, __init__, __getstate__, __setstate__ :special-members: .. attribute:: range (= ) Range for normal force [type: shared_ptr<:obj:`ScalarRange `>] .. attribute:: shearRange (= ) Range for absolute value of shear force [type: shared_ptr<:obj:`ScalarRange `>] .. attribute:: shearColor (= False) Set color by shear force rather than by normal force. (Radius still depends on normal force) [type: bool] .. attribute:: signFilter (= 0) If non-zero, only display contacts with negative (-1) or positive (+1) normal forces; if zero, all contacts will be displayed. [type: int] .. attribute:: relMaxRad (= 0.01) Relative radius for maximum forces [type: Real] .. attribute:: slices (= 6) Number of cylinder slices [type: int] .. attribute:: slices_range (= Vector2i(4,16)) Range for slices [type: Vector2i, not shown in the UI] .. rst-class:: html-toggle .. rst-class:: emphasized Gl1_ConcretePhys """""""""""""""" :obj:`~woo.core.Object` → :obj:`~woo.core.Functor` → :obj:`~woo.gl.GlCPhysFunctor` → :obj:`~woo.gl.Gl1_CPhys` → :obj:`~woo.gl.Gl1_ConcretePhys` .. autoclass:: Gl1_ConcretePhys :members: :exclude-members: doCPhys, dmgRange, dmgSlices, dmgPow, __init__, __getstate__, __setstate__ :special-members: .. attribute:: doCPhys (= 0) Call :obj:`Gl1_CPhys` for rendering. [type: int, named enum, possible values are: **'no'** (*''*; 0), **'only'** (1), **'also'** (2)] .. attribute:: dmgRange (= ) Range for disk damage coloring. [type: shared_ptr<:obj:`ScalarRange `>] .. attribute:: dmgSlices (= 6) Number of slices to draw the damage disc [type: int] .. attribute:: dmgPow (= 2) Raise :obj:`~ConcretePhys.omega` to this power for disk radius scaling; 2 makes the disc area (rather than radius) proportional to omega. [type: int] .. rst-class:: html-toggle .. rst-class:: emphasized GlFieldDispatcher ----------------- :obj:`~woo.core.Object` → :obj:`~woo.core.Engine` → :obj:`~woo.core.Dispatcher` → :obj:`~woo.gl.GlFieldDispatcher` .. autoclass:: GlFieldDispatcher :members: :exclude-members: functors, __init__, __getstate__, __setstate__ :special-members: .. attribute:: functors (= []) Functors active in the dispatch mechanism [overridden below]. [type: vector>] .. rst-class:: html-toggle .. rst-class:: emphasized GlSetup ------- :obj:`~woo.core.Object` → :obj:`~woo.gl.GlSetup` .. autoclass:: GlSetup :members: :exclude-members: objs, dirty, qglviewerState, __init__, __getstate__, __setstate__ :special-members: .. attribute:: objs (= ObjectList[]) List of all objects used; their order is determined at run-time. Some of them may be None (unused indices) which indicate separator in list of those objects when presented in the UI. [type: vector>, not shown in the UI, read-only in python] .. attribute:: dirty (= False) Set after modifying functors, so that they can be regenerated. [type: bool, not shown in the UI, not dumped, read-only in python] .. attribute:: qglviewerState (= '') XML representation of the view state -- updated occasionally (once a second) from the current open view (if any). [type: string, not shown in the UI, read-only in python] .. rst-class:: html-toggle .. rst-class:: emphasized GlNodeDispatcher ---------------- :obj:`~woo.core.Object` → :obj:`~woo.core.Engine` → :obj:`~woo.core.Dispatcher` → :obj:`~woo.gl.GlNodeDispatcher` .. autoclass:: GlNodeDispatcher :members: :exclude-members: functors, __init__, __getstate__, __setstate__ :special-members: .. attribute:: functors (= []) Functors active in the dispatch mechanism [overridden below]. [type: vector>] .. rst-class:: html-toggle .. rst-class:: emphasized GlNodeFunctor ------------- :obj:`~woo.core.Object` → :obj:`~woo.core.Functor` → :obj:`~woo.gl.GlNodeFunctor` .. graphviz:: digraph GlNodeFunctor { rankdir=LR; margin=.2; "GlNodeFunctor" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="woo.gl.html#woo.gl.GlNodeFunctor"]; "Gl1_Node" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="woo.gl.html#woo.gl.GlNodeFunctor"]; "GlNodeFunctor" -> "Gl1_Node" [arrowsize=0.5,style="setlinewidth(0.5)"] } .. autoclass:: GlNodeFunctor :members: :exclude-members: __init__, __getstate__, __setstate__ :special-members: .. rst-class:: html-toggle .. rst-class:: emphasized Gl1_Node ++++++++ :obj:`~woo.core.Object` → :obj:`~woo.core.Functor` → :obj:`~woo.gl.GlNodeFunctor` → :obj:`~woo.gl.Gl1_Node` .. autoclass:: Gl1_Node :members: :exclude-members: wd, wd_range, len, len_range, __init__, __getstate__, __setstate__ :special-members: .. attribute:: wd (= 1) Local axes line width in pixels [type: int] .. attribute:: wd_range (= Vector2i(0,5)) Range for width [type: Vector2i, not shown in the UI] .. attribute:: len (= 0.05) Relative local axes line length in pixels, relative to scene radius; if non-positive, only points are drawn [type: Real] .. attribute:: len_range (= Vector2(0,0.1)) Range for len [type: Vector2r, not shown in the UI] .. rst-class:: html-toggle .. rst-class:: emphasized CylGlRep -------- :obj:`~woo.core.Object` → :obj:`~woo.core.NodeVisRep` → :obj:`~woo.gl.CylGlRep` .. autoclass:: CylGlRep :members: :exclude-members: rad, col, xx, relSz, rangeRad, rangeCol, __init__, __getstate__, __setstate__ :special-members: .. attribute:: rad (= nan) Scalar determining radius; 1 if NaN [type: Real] .. attribute:: col (= nan) Scalar determining color; *rad* is used if NaN. [type: Real] .. attribute:: xx (= Vector2(0,0)) End positions on the local x-axis [type: Vector2r] .. attribute:: relSz (= 0.05) Maximum cylinder radius, relative to scene radius [type: Real] .. attribute:: rangeRad (= None) Range for rad (only used if rad is not NaN) [type: shared_ptr<:obj:`ScalarRange `>] .. attribute:: rangeCol (= None) Range for col (or for rad, if *col* is NaN) [type: shared_ptr<:obj:`ScalarRange `>] .. rst-class:: html-toggle .. rst-class:: emphasized LabelGlRep ---------- :obj:`~woo.core.Object` → :obj:`~woo.core.NodeVisRep` → :obj:`~woo.gl.LabelGlRep` .. autoclass:: LabelGlRep :members: :exclude-members: text, color, center, __init__, __getstate__, __setstate__ :special-members: .. attribute:: text (= '') Text to be rendered at the node's position [type: string] .. attribute:: color (= Vector3(1,1,1)) Color for rendering the text [type: Vector3r] .. attribute:: center (= False) Whether the text should be centered around the node [type: bool] .. rst-class:: html-toggle .. rst-class:: emphasized Renderer -------- :obj:`~woo.core.Object` → :obj:`~woo.gl.Renderer` .. autoclass:: Renderer :members: :exclude-members: initDone, engines, ranges, cell, ghosts, extraDrawers, iniUp, iniViewDir, snapFmt, fast, scaleOn, setRefNow, dispScale, rotScale, zClipCoeff, bgColor, light1, lightPos, lightColor, light2, light2Pos, light2Color, showTime, showDate, dateColor, virtColor, realColor, stepColor, grid, oriAxes, oriAxesPx, colorX, colorY, colorZ, logoSize, logoPos, logoColor, logoWd, clipPlanes, selObj, selObjNode, selFunc, selFollow, maxFps, renderTime, fastRenderTime, __init__, __getstate__, __setstate__ :special-members: .. attribute:: initDone (= False) Track initialization (don't save, since this initialized GLUT as well, which is needed at every run again). [type: bool, not saved, not accessible from python] .. rubric:: ► General .. attribute:: engines (= True) Call engine's rendering functions (if defined) [type: bool] .. attribute:: ranges (= True) Show color scales for :obj:`Scene.ranges` [type: bool] .. attribute:: cell (= True) Render periodic cell boundaries (periodic simulations only) [type: bool] .. attribute:: ghosts (= False) Render objects crossing periodic cell edges by cloning them in multiple places (periodic simulations only). [type: bool] .. attribute:: extraDrawers (= []) Additional rendering components (:obj:`GlExtraDrawer`). [type: vector>] .. attribute:: iniUp (= Vector3(0,0,1)) Up vector of new views [type: Vector3r] .. attribute:: iniViewDir (= Vector3(-1,0,0)) View direction of new views [type: Vector3r] .. attribute:: snapFmt (= '/tmp/{id}.{#}.png') Format for saving snapshots; `{tag}` sequences are expanded with Scene.tags; a special `{#}` tag is expanded with snapshot number (so that older ones are not overwritten), starting from 0 and zero-padded to 4 decimal palces. File format is auto-detected from extension. Supported formats are .png, .jpg, .pdf, .svg, xfig, ps, eps. [type: string, filename] .. attribute:: fast (= 1) When to use fast rendering; unfocused means when manipulating camera or the 3d windows is not focused, and framerate drops below *maxFps*. [type: int, named enum, possible values are: **'always'** (0), **'unfocused'** (1), **'never'** (2)] .. rubric:: ► Scaling .. attribute:: scaleOn (= False) Whether :obj:`dispScale` and :obj:`rotScale` have any effect or not. [type: bool] .. attribute:: setRefNow (= False) Update reference positions/orientations the next time we run. [type: bool, not shown in the UI] .. attribute:: dispScale (= Vector3(10,10,10)) Artificially enlarge (scale) displacements from nodes' :obj:`reference positions ` by this relative amount, so that they become better visible (independently in 3 dimensions); not enabled unless :obj:`scaleOn` is ``True``. When set to something else than ``(1,1,1)``, :obj:`scaleOn` is set to ``True`` automatically. [type: Vector3r] .. attribute:: rotScale (= 1.0) Artificially enlarge (scale) rotations of bodies relative to their :obj:`reference orientation `, so the they are better visible; no effect if 1.0 and unless :obj:`scaleOn` is set. If set to anything else than 1.0, :obj:`scaleOn` is set automatically. [type: Real] .. attribute:: zClipCoeff (= 4.0) Z-clipping coefficient, relative to scene radius (see http://www.libqglviewer.com/refManual/classqglviewer_1_1Camera.html#acd07c1b9464b935ad21bb38b7c27afca for details) [type: Real, range: 1.73205−10] .. rubric:: ► Colors and lighting .. attribute:: bgColor (= Vector3(0.2,0.2,0.2)) Color of the background canvas (RGB) [type: Vector3r] .. attribute:: light1 (= True) Turn light 1 on. [type: bool] .. attribute:: lightPos (= Vector3(75,130,0)) Position of OpenGL light source in the scene. [type: Vector3r] .. attribute:: lightColor (= Vector3(0.6,0.6,0.6)) Per-color intensity of primary light (RGB). [type: Vector3r] .. attribute:: light2 (= True) Turn light 2 on. [type: bool] .. attribute:: light2Pos (= Vector3(-130,75,30)) Position of secondary OpenGL light source in the scene. [type: Vector3r] .. attribute:: light2Color (= Vector3(0.5,0.5,0.1)) Per-color intensity of secondary light (RGB). [type: Vector3r] .. attribute:: showTime (= 5) Control whether virtual time, real time and step number are displayed in the 3d view. [type: int, bit accessors: **virt**, **real**, **step**] .. attribute:: showDate (= False) Show human date and clock time in the 3d view. [type: bool] .. attribute:: dateColor (= Vector3(0.6,0.6,0.6)) Date color [type: Vector3r] .. attribute:: virtColor (= Vector3(1,1,1)) Virtual time color [type: Vector3r] .. attribute:: realColor (= Vector3(0,0.5,0.5)) Real time color [type: Vector3r] .. attribute:: stepColor (= Vector3(0,0.5,0.5)) Step number color [type: Vector3r] .. attribute:: grid (= 0) Show axes planes with grid [type: int, bit accessors: **yz**, **zx**, **xy**] .. attribute:: oriAxes (= True) Show orientation axes in the 3d view (in the upper left corner) [type: bool] .. attribute:: oriAxesPx (= 50) Maximum pixel size of orientation axes in the corner. [type: int, range: 10−100] .. attribute:: colorX (= Vector3(1,0.1,0)) X-axis color [type: Vector3r] .. attribute:: colorY (= Vector3(1,1,0)) Y-axis color [type: Vector3r] .. attribute:: colorZ (= Vector3(0.1,1,0)) Z-axis color [type: Vector3r] .. attribute:: logoSize (= 50) Size of the bigger size of the logo, in pixels [type: int] .. attribute:: logoPos (= Vector2i(-64,-60)) Position of the logo; negative values count from the other side of the window. [type: Vector2i] .. attribute:: logoColor (= Vector3(1,1,1)) Logo color [type: Vector3r] .. attribute:: logoWd (= 1.8) Width of the logo stroke; set to non-positive value to disable the logo. [type: Real, range: 0−10] .. rubric:: ► Selection & Clipping .. attribute:: clipPlanes (= NodeList[]) Clipping plane definitions (local :math:`x`-axis defines the clipping plane; activity of the plane is determined by whether :obj:`woo.core.Node.rep` is something (active; otherwise unused object) or ``None``.) [type: vector>] .. attribute:: selObj (= None) Object which was selected by the user (access only via woo.qt.selObj). [type: shared_ptr<:obj:`Object `>] .. attribute:: selObjNode (= None) Node associated to the selected object (recenters scene on that object upon selection) [type: shared_ptr<:obj:`Node `>, read-only in python] .. attribute:: selFunc (= 'import woo.qt\nwoo.qt.onSelection') Python expression to be called (by textually appending '(woo.gl.Renderer.selOBj)' or '(None)') at object selection/deselection. If empty, no function will be called. Any imports must be explicitly mentioned in the string. [type: string] .. attribute:: selFollow (= False) Keep the scene centered at :obj:`selObjNode`. [type: bool] .. rubric:: ► Performance .. attribute:: maxFps (= 10) Maximum frame rate for the OpenGL display [type: int] .. attribute:: renderTime (= nan) Time for rendering one frame (smoothed) [type: Real, unit: s, read-only in python] .. attribute:: fastRenderTime (= nan) Time for fast-rendering one frame (smoothed) [type: Real, unit: s, read-only in python] .. rst-class:: html-toggle .. rst-class:: emphasized GlFieldFunctor -------------- :obj:`~woo.core.Object` → :obj:`~woo.core.Functor` → :obj:`~woo.gl.GlFieldFunctor` .. graphviz:: digraph GlFieldFunctor { rankdir=LR; margin=.2; "GlFieldFunctor" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="woo.gl.html#woo.gl.GlFieldFunctor"]; "Gl1_DemField" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="woo.gl.html#woo.gl.GlFieldFunctor"]; "GlFieldFunctor" -> "Gl1_DemField" [arrowsize=0.5,style="setlinewidth(0.5)"] } .. autoclass:: GlFieldFunctor :members: :exclude-members: __init__, __getstate__, __setstate__ :special-members: .. rst-class:: html-toggle .. rst-class:: emphasized Gl1_DemField ++++++++++++ :obj:`~woo.core.Object` → :obj:`~woo.core.Functor` → :obj:`~woo.gl.GlFieldFunctor` → :obj:`~woo.gl.Gl1_DemField` .. autoclass:: Gl1_DemField :members: :exclude-members: shape, mask, shape2, modulo, wire, colorBy, vecAxis, matStateIx, matStateSmooth, colorRange, colorBy2, colorRange2, solidColor, colorRanges, bound, periodic, fluct, nodes, glyph, glyphRange, glyphRelSz, deadNodes, glyphRanges, cNode, cPhys, guiEvery, shapeDispatcher, boundDispatcher, cPhysDispatcher, __init__, __getstate__, __setstate__ :special-members: .. rubric:: ► Shape .. attribute:: shape (= 1) Render only particles matching selected filter. [type: int, named enum, possible values are: **'none'** (*''*; 0), **'all'** (1), **'spheroids'** (*'sph'*; 2), **'non-spheroids'** (*'nsph'*; 3), **'mask'** (4)] .. attribute:: mask (= 0) Only shapes/bounds of particles with this group will be shown; 0 matches all particles. [type: uint] .. attribute:: shape2 (= True) Render also particles not matching :obj:`shape` (using :obj:`colorBy2`) [type: bool] .. attribute:: modulo (= Vector2i(0,0)) For particles matching :obj:`shape`, only show particles with :obj:`Particle.id` such that ``(id+modulo[1])%modulo[0]==0`` (similar to :obj:`woo.dem.Tracer.modulo`). Only nodes of which first particle matches (or don't have any particle attached) are shown (in case of nodes, regardless of its :obj:`shape`). Display of contacts is not affected by this value. [type: Vector2i] .. attribute:: wire (= False) Render all shapes with wire only [type: bool] .. attribute:: colorBy (= 1) Color particles by [type: int, named enum, possible values are: **'solid'** (0), **'Shape.color'** (*'shape'*; 1), **'radius'** (*'r'*; 2), **'diameter (mm)'** (*'diameter'*, *'diam'*, *'d'*; 3), **'velocity'** (*'vel'*, *'v'*; 4), **'angular velocity'** (*'angVel'*; 5), **'mass'** (*'m'*; 6), **'position'** (*'pos'*; 7), **'ref. displacement'** (*'disp'*, *'displacement'*; 8), **'ref. rotation'** (*'rot'*, *'rotation'*; 9), **'refpos coord'** (*'refpos'*; 10), **'material id'** (*'mat id'*; 11), **'Particle.matState'** (*'mat state'*; 12), **'normal stress'** (*'sigN'*; 13), **'shear stress'** (*'sigT'*; 14), **'mask'** (15), **'number of contacts'** (*'num contacts'*, *'numCon'*; 16), **'flags'** (17), **'invisible'** (*'-'*; 18)] .. attribute:: vecAxis (= 6) Axis for vector quantities. [type: int, named enum, possible values are: **'x'** (0), **'y'** (1), **'z'** (2), **'yz'** (*'yz'*; 3), **'zx'** (*'xz'*; 4), **'xy'** (*'yx'*; 5), **'norm'** (*'magnitude'*, *'xyz'*; 6)] .. attribute:: matStateIx (= 0) Index for getting :obj:`MatState` scalars. [type: int] .. attribute:: matStateSmooth (= 0.001) Smoothing coefficient for :obj:`MatState` scalars. [type: Real] .. attribute:: colorRange (= None) Range for particle colors (:obj:`colorBy`) [type: shared_ptr<:obj:`ScalarRange `>, read-only in python] .. attribute:: colorBy2 (= 0) Color for particles with :obj:`shape2`. [type: int, named enum, possible values are: **'solid'** (0), **'Shape.color'** (*'shape'*; 1), **'radius'** (*'r'*; 2), **'diameter (mm)'** (*'diameter'*, *'diam'*, *'d'*; 3), **'velocity'** (*'vel'*, *'v'*; 4), **'angular velocity'** (*'angVel'*; 5), **'mass'** (*'m'*; 6), **'position'** (*'pos'*; 7), **'ref. displacement'** (*'disp'*, *'displacement'*; 8), **'ref. rotation'** (*'rot'*, *'rotation'*; 9), **'refpos coord'** (*'refpos'*; 10), **'material id'** (*'mat id'*; 11), **'Particle.matState'** (*'mat state'*; 12), **'normal stress'** (*'sigN'*; 13), **'shear stress'** (*'sigT'*; 14), **'mask'** (15), **'number of contacts'** (*'num contacts'*, *'numCon'*; 16), **'flags'** (17), **'invisible'** (*'-'*; 18)] .. attribute:: colorRange2 (= None) Range for particle colors (:obj:`colorBy`) [type: shared_ptr<:obj:`ScalarRange `>, read-only in python] .. attribute:: solidColor (= Vector3(0.3,0.3,0.3)) Solid color for particles. [type: Vector3r] .. attribute:: colorRanges (= []) List of color ranges [type: vector>, not shown in the UI, read-only in python] .. attribute:: bound (= False) Render particle's :obj:`Bound` [type: bool] .. attribute:: periodic (= False) Automatically shows whether the scene is periodic (to use in hideIf of :obj:`fluct` [type: bool, not shown in the UI] .. attribute:: fluct (= False) With periodic boundaries, show only fluctuation components of velocity. [type: bool] .. rubric:: ► Nodes .. attribute:: nodes (= False) Render DEM nodes [type: bool] .. attribute:: glyph (= 0) Show glyphs on particles by setting :obj:`GlData` on their nodes. [type: int, named enum, possible values are: **'keep'** (0), **'none'** (*''*; 1), **'force'** (*'f'*; 2), **'torque'** (*'t'*; 3), **'velocity'** (*'vel'*, *'v'*; 4), **'angular velocity'** (*'angVel'*, *'angvel'*; 5)] .. attribute:: glyphRange (= None) Range for glyph colors [type: shared_ptr<:obj:`ScalarRange `>, read-only in python] .. attribute:: glyphRelSz (= 0.1) Maximum glyph size relative to scene radius [type: Real] .. attribute:: deadNodes (= True) Show :obj:`DemField.deadNodes `. [type: bool] .. attribute:: glyphRanges (= []) List of glyph ranges [type: vector>, not shown in the UI, read-only in python] .. rubric:: ► Contact nodes .. attribute:: cNode (= 0) What should be shown for contact nodes [type: int, bit accessors: **glRep**, **line**, **node**, **potLine**] .. attribute:: cPhys (= False) Render contact's nodes [type: bool] .. attribute:: guiEvery (= 100) Process GUI events once every *guiEvery* objects are painted, to keep the ui responsive. Set to 0 to make rendering blocking. [type: int] .. attribute:: shapeDispatcher (= ) Dispatcher for rendering :obj:`shapes `. Set up automatically. [type: shared_ptr<:obj:`GlShapeDispatcher `>, not shown in the UI, read-only in python] .. attribute:: boundDispatcher (= ) Dispatcher for rendering :obj:`bounds `. Set up automatically. [type: shared_ptr<:obj:`GlBoundDispatcher `>, not shown in the UI, read-only in python] .. attribute:: cPhysDispatcher (= ) Dispatcher for rendering :obj:`CPhys `. Set up automatically. [type: shared_ptr<:obj:`GlCPhysDispatcher `>, not shown in the UI, read-only in python] .. rst-class:: html-toggle .. rst-class:: emphasized GlBoundDispatcher ----------------- :obj:`~woo.core.Object` → :obj:`~woo.core.Engine` → :obj:`~woo.core.Dispatcher` → :obj:`~woo.gl.GlBoundDispatcher` .. autoclass:: GlBoundDispatcher :members: :exclude-members: functors, __init__, __getstate__, __setstate__ :special-members: .. attribute:: functors (= []) Functors active in the dispatch mechanism [overridden below]. [type: vector>] .. rst-class:: html-toggle .. rst-class:: emphasized ScalarGlRep ----------- :obj:`~woo.core.Object` → :obj:`~woo.core.NodeVisRep` → :obj:`~woo.gl.ScalarGlRep` .. autoclass:: ScalarGlRep :members: :exclude-members: val, how, prec, relSz, range, __init__, __getstate__, __setstate__ :special-members: .. attribute:: val (= 0.0) Value to be rendered [type: Real] .. attribute:: how (= 0) Different ways to render given value; 0=number, 1=colored point, 2=colored sphere [type: int] .. attribute:: prec (= 5) Precision for rendering numbers [type: int] .. attribute:: relSz (= 0.05) Size of rendered spheres (if selected), relative to scene radius [type: Real] .. attribute:: range (= None) Extrema values for the scalar, to determine colors. [type: shared_ptr<:obj:`ScalarRange `>] .. rst-class:: html-toggle .. rst-class:: emphasized GlShapeDispatcher ----------------- :obj:`~woo.core.Object` → :obj:`~woo.core.Engine` → :obj:`~woo.core.Dispatcher` → :obj:`~woo.gl.GlShapeDispatcher` .. autoclass:: GlShapeDispatcher :members: :exclude-members: functors, __init__, __getstate__, __setstate__ :special-members: .. attribute:: functors (= []) Functors active in the dispatch mechanism [overridden below]. [type: vector>] .. rst-class:: html-toggle .. rst-class:: emphasized GlShapeFunctor -------------- :obj:`~woo.core.Object` → :obj:`~woo.core.Functor` → :obj:`~woo.gl.GlShapeFunctor` .. graphviz:: digraph GlShapeFunctor { rankdir=LR; margin=.2; "GlShapeFunctor" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="woo.gl.html#woo.gl.GlShapeFunctor"]; "Gl1_Ellipsoid" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="woo.gl.html#woo.gl.GlShapeFunctor"]; "Gl1_Sphere" -> "Gl1_Ellipsoid" [arrowsize=0.5,style="setlinewidth(0.5)"] "Gl1_Capsule" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="woo.gl.html#woo.gl.GlShapeFunctor"]; "Gl1_Sphere" -> "Gl1_Capsule" [arrowsize=0.5,style="setlinewidth(0.5)"] "Gl1_Cone" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="woo.gl.html#woo.gl.GlShapeFunctor"]; "GlShapeFunctor" -> "Gl1_Cone" [arrowsize=0.5,style="setlinewidth(0.5)"] "Gl1_Tet4" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="woo.gl.html#woo.gl.GlShapeFunctor"]; "Gl1_Tetra" -> "Gl1_Tet4" [arrowsize=0.5,style="setlinewidth(0.5)"] "Gl1_Wall" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="woo.gl.html#woo.gl.GlShapeFunctor"]; "GlShapeFunctor" -> "Gl1_Wall" [arrowsize=0.5,style="setlinewidth(0.5)"] "Gl1_Facet" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="woo.gl.html#woo.gl.GlShapeFunctor"]; "GlShapeFunctor" -> "Gl1_Facet" [arrowsize=0.5,style="setlinewidth(0.5)"] "Gl1_Rod" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="woo.gl.html#woo.gl.GlShapeFunctor"]; "GlShapeFunctor" -> "Gl1_Rod" [arrowsize=0.5,style="setlinewidth(0.5)"] "Gl1_Tetra" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="woo.gl.html#woo.gl.GlShapeFunctor"]; "GlShapeFunctor" -> "Gl1_Tetra" [arrowsize=0.5,style="setlinewidth(0.5)"] "Gl1_InfCylinder" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="woo.gl.html#woo.gl.GlShapeFunctor"]; "GlShapeFunctor" -> "Gl1_InfCylinder" [arrowsize=0.5,style="setlinewidth(0.5)"] "Gl1_Membrane" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="woo.gl.html#woo.gl.GlShapeFunctor"]; "Gl1_Facet" -> "Gl1_Membrane" [arrowsize=0.5,style="setlinewidth(0.5)"] "Gl1_Sphere" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="woo.gl.html#woo.gl.GlShapeFunctor"]; "GlShapeFunctor" -> "Gl1_Sphere" [arrowsize=0.5,style="setlinewidth(0.5)"] } .. autoclass:: GlShapeFunctor :members: :exclude-members: __init__, __getstate__, __setstate__ :special-members: .. rst-class:: html-toggle .. rst-class:: emphasized Gl1_Sphere ++++++++++ :obj:`~woo.core.Object` → :obj:`~woo.core.Functor` → :obj:`~woo.gl.GlShapeFunctor` → :obj:`~woo.gl.Gl1_Sphere` .. graphviz:: digraph Gl1_Sphere { rankdir=LR; margin=.2; "Gl1_Sphere" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="woo.gl.html#woo.gl.Gl1_Sphere"]; "Gl1_Ellipsoid" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="woo.gl.html#woo.gl.Gl1_Sphere"]; "Gl1_Sphere" -> "Gl1_Ellipsoid" [arrowsize=0.5,style="setlinewidth(0.5)"] "Gl1_Capsule" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="woo.gl.html#woo.gl.Gl1_Sphere"]; "Gl1_Sphere" -> "Gl1_Capsule" [arrowsize=0.5,style="setlinewidth(0.5)"] } .. autoclass:: Gl1_Sphere :members: :exclude-members: quality, wire, smooth, scale, glutSlices, glutStacks, __init__, __getstate__, __setstate__ :special-members: .. attribute:: quality (= 1.0) Change discretization level of spheres. quality>1 for better image quality, at the price of more cpu/gpu usage, 0`_) [type: int, not saved, read-only in python] .. attribute:: glutStacks (= 6) Base number of sphere stacks, multiplied by :obj:`Gl1_Sphere.quality` before use; not used with ``stripes`` (see `glut{Solid,Wire}Sphere reference `_) [type: int, not saved, read-only in python] .. rst-class:: html-toggle .. rst-class:: emphasized Gl1_Ellipsoid """"""""""""" :obj:`~woo.core.Object` → :obj:`~woo.core.Functor` → :obj:`~woo.gl.GlShapeFunctor` → :obj:`~woo.gl.Gl1_Sphere` → :obj:`~woo.gl.Gl1_Ellipsoid` .. autoclass:: Gl1_Ellipsoid :members: :exclude-members: __init__, __getstate__, __setstate__ :special-members: .. rst-class:: html-toggle .. rst-class:: emphasized Gl1_Capsule """"""""""" :obj:`~woo.core.Object` → :obj:`~woo.core.Functor` → :obj:`~woo.gl.GlShapeFunctor` → :obj:`~woo.gl.Gl1_Sphere` → :obj:`~woo.gl.Gl1_Capsule` .. autoclass:: Gl1_Capsule :members: :exclude-members: __init__, __getstate__, __setstate__ :special-members: .. rst-class:: html-toggle .. rst-class:: emphasized Gl1_InfCylinder +++++++++++++++ :obj:`~woo.core.Object` → :obj:`~woo.core.Functor` → :obj:`~woo.gl.GlShapeFunctor` → :obj:`~woo.gl.Gl1_InfCylinder` .. autoclass:: Gl1_InfCylinder :members: :exclude-members: wire, spokes, slices, stacks, __init__, __getstate__, __setstate__ :special-members: .. attribute:: wire (= False) Render Cylinders with wireframe [type: bool] .. attribute:: spokes (= True) Render spokes between the cylinder axis and edge, at the position of :obj:`InfCylinder.glAB`. [type: bool] .. attribute:: slices (= 12) Number of circumferential division of circular sections [type: int] .. attribute:: stacks (= 20) Number of rings on the cylinder inside the visible scene part. [type: int] .. rst-class:: html-toggle .. rst-class:: emphasized Gl1_Rod +++++++ :obj:`~woo.core.Object` → :obj:`~woo.core.Functor` → :obj:`~woo.gl.GlShapeFunctor` → :obj:`~woo.gl.Gl1_Rod` .. autoclass:: Gl1_Rod :members: :exclude-members: slices, stacks, wire, colorStress, stressRange, __init__, __getstate__, __setstate__ :special-members: .. attribute:: slices (= 12) Number of slices, controls quality [type: int] .. attribute:: stacks (= 6) Number of stacks, controls quality [type: int] .. attribute:: wire (= False) Render all shapes with wireframe only [type: bool] .. attribute:: colorStress (= True) Set color based on axial stress rather than :obj:`woo.dem.Shape.color` [type: bool] .. attribute:: stressRange (= Vector2(-1,1)) Stress range, to set color appropriately [type: Vector2r] .. rst-class:: html-toggle .. rst-class:: emphasized Gl1_Cone ++++++++ :obj:`~woo.core.Object` → :obj:`~woo.core.Functor` → :obj:`~woo.gl.GlShapeFunctor` → :obj:`~woo.gl.Gl1_Cone` .. autoclass:: Gl1_Cone :members: :exclude-members: slices, stacks, wire, __init__, __getstate__, __setstate__ :special-members: .. attribute:: slices (= 12) Number of slices, controls quality [type: int] .. attribute:: stacks (= 6) Number of stacks, controls quality [type: int] .. attribute:: wire (= False) Render all shapes with wireframe only [type: bool] .. rst-class:: html-toggle .. rst-class:: emphasized Gl1_Facet +++++++++ :obj:`~woo.core.Object` → :obj:`~woo.core.Functor` → :obj:`~woo.gl.GlShapeFunctor` → :obj:`~woo.gl.Gl1_Facet` .. graphviz:: digraph Gl1_Facet { rankdir=LR; margin=.2; "Gl1_Facet" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="woo.gl.html#woo.gl.Gl1_Facet"]; "Gl1_Membrane" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="woo.gl.html#woo.gl.Gl1_Facet"]; "Gl1_Facet" -> "Gl1_Membrane" [arrowsize=0.5,style="setlinewidth(0.5)"] } .. autoclass:: Gl1_Facet :members: :exclude-members: wire, slices, fastDrawLim, wd, __init__, __getstate__, __setstate__ :special-members: .. attribute:: wire (= False) Only show wireframe. [type: bool] .. attribute:: slices (= 8) Number of half-cylinder subdivision for rounded edges with halfThick>=0 (for whole circle); if smaller than 4, rounded edges are not drawn; if negative, only mid-plane is drawn. [type: int, range: -1−16] .. attribute:: fastDrawLim (= 0.001) If performing fast draw (during camera manipulation) and the facet's perimeter is smaller than *fastDrawLim* times scene radius, skip rendering of that facet. [type: Real] .. attribute:: wd (= 1) Line width when drawing with wireframe (only applies to the triangle, not to rounded corners) [type: int, range: 1−20] .. rst-class:: html-toggle .. rst-class:: emphasized Gl1_Membrane """""""""""" :obj:`~woo.core.Object` → :obj:`~woo.core.Functor` → :obj:`~woo.gl.GlShapeFunctor` → :obj:`~woo.gl.Gl1_Facet` → :obj:`~woo.gl.Gl1_Membrane` .. autoclass:: Gl1_Membrane :members: :exclude-members: node, refConf, refColor, refWd, uScale, uWd, uSplit, relPhi, phiWd, phiSplit, arrows, uRange, phiRange, __init__, __getstate__, __setstate__ :special-members: .. attribute:: node (= False) Show local frame node [type: bool] .. attribute:: refConf (= True) Show reference configuration, rotated to the current local frame [type: bool] .. attribute:: refColor (= Vector3(0,0.5,0)) Color for the reference shape [type: Vector3r] .. attribute:: refWd (= 1) Line width for the reference shape [type: int] .. attribute:: uScale (= 1.0) Scale of displacement lines (zero to disable) [type: Real] .. attribute:: uWd (= 2) Width of displacement lines [type: int] .. attribute:: uSplit (= False) Show x and y displacement components separately [type: bool] .. attribute:: relPhi (= 0.2) Length of unit rotation (one radian), relative to scene radius (zero to disable) [type: Real] .. attribute:: phiWd (= 2) Width of rotation lines [type: int] .. attribute:: phiSplit (= True) Show x and y displacement components separately [type: bool] .. attribute:: arrows (= False) Show displacements and rotations as arrows rather than lines [type: bool] .. attribute:: uRange (= ) Range for displacements (colors only) [type: shared_ptr<:obj:`ScalarRange `>] .. attribute:: phiRange (= ) Range for rotations (colors only) [type: shared_ptr<:obj:`ScalarRange `>] .. rst-class:: html-toggle .. rst-class:: emphasized Gl1_Wall ++++++++ :obj:`~woo.core.Object` → :obj:`~woo.core.Functor` → :obj:`~woo.gl.GlShapeFunctor` → :obj:`~woo.gl.Gl1_Wall` .. autoclass:: Gl1_Wall :members: :exclude-members: div, __init__, __getstate__, __setstate__ :special-members: .. attribute:: div (= 20) Number of divisions of the wall inside visible scene part. [type: int] .. rst-class:: html-toggle .. rst-class:: emphasized Gl1_Tetra +++++++++ :obj:`~woo.core.Object` → :obj:`~woo.core.Functor` → :obj:`~woo.gl.GlShapeFunctor` → :obj:`~woo.gl.Gl1_Tetra` .. graphviz:: digraph Gl1_Tetra { rankdir=LR; margin=.2; "Gl1_Tetra" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="woo.gl.html#woo.gl.Gl1_Tetra"]; "Gl1_Tet4" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="woo.gl.html#woo.gl.Gl1_Tetra"]; "Gl1_Tetra" -> "Gl1_Tet4" [arrowsize=0.5,style="setlinewidth(0.5)"] } .. autoclass:: Gl1_Tetra :members: :exclude-members: wire, wd, fastDrawLim, __init__, __getstate__, __setstate__ :special-members: .. attribute:: wire (= False) Only show wireframe. [type: bool] .. attribute:: wd (= 1) Line width when drawing with wireframe (only applies to the triangle, not to rounded corners) [type: int, range: 1−20] .. attribute:: fastDrawLim (= 0.001) If performing fast draw (during camera manipulation) and the distance of centroid to the first node is smaller than *fastDrawLim* times scene radius, skip rendering of that tetra. [type: Real] .. rst-class:: html-toggle .. rst-class:: emphasized Gl1_Tet4 """""""" :obj:`~woo.core.Object` → :obj:`~woo.core.Functor` → :obj:`~woo.gl.GlShapeFunctor` → :obj:`~woo.gl.Gl1_Tetra` → :obj:`~woo.gl.Gl1_Tet4` .. autoclass:: Gl1_Tet4 :members: :exclude-members: node, rep, refConf, refColor, refWd, uWd, __init__, __getstate__, __setstate__ :special-members: .. attribute:: node (= False) Show local frame node [type: bool] .. attribute:: rep (= True) Show GlRep of the frame node (without showing the node itself) [type: bool] .. attribute:: refConf (= False) Show reference configuration, rotated to the current local frame [type: bool] .. attribute:: refColor (= Vector3(0,0.5,0)) Color for the reference shape [type: Vector3r] .. attribute:: refWd (= 1) Line width for the reference shape [type: int] .. attribute:: uWd (= 2) Width of displacement lines [type: int] .. rst-class:: html-toggle .. rst-class:: emphasized GlExtraDrawer ------------- :obj:`~woo.core.Object` → :obj:`~woo.gl.GlExtraDrawer` .. graphviz:: digraph GlExtraDrawer { rankdir=LR; margin=.2; "GlExtraDrawer" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="woo.gl.html#woo.gl.GlExtraDrawer"]; "GlExtra_AnisoPorosityAnalyzer" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="woo.gl.html#woo.gl.GlExtraDrawer"]; "GlExtraDrawer" -> "GlExtra_AnisoPorosityAnalyzer" [arrowsize=0.5,style="setlinewidth(0.5)"] "GlExtra_EnergyTrackerGrid" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="woo.gl.html#woo.gl.GlExtraDrawer"]; "GlExtraDrawer" -> "GlExtra_EnergyTrackerGrid" [arrowsize=0.5,style="setlinewidth(0.5)"] } .. autoclass:: GlExtraDrawer :members: :exclude-members: dead, __init__, __getstate__, __setstate__ :special-members: .. attribute:: dead (= False) Deactivate the object (on error/exception). [type: bool] .. rst-class:: html-toggle .. rst-class:: emphasized GlExtra_EnergyTrackerGrid +++++++++++++++++++++++++ :obj:`~woo.core.Object` → :obj:`~woo.gl.GlExtraDrawer` → :obj:`~woo.gl.GlExtra_EnergyTrackerGrid` .. autoclass:: GlExtra_EnergyTrackerGrid :members: :exclude-members: color, __init__, __getstate__, __setstate__ :special-members: .. attribute:: color (= Vector3(1,0.5,0.5)) Color to render the box. [type: Vector3r] .. rst-class:: html-toggle .. rst-class:: emphasized GlExtra_AnisoPorosityAnalyzer +++++++++++++++++++++++++++++ :obj:`~woo.core.Object` → :obj:`~woo.gl.GlExtraDrawer` → :obj:`~woo.gl.GlExtra_AnisoPorosityAnalyzer` .. autoclass:: GlExtra_AnisoPorosityAnalyzer :members: :exclude-members: analyzer, wd, wd_range, num, num_range, idMod, __init__, __getstate__, __setstate__ :special-members: .. attribute:: analyzer (= None) Associated :obj:`AnisoPorosityAnalyzer` object. [type: shared_ptr<:obj:`AnisoPorosityAnalyzer `>] .. attribute:: wd (= 2) Segment line width [type: int] .. attribute:: wd_range (= Vector2i(1,10)) Range for wd [type: Vector2i, not shown in the UI] .. attribute:: num (= 2) Number to show at the segment middle: 0 = nothing, 1 = particle id, 2 = intersected length [type: int] .. attribute:: num_range (= Vector2i(0,2)) Range for num [type: Vector2i, not shown in the UI] .. attribute:: idMod (= 5) Modulate particle id by this number to get segment color [type: int] .. rst-class:: html-toggle .. rst-class:: emphasized DisplayParameters ----------------- :obj:`~woo.core.Object` → :obj:`~woo.gl.DisplayParameters` .. autoclass:: DisplayParameters :members: :exclude-members: values, displayTypes, __init__, __getstate__, __setstate__ :special-members: .. attribute:: values (= []) [type: vector, read-only in python] .. attribute:: displayTypes (= []) [type: vector, read-only in python] .. rst-class:: html-toggle .. rst-class:: emphasized VectorGlRep ----------- :obj:`~woo.core.Object` → :obj:`~woo.core.NodeVisRep` → :obj:`~woo.gl.VectorGlRep` .. graphviz:: digraph VectorGlRep { rankdir=LR; margin=.2; "VectorGlRep" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="woo.gl.html#woo.gl.VectorGlRep"]; "ActReactGlRep" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="woo.gl.html#woo.gl.VectorGlRep"]; "VectorGlRep" -> "ActReactGlRep" [arrowsize=0.5,style="setlinewidth(0.5)"] } .. autoclass:: VectorGlRep :members: :exclude-members: val, relSz, scaleExp, range, __init__, __getstate__, __setstate__ :special-members: .. attribute:: val (= Vector3(0,0,0)) Value to be rendered [type: Vector3r] .. attribute:: relSz (= 0.2) Size of maximum-length arrows, relative to scene radius [type: Real] .. attribute:: scaleExp (= 1.0) Exponent for scaling arrow size as ``vector_norm^scaleExp``. NaN disables scaling (all arrows the same size). [type: Real] .. attribute:: range (= None) Extrema values for vector norm, to determine colors. [type: shared_ptr<:obj:`ScalarRange `>] .. rst-class:: html-toggle .. rst-class:: emphasized ActReactGlRep +++++++++++++ :obj:`~woo.core.Object` → :obj:`~woo.core.NodeVisRep` → :obj:`~woo.gl.VectorGlRep` → :obj:`~woo.gl.ActReactGlRep` .. autoclass:: ActReactGlRep :members: :exclude-members: comp, comp_range, relOff, shearRange, __init__, __getstate__, __setstate__ :special-members: .. attribute:: comp (= 3) Which components of the force to show 0: x-only, 1: yz-only, 2: both as separate arrows, 3: both as one arrow. [type: int] .. attribute:: comp_range (= Vector2i(0,3)) Range for *comp* [type: Vector2i, not shown in the UI] .. attribute:: relOff (= 0.01) Offset from the node in the sense of local x-axis, relative to scene radius [type: Real] .. attribute:: shearRange (= None) Optional range for shear foces; if not defined range (for normal force) is used instead. [type: shared_ptr<:obj:`ScalarRange `>] .. rst-class:: html-toggle .. rst-class:: emphasized GlCPhysDispatcher ----------------- :obj:`~woo.core.Object` → :obj:`~woo.core.Engine` → :obj:`~woo.core.Dispatcher` → :obj:`~woo.gl.GlCPhysDispatcher` .. autoclass:: GlCPhysDispatcher :members: :exclude-members: functors, __init__, __getstate__, __setstate__ :special-members: .. attribute:: functors (= []) Functors active in the dispatch mechanism [overridden below]. [type: vector>]