📄 texture2dretained.java
字号:
/* * $RCSfile: Texture2DRetained.java,v $ * * Copyright (c) 2007 Sun Microsystems, Inc. All rights reserved. * * Use is subject to license terms. * * $Revision: 1.5 $ * $Date: 2007/02/09 17:18:26 $ * $State: Exp $ */package javax.media.j3d;import java.util.*;import javax.vecmath.*;/** * Texture2D is a subclass of Texture class. It extends Texture * class by adding a constructor and a mutator method for * setting a 2D texture image. */class Texture2DRetained extends TextureRetained { // Note : There is hardly any HW vendor supports detail Image. // Detail Image operation is simply no-op in 1.5. // currently detail image is only applicable to 2D texture // detail texture info // These members are unused except for public set and get methods. private ImageComponent2DRetained detailImage = null; private int detailTextureMode = Texture2D.DETAIL_MODULATE; private int detailTextureLevel = 2; private int numDetailTextureFuncPts = 0; private float detailTextureFuncPts[] = null; // array of pairs of floats // first value for LOD // second value for the fcn value /** * Set detail texture image */ final void initDetailImage(ImageComponent2D image) { if (image == null) { detailImage = null; } else { detailImage = (ImageComponent2DRetained)image.retained; } } /** * Get detail texture image */ final ImageComponent2D getDetailImage() { if (detailImage != null) { return (ImageComponent2D)detailImage.source; } else { return null; } } /** * Set detail texture mode */ final void initDetailTextureMode(int mode) { detailTextureMode = mode; } /** * Get detail texture mode */ final int getDetailTextureMode() { return detailTextureMode; } /** * Set detail texture level */ final void initDetailTextureLevel(int level) { detailTextureLevel = level; } /** * Get detail texture level */ final int getDetailTextureLevel() { return detailTextureLevel; } /** * Set detail texture function */ final void initDetailTextureFunc(float[] lod, float[] pts) { if (lod == null) { // pts will be null too. detailTextureFuncPts = null; numDetailTextureFuncPts = 0; } else { numDetailTextureFuncPts = lod.length; if ((detailTextureFuncPts == null) || (detailTextureFuncPts.length != lod.length * 2)) { detailTextureFuncPts = new float[lod.length * 2]; } for (int i = 0, j = 0; i < lod.length; i++) { detailTextureFuncPts[j++] = lod[i]; detailTextureFuncPts[j++] = pts[i]; } } } final void initDetailTextureFunc(Point2f[] pts) { if (pts == null) { detailTextureFuncPts = null; numDetailTextureFuncPts = 0; } else { numDetailTextureFuncPts = pts.length; if ((detailTextureFuncPts == null) || (detailTextureFuncPts.length != pts.length * 2)) { detailTextureFuncPts = new float[pts.length * 2]; } for (int i = 0, j = 0; i < pts.length; i++) { detailTextureFuncPts[j++] = pts[i].x; detailTextureFuncPts[j++] = pts[i].y; } } } final void initDetailTextureFunc(float[] pts) { if (pts == null) { detailTextureFuncPts = null; numDetailTextureFuncPts = 0; } else { numDetailTextureFuncPts = pts.length / 2; if ((detailTextureFuncPts == null) || (detailTextureFuncPts.length != pts.length)) { detailTextureFuncPts = new float[pts.length]; } for (int i = 0; i < pts.length; i++) { detailTextureFuncPts[i] = pts[i]; } } } /** * Get number of points in the detail texture LOD function */ final int getDetailTextureFuncPointsCount() { return numDetailTextureFuncPts; } /** * Copies the array of detail texture LOD function points into the * specified arrays */ final void getDetailTextureFunc(float[] lod, float[] pts) { if (detailTextureFuncPts != null) { for (int i = 0, j = 0; i < numDetailTextureFuncPts; i++) { lod[i] = detailTextureFuncPts[j++]; pts[i] = detailTextureFuncPts[j++]; } } } final void getDetailTextureFunc(Point2f[] pts) { if (detailTextureFuncPts != null) { for (int i = 0, j = 0; i < numDetailTextureFuncPts; i++) { pts[i].x = detailTextureFuncPts[j++]; pts[i].y = detailTextureFuncPts[j++]; } } } /** * internal method only -- returns the detail texture LOD function */ final float[] getDetailTextureFunc() { return detailTextureFuncPts; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -