public Ob3ModelData BuildRscModel()
        {
            var model = new Ob3ModelData();
            var vert  = new List <Vector3>();
            var faces = new List <Ob3Face>();

            model.FaceCount     = _faceCnt;
            model.FaceVertCount = _faceVertCnt;

            for (int l = 0; l < _vertCnt; l++)
            {
                vert.Add(new Vector3(_vertX[l], _vertY[l], _vertZ[l]));
            }
            for (int f = 0; f < _faceCnt; f++)
            {
                var c = Color.green;                // Color.FromNonPremultiplied(255,0,255,255);

// #warning transparent color instead of green for missing vertex colors.
                // c = new Color(0, 0, 0, 0);

                int textureId = -1;
                if (_textureFront[f] < 0)
                {
                    int texture = _textureFront[f];
                    c         = Utils.GetColor(texture);
                    textureId = texture;
                }
                if (_textureBack[f] < 0)
                {
                    int texture = _textureBack[f];
                    c         = Utils.GetColor(texture);
                    textureId = texture;
                }
                if (_textureFront[f] > 0)
                {
                    textureId = _textureFront[f] + 1;
                }
                if (_textureBack[f] > 0)
                {
                    textureId = _textureBack[f] + 1;
                }
                if (_textureBack[f] < 0 && (!(_textureFront[f] < 0)))
                {
                    textureId = _textureBack[f];
                }
                if (_textureBack[f] > 0 && (!(_textureFront[f] > 0)))
                {
                    textureId = _textureBack[f];
                }
                var tester = new int[_faceVertCnt[f]];
                for (int i3 = 0; i3 < _faceVertCnt[f]; i3++)
                {
                    tester[i3] = FaceVerts[f][i3];
                }
                //if (textureID == -1)
                //{

                //}
                //else
                //{
                //	faces.Add(new Ob3Face(textureID, tester));
                //}
                //if (textureID < 0 && c == Color.Transparent)
                //{
                //	var t1 = texture_back[f];
                //	var t2 = texture_front[f];
                //	c = Color.Red;
                //} //textureID = -1;
                faces.Add(new Ob3Face(textureId, c, tester));
            }
            model.setVertices(vert);
            model.setFaces(faces);
            return(model);
        }
Example #2
0
		public Ob3ModelData BuildRscModel()
		{
			var model = new Ob3ModelData();
			var vert = new List<Vector3>();
			var faces = new List<Ob3Face>();

			model.FaceCount = _faceCnt;
			model.FaceVertCount = _faceVertCnt;

			for (int l = 0; l < _vertCnt; l++)
			{
				vert.Add(new Vector3(_vertX[l], _vertY[l], _vertZ[l]));
			}
			for (int f = 0; f < _faceCnt; f++)
			{
				var c = Color.green;// Color.FromNonPremultiplied(255,0,255,255);

// #warning transparent color instead of green for missing vertex colors.
				// c = new Color(0, 0, 0, 0);

				int textureId = -1;
				if (_textureFront[f] < 0)
				{
					int texture = _textureFront[f];
					c = Utils.GetColor(texture);
					textureId = texture;
				}
				if (_textureBack[f] < 0)
				{
					int texture = _textureBack[f];
					c = Utils.GetColor(texture);
					textureId = texture;
				}
				if (_textureFront[f] > 0)
				{
					textureId = _textureFront[f] + 1;

				}
				if (_textureBack[f] > 0)
				{
					textureId = _textureBack[f] + 1;
				}
				if (_textureBack[f] < 0 && (!(_textureFront[f] < 0)))
				{
					textureId = _textureBack[f];
				}
				if (_textureBack[f] > 0 && (!(_textureFront[f] > 0)))
				{
					textureId = _textureBack[f];
				}
				var tester = new int[_faceVertCnt[f]];
				for (int i3 = 0; i3 < _faceVertCnt[f]; i3++)
				{
					tester[i3] = FaceVerts[f][i3];
				}
				//if (textureID == -1)
				//{

				//}
				//else
				//{
				//	faces.Add(new Ob3Face(textureID, tester));
				//}
				//if (textureID < 0 && c == Color.Transparent)
				//{
				//	var t1 = texture_back[f];
				//	var t2 = texture_front[f];
				//	c = Color.Red;
				//} //textureID = -1;
				faces.Add(new Ob3Face(textureId, c, tester));
			}
			model.setVertices(vert);
			model.setFaces(faces);
			return model;
		}