protected void CreateBracketMesh() { // System.err.println( iWidth + " " + iHeight + " " + iDepth ); Attributes kAttributes = new Attributes(); kAttributes.SetPChannels(3); int iVQuantity = 3; VertexBuffer pkVB = new VertexBuffer(kAttributes, iVQuantity); // generate geometry float[] afChannels = pkVB.GetData(); int iIndex = 0; afChannels[iIndex++] = 0; afChannels[iIndex++] = -1.0f; afChannels[iIndex++] = 0.0f; afChannels[iIndex++] = 0; afChannels[iIndex++] = 0.0f; afChannels[iIndex++] = 0.5f; afChannels[iIndex++] = 0; afChannels[iIndex++] = 0.95f; afChannels[iIndex++] = 1.0f; m_kBracketPoints = new Polypoint(pkVB); AlphaState kAlpha = new AlphaState(); kAlpha.BlendEnabled = true; kAlpha.SrcBlend = AlphaState.SrcBlendMode.SBF_ONE; kAlpha.DstBlend = AlphaState.DstBlendMode.DBF_ONE; m_kBracketPoints.AttachGlobalState(kAlpha); m_kBracketPoints.UpdateGS(); m_kBracketPoints.UpdateRS(); }
protected void CreateHistogramMesh(int iWidth, int iHeight) { Attributes kAttributes = new Attributes(); kAttributes.SetPChannels(3); int iVQuantity = iWidth * iHeight; VertexBuffer pkVB = new VertexBuffer(kAttributes, iVQuantity); // generate geometry float fInv0 = 1.0f / (iWidth); float fInv1 = 1.0f / (iHeight); float fU, fV; int i0, i1; float[] afChannels = pkVB.GetData(); int iIndex = 0; for (i1 = 0; i1 < iHeight; i1++) { fV = i1 * fInv1; for (i0 = 0; i0 < iWidth; i0++) { fU = i0 * fInv0; afChannels[iIndex++] = ((2.0f * fU - 1.0f)); afChannels[iIndex++] = ((2.0f * fV - 1.0f)); afChannels[iIndex++] = 0f; // System.err.println( ((2.0f*fU-1.0f)) + " " + ((2.0f*fV-1.0f))); } } m_kHistogramPoints2D = new Polypoint(pkVB); m_kEntropyPoints2D = new Polypoint(pkVB); AlphaState kAlpha = new AlphaState(); kAlpha.BlendEnabled = true; kAlpha.SrcBlend = AlphaState.SrcBlendMode.SBF_ONE; kAlpha.DstBlend = AlphaState.DstBlendMode.DBF_ONE; m_kHistogramPoints2D.AttachGlobalState(kAlpha); m_kHistogramPoints2D.UpdateGS(); m_kHistogramPoints2D.UpdateRS(); m_kEntropyPoints2D.AttachGlobalState(kAlpha); m_kEntropyPoints2D.UpdateGS(); m_kEntropyPoints2D.UpdateRS(); }
protected ResourceIdentifier CreateImageMesh(int iWidth, int iHeight, int iDepth) { // System.err.println( iWidth + " " + iHeight + " " + iDepth ); Attributes kAttributes = new Attributes(); kAttributes.SetPChannels(3); int iVQuantity = iWidth * iHeight * iDepth; VertexBuffer pkVB = new VertexBuffer(kAttributes, iVQuantity); // generate geometry float fInv0 = 1.0f / (iWidth - 1.0f); float fInv1 = 1.0f / (iHeight - 1.0f); float fInv2 = 1.0f / (iDepth); float fU, fV, fW; int i0, i1, i2; float[] afChannels = pkVB.GetData(); int iIndex = 0; for (i2 = 0; i2 < iDepth; i2++) { fW = i2 * fInv2; for (i1 = 0; i1 < iHeight; i1++) { fV = i1 * fInv1; for (i0 = 0; i0 < iWidth; i0++) { fU = i0 * fInv0; afChannels[iIndex++] = ((2.0f * fU - 1.0f)); afChannels[iIndex++] = ((2.0f * fV - 1.0f)); afChannels[iIndex++] = ((2.0f * fW - 1.0f)); } } } m_kImagePointsDual = new Polypoint(pkVB); m_kAlpha = new AlphaState(); m_kAlpha.BlendEnabled = true; m_kAlpha.SrcBlend = AlphaState.SrcBlendMode.SBF_ONE; m_kAlpha.DstBlend = AlphaState.DstBlendMode.DBF_ONE; m_kImagePointsDual.AttachGlobalState(m_kAlpha); m_kImagePointsDual.UpdateGS(); m_kImagePointsDual.UpdateRS(); return m_pkRenderer.LoadVBuffer(pkVB.GetAttributes(), pkVB.GetAttributes(), pkVB); }