001: /*
002: * @(#) $Header: /cvs/jai-operators/src/main/ca/forklabs/media/jai/opimage/PipelineRCIF.java,v 1.1 2007/06/07 23:39:19 forklabs Exp $
003: *
004: * Copyright (C) 2007 Forklabs Daniel Léonard
005: *
006: * This program is free software; you can redistribute it and/or
007: * modify it under the terms of the GNU General Public License
008: * as published by the Free Software Foundation; either version 2
009: * of the License, or (at your option) any later version.
010: *
011: * This program is distributed in the hope that it will be useful,
012: * but WITHOUT ANY WARRANTY; without even the implied warranty of
013: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
014: * GNU General Public License for more details.
015: *
016: * You should have received a copy of the GNU General Public License
017: * along with this program; if not, write to the Free Software
018: * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
019: */
020:
021: package ca.forklabs.media.jai.opimage;
022:
023: import java.awt.RenderingHints;
024: import java.awt.image.renderable.ParameterBlock;
025: import java.util.Collection;
026: import javax.media.jai.CollectionImage;
027: import javax.media.jai.CollectionImageFactory;
028: import javax.media.jai.CollectionOp;
029: import javax.media.jai.RenderableCollectionImageFactory;
030: import ca.forklabs.media.jai.SimpleCollectionImage;
031:
032: /**
033: * Class {@code PeriodicShift3DRCIF} is a {@link CollectionImageFactory} and a
034: * {@link RenderableCollectionImageFactory} supporting the
035: * <em>periodicshift3d</em> operation.
036: *
037: * @author <a href="mailto:forklabs at dev.java.net?subject=ca.forklabs.media.jai.opimage.PeriodicShift3DRCIF">Daniel Léonard</a>
038: * @version $Revision: 1.1 $
039: */
040: public class PipelineRCIF implements CollectionImageFactory,
041: RenderableCollectionImageFactory {
042:
043: //---------------------------
044: // Constructor
045: //---------------------------
046:
047: /**
048: * Constructor.
049: */
050: public PipelineRCIF() {
051: // nothing
052: }
053:
054: //---------------------------
055: // Implemented methods from javax.media.jai.CollectionImageFactory
056: //---------------------------
057:
058: /**
059: * Performs the collection pipeline.
060: * @param pb the parameter block.
061: * @param hints optional rendering hints.
062: * @return the result.
063: */
064: @SuppressWarnings("unchecked")
065: public CollectionImage create(ParameterBlock pb,
066: RenderingHints hints) {
067: PipelineUtil.Specialization<Collection<?>> specialization = PipelineUtil.COLLECTION;
068: Collection<?> collection = PipelineUtil.doPipeline(pb, hints,
069: specialization);
070: CollectionImage sink = new SimpleCollectionImage(collection);
071: return sink;
072: }
073:
074: /**
075: * It is impratical to perform the update.
076: * @param old_pb ignored
077: * @param old_hints ignored
078: * @param new_pb ignored
079: * @param new_hints ignored
080: * @param old_image ignored
081: * @param op ignored
082: * @return always {@code null}.
083: */
084: public CollectionImage update(ParameterBlock old_pb,
085: RenderingHints old_hints, ParameterBlock new_pb,
086: RenderingHints new_hints, CollectionImage old_image,
087: CollectionOp op) {
088: // it is impracticable to perform the update
089: CollectionImage new_image = null;
090: return new_image;
091: }
092:
093: //---------------------------
094: // Implemented methods from javax.media.jai.RenderableCollectionImageFactory
095: //---------------------------
096:
097: /**
098: * Performs the renderable collection pipeline.
099: * @param pb the parameter block.
100: * @return the result.
101: */
102: @Override
103: public CollectionImage create(ParameterBlock pb) {
104: RenderingHints hints = null;
105: PipelineUtil.Specialization<Collection<?>> specialization = PipelineUtil.RENDERABLE_COLLECTION;
106: Collection<?> collection = PipelineUtil.doPipeline(pb, hints,
107: specialization);
108: CollectionImage sink = new SimpleCollectionImage(collection);
109: return sink;
110: }
111:
112: }
113:
114: /*
115: * $Log: PipelineRCIF.java,v $
116: * Revision 1.1 2007/06/07 23:39:19 forklabs
117: * Operator pipeline is now on all four modes.
118: *
119: * Revision 1.1 2007/06/05 20:29:59 forklabs
120: * Operator periodicshift3d.
121: *
122: */
|