| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 
 |  
public class Cube extends CustomNode {
    public var origin: Point3D = Point3D{}
    public-init var size: Number = 150;
    init {
        children = [
            for(n in [0..1]) [
                Rectangle {
                    fill: Color.LIGHTGRAY
                    stroke: Color.BLACK
                    strokeWidth: 2
                    translateZ: size*n
                    width: size height: size
                }
                Rectangle {
                    rotationAxis: Point3D {
                        x:0 y:10 z:0
                    }
                    rotate: 90
                    fill: Color.LIGHTGREEN
                    stroke: Color.BLACK
                    strokeWidth: 2
                    translateX: (size*(n-.5))
                    translateZ: size/2
                    width: size height: size
                }
                Rectangle {
                    rotationAxis: Point3D {
                        x:1 y:0 z:0
                    }
                    rotate: 90
                    fill: Color.LIGHTSKYBLUE
                    stroke: Color.BLACK
                    strokeWidth: 2
                    translateY: size*(n-.5)
                    translateZ: size/2
                    width: size height: size
                }
            ]
        ]
    }
}
function run() {
    def feats = ConditionalFeature.values();
    for(f in feats) {
        println("feature {f}=>{Platform.isSupported(f)}");
    }
    def cube = Cube {
        size: 100
        opacity: 1
        rotationAxis: Point3D{z: 1}
    }
     def grp = Group {
 
        rotationAxis: Point3D{x: 1 y: 1}
        rotate: 60
        translateZ: 100
        translateX: 100
        translateY: 100
        content: cube
    }
    Timeline {
        repeatCount: Timeline.INDEFINITE
        keyFrames: [at(2s){ cube.rotate => 360}]
    }.playFromStart();
 
    Stage {
	title : "3D Cube"
	onClose: function () {  }
	scene: Scene {
            width: 300
            height: 300
            fill: Color.TRANSPARENT
            camera: PerspectiveCamera {
                fieldOfView: 200
            }
            content: [
                grp
            ]
       }
   }
} | 
Partager