64 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C#
		
	
	
	
using System.Collections;
 | 
						|
using System.Collections.Generic;
 | 
						|
using Godot;
 | 
						|
using System;
 | 
						|
 | 
						|
using System.Threading.Tasks;
 | 
						|
using System.Linq;
 | 
						|
 | 
						|
namespace Rokojori
 | 
						|
{
 | 
						|
  [Tool]
 | 
						|
  [GlobalClass]
 | 
						|
  public partial class ManualAbsoluteSubDivider:MeshAxisSubDivider
 | 
						|
  {
 | 
						|
    public enum SourceAxis
 | 
						|
    {
 | 
						|
      X,
 | 
						|
      Y,
 | 
						|
      Z
 | 
						|
    } 
 | 
						|
 | 
						|
    [Export]
 | 
						|
    public SourceAxis sourceAxis;
 | 
						|
 | 
						|
    [Export]  
 | 
						|
    public float[] subDivisions;
 | 
						|
 | 
						|
    public override List<float> GetSubDivisions( Transform3D quadTransform, Axis axis )
 | 
						|
    {      
 | 
						|
      var min = GetWorldMin( quadTransform );
 | 
						|
      var max = GetWorldMax( quadTransform );
 | 
						|
 | 
						|
      var minV = min.X;
 | 
						|
      var maxV = max.X;
 | 
						|
 | 
						|
      if ( SourceAxis.Y == sourceAxis )
 | 
						|
      {
 | 
						|
        minV = min.Y;
 | 
						|
        maxV = max.Y;
 | 
						|
      }
 | 
						|
      if ( SourceAxis.Z == sourceAxis )
 | 
						|
      {
 | 
						|
        minV = min.Z;
 | 
						|
        maxV = max.Z;
 | 
						|
      }
 | 
						|
 | 
						|
      var list = new List<float>();
 | 
						|
 | 
						|
      for ( int i = 0; i < subDivisions.Length; i++ )
 | 
						|
      {
 | 
						|
        var mapped = MathX.Normalize( list[ i ], minV, maxV ); 
 | 
						|
 | 
						|
        if ( mapped <= 0 || mapped >= 1 )
 | 
						|
        {
 | 
						|
          continue;
 | 
						|
        }
 | 
						|
 | 
						|
        list.Add( mapped );
 | 
						|
      }
 | 
						|
 | 
						|
      return list;
 | 
						|
    } 
 | 
						|
  }
 | 
						|
} |