'\"! tbl | mmdoc '\"macro stdmacro .ie n \{\ . ds Cr \fB . ds Cb \fB .\} .el \{\ . ds Cr \f7 . ds Cb \f8 .\} .TH SoLineHighlightRenderAction(3IV) .SH NAME SoLineHighlightRenderAction \(em selection highlight style .SH INHERITS FROM SoAction > SoGLRenderAction > SoLineHighlightRenderAction .SH SYNOPSIS .ps -1 \*(Cr#include .sp .in 1i \f1Methods from class SoLineHighlightRenderAction: .in 0.5i .sp .ta 20m .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Cr .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbSoLineHighlightRenderAction\*(Cr() .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvirtual void .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(Cbapply\*(Cr(SoNode *node) .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvoid .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbsetVisible\*(Cr(SbBool b) .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSbBool .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbisVisible\*(Cr() const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvoid .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbsetColor\*(Cr(const SbColor &c) .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSbColor & .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetColor\*(Cr() .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvoid .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbsetLinePattern\*(Cr(unsigned short pattern) .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crunsigned short .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetLinePattern\*(Cr() .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvoid .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbsetLineWidth\*(Cr(float width) .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crfloat .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetLineWidth\*(Cr() .sp .in 1i \f1Methods from class SoGLRenderAction: .in 0.5i .sp .ta 26m .in 1i+26n .ti 0.5i .ta 26m .ds Pt \*(Crvoid .ie \w'\*(Pt'>=26n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbsetViewportRegion\*(Cr(const SbViewportRegion &newRegion) .br .in 1i+26n .ti 0.5i .ta 26m .ds Pt \*(Crconst SbViewportRegion & .ie \w'\*(Pt'>=26n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetViewportRegion\*(Cr() const .br .in 1i+26n .ti 0.5i .ta 26m .ds Pt \*(Crvoid .ie \w'\*(Pt'>=26n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbsetUpdateArea\*(Cr(const SbVec2f &origin, const SbVec2f &size) .br .in 1i+26n .ti 0.5i .ta 26m .ds Pt \*(Crvoid .ie \w'\*(Pt'>=26n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetUpdateArea\*(Cr(SbVec2f &origin, SbVec2f &size) const .br .in 1i+26n .ti 0.5i .ta 26m .ds Pt \*(Crvoid .ie \w'\*(Pt'>=26n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbsetAbortCallback\*(Cr(SoGLRenderAbortCB *func, void *userData) .br .in 1i+26n .ti 0.5i .ta 26m .ds Pt \*(Crvoid .ie \w'\*(Pt'>=26n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbsetTransparencyType\*(Cr(TransparencyType type) .br .in 1i+26n .ti 0.5i .ta 26m .ds Pt \*(CrTransparencyType .ie \w'\*(Pt'>=26n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetTransparencyType\*(Cr() const .br .in 1i+26n .ti 0.5i .ta 26m .ds Pt \*(Crvoid .ie \w'\*(Pt'>=26n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbsetSmoothing\*(Cr(SbBool smooth) .br .in 1i+26n .ti 0.5i .ta 26m .ds Pt \*(CrSbBool .ie \w'\*(Pt'>=26n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbisSmoothing\*(Cr() const .br .in 1i+26n .ti 0.5i .ta 26m .ds Pt \*(Crvoid .ie \w'\*(Pt'>=26n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbsetNumPasses\*(Cr(int num) .br .in 1i+26n .ti 0.5i .ta 26m .ds Pt \*(Crint .ie \w'\*(Pt'>=26n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetNumPasses\*(Cr() const .br .in 1i+26n .ti 0.5i .ta 26m .ds Pt \*(Crvoid .ie \w'\*(Pt'>=26n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbsetPassUpdate\*(Cr(SbBool flag) .br .in 1i+26n .ti 0.5i .ta 26m .ds Pt \*(CrSbBool .ie \w'\*(Pt'>=26n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbisPassUpdate\*(Cr() const .br .in 1i+26n .ti 0.5i .ta 26m .ds Pt \*(Crvoid .ie \w'\*(Pt'>=26n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbsetPassCallback\*(Cr(SoGLRenderPassCB *func, void *userData) .br .in 1i+26n .ti 0.5i .ta 26m .ds Pt \*(Crvoid .ie \w'\*(Pt'>=26n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbsetCacheContext\*(Cr(uint32_t context) .br .in 1i+26n .ti 0.5i .ta 26m .ds Pt \*(Cruint32_t .ie \w'\*(Pt'>=26n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetCacheContext\*(Cr() const .sp .in 1i \f1Methods from class SoAction: .in 0.5i .sp .ta 20m .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crstatic SoType .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetClassTypeId\*(Cr() .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvirtual SoType .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetTypeId\*(Cr() .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvirtual SbBool .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbisOfType\*(Cr(SoType type) .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvirtual void .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbinvalidateState\*(Cr() .sp .SH DESCRIPTION \*(CbSoLineHighlightRenderAction\f1 is a render action which renders the specified scene graph, then renders each selected object again in wireframe. Selected objects are specified by the first \*(CbSoSelection\f1 node in the scene to which this action is \&applied. If there is no renderable geometry in a selected object, no highlight is rendered for that object. A highlight render action can be passed to the \*(CbsetGLRenderAction()\f1 method of \*(CbSoXtRenderArea\f1 to have an affect on scene graphs. .SH METHODS .ta 20m .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Cr .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbSoLineHighlightRenderAction\*(Cr() .br .in 1i \f1Constructor. .sp .in 0.5i .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvirtual void .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(Cbapply\*(Cr(SoNode *node) .br .in 1i \f1This renders the passed scene graph, and also renders each selected object in wireframe, as specified by the first \*(CbSoSelection\f1 node found in the scene graph. .sp .in 0.5i .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvoid .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbsetVisible\*(Cr(SbBool b) .br .in 1i \f1This provides a convenient mechansim for turning highlights off or back on. When FALSE is passed, subsequent calls to apply() render the scene graph without rendering highlights. The application is responsible \&for forcing a redraw of the scene after changing this state. The default visibility is on. .sp .in 0.5i .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSbBool .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbisVisible\*(Cr() const .br .in 1i \f1Returns whether highlights will be rendered or not. .sp .in 0.5i .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvoid .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbsetColor\*(Cr(const SbColor &c) .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSbColor & .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetColor\*(Cr() .br .in 1i \f1Set and get the color of the highlight. Default is red \f2(1,0,0)\f1. The application is responsible for forcing a redraw of the scene to see the affects of this change. .sp .in 0.5i .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvoid .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbsetLinePattern\*(Cr(unsigned short pattern) .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crunsigned short .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetLinePattern\*(Cr() .br .in 1i \f1Set and get the line pattern of the highlight. Default is solid, \f20xffff\f1. The pattern of bits in the passed variable specifies the pattern of the line. See \*(CbSoDrawStyle\f1 for more information. The application is responsible \&for forcing a redraw of the scene to see the affects of this change. .sp .in 0.5i .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvoid .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbsetLineWidth\*(Cr(float width) .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crfloat .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetLineWidth\*(Cr() .br .in 1i \f1Set and get the line width of the highlight. Default is \f23\f1. The application is responsible for forcing a redraw of the scene to see the affects of this change. .sp .in 0.5i .SH EXAMPLE Here is an example of how a line highlight can be specified for a particular selection node and render area. .nf .in 1i \*(Cr SoXtRenderArea *myRenderArea; SoSelection *mySelection; // Set the highlight render action myRenderArea->setGLRenderAction( new SoLineHighlightRenderAction()); // Automatic redraw on selection changes myRenderArea->redrawOnSelectionChange(mySelection); \f1 .fi .in 0.5i .SH SEE ALSO \*(CbSoBoxHighlightRenderAction, SoGLRenderAction, SoSelection, SoXtRenderArea, SoDrawStyle, SoInteraction