My favorites
|
Sign in
as3dmod
cross-engine modifier library for Flash 3d
Project Home
Downloads
Wiki
Issues
Source
Checkout
|
Browse
|
Changes
|
‹r89
r102
Source path:
svn
/
trunk
/
src
/
com
/
as3dmod
/
modifiers
/
Break.as
1
2
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
package com.as3dmod.modifiers {
import com.as3dmod.IModifier;
import com.as3dmod.core.Matrix4;
import com.as3dmod.core.MeshProxy;
import com.as3dmod.core.Modifier;
import com.as3dmod.core.Vector3;
import com.as3dmod.core.VertexProxy;
import com.as3dmod.util.Range;
/**
* <b>Break.</b> Allow to break a mesh.
* <br>
* <p>This is the inital version of the class, it contains some
* hardcoded values that would make it unusable in most situations.
*
* <p>Updates coming soon.
*
* @version 0
* @author Bartek Drozdz
*/
public class Break extends Modifier implements IModifier {
// private var bv:Vector3 = new Vector3(0, 0, 1);
private var bv:Vector3 = new Vector3(0, 1, 0);
public var _offset:Number;
public var angle:Number;
public var range:Range = new Range(0,1);
public function Break(o:Number = 0, a:Number = 0) {
this.angle = a;
this._offset = o;
}
public function apply():void {
var vs:Array = mod.getVertices();
var vc:int = vs.length;
// var pv:Vector3 = new Vector3(-(mod.minX + mod.width / 2), -(mod.minY + mod.height * offset), 0);
var pv:Vector3 = new Vector3(0, 0, -(mod.minZ + mod.depth * offset));
for (var i:int = 0;i < vc; i++) {
var v:VertexProxy = vs[i] as VertexProxy;
var c:Vector3 = v.vector;
c = c.add(pv);
if(c.z >= 0 && range.isIn(v.ratioY)) {
var ta:Number = angle;
var rm:Matrix4 = Matrix4.rotationMatrix(bv.x, bv.y, bv.z, ta);
Matrix4.multiplyVector(rm, c);
}
var npv:Vector3 = pv.negate();
c = c.add(npv);
v.x = c.x;
v.y = c.y;
v.z = c.z;
}
}
public function get offset():Number {
return _offset;
}
public function set offset(offset:Number):void {
_offset = offset;
}
}
}
Show details
Hide details
Change log
r91
by drojdjou on Feb 07, 2009
Diff
Added a warning note to Break modifier.
Go to:
...c/com/as3dmod/modifiers/Break.as
Project members,
sign in
to write a code review
Older revisions
r89
by drojdjou on Feb 07, 2009
Diff
[No log message]
All revisions of this file
File info
Size: 1843 bytes, 73 lines
View raw file
Hosted by