package org.squidy.nodes.optitrack.multicursor; import java.util.ArrayList; import java.util.List; import java.awt.Point; import java.awt.event.KeyEvent; import javax.swing.KeyStroke; import javax.swing.text.JTextComponent.KeyBinding; import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlType; import org.squidy.manager.controls.CheckBox; import org.squidy.manager.controls.ComboBox; import org.squidy.manager.controls.TextField; import org.squidy.manager.data.DataConstant; import org.squidy.manager.data.IData; import org.squidy.manager.data.IDataContainer; import org.squidy.manager.data.Processor; import org.squidy.manager.data.Property; import org.squidy.manager.data.impl.DataDigital; import org.squidy.manager.data.impl.DataPosition2D; import org.squidy.manager.data.impl.DataPosition3D; import org.squidy.manager.data.impl.DataPosition6D; import org.squidy.manager.model.AbstractNode; import org.squidy.manager.util.DataUtility; import org.squidy.nodes.Keyboard; import org.squidy.nodes.optitrack.RigidBody.RBIDDomainProvider; import org.squidy.nodes.optitrack.utils.TrackingConstant; import org.squidy.nodes.optitrack.utils.TrackingUtility; /*<code>Merger2D</code>. * * <pre> * Date: Jan 29 2010 * Time: 1:35:05 AM * </pre> * * @author Simo Faeh, < href="mailto:simon.faeh@uni-konstanz.de">Simon.Faeh@uni-konstanz.de</>, University f Konstanz * * @version $Id: OptitrackPrint.java 373 2010-08-08 12:06:21Z raedle $ */ @XmlType(name = "Merger2D") @Processor( name = "Merger2D", icon = "/org/squidy/nodes/image/48x48/merge2D.png", description = "Merges DataPosition2D from different Pipelines to a single DataContainer", types = { Processor.Type.FILTER }, tags = { "merger", "dataposition2d" } ) public class Merger2D extends AbstractNode { private int currentGroupID = 0; private List<DataPosition2D> d2dList; public void process(DataPosition2D d2d) { if (d2dList == null) d2dList = new ArrayList<DataPosition2D>(); if (d2d.hasAttribute(DataConstant.GROUP_ID)) { if (TrackingUtility.getAttributesBoolean(d2d, TrackingConstant.MERGEDIRECTLY) == true) { d2dList.add(d2d); publish(d2dList); d2dList = new ArrayList<DataPosition2D>(); } else { if (Integer.valueOf(d2d.getAttribute(DataConstant.GROUP_ID).toString()) != currentGroupID) { currentGroupID = Integer.valueOf(d2d.getAttribute(DataConstant.GROUP_ID).toString()); publish(d2dList); d2dList = new ArrayList<DataPosition2D>(); d2dList.add(d2d); }else { d2dList.add(d2d); } } } } }