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;
 | 
						|
			}
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 |