001: /*
002: * @(#) $Header: /cvs/jai-operators/src/main/ca/forklabs/media/jai/opimage/ImageFunction3DCIF.java,v 1.1 2007/07/05 18:30:37 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 javax.media.jai.CollectionImage;
026: import javax.media.jai.CollectionImageFactory;
027: import javax.media.jai.CollectionOp;
028: import ca.forklabs.media.jai.ImageFunction3D;
029: import ca.forklabs.media.jai.operator.ImageFunction3DDescriptor;
030:
031: /**
032: * Class {@code ImageFunction3DCIF} is a {@link CollectionImageFactory}
033: * supporting the <em>imagefunction3d</em> operation.
034: *
035: * @author <a href="mailto:forklabs at dev.java.net?subject=ca.forklabs.media.jai.opimage.ImageFunction3DCIF">Daniel Léonard</a>
036: * @version $Revision: 1.1 $
037: */
038: public class ImageFunction3DCIF implements CollectionImageFactory {
039:
040: //---------------------------
041: // Constructor
042: //---------------------------
043:
044: /**
045: * Constructor.
046: */
047: public ImageFunction3DCIF() {
048: // nothing
049: }
050:
051: //---------------------------
052: // Instance methods
053: //---------------------------
054:
055: /**
056: * Gets the function parameter from the parameter block.
057: * @param pb the parameter block.
058: * @return the function parameter.
059: */
060: protected ImageFunction3D getFunction(ParameterBlock pb) {
061: int index = ImageFunction3DDescriptor.FUNCTION_PARAMETER_INDEX;
062: ImageFunction3D function = (ImageFunction3D) pb
063: .getObjectParameter(index);
064: return function;
065: }
066:
067: /**
068: * Gets the width parameter from the parameter block.
069: * @param pb the parameter block.
070: * @return the width parameter.
071: */
072: protected int getWidth(ParameterBlock pb) {
073: int index = ImageFunction3DDescriptor.WIDTH_PARAMETER_INDEX;
074: int width = pb.getIntParameter(index);
075: return width;
076: }
077:
078: /**
079: * Gets the height parameter from the parameter block.
080: * @param pb the parameter block.
081: * @return the height parameter.
082: */
083: protected int getHeight(ParameterBlock pb) {
084: int index = ImageFunction3DDescriptor.HEIGHT_PARAMETER_INDEX;
085: int width = pb.getIntParameter(index);
086: return width;
087: }
088:
089: /**
090: * Gets the depth parameter from the parameter block.
091: * @param pb the parameter block.
092: * @return the depth parameter.
093: */
094: protected int getDepth(ParameterBlock pb) {
095: int index = ImageFunction3DDescriptor.DEPTH_PARAMETER_INDEX;
096: int width = pb.getIntParameter(index);
097: return width;
098: }
099:
100: //---------------------------
101: // Implemented methods from javax.media.jai.CollectionImageFactory
102: //---------------------------
103:
104: /**
105: * Creates a {@code CollectionImage} that represents the result of applying
106: * the requested operation once to each image in the collection.
107: * @param pb the parameter block.
108: * @param hints the rendering hints.
109: * @return the collection image containing the results.
110: */
111: @SuppressWarnings({"unchecked","boxing","nls"})
112: public CollectionImage create(ParameterBlock pb,
113: RenderingHints hints) {
114: ImageFunction3D function = this .getFunction(pb);
115: int width = this .getWidth(pb);
116: int height = this .getHeight(pb);
117: int depth = this .getDepth(pb);
118:
119: CollectionImage collection_image = new ImageFunction3DOpImage(
120: function, width, height, depth, hints);
121: return collection_image;
122: }
123:
124: /**
125: * It is impratical to perform the update.
126: * @param old_pb ignored
127: * @param old_hints ignored
128: * @param new_pb ignored
129: * @param new_hints ignored
130: * @param old_image ignored
131: * @param op ignored
132: * @return always {@code null}.
133: */
134: public CollectionImage update(ParameterBlock old_pb,
135: RenderingHints old_hints, ParameterBlock new_pb,
136: RenderingHints new_hints, CollectionImage old_image,
137: CollectionOp op) {
138: // it is impracticable to perform the update
139: CollectionImage new_image = null;
140: return new_image;
141: }
142:
143: }
144:
145: /*
146: * $Log: ImageFunction3DCIF.java,v $
147: * Revision 1.1 2007/07/05 18:30:37 forklabs
148: * Operator imagefunction3d.
149: *
150: */
|