32 lines
		
	
	
		
			770 B
		
	
	
	
		
			Haxe
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			770 B
		
	
	
	
		
			Haxe
		
	
	
	
	
	
| package iron.object;
 | |
| 
 | |
| import iron.data.SceneFormat;
 | |
| 
 | |
| class Constraint {
 | |
| 	var raw: TConstraint;
 | |
| 	var target: Transform = null;
 | |
| 
 | |
| 	public function new(constr: TConstraint) {
 | |
| 		raw = constr;
 | |
| 	}
 | |
| 
 | |
| 	public function apply(transform: Transform) {
 | |
| 		if (target == null && raw.target != null) target = Scene.active.getChild(raw.target).transform;
 | |
| 
 | |
| 		if (raw.type == "COPY_LOCATION") {
 | |
| 			if (raw.use_x) {
 | |
| 				transform.world._30 = target.loc.x;
 | |
| 				if (raw.use_offset) transform.world._30 += transform.loc.x;
 | |
| 			}
 | |
| 			if (raw.use_y) {
 | |
| 				transform.world._31 = target.loc.y;
 | |
| 				if (raw.use_offset) transform.world._31 += transform.loc.y;
 | |
| 			}
 | |
| 			if (raw.use_z) {
 | |
| 				transform.world._32 = target.loc.z;
 | |
| 				if (raw.use_offset) transform.world._32 += transform.loc.z;
 | |
| 			}
 | |
| 		}
 | |
| 	}
 | |
| }
 |