コード例 #1
0
        public Vec3f Normal(int edgeIdx)
        {
            Vec3f d1 = GetEdgeDelta(edgeIdx);
            Vec3f d2 = GetEdgeDelta(Next(edgeIdx));

            Vec3f norm = Vec3f.Cross(d1, d2);

            return(norm.Normalized());
        }
コード例 #2
0
ファイル: Plane.cs プロジェクト: luxgile/Entygine
        public static Vec3f ClosestPointToPoint(float planeDistance, Vec3f planeNormal, Vec3f point)
        {
            float distance;
            Vec3f translationVector;

            distance = -SignedDistanceToPoint(planeDistance, planeNormal, point);

            translationVector = planeNormal.Normalized() * distance;

            return(point + translationVector);
        }
コード例 #3
0
        public Vec3f Normal(int vIdx1, int vIdx2, int vIdx3)
        {
            var v1 = Points[vIdx1];
            var v2 = Points[vIdx2];
            var v3 = Points[vIdx3];

            Vec3f d1 = v2 - v1;
            Vec3f d2 = v3 - v1;

            Vec3f norm = Vec3f.Cross(d1, d2);

            return(norm.Normalized());
        }
コード例 #4
0
 public void SetLightDirection(Vec3f direction)
 {
     SunDirection = -direction.Normalized();
 }
コード例 #5
0
ファイル: SDDeepPlane.cs プロジェクト: nobrn/sd-renderer
 public void SetNormal(Vec3f direction)
 {
     Normal = direction.Normalized();
 }