Bit Field for Behavior on Graphics

Macro Definitions

kA3DGraphicsShow

kA3DGraphicsSonHeritShow

kA3DGraphicsFatherHeritShow

kA3DGraphicsSonHeritColor

kA3DGraphicsFatherHeritColor

kA3DGraphicsSonHeritLayer

kA3DGraphicsFatherHeritLayer

kA3DGraphicsSonHeritTransparency

kA3DGraphicsFatherHeritTransparency

kA3DGraphicsSonHeritLinePattern

kA3DGraphicsFatherHeritLinePattern

kA3DGraphicsSonHeritLineWidth

kA3DGraphicsFatherHeritLineWidth

kA3DGraphicsRemoved

Detailed Description

group a3d_graphicsbits

This bit field defines the behavior of a given entity, regarding its visibility, color, transparency, layer, line pattern and line width, given its position in the tree of entities. The inheritance works as follows:

Following the path of a leaf in the tree of entities:

  • If there are SonHerit flags, it is the lowest node in the tree which has this flag which defines the value, except if it has a FatherHerit flag.

  • If there are FatherHerit flags, it is the highest node in the tree which has this flag which defines the value.

  • If there is no flag, the current value is set, if any.

To determine the value of a son regarding his father, the following rules can be applied:
  • If the father has a SonHerit flag and the son has a SonHerit flag too, the value is the one of the son.

  • If the father has a SonHerit flag but not the son, the value is the one of the father.

  • If the father does not have a SonHerit flag, but the son has one, the value is the one of the son.

  • If the father does not have a SonHerit flag neither a FatherHerit flag, and the son does not have a SonHerit flag too, the value is the one of the son.

  • If none of those rules can match, the value is the current one.

Following are different configurations that can be found:

../_images/graphicsbits_image001.png

This tree has no flag; each node defines its own color. This is the reference. Each following diagram is the same than this one, but with different flags on some nodes. The ‘S’ means that the node has a SonHerit flag, the ‘F’; that the node has a FatherHerit flag.

../_images/graphicsbits_image002.png

The second leaf does not have a SonHerit flag. It takes the pattern of its father.

../_images/graphicsbits_image003.png

The second leaf does not have a SonHerit flag, and also its father. So it takes its own value of pattern.

../_images/graphicsbits_image004.png

The second node has a FatherHerit flag. Its sons don’t have any flag. They take the pattern of their father.

../_images/graphicsbits_image005.png

The second node has a FatherHerit flag. The first leaf has a SonHerit flag. It takes its own pattern. But the second leaf doesn’t have a SonHerit flag, so it takes the pattern of its father.

../_images/graphicsbits_image006.png

The root node has a FatherHerit flag. The entire tree takes its pattern.

../_images/graphicsbits_image007.png

The root node has a FatherHerit flag. The second node too, so it takes the pattern of its father. The first leaf has a SonHerit flag, so it takes its own pattern. But the second leaf has no flag, so it takes the pattern of its father.

NB1: The SonHerit flag overrides the FatherHerit flag.
Version

2.0

Macro Definition

kA3DGraphicsShow

Entity is shown.

kA3DGraphicsSonHeritShow

Show inheritance.

kA3DGraphicsFatherHeritShow

Show inheritance.

kA3DGraphicsSonHeritColor

Color / material inheritance.

kA3DGraphicsFatherHeritColor

Color / material inheritance.

kA3DGraphicsSonHeritLayer

Layer inheritance.

kA3DGraphicsFatherHeritLayer

Layer inheritance.

kA3DGraphicsSonHeritTransparency

Transparency inheritance.

kA3DGraphicsFatherHeritTransparency

Transparency inheritance.

kA3DGraphicsSonHeritLinePattern

Line pattern inheritance.

kA3DGraphicsFatherHeritLinePattern

Line pattern inheritance.

kA3DGraphicsSonHeritLineWidth

Line width inheritance.

kA3DGraphicsFatherHeritLineWidth

Line width inheritance.

kA3DGraphicsRemoved

Entity is removed.

As a result, the entity no longer appears in the tree.