Microsoft SDK for Java

Direct3dRMMeshBuilder Class

Applications use the methods of the Direct3dRMMeshBuilder Class of the com.ms.directX package to interact with mesh objects.

public class Direct3dRMMeshBuilder implements
            IDirect3dRMMeshBuilder
{
  // Methods
  public void addFace(Direct3dRMFace f);
  public void addFaces(int vCount, D3dVector[] v, int nCount,
        D3dVector[] n, int[] cones);
  public void addFacesAsFloats(int vc, float[] ver, int nc, float[]
        norm, int[] cones);
  public void addFrame(Direct3dRMFrame f);
  public void addMesh(Direct3dRMMesh m);
  public void addMeshBuilder(Direct3dRMMeshBuilder mb);
  public int addNormal(float x, float y, float z);
  public int addVertex(float x, float y, float z);
  public Direct3dRMFace createFace();
  public Direct3dRMFaceArray createFaceArray(int vCount,
        float[] vertices, int nCount, float[] normals,
        int[] cones);
  public Direct3dRMMesh createMesh();
  public void generateNormals();
  public void getBox(D3dRMBox retv);
  public int getColorSource();
  public Direct3dRMMeshBuilder getd3drmMeshBuilder();
  public int getFaceCount();
  public void getFacedataSize(int[] f_cnt);
  public Direct3dRMFaceArray getFaces();
  public void getNormalsSize(int[] n_cnt);
  public int getPerspective();
  public int getQuality();
  public void getTextureCoordinates(int idx, float[] u, float[] v);
  public int getVertexColor(int index);
  public int getVertexCount();
  public void getVertices(int[] vc, D3dvector v, int[] nc,
        D3dvector n, int[] fs, int[] fc);
  public int getVerticesSize();
  public void loadFromFileByPos(String filename, int position,
        int flags, ILoadTextureCallback c, IUnknown pUser);
  public void reserveSpace(int v_cnt, int n_cnt, int f_cnt);
  public void save(String fname, int xFormat, int save);
  public void scale(float sx, float sy, float sz);
  public void setColor(int col);
  public void setColorRGB(float red, float green, float blue);
  public void setColorSource(int val);
  public void setMaterial(Direct3dRMMaterial val);
  public void setNormal(int idx, float x, float y, float z);
  public void setPerspective(int persp);
  public void setQuality(int q);
  public void setTexture(Direct3dRMTexture val);
  public void setTextureCoordinates(int idx, float u, float v);
  public void setTextureTopology(int wrap_u, int wrap_v);
  public void setVertex(int idx, float x, float y, float z);
  public void setVertexColor(int idx, int c);
  public void setVertexColorRGB(int idx, float r, float g, float b);
  public void translate(float tx, float ty, float tz);
}

The Direct3dRMMeshBuilder class inherits the following methods from the Direct3dRMObject class:

addDestroyCallback
duplicate
deleteDestroyCallback
getAppData
getClassName
getName
setAppData
setName

The Direct3dRMMeshBuilder object is obtained by calling the createMeshBuilder method.

There are two ways to add faces to a mesh object.
The recommended way is to use the addFaces method.

Example

// Create a mesh builder.
mb = myd3drm.createMeshBuilder();

// Add faces to the mesh.
mb.addFaces(vCount, v, nCount, n, cones);

// Create a material to set for the whole mesh.
material = myd3drm.createMaterial();
mb.setMaterial(material); // This works.

Another possible way is to use the addVertex and addNormal methods, then use createFace to create a face, and add the vertices and normals to it. Currently, this procedure fails.

Example

// Create a mesh builder.
mb = myd3drm.createMeshBuilder();
// Add four vertices.
mb.addVertex(x, y, x); // ...
// Add four normals.
mb.addNormal(x, y, z); // ...

// Create a face from the mesh builder.
d3drmface = mb.createFace();

// Use the Direct3dRMFace.addVertexAndNormalIndexed method
// to add the vertex and normals to the face.
d3drmface.addVertexAndNormalIndexed(index, index); // ...

// Create a material to set for the whole mesh.
material = myd3drm.createMaterial();
mb.setMaterial(material); // This faults.

© 1999 Microsoft Corporation. All rights reserved. Terms of use.