Question

This is the line of code I am having trouble converting:

Vector3 n1 = m.normals.get((int) face.normal.X - 1);

I am not sure what this translates to in c# as I have tried quite a few things. I think it may also be due to a problem with my lists:

class Model
{
    public List<Vector3> vertices = new List<Vector3>();
    public List<Vector3> normals = new List<Vector3>();
    public List<Face> faces = new List<Face>();

}

They were supposed to be:

class Model
{
    public List<Vector3> vertices = new ArrayList<Vector3>();
    public List<Vector3> normals = new ArrayList<Vector3>();
    public List<Face> faces = new ArrayList<Face>();

}

I dont know what ListArray translates to in c# either.

Any help would be greatly appreciated :)

Was it helpful?

Solution

Java               C#
------------    --------
List<T>      is IList<T>   // Interface
ArrayList<T> is List<T>    // Class implementing the interface

You can translate your code like this:

class Model
{
    public IList<Vector3> vertices = new List<Vector3>();
    public IList<Vector3> normals = new List<Vector3>();
    public IList<Face> faces = new List<Face>();
}

Java's get becomes C#'s indexer, so

Vector3 n1 = m.normals.get((int) face.normal.X - 1);

becomes

Vector3 n1 = m.normals[(int)face.normal.X - 1];
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top