OpenBve.CsvB3dObjectParser.ApplyShear C# (CSharp) Method

ApplyShear() private static method

private static ApplyShear ( MeshBuilder Builder, double dx, double dy, double dz, double sx, double sy, double sz, double r ) : void
Builder MeshBuilder
dx double
dy double
dz double
sx double
sy double
sz double
r double
return void
		private static void ApplyShear(MeshBuilder Builder, double dx, double dy, double dz, double sx, double sy, double sz, double r) {
			for (int j = 0; j < Builder.Vertices.Length; j++) {
				double n = r * (dx * Builder.Vertices[j].Coordinates.X + dy * Builder.Vertices[j].Coordinates.Y + dz * Builder.Vertices[j].Coordinates.Z);
				Builder.Vertices[j].Coordinates.X += sx * n;
				Builder.Vertices[j].Coordinates.Y += sy * n;
				Builder.Vertices[j].Coordinates.Z += sz * n;
			}
			for (int j = 0; j < Builder.Faces.Length; j++) {
				for (int k = 0; k < Builder.Faces[j].Vertices.Length; k++) {
					if (Builder.Faces[j].Vertices[k].Normal.X != 0.0f | Builder.Faces[j].Vertices[k].Normal.Y != 0.0f | Builder.Faces[j].Vertices[k].Normal.Z != 0.0f) {
						double nx = (double)Builder.Faces[j].Vertices[k].Normal.X;
						double ny = (double)Builder.Faces[j].Vertices[k].Normal.Y;
						double nz = (double)Builder.Faces[j].Vertices[k].Normal.Z;
						double n = r * (sx * nx + sy * ny + sz * nz);
						nx -= dx * n;
						ny -= dy * n;
						nz -= dz * n;
						World.Normalize(ref nx, ref ny, ref nz);
						Builder.Faces[j].Vertices[k].Normal.X = (float)nx;
						Builder.Faces[j].Vertices[k].Normal.Y = (float)ny;
						Builder.Faces[j].Vertices[k].Normal.Z = (float)nz;
					}
				}
			}
		}
		private static void ApplyShear(ObjectManager.StaticObject Object, double dx, double dy, double dz, double sx, double sy, double sz, double r) {

Same methods

CsvB3dObjectParser::ApplyShear ( ObjectManager Object, double dx, double dy, double dz, double sx, double sy, double sz, double r ) : void