private void FillFromPreset(RayProperties source) { if (!IsValue(fieldRayDimensionsX.text)) { preset.properties.ray.dimensions.x = source.dimensions.x; } if (!IsValue(fieldRayDimensionsY.text)) { preset.properties.ray.dimensions.y = source.dimensions.y; } if (!IsValue(fieldRayOffsetX.text)) { preset.properties.ray.offset.x = source.offset.x; } if (!IsValue(fieldRayOffsetY.text)) { preset.properties.ray.offset.y = source.offset.y; } if (!Enum.IsDefined(typeof(RayProperties.Profile), preset.properties.ray.profile)) { preset.properties.ray.profile = source.profile; } preset.properties.ray.intensity = source.intensity; // TODO: add input field "ray intensity". RefreshRayPropertiesUI(); }
public Properties() { absorption = AbsorptionProperties.Initialize(); sample = SampleProperties.Initialize(); ray = RayProperties.Initialize(); detector = DetectorProperties.Initialize(); angle = AngleProperties.Initialize(); }
public Properties(AbsorptionProperties absorptionProperties, AngleProperties angleProperties, DetectorProperties detectorProperties, RayProperties rayProperties, SampleProperties sampleProperties) { absorption = absorptionProperties; sample = sampleProperties; ray = rayProperties; detector = detectorProperties; angle = angleProperties; }
/// <summary> /// Creating a Ray with given Properties. /// </summary> /// <param name="transform">For position and Direction</param> /// <param name="rayProps">Ray Properties</param> /// <param name="hitInfo">RaycastHit</param> /// <param name="layerMask">Layer</param> /// <returns>True if it something.</returns> public static bool Raycast(Transform transform, RayProperties rayProps, out RaycastHit hitInfo, LayerMask layerMask) { var rot = Quaternion.Euler(0, 0, rayProps.Angle) * rayProps.GetDirection(transform); var origin = transform.position + transform.up * rayProps.Offset.y + transform.right * rayProps.Offset.x; var ray = new Ray(origin, rayProps.GetDirection(transform) + rot); if (rayProps.ShowDebugLine) { Debug.DrawRay(ray.origin, ray.direction * rayProps.Length, Color.red); } return(Physics.Raycast(ray, out hitInfo, rayProps.Length, layerMask)); }