public class SoCSGGroup extends SoGroup
An expression defines the operations between these solids. Possible operations are: intersection (indicated as "." in the expression), union ("+"), and subtraction (""). A solid is identified by a letter (or a group of letters) in the expression and corresponds to the child number as follows: 'A' corresponds to child 0, 'B' corresponds to child 1, "AA" corresponds to child 26, "AZ" corresponds to child 51, and so forth. The expression is not case sensitive. If you decide for example to use "AA", you must have previously created children 025 (A through Z).
A letter can be followed by a number to indicate the convexity of the solid. The convexity of a solid is defined as the maximum numbers of pairs of front and back surfaces. For instance, the convexity of a cube is 1 whereas the convexity of a torus is 2. The convexity of a solid is assumed to be 1 if no digit follows the corresponding letter in the expression. The maximum allowable convexity value is 128.
The more complex the expression, the slower the performance. The same holds true for the convexity of an object  greater convexity implies slower performance.
For best performance, the graphics accelerator should perform stencil buffer operations in hardware.
Example of CSG Tree:
In this example, "myShape1" is 'A', "Separator1" is B, and "Separator2" is C. A CSG expression could be: "A . B  C + A" and corresponds to the following CSG tree:
The CSG tree defined by expression
is assumed to be in normal form (normalized). A CSG tree is in normal form when all intersection and subtraction operators have a left subtree that contains no union operator and a right subtree that is simply a shape. For example, the tree shown above is in normal form.
A CSG tree can be converted to normal form by repeatedly applying the following set of production rules to the tree and then its subtrees:
A  ( B + C )  =>  ( A  B )  C 
A . ( B + C )  =>  ( A . B ) + ( A . C ) 
A  ( B . C )  =>  ( A  B ) + ( A  C ) 
A . ( B . C )  =>  ( A . B ) . C 
A  ( B  C )  =>  ( A  B ) + ( A . C ) 
A . ( B  C )  =>  ( A . B )  C 
( A  B ) . C  =>  ( A . C )  B 
( A + B )  C  =>  ( A  C ) + ( B  C ) 
( A + B ) . C  =>  ( A . C ) + ( B . C ) 
Because there are two Buffer Region extensions, the value of this environment variable can be:
KTX_BUFFER_REGION: Uses the GL_KTX_buffer_region extension.
ARB_BUFFER_REGION: Uses the WGL_ARB_buffer_region extension.
File format/default:
CSGGroup {
expression  "" 
isShapesBefore  false 
isActive  true 
boundingBoxPruningEnabled  false 
See also:
SoSolidVizDeprecated since Open Inventor 9500
No longer supported.
Inventor.ConstructorCommand
Modifier and Type  Field and Description 

SoSFBool 
boundingBoxPruningEnabled
Deprecated.
Indicates if the CSG tree is pruned by the following rules:
A.B = 0 if BoundingBox(A) does not intersect BoundingBox(B).

SoSFString 
expression
Deprecated.
Expression which defines the CSG tree.

SoSFBool 
isActive
Deprecated.
Indicates if CSG rendering should be done.

SoSFBool 
isShapesBefore
Deprecated.
This flag indicates if there are any shapes before the CSGGroup in the scene graph.

boundingBoxIgnoring
VERBOSE_LEVEL, ZeroHandle
Constructor and Description 

SoCSGGroup()
Deprecated.
Constructor.

SoCSGGroup(int nChildren)
Deprecated.
Constructor.

Modifier and Type  Method and Description 

SoNode 
getGeometry()
Deprecated.

addChild, findChild, getChild, getNumChildren, insertChild, removeAllChildren, removeChild, removeChild, replaceChild, replaceChild
affectsState, callback, copy, copy, distribute, doAction, getAlternateRep, getBoundingBox, getByName, getMatrix, getPrimitiveCount, getRenderUnitID, GLRender, GLRenderBelowPath, GLRenderInPath, GLRenderOffPath, grabEventsCleanup, grabEventsSetup, handleEvent, isBoundingBoxIgnoring, isOverride, pick, rayPick, search, setOverride, touch, write
copyFieldValues, copyFieldValues, enableNotify, fieldsAreEqual, get, getAllFields, getEventIn, getEventOut, getField, getFieldName, hasDefaultValues, isNotifyEnabled, set, setToDefaults
dispose, getEXTERNPROTO, getName, getPROTO, isDisposable, isSynchronizable, setName, setSynchronizable
getAddress, getNativeResourceHandle, startInternalThreads, stopInternalThreads
public final SoSFString expression
public final SoSFBool isShapesBefore
public final SoSFBool isActive
SoGroup
.public final SoSFBool boundingBoxPruningEnabled
These rules can potentially speed up the rendering in case of a complex CSG expression by simplifying the CSG tree.
public SoCSGGroup()
public SoCSGGroup(int nChildren)
public SoNode getGeometry()
Generated on December 18, 2019, Copyright © Thermo Fisher Scientific. All rights reserved. http://www.openinventor.com