/// <summary> /// get a bounding box renderer. /// </summary> /// <param name="lengths">bounding box's length at x, y, z direction.</param> /// <returns></returns> public static BoundingBoxRenderer Create(vec3 lengths) { var model = new BoundingBoxModel(lengths); var shaderCodes = new ShaderCode[2]; shaderCodes[0] = new ShaderCode(ManifestResourceLoader.LoadTextFile( @"Resources\BoundingBox.vert"), ShaderType.VertexShader); shaderCodes[1] = new ShaderCode(ManifestResourceLoader.LoadTextFile( @"Resources\BoundingBox.frag"), ShaderType.FragmentShader); var map = new AttributeMap(); map.Add("in_Position", BoundingBoxModel.strPosition); var result = new BoundingBoxRenderer(model, shaderCodes, map, new PolygonModeState(PolygonMode.Line), new PolygonOffsetFillState()); result.ModelSize = lengths; return(result); }
/// <summary> /// get a bounding box renderer. /// </summary> /// <param name="lengths">bounding box's length at x, y, z direction.</param> /// <param name="originalWorldPosition"></param> /// <returns></returns> public static BoundingBoxRenderer Create(vec3 lengths, vec3 originalWorldPosition = new vec3()) { var bufferable = new BoundingBoxModel(lengths); var shaderCodes = new ShaderCode[2]; shaderCodes[0] = new ShaderCode(ManifestResourceLoader.LoadTextFile( @"Resources\BoundingBox.vert"), ShaderType.VertexShader); shaderCodes[1] = new ShaderCode(ManifestResourceLoader.LoadTextFile( @"Resources\BoundingBox.frag"), ShaderType.FragmentShader); var map = new PropertyNameMap(); map.Add("in_Position", BoundingBoxModel.strPosition); var result = new BoundingBoxRenderer(bufferable, shaderCodes, map, new PolygonModeSwitch(PolygonModes.Lines), new PolygonOffsetFillSwitch()); result.halfLengths = new vec4(lengths / 2, 1.0f); result.OriginalWorldPosition = originalWorldPosition; result.ModelMatrix = glm.translate(mat4.identity(), originalWorldPosition); return(result); }
/// <summary> /// get a bounding box renderer. /// </summary> /// <param name="lengths">bounding box's length at x, y, z direction.</param> /// <returns></returns> public static BoundingBoxRenderer Create(vec3 lengths) { var model = new BoundingBoxModel(lengths); var shaderCodes = new ShaderCode[2]; shaderCodes[0] = new ShaderCode(ManifestResourceLoader.LoadTextFile( @"Resources\BoundingBox.vert"), ShaderType.VertexShader); shaderCodes[1] = new ShaderCode(ManifestResourceLoader.LoadTextFile( @"Resources\BoundingBox.frag"), ShaderType.FragmentShader); var map = new AttributeMap(); map.Add("in_Position", BoundingBoxModel.strPosition); var result = new BoundingBoxRenderer(model, shaderCodes, map, new PolygonModeState(PolygonMode.Line), new PolygonOffsetFillState()); result.ModelSize = lengths; return result; }