2009年12月29日星期二

cityEngineLite最新进展

09年下半年的工作比较忙,要迎接检查,还要学车~总之,就是很忙。加上10月功夫网又再次发威,害得我上不了blogger,也没法更新。

在这半年里,cityengine又更新了几次,这是目前已经实现的操作:
T,R
S
I
[ ]
Subdiv
Repeat
FootPrint
Extrude
FComp
Set
Offset
FCombine

下一步就要实现Occ了,现在求交点交线的功能已经做好了,还在测试,问题比较多。
Roof暂时先放着,因为它比较容易。
CGAgrammer的解释器有了较大的变动,主要是因为要执行combine操作,它必须能以组为单位来同时操作一些shape,而之前的实现都无法做到。

看看最新的例子:


1:null~FootPrint(poly){footprint}
2:footprint~S(Y,4) facades
3:facades~FComp(sidefaces){facade} FComp(topfaces){roof}
4:facade:gcurrentScope.position[0]>0~S(ZD,4) sideroom
5:sideroom~FComp(sidefaces){facade} FComp(topfaces){roof}
6:roof~FCombine(AF) roof2
7:roof2~roof2a roof2b
8:roof2b~Offset(-0.1) level2
9:level2~S(YD,10) level2facades
10:level2facades~FComp(sidefaces){facade2} FComp(topfaces){lv2roof}
7:facade2~Subdiv(Y,r(1),0.3){Subdiv(X,0.5,r(1),0.5){side|mf|side}|topline}
8:mf~Subdiv(Y,2,r(1)){firstfloor|Repeat(YD,3){Subdiv(Y,0.3,r(1),0.3){t0|Repeat(X,2){t2}|t0}}}
10:t2:gcurrentScope.size[0]>1.6~Subdiv(X,r(1),1.4,r(1)){t3|windowtile|t3}
11:lv2roof~Offset(0.1) lv2roof2
111:lv2roof2~S(Y,0.12) roof3D
12:windowtile~S(Z,gcurrentScope.size[1]) I(window1):0.3 ~S(Z,gcurrentScope.size[1]) I(window2):0.3 ~S(Z,gcurrentScope.size[1]) I(window3):0.4