コード例 #1
0
ファイル: HeGraph3d.cs プロジェクト: GitZHCODE/zCode
 /// <summary>
 ///
 /// </summary>
 private static void Set(V vertex, HeMesh3d.Face face)
 {
     if (!face.IsUnused)
     {
         vertex.Position = face.GetBarycenter(HeMesh3d.Vertex.Accessors.Position);
     }
 }
コード例 #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="face"></param>
        /// <returns></returns>
        public override double Evalutate(HeMesh3d.Face face)
        {
            var p0 = transform.TransformPoint((Vector3)face.GetBarycenter());

            return(Math.Abs(_distanceField.Evaluate(p0)));
            //return _distanceField.Evaluate(p0);
        }
コード例 #3
0
        /// <summary>
        ///
        /// </summary>
        public override double Evalutate(HeMesh3d.Face face)
        {
            var p0 = face.GetBarycenter();
            var p1 = (Vec3d)transform.position;

            return(p0.DistanceTo(p1));
        }
コード例 #4
0
        /// <summary>
        ///
        /// </summary>
        public override double Evalutate(HeMesh3d.Face face)
        {
            var p0 = face.GetBarycenter();
            //var p1 = (Vec3d)transform.position;



            //return p0.DistanceTo(p1);

            var gs = RemapTextureGrayScale(p0.X, p0.Z);



            var gt = Mathf.InverseLerp(0, 1f, (float)gs);
            var ht = Mathf.InverseLerp(_minHeight, _maxHeight, (float)p0.Y);

            double value;

            if (gt == 1 || gt == 0 || ht == 1 || ht == 0)
            {
                value = double.MaxValue;
            }
            else
            {
                value = Mathf.Abs(gt - ht);
            }

            //print(gs+","+gt+','+ht+","+value);

            return(value);
        }
コード例 #5
0
ファイル: TerrainEvaluator.cs プロジェクト: zimhe/Graph
        /// <summary>
        ///
        /// </summary>
        public override double Evalutate(HeMesh3d.Face face)
        {
            var p0 = face.GetBarycenter();

            var th = GetToTerrainDistance((Vector3)p0);

            return(th);
        }
コード例 #6
0
        /// <summary>
        ///
        /// </summary>
        public override double Evalutate(HeMesh3d.Face face)
        {
            var p0 = face.GetBarycenter();


            switch (_type)
            {
            case EvaluateType.FollowTerrain:
                return(GetFollowTerrain((Vector3)p0));

            case EvaluateType.MinimalHeight:
                return(GetMinimalHeight((Vector3)p0));

            case EvaluateType.MaximalHeight:
                return(GetMaximalHeight((Vector3)p0));
            }
            throw new System.NotImplementedException();
        }