package com.alternativagame.engine3d.skin { import com.alternativagame.engine3d.engine3d; import com.alternativagame.engine3d.material.WireMaterial; import com.alternativagame.engine3d.object.mesh.polygon.WirePolygon3D; import com.alternativagame.type.Vector; use namespace engine3d; public class WireSkin extends PolygonSkin { use namespace engine3d; public function WireSkin(polygon:WirePolygon3D) { super(polygon); } override protected function drawPolygon(bx:int, by:int, cx:int, cy:int):void { var material:WireMaterial = WireMaterial(polygon.material); var wire:WirePolygon3D = WirePolygon3D(polygon); with (graphics) { clear(); lineStyle(material.thickness, material.color.toInt()); if (wire.edgeAB) { lineTo(bx, by); if (wire.edgeBC) { lineTo(cx, cy); if (wire.edgeCA) { lineTo(0, 0); } } else { if (wire.edgeCA) { moveTo(cx, cy); lineTo(0, 0); } } } else { if (wire.edgeBC) { moveTo(bx, by); lineTo(cx, cy); if (wire.edgeCA) { lineTo(0, 0); } } else { if (wire.edgeCA) { lineTo(cx, cy); } } } } } } }