Ejemplo n.º 1
0
        public RoundedFrustumRangeBufferData ToFrustumBuffer()
        {
            var RoundedFrustumRangeBufferData = new RoundedFrustumRangeBufferData();

            var frustumPointsWorldPositions = RoundedFrustumRangeObjectRenderingDataProvider.GetFrustumWorldPosition();

            RoundedFrustumRangeBufferData.FC1     = frustumPointsWorldPositions.FC1;
            RoundedFrustumRangeBufferData.FC2     = frustumPointsWorldPositions.FC2;
            RoundedFrustumRangeBufferData.FC3     = frustumPointsWorldPositions.FC3;
            RoundedFrustumRangeBufferData.FC4     = frustumPointsWorldPositions.FC4;
            RoundedFrustumRangeBufferData.FC5     = frustumPointsWorldPositions.FC5;
            RoundedFrustumRangeBufferData.normal1 = frustumPointsWorldPositions.normal1;
            RoundedFrustumRangeBufferData.normal2 = frustumPointsWorldPositions.normal2;
            RoundedFrustumRangeBufferData.normal3 = frustumPointsWorldPositions.normal3;
            RoundedFrustumRangeBufferData.normal4 = frustumPointsWorldPositions.normal4;
            RoundedFrustumRangeBufferData.normal5 = frustumPointsWorldPositions.normal5;
            RoundedFrustumRangeBufferData.normal6 = frustumPointsWorldPositions.normal6;


            RoundedFrustumRangeBufferData.BoundingBoxMax = RoundedFrustumRangeObjectRenderingDataProvider.BoundingCollider.bounds.max;
            RoundedFrustumRangeBufferData.BoundingBoxMin = RoundedFrustumRangeObjectRenderingDataProvider.BoundingCollider.bounds.min;

            RoundedFrustumRangeBufferData.RangeRadius         = RoundedFrustumRangeObjectRenderingDataProvider.Frustum.GetFrustumFaceRadius();
            RoundedFrustumRangeBufferData.CenterWorldPosition = RoundedFrustumRangeObjectRenderingDataProvider.BoundingCollider.transform.position;

            if (rangeTypeInherentConfigurationData.RangeColorProvider != null)
            {
                RoundedFrustumRangeBufferData.AuraColor = rangeTypeInherentConfigurationData.RangeColorProvider.Invoke();
            }
            else
            {
                RoundedFrustumRangeBufferData.AuraColor = rangeTypeInherentConfigurationData.RangeBaseColor;
            }

            if (RoundedFrustumRangeObjectRenderingDataProvider.IsTakingObstacleIntoConsideration())
            {
                RoundedFrustumRangeBufferData.OccludedByFrustums = 1;
            }
            else
            {
                RoundedFrustumRangeBufferData.OccludedByFrustums = 0;
            }

            return(RoundedFrustumRangeBufferData);
        }
Ejemplo n.º 2
0
 public RoundedFrustumRenderData(RoundedFrustumGroundEffectManager roundedFrustumGroundEffectManager) : base()
 {
     GroundEffectManager       = roundedFrustumGroundEffectManager;
     roundedFrustumRangeBuffer = new DynamicComputeBufferManager <RoundedFrustumRangeBufferData>(RoundedFrustumRangeBufferData.GetByteSize(), "RoundedFrustumRangeBuffer", string.Empty, matPro);
 }