Exemplo n.º 1
0
		public static IEnumerable fHtmToCenterPoint(SqlInt64 HtmID)
		{
			double x, y, z;
			ArrayList point = new ArrayList();
			HtmTrixel htm = new HtmTrixel();
			char[] name = new char[HtmTrixel.eMaxNameSize];
			double[] v0, v1, v2;
			double norm;
			v0 = new double[3];
			v1 = new double[3];
			v2 = new double[3];
			if (htm.hid2name(name, (long)HtmID) > 1)
			{
				htm.name2Triangle(name, v0, v1, v2);
				x = v0[0] + v1[0] + v2[0];
				y = v0[1] + v1[1] + v2[1];
				z = v0[2] + v1[2] + v2[2];
				norm = x * x + y * y + z * z;
				norm = Math.Sqrt(norm);
				x /= norm;
				y /= norm;
				z /= norm;
				point.Add(new Triple(x, y, z));
			}
			else { /* return empty */ }
			return (IEnumerable)point;
		}
Exemplo n.º 2
0
		public static IEnumerable fHtmToCornerPoints(SqlInt64 HtmID)
		{
			ArrayList point = new ArrayList();
			HtmTrixel htm = new HtmTrixel();
			char[] name = new char[HtmTrixel.eMaxNameSize];
			double[] v0, v1, v2;
			v0 = new double[3];
			v1 = new double[3];
			v2 = new double[3];
			if (htm.hid2name(name, (long)HtmID) > 1)
			{
				htm.name2Triangle(name, v0, v1, v2);
				point.Add(new Triple(v0[0], v0[1], v0[2]));
				point.Add(new Triple(v1[0], v1[1], v1[2]));
				point.Add(new Triple(v2[0], v2[1], v2[2]));
			}
			else { /* return empty */ }
			return (IEnumerable)point;
		}
Exemplo n.º 3
0
		public static SqlString fHtmToString(SqlInt64 HtmID)
		{
			HtmTrixel htm = new HtmTrixel();
			char[] name = new char[HtmTrixel.eMaxNameSize];
			int level = htm.hid2name(name, (long)HtmID);
			if (level < 0)
			{
				return (new SqlString("Invalid HTM Identifier."));
			}
			else
			{
				return (new SqlString(new string(name, 0, level)));
			}
		}