Building complex geometries using simple 3d primatives

William J. Deninger (deninger@uiuc.edu)
Mon, 17 Nov 1997 14:36:03 -0600


This is a multi-part message in MIME format.

------=_NextPart_000_000D_01BCF366.21A0EEA0
Content-Type: multipart/alternative;
boundary="----=_NextPart_001_000E_01BCF366.21A27540"

------=_NextPart_001_000E_01BCF366.21A27540
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Hello,

I have a peculiar question concerning implementing 3d graphics =
primitives inside one another. Suppose I have a detector composed of a =
simple block of aluminum with a hole drilled in the middle. I would =
suspect we would use TBRIK of material Al and TTUBE of material VACUUM. =
How does root know which material takes precedence in a volume shared by =
two materials such as the TTUBE inside the TBRIK?

Also, suppose those two primitives shared a common origin. Is it =
possible to have both primitives referenced by the same TNode, or is it =
necessary to have a TNode duplicated? I'm guessing that in such an =
instance, one would want to combine all objects "attached" sharing a =
node to be represented by a class of type TShape. But then the question =
becomes, which virtual functions of TShape are necessary to overload in =
order to get a correct TShape behavior?

And finally, as the geometry becomes complicated I need to highlight =
certain primitives preferably without redrawing the entire detector =
geometry. Specifically, I need to mark straws in a drift chamber in =
order to aid debugging my tracking code.=20

William J. Deninger
deninger@uiuc.edu

------=_NextPart_001_000E_01BCF366.21A27540
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD W3 HTML//EN">

Hello, 
 
I have a peculiar question concerning implementing 3d graphics = primitives=20 inside one another.  Suppose I have a detector composed of a simple = block=20 of aluminum with a hole drilled in the middle.  I would suspect we = would=20 use TBRIK of material Al and TTUBE of material VACUUM.  How does = root know=20 which material takes precedence in a volume shared by two materials such = as the=20 TTUBE inside the TBRIK?
 
Also, suppose those two primitives shared a common origin. Is it = possible=20 to have both primitives referenced by the same TNode, or is it necessary = to have=20 a TNode duplicated?  I'm guessing that in such an instance, one = would want=20 to combine all objects "attached" sharing a node to be = represented by=20 a class of type TShape.  But then the question becomes, which = virtual=20 functions of TShape are necessary to overload in order to get a correct = TShape=20 behavior?
 
And finally, as the geometry becomes complicated I need to = highlight=20 certain primitives preferably without redrawing the entire detector=20 geometry.  Specifically, I need to mark straws in a drift chamber = in order=20 to aid debugging my tracking code.
 
William J. Deninger
deninger@uiuc.edu
------=_NextPart_001_000E_01BCF366.21A27540-- ------=_NextPart_000_000D_01BCF366.21A0EEA0 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-ID: <000501bcf398$6c2f29a0$5e0dae80@g2pc1.npl.uiuc.edu> R0lGODlhFAAUAPcAAP//////zP//mf//Zv//M///AP/M///MzP/Mmf/MZv/MM//MAP+Z//+ZzP+Z mf+ZZv+ZM/+ZAP9m//9mzP9mmf9mZv9mM/9mAP8z//8zzP8zmf8zZv8zM/8zAP8A//8AzP8Amf8A Zv8AM/8AAMz//8z/zMz/mcz/Zsz/M8z/AMzM/8zMzMzMmczMZszMM8zMAMyZ/8yZzMyZmcyZZsyZ M8yZAMxm/8xmzMxmmcxmZsxmM8xmAMwz/8wzzMwzmcwzZswzM8wzAMwA/8wAzMwAmcwAZswAM8wA AJn//5n/zJn/mZn/Zpn/M5n/AJnM/5nMzJnMmZnMZpnMM5nMAJmZ/5mZzJmZmZmZZpmZM5mZAJlm /5lmzJlmmZlmZplmM5lmAJkz/5kzzJkzmZkzZpkzM5kzAJkA/5kAzJkAmZkAZpkAM5kAAGb//2b/ zGb/mWb/Zmb/M2b/AGbM/2bMzGbMmWbMZmbMM2bMAGaZ/2aZzGaZmWaZZmaZM2aZAGZm/2ZmzGZm mWZmZmZmM2ZmAGYz/2YzzGYzmWYzZmYzM2YzAGYA/2YAzGYAmWYAZmYAM2YAADP//zP/zDP/mTP/ ZjP/MzP/ADPM/zPMzDPMmTPMZjPMMzPMADOZ/zOZzDOZmTOZZjOZMzOZADNm/zNmzDNmmTNmZjNm MzNmADMz/zMzzDMzmTMzZjMzMzMzADMA/zMAzDMAmTMAZjMAMzMAAAD//wD/zAD/mQD/ZgD/MwD/ AADM/wDMzADMmQDMZgDMMwDMAACZ/wCZzACZmQCZZgCZMwCZAABm/wBmzABmmQBmZgBmMwBmAAAz /wAzzAAzmQAzZgAzMwAzAAAA/wAAzAAAmQAAZgAAMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAFAAUAEAIQwBJCBxI sKBBAAgTKlyYUCDDhwsdQpwoceLDihYjksh4cSNHjR9BhmzocSQAjCFRflTJkWVGlxZhUiw5UiZE gzhzBgQAOw== ------=_NextPart_000_000D_01BCF366.21A0EEA0--