JAVA3D-4
形体的组合
1.形体的分组
Java3D中,有很多几何形体,因此要对这些几何形体进行合理的分组,然后再对指定的形体进行几何变换,从而得到预期的效果
1.1 Group对象
方法: addchild, insertchild,removechild,setchild
用来对形体的分组,是所有Group类的父类,Group nodes have exactly one parent and an arbitrary number of children that are rendered in an unspecified order (or in parallel). Null children are allowed; no operation is performed on a null child node.
子类: BranchGroup, OrderedGroup, Primitive, SharedGroup, Switch, TransformGroup, ViewSpecificGroup
BranchGroup
通常做为整个场景的根节点,灯光,背景等效果对象都加在这一对象上面
OrderedGroup
与BG有相同的效果,只不过渲染的时候是按下标的顺序来渲染
DecalGroup
OG的一个子类,只有这个类可以正确的显示位于同一平面上的多个重叠的平面
Switch
可以灵活控制一组对象中的单个或者几个,切换的作用
ShareGroup
可以以一个图像为模子进行同一对象的复制
2.几何变换
TG:定义局部坐标系,通过对它的设定可以实现形体的旋转与放缩怎么变换
TransformGroup(Transform3D t)
标志: ALLOW_TRANSFORM_READ,ALLOW_TRANSOFRM_WRITE
如果想让物体移动,一定要指定这两个标志.
Transform3D
通常表示TG对象相对于父节点(如BG)的位置/角度/尺度等空间的变换
TransformGroup对象与Transform3D对象的应用
程序中每次指定TG对象的Transform3D属性都需要生成新的T3D对象,这是因为不同的TG对象都保留着自己的T3D对象的实例,且仅有一个,因此不同的TG对象如果提供的变换是不一样的,那么必须使用不同的T3D对象