<?xml version="1.0"?>
<doc>
    <assembly>
        <name>package.facepunch.libsdf</name>
    </assembly>
    <members>
        <member name="T:Sandbox.Sdf.ISdf2D">
            <summary>
            Base interface for shapes that can be added to or subtracted from a <see cref="T:Sandbox.Sdf.Sdf2DWorld"/>.
            </summary>
        </member>
        <member name="P:Sandbox.Sdf.ISdf2D.Bounds">
            <summary>
            Axis aligned bounds that fully encloses the surface of this shape.
            </summary>
        </member>
        <member name="P:Sandbox.Sdf.ISdf2D.Item(Vector2)">
            <summary>
            Find the signed distance of a point from the surface of this shape.
            Positive values are outside, negative are inside, and 0 is exactly on the surface.
            </summary>
            <param name="pos">Position to sample at</param>
            <returns>A signed distance from the surface of this shape</returns>
        </member>
        <member name="T:Sandbox.Sdf.Sdf2DExtensions">
            <summary>
            Some extension methods for <see cref="T:Sandbox.Sdf.ISdf2D"/>.
            </summary>
        </member>
        <member name="M:Sandbox.Sdf.Sdf2DExtensions.Translate``1(``0,Vector2)">
            <summary>
            Moves the given SDF by the specified offset.
            </summary>
            <typeparam name="T">SDF type</typeparam>
            <param name="sdf">SDF to translate</param>
            <param name="offset">Offset to translate by</param>
            <returns>A translated version of <paramref name="sdf"/></returns>
        </member>
        <member name="M:Sandbox.Sdf.Sdf2DExtensions.Transform``1(``0,Sandbox.Sdf.Transform2D)">
            <summary>
            Scales, rotates, and translates the given SDF.
            </summary>
            <typeparam name="T">SDF type</typeparam>
            <param name="sdf">SDF to transform</param>
            <param name="transform">Transformation to apply</param>
            <returns>A transformed version of <paramref name="sdf"/></returns>
        </member>
        <member name="M:Sandbox.Sdf.Sdf2DExtensions.Transform``1(``0,System.Nullable{Vector2},System.Nullable{Sandbox.Sdf.Rotation2D},System.Single)">
            <summary>
            Scales, rotates, and translates the given SDF.
            </summary>
            <typeparam name="T">SDF type</typeparam>
            <param name="sdf">SDF to transform</param>
            <param name="translation">Offset to translate by</param>
            <param name="rotation">Rotation to apply</param>
            <param name="scale">Scale multiplier to apply</param>
            <returns>A transformed version of <paramref name="sdf"/></returns>
        </member>
        <member name="M:Sandbox.Sdf.Sdf2DExtensions.Expand``1(``0,System.Single)">
            <summary>
            Expands the surface of the given SDF by the specified margin.
            </summary>
            <typeparam name="T">SDF type</typeparam>
            <param name="sdf">SDF to expand</param>
            <param name="margin">Distance to expand by</param>
            <returns>An expanded version of <paramref name="sdf"/></returns>
        </member>
        <member name="T:Sandbox.Sdf.RectSdf">
            <summary>
            Describes an axis-aligned rectangle with rounded corners.
            </summary>
            <param name="Min">Position of the corner with smallest X and Y values</param>
            <param name="Max">Position of the corner with largest X and Y values</param>
            <param name="CornerRadius">Controls the roundness of corners, or 0 for (approximately) sharp corners</param>
        </member>
        <member name="M:Sandbox.Sdf.RectSdf.#ctor(Vector2,Vector2,System.Single)">
            <summary>
            Describes an axis-aligned rectangle with rounded corners.
            </summary>
            <param name="Min">Position of the corner with smallest X and Y values</param>
            <param name="Max">Position of the corner with largest X and Y values</param>
            <param name="CornerRadius">Controls the roundness of corners, or 0 for (approximately) sharp corners</param>
        </member>
        <member name="P:Sandbox.Sdf.RectSdf.Min">
            <summary>Position of the corner with smallest X and Y values</summary>
        </member>
        <member name="P:Sandbox.Sdf.RectSdf.Max">
            <summary>Position of the corner with largest X and Y values</summary>
        </member>
        <member name="P:Sandbox.Sdf.RectSdf.CornerRadius">
            <summary>Controls the roundness of corners, or 0 for (approximately) sharp corners</summary>
        </member>
        <member name="M:Sandbox.Sdf.RectSdf.#ctor(Sandbox.Rect,System.Single)">
            <summary>
            Describes an axis-aligned rectangle with rounded corners.
            </summary>
            <param name="rect">Size and position of the box</param>
            <param name="cornerRadius">Controls the roundness of corners, or 0 for (approximately) sharp corners</param>
        </member>
        <member name="P:Sandbox.Sdf.RectSdf.Bounds">
            <inheritdoc />
        </member>
        <member name="P:Sandbox.Sdf.RectSdf.Item(Vector2)">
            <inheritdoc />
        </member>
        <member name="T:Sandbox.Sdf.CircleSdf">
            <summary>
            Describes a circle with a position and radius.
            </summary>
            <param name="Center">Position of the center of the circle</param>
            <param name="Radius">Distance from the center to the edge of the circle</param>
        </member>
        <member name="M:Sandbox.Sdf.CircleSdf.#ctor(Vector2,System.Single)">
            <summary>
            Describes a circle with a position and radius.
            </summary>
            <param name="Center">Position of the center of the circle</param>
            <param name="Radius">Distance from the center to the edge of the circle</param>
        </member>
        <member name="P:Sandbox.Sdf.CircleSdf.Center">
            <summary>Position of the center of the circle</summary>
        </member>
        <member name="P:Sandbox.Sdf.CircleSdf.Radius">
            <summary>Distance from the center to the edge of the circle</summary>
        </member>
        <member name="P:Sandbox.Sdf.CircleSdf.Bounds">
            <inheritdoc />
        </member>
        <member name="P:Sandbox.Sdf.CircleSdf.Item(Vector2)">
            <inheritdoc />
        </member>
        <member name="T:Sandbox.Sdf.LineSdf">
            <summary>
            Describes a line between two points with rounded ends of a given radius.
            </summary>
            <param name="PointA">Start point of the line</param>
            <param name="PointB">End point of the line</param>
            <param name="Radius">Radius of the end caps, and half the width of the line</param>
            <param name="Along">
            Internal helper vector for optimization.
            Please use the other constructor instead of specifying this yourself.
            </param>
        </member>
        <member name="M:Sandbox.Sdf.LineSdf.#ctor(Vector2,Vector2,System.Single,Vector2)">
            <summary>
            Describes a line between two points with rounded ends of a given radius.
            </summary>
            <param name="PointA">Start point of the line</param>
            <param name="PointB">End point of the line</param>
            <param name="Radius">Radius of the end caps, and half the width of the line</param>
            <param name="Along">
            Internal helper vector for optimization.
            Please use the other constructor instead of specifying this yourself.
            </param>
        </member>
        <member name="P:Sandbox.Sdf.LineSdf.PointA">
            <summary>Start point of the line</summary>
        </member>
        <member name="P:Sandbox.Sdf.LineSdf.PointB">
            <summary>End point of the line</summary>
        </member>
        <member name="P:Sandbox.Sdf.LineSdf.Radius">
            <summary>Radius of the end caps, and half the width of the line</summary>
        </member>
        <member name="P:Sandbox.Sdf.LineSdf.Along">
            <summary>
            Internal helper vector for optimization.
            Please use the other constructor instead of specifying this yourself.
            </summary>
        </member>
        <member name="M:Sandbox.Sdf.LineSdf.#ctor(Vector2,Vector2,System.Single)">
            <summary>
            Describes a line between two points with rounded ends of a given radius.
            </summary>
            <param name="pointA">Start point of the line</param>
            <param name="pointB">End point of the line</param>
            <param name="radius">Radius of the end caps, and half the width of the line</param>
        </member>
        <member name="P:Sandbox.Sdf.LineSdf.Bounds">
            <inheritdoc />
        </member>
        <member name="P:Sandbox.Sdf.LineSdf.Item(Vector2)">
            <inheritdoc />
        </member>
        <member name="T:Sandbox.Sdf.ColorChannel">
            <summary>
            RGBA pixel color channel.
            </summary>
        </member>
        <member name="F:Sandbox.Sdf.ColorChannel.R">
            <summary>
            Red component.
            </summary>
        </member>
        <member name="F:Sandbox.Sdf.ColorChannel.G">
            <summary>
            Green component.
            </summary>
        </member>
        <member name="F:Sandbox.Sdf.ColorChannel.B">
            <summary>
            Blue component.
            </summary>
        </member>
        <member name="F:Sandbox.Sdf.ColorChannel.A">
            <summary>
            Alpha component.
            </summary>
        </member>
        <member name="T:Sandbox.Sdf.TextureSdf">
            <summary>
            A SDF loaded from a <see cref="T:Sandbox.Texture"/>.
            </summary>
        </member>
        <member name="M:Sandbox.Sdf.TextureSdf.#ctor(Sandbox.Texture,System.Int32,System.Single,System.Nullable{Vector2},Sandbox.Sdf.ColorChannel,System.Boolean)">
            <summary>
            A SDF loaded from a color channel from a <see cref="T:Sandbox.Texture"/>.
            By default, bright values represent the exterior, and light values represent the interior.
            </summary>
            <param name="texture">Texture to read from</param>
            <param name="gradientWidthPixels">Distance, in pixels, between the lightest and darkest values of gradients in <paramref name="texture"/></param>
            <param name="worldWidth">The desired width of the resulting SDF. The height will be determined using <paramref name="texture"/>'s aspect ratio.</param>
            <param name="pivot">
            Relative position of the origin in this SDF. This is also the point that the SDF will rotate around.
            (0, 0) is the bottom-left, (1, 1) is the top-right, and therefore (0.5, 0.5) is the center (default).
            </param>
            <param name="channel">Color channel to read from</param>
            <param name="invert">If false (default), bright values are external. If true, bright values are internal.</param>
        </member>
        <member name="P:Sandbox.Sdf.TextureSdf.Bounds">
            <inheritdoc />
        </member>
        <member name="P:Sandbox.Sdf.TextureSdf.Item(Vector2)">
            <inheritdoc />
        </member>
        <member name="T:Sandbox.Sdf.TransformedSdf2D`1">
            <summary>
            Helper struct returned by <see cref="M:Sandbox.Sdf.Sdf2DExtensions.Transform``1(``0,Sandbox.Sdf.Transform2D)"/>
            </summary>
        </member>
        <member name="M:Sandbox.Sdf.TransformedSdf2D`1.#ctor(`0,Sandbox.Sdf.Transform2D,Sandbox.Rect)">
            <summary>
            Helper struct returned by <see cref="M:Sandbox.Sdf.Sdf2DExtensions.Transform``1(``0,Sandbox.Sdf.Transform2D)"/>
            </summary>
        </member>
        <member name="M:Sandbox.Sdf.TransformedSdf2D`1.#ctor(`0,Sandbox.Sdf.Transform2D)">
            <summary>
            Helper struct returned by <see cref="M:Sandbox.Sdf.Sdf2DExtensions.Transform``1(``0,Sandbox.Sdf.Transform2D)"/>
            </summary>
        </member>
        <member name="P:Sandbox.Sdf.TransformedSdf2D`1.Item(Vector2)">
            <inheritdoc />
        </member>
        <member name="T:Sandbox.Sdf.TranslatedSdf2D`1">
            <summary>
            Helper struct returned by <see cref="M:Sandbox.Sdf.Sdf2DExtensions.Translate``1(``0,Vector2)"/>
            </summary>
        </member>
        <member name="M:Sandbox.Sdf.TranslatedSdf2D`1.#ctor(`0,Vector2)">
            <summary>
            Helper struct returned by <see cref="M:Sandbox.Sdf.Sdf2DExtensions.Translate``1(``0,Vector2)"/>
            </summary>
        </member>
        <member name="P:Sandbox.Sdf.TranslatedSdf2D`1.Bounds">
            <inheritdoc />
        </member>
        <member name="P:Sandbox.Sdf.TranslatedSdf2D`1.Item(Vector2)">
            <inheritdoc />
        </member>
        <member name="T:Sandbox.Sdf.ExpandedSdf2D`1">
            <summary>
            Helper struct returned by <see cref="M:Sandbox.Sdf.Sdf2DExtensions.Expand``1(``0,System.Single)"/>
            </summary>
        </member>
        <member name="M:Sandbox.Sdf.ExpandedSdf2D`1.#ctor(`0,System.Single)">
            <summary>
            Helper struct returned by <see cref="M:Sandbox.Sdf.Sdf2DExtensions.Expand``1(``0,System.Single)"/>
            </summary>
        </member>
        <member name="P:Sandbox.Sdf.ExpandedSdf2D`1.Bounds">
            <inheritdoc />
        </member>
        <member name="P:Sandbox.Sdf.ExpandedSdf2D`1.Item(Vector2)">
            <inheritdoc />
        </member>
        <member name="T:Sandbox.Sdf.Sdf2DArray">
            <summary>
            Array containing raw SDF samples for a <see cref="T:Sandbox.Sdf.Sdf2DChunk"/>.
            </summary>
        </member>
        <member name="M:Sandbox.Sdf.Sdf2DArray.#ctor">
            <summary>
            Array containing raw SDF samples for a <see cref="T:Sandbox.Sdf.Sdf2DChunk"/>.
            </summary>
        </member>
        <member name="M:Sandbox.Sdf.Sdf2DArray.CreateTexture">
            <inheritdoc />
        </member>
        <member name="M:Sandbox.Sdf.Sdf2DArray.UpdateTexture(Sandbox.Texture)">
            <inheritdoc />
        </member>
        <member name="M:Sandbox.Sdf.Sdf2DArray.AddAsync``1(``0)">
            <inheritdoc />
        </member>
        <member name="M:Sandbox.Sdf.Sdf2DArray.SubtractAsync``1(``0)">
            <inheritdoc />
        </member>
        <member name="T:Sandbox.Sdf.Sdf2DChunk">
            <summary>
            Represents chunks in a <see cref="T:Sandbox.Sdf.Sdf2DWorld"/>.
            Each chunk contains an SDF for a sub-region of one specific layer.
            </summary>
        </member>
        <member name="M:Sandbox.Sdf.Sdf2DChunk.OnAddAsync``1(``0)">
            <inheritdoc />
        </member>
        <member name="M:Sandbox.Sdf.Sdf2DChunk.OnSubtractAsync``1(``0)">
            <inheritdoc />
        </member>
        <member name="M:Sandbox.Sdf.Sdf2DChunk.OnUpdateMeshAsync">
            <inheritdoc />
        </member>
        <member name="T:Sandbox.Sdf.EdgeStyle">
            <summary>
            Options for how front / back faces connect to the cut face in a <see cref="T:Sandbox.Sdf.Sdf2DLayer"/>.
            </summary>
        </member>
        <member name="F:Sandbox.Sdf.EdgeStyle.Sharp">
            <summary>
            The two faces meet at a 90 degree angle.
            </summary>
        </member>
        <member name="F:Sandbox.Sdf.EdgeStyle.Bevel">
            <summary>
            The two faces are connected by a 45 degree bevel.
            </summary>
        </member>
        <member name="F:Sandbox.Sdf.EdgeStyle.Round">
            <summary>
            The two faces smoothly join with a rounded edge.
            </summary>
        </member>
        <member name="T:Sandbox.Sdf.Sdf2DLayer">
            <summary>
            Controls the appearance and physical properties of a layer in a <see cref="T:Sandbox.Sdf.Sdf2DWorld"/>.
            </summary>
        </member>
        <member name="P:Sandbox.Sdf.Sdf2DLayer.Depth">
            <summary>
            How wide this layer is in the z-axis. This can help prevent
            z-fighting for overlapping layers.
            </summary>
        </member>
        <member name="P:Sandbox.Sdf.Sdf2DLayer.Offset">
            <summary>
            How far to offset this layer in the z-axis.
            Useful for things like background / foreground layers.
            </summary>
        </member>
        <member name="P:Sandbox.Sdf.Sdf2DLayer.TexCoordSize">
            <summary>
            How wide a single tile of the texture should be.
            </summary>
        </member>
        <member name="P:Sandbox.Sdf.Sdf2DLayer.FrontFaceMaterial">
            <summary>
            Material used by the front face of this layer.
            </summary>
        </member>
        <member name="P:Sandbox.Sdf.Sdf2DLayer.BackFaceMaterial">
            <summary>
            Material used by the back face of this layer.
            </summary>
        </member>
        <member name="P:Sandbox.Sdf.Sdf2DLayer.CutFaceMaterial">
            <summary>
            Material used by the cut face connecting the front and
            back of this layer.
            </summary>
        </member>
        <member name="P:Sandbox.Sdf.Sdf2DLayer.EdgeStyle">
            <summary>
            Options for how front / back faces connect to the cut face.
            </summary>
        </member>
        <member name="P:Sandbox.Sdf.Sdf2DLayer.MaxSmoothAngle">
            <summary>
            Angles below this will have smooth normals.
            </summary>
        </member>
        <member name="P:Sandbox.Sdf.Sdf2DLayer.EdgeRadius">
            <summary>
            How wide the connecting edge should be between front / back faces and the cut face.
            </summary>
        </member>
        <member name="P:Sandbox.Sdf.Sdf2DLayer.EdgeFaces">
            <summary>
            How many faces to use for rounded connecting edges between front / back faces and the cut face.
            </summary>
        </member>
        <member name="T:Sandbox.Sdf.Sdf2DMeshWriter.SquareConfiguration">
            <summary>
            <code>
            c - d
            |   |
            a - b
            </code>
            </summary>
        </member>
        <member name="T:Sandbox.Sdf.Sdf2DWorld">
            <summary>
            Main entity for creating a set of 2D surfaces that can be added to and subtracted from.
            Each surface is aligned to the same plane, but can have different offsets, depths, and materials.
            </summary>
        </member>
        <member name="P:Sandbox.Sdf.Sdf2DWorld.Dimensions">
            <inheritdoc />
        </member>
        <member name="M:Sandbox.Sdf.Sdf2DWorld.GetAffectedChunks``1(``0,Sandbox.Sdf.WorldQuality)">
            <inheritdoc />
        </member>
        <member name="T:Sandbox.Sdf.Rotation2D">
            <summary>
            Represents a 2D rotation around the Z axis.
            </summary>
            <param name="Cos">Cosine of the rotation angle.</param>
            <param name="Sin">Sine of the rotation angle.</param>
        </member>
        <member name="M:Sandbox.Sdf.Rotation2D.#ctor(System.Single,System.Single)">
            <summary>
            Represents a 2D rotation around the Z axis.
            </summary>
            <param name="Cos">Cosine of the rotation angle.</param>
            <param name="Sin">Sine of the rotation angle.</param>
        </member>
        <member name="P:Sandbox.Sdf.Rotation2D.Cos">
            <summary>Cosine of the rotation angle.</summary>
        </member>
        <member name="P:Sandbox.Sdf.Rotation2D.Sin">
            <summary>Sine of the rotation angle.</summary>
        </member>
        <member name="M:Sandbox.Sdf.Rotation2D.op_Implicit(System.Single)~Sandbox.Sdf.Rotation2D">
            <summary>
            Converts an angle in degrees to a <see cref="T:Sandbox.Sdf.Rotation2D"/>.
            </summary>
            <param name="degrees">Angle in degrees.</param>
            <returns>Rotation corresponding to the given angle.</returns>
        </member>
        <member name="M:Sandbox.Sdf.Rotation2D.op_Implicit(Sandbox.Sdf.Rotation2D)~Vector2">
            <summary>
            Converts a rotation to its vector representation.
            </summary>
        </member>
        <member name="M:Sandbox.Sdf.Rotation2D.op_Implicit(Vector2)~Sandbox.Sdf.Rotation2D">
            <summary>
            Converts a rotation from its vector representation.
            </summary>
        </member>
        <member name="P:Sandbox.Sdf.Rotation2D.Identity">
            <summary>
            Represents a rotation of 0 degrees.
            </summary>
        </member>
        <member name="M:Sandbox.Sdf.Rotation2D.op_Multiply(Sandbox.Sdf.Rotation2D,Vector2)">
            <summary>
            Applies a rotation to a vector.
            </summary>
            <param name="rotation">Rotation to apply.</param>
            <param name="vector">Vector to rotate.</param>
            <returns>A rotated vector.</returns>
        </member>
        <member name="M:Sandbox.Sdf.Rotation2D.op_Multiply(Sandbox.Sdf.Rotation2D,Sandbox.Sdf.Rotation2D)">
            <summary>
            Combines two rotations.
            </summary>
            <param name="lhs">First rotation.</param>
            <param name="rhs">Second rotation.</param>
            <returns>A combined rotation.</returns>
        </member>
        <member name="P:Sandbox.Sdf.Rotation2D.UnitX">
            <summary>
            Result of rotating (1, 0) by this rotation.
            </summary>
        </member>
        <member name="P:Sandbox.Sdf.Rotation2D.UnitY">
            <summary>
            Result of rotating (0, 1) by this rotation.
            </summary>
        </member>
        <member name="P:Sandbox.Sdf.Rotation2D.Inverse">
            <summary>
            Inverse of this rotation.
            </summary>
        </member>
        <member name="P:Sandbox.Sdf.Rotation2D.Normalized">
            <summary>
            A normalized version of this rotation, in case <see cref="P:Sandbox.Sdf.Rotation2D.Cos"/>^2 + <see cref="P:Sandbox.Sdf.Rotation2D.Sin"/>^2 != 1.
            </summary>
        </member>
        <member name="M:Sandbox.Sdf.Rotation2D.#ctor(System.Single)">
            <summary>
            Represents a 2D rotation around the Z axis.
            </summary>
            <param name="degrees">Angle in degrees.</param>
        </member>
        <member name="T:Sandbox.Sdf.Transform2D">
            <inheritdoc cref="T:Transform" />
            <param name="Position">Translation this transform will apply.</param>
            <param name="Rotation">Rotation this transform will apply.</param>
            <param name="Scale">Scale this transform will apply.</param>
            <param name="InverseScale">Inverse of <see cref="P:Sandbox.Sdf.Transform2D.Scale"/>.</param>
        </member>
        <member name="M:Sandbox.Sdf.Transform2D.#ctor(Vector2,Sandbox.Sdf.Rotation2D,System.Single,System.Single)">
            <inheritdoc cref="T:Transform" />
            <param name="Position">Translation this transform will apply.</param>
            <param name="Rotation">Rotation this transform will apply.</param>
            <param name="Scale">Scale this transform will apply.</param>
            <param name="InverseScale">Inverse of <see cref="P:Sandbox.Sdf.Transform2D.Scale"/>.</param>
        </member>
        <member name="P:Sandbox.Sdf.Transform2D.Position">
            <summary>Translation this transform will apply.</summary>
        </member>
        <member name="P:Sandbox.Sdf.Transform2D.Rotation">
            <summary>Rotation this transform will apply.</summary>
        </member>
        <member name="P:Sandbox.Sdf.Transform2D.Scale">
            <summary>Scale this transform will apply.</summary>
        </member>
        <member name="P:Sandbox.Sdf.Transform2D.InverseScale">
            <summary>Inverse of <see cref="P:Sandbox.Sdf.Transform2D.Scale"/>.</summary>
        </member>
        <member name="P:Sandbox.Sdf.Transform2D.Identity">
            <summary>
            Represents no transformation.
            </summary>
        </member>
        <member name="M:Sandbox.Sdf.Transform2D.#ctor(System.Nullable{Vector2},System.Nullable{Sandbox.Sdf.Rotation2D},System.Single)">
            <inheritdoc cref="T:Transform" />
            <param name="position">Translation this transform will apply.</param>
            <param name="rotation">Rotation this transform will apply.</param>
            <param name="scale">Scale this transform will apply.</param>
        </member>
        <member name="M:Sandbox.Sdf.Transform2D.TransformPoint(Vector2)">
            <summary>
            Apply this transformation to a position.
            </summary>
            <param name="pos">Position to transform.</param>
            <returns>Transformed position.</returns>
        </member>
        <member name="M:Sandbox.Sdf.Transform2D.InverseTransformPoint(Vector2)">
            <summary>
            Apply the inverse of this transformation to a position.
            </summary>
            <param name="pos">Position to transform.</param>
            <returns>Transformed position.</returns>
        </member>
        <member name="T:Sandbox.Sdf.ISdf3D">
            <summary>
            Base interface for shapes that can be added to or subtracted from a <see cref="T:Sandbox.Sdf.Sdf3DWorld"/>.
            </summary>
        </member>
        <member name="P:Sandbox.Sdf.ISdf3D.Bounds">
            <summary>
            Axis aligned bounds that fully encloses the surface of this shape.
            </summary>
        </member>
        <member name="P:Sandbox.Sdf.ISdf3D.Item(Vector3)">
            <summary>
            Find the signed distance of a point from the surface of this shape.
            Positive values are outside, negative are inside, and 0 is exactly on the surface.
            </summary>
            <param name="pos">Position to sample at</param>
            <returns>A signed distance from the surface of this shape</returns>
        </member>
        <member name="M:Sandbox.Sdf.ISdf3D.SampleRangeAsync(Transform,System.Single[],System.ValueTuple{System.Int32,System.Int32,System.Int32})">
            <summary>
            Sample an axis-aligned box shaped region, writing to an <paramref name="output"/> array.
            </summary>
            <param name="transform">Transformation to apply to the SDF.</param>
            <param name="output">Array to write signed distance values to.</param>
            <param name="outputSize">Dimensions of the <paramref name="output"/> array.</param>
        </member>
        <member name="T:Sandbox.Sdf.Sdf3DExtensions">
            <summary>
            Some extension methods for <see cref="T:Sandbox.Sdf.ISdf3D"/>.
            </summary>
        </member>
        <member name="M:Sandbox.Sdf.Sdf3DExtensions.Translate``1(``0,Vector3)">
            <summary>
            Moves the given SDF by the specified offset.
            </summary>
            <typeparam name="T">SDF type</typeparam>
            <param name="sdf">SDF to translate</param>
            <param name="offset">Offset to translate by</param>
            <returns>A translated version of <paramref name="sdf"/></returns>
        </member>
        <member name="M:Sandbox.Sdf.Sdf3DExtensions.Transform``1(``0,Transform)">
            <summary>
            Scales, rotates, and translates the given SDF.
            </summary>
            <typeparam name="T">SDF type</typeparam>
            <param name="sdf">SDF to transform</param>
            <param name="transform">Transformation to apply</param>
            <returns>A transformed version of <paramref name="sdf"/></returns>
        </member>
        <member name="M:Sandbox.Sdf.Sdf3DExtensions.Transform``1(``0,System.Nullable{Vector3},System.Nullable{Rotation},System.Single)">
            <summary>
            Scales, rotates, and translates the given SDF.
            </summary>
            <typeparam name="T">SDF type</typeparam>
            <param name="sdf">SDF to transform</param>
            <param name="translation">Offset to translate by</param>
            <param name="rotation">Rotation to apply</param>
            <param name="scale">Scale multiplier to apply</param>
            <returns>A transformed version of <paramref name="sdf"/></returns>
        </member>
        <member name="M:Sandbox.Sdf.Sdf3DExtensions.Expand``1(``0,System.Single)">
            <summary>
            Expands the surface of the given SDF by the specified margin.
            </summary>
            <typeparam name="T">SDF type</typeparam>
            <param name="sdf">SDF to expand</param>
            <param name="margin">Distance to expand by</param>
            <returns>An expanded version of <paramref name="sdf"/></returns>
        </member>
        <member name="T:Sandbox.Sdf.BoxSdf3D">
            <summary>
            Describes an axis-aligned box with rounded corners.
            </summary>
            <param name="Min">Position of the corner with smallest X, Y and Z values</param>
            <param name="Max">Position of the corner with largest X, Y and Z values</param>
            <param name="CornerRadius">Controls the roundness of corners, or 0 for (approximately) sharp corners</param>
        </member>
        <member name="M:Sandbox.Sdf.BoxSdf3D.#ctor(Vector3,Vector3,System.Single)">
            <summary>
            Describes an axis-aligned box with rounded corners.
            </summary>
            <param name="Min">Position of the corner with smallest X, Y and Z values</param>
            <param name="Max">Position of the corner with largest X, Y and Z values</param>
            <param name="CornerRadius">Controls the roundness of corners, or 0 for (approximately) sharp corners</param>
        </member>
        <member name="P:Sandbox.Sdf.BoxSdf3D.Min">
            <summary>Position of the corner with smallest X, Y and Z values</summary>
        </member>
        <member name="P:Sandbox.Sdf.BoxSdf3D.Max">
            <summary>Position of the corner with largest X, Y and Z values</summary>
        </member>
        <member name="P:Sandbox.Sdf.BoxSdf3D.CornerRadius">
            <summary>Controls the roundness of corners, or 0 for (approximately) sharp corners</summary>
        </member>
        <member name="M:Sandbox.Sdf.BoxSdf3D.#ctor(BBox,System.Single)">
            <summary>
            Describes an axis-aligned box with rounded corners.
            </summary>
            <param name="box">Size and position of the box</param>
            <param name="cornerRadius">Controls the roundness of corners, or 0 for (approximately) sharp corners</param>
        </member>
        <member name="P:Sandbox.Sdf.BoxSdf3D.Bounds">
            <inheritdoc />
        </member>
        <member name="P:Sandbox.Sdf.BoxSdf3D.Item(Vector3)">
            <inheritdoc />
        </member>
        <member name="T:Sandbox.Sdf.SphereSdf3D">
            <summary>
            Describes a sphere with a position and radius.
            </summary>
            <param name="Center">Position of the center of the sphere</param>
            <param name="Radius">Distance from the center to the surface of the sphere</param>
        </member>
        <member name="M:Sandbox.Sdf.SphereSdf3D.#ctor(Vector3,System.Single)">
            <summary>
            Describes a sphere with a position and radius.
            </summary>
            <param name="Center">Position of the center of the sphere</param>
            <param name="Radius">Distance from the center to the surface of the sphere</param>
        </member>
        <member name="P:Sandbox.Sdf.SphereSdf3D.Center">
            <summary>Position of the center of the sphere</summary>
        </member>
        <member name="P:Sandbox.Sdf.SphereSdf3D.Radius">
            <summary>Distance from the center to the surface of the sphere</summary>
        </member>
        <member name="P:Sandbox.Sdf.SphereSdf3D.Bounds">
            <inheritdoc />
        </member>
        <member name="P:Sandbox.Sdf.SphereSdf3D.Item(Vector3)">
            <inheritdoc />
        </member>
        <member name="T:Sandbox.Sdf.CapsuleSdf3D">
            <summary>
            Describes two spheres connected by a cylinder, all with a common radius.
            </summary>
            <param name="PointA">Center of the first sphere</param>
            <param name="PointB">Center of the second sphere</param>
            <param name="Radius">Radius of the spheres and connecting cylinder</param>
            <param name="Along">
            Internal helper vector for optimization.
            Please use the other constructor instead of specifying this yourself.
            </param>
        </member>
        <member name="M:Sandbox.Sdf.CapsuleSdf3D.#ctor(Vector3,Vector3,System.Single,Vector3)">
            <summary>
            Describes two spheres connected by a cylinder, all with a common radius.
            </summary>
            <param name="PointA">Center of the first sphere</param>
            <param name="PointB">Center of the second sphere</param>
            <param name="Radius">Radius of the spheres and connecting cylinder</param>
            <param name="Along">
            Internal helper vector for optimization.
            Please use the other constructor instead of specifying this yourself.
            </param>
        </member>
        <member name="P:Sandbox.Sdf.CapsuleSdf3D.PointA">
            <summary>Center of the first sphere</summary>
        </member>
        <member name="P:Sandbox.Sdf.CapsuleSdf3D.PointB">
            <summary>Center of the second sphere</summary>
        </member>
        <member name="P:Sandbox.Sdf.CapsuleSdf3D.Radius">
            <summary>Radius of the spheres and connecting cylinder</summary>
        </member>
        <member name="P:Sandbox.Sdf.CapsuleSdf3D.Along">
            <summary>
            Internal helper vector for optimization.
            Please use the other constructor instead of specifying this yourself.
            </summary>
        </member>
        <member name="M:Sandbox.Sdf.CapsuleSdf3D.#ctor(Vector3,Vector3,System.Single)">
            <summary>
            Describes two spheres connected by a cylinder, all with a common radius.
            </summary>
            <param name="pointA">Center of the first sphere</param>
            <param name="pointB">Center of the second sphere</param>
            <param name="radius">Radius of the spheres and connecting cylinder</param>
        </member>
        <member name="P:Sandbox.Sdf.CapsuleSdf3D.Bounds">
            <inheritdoc />
        </member>
        <member name="P:Sandbox.Sdf.CapsuleSdf3D.Item(Vector3)">
            <inheritdoc />
        </member>
        <member name="T:Sandbox.Sdf.TransformedSdf3D`1">
            <summary>
            Helper struct returned by <see cref="P:Sandbox.Sdf.TransformedSdf3D`1.Transform"/>
            </summary>
        </member>
        <member name="M:Sandbox.Sdf.TransformedSdf3D`1.#ctor(`0,Transform,System.Nullable{BBox},System.Single)">
            <summary>
            Helper struct returned by <see cref="P:Sandbox.Sdf.TransformedSdf3D`1.Transform"/>
            </summary>
        </member>
        <member name="M:Sandbox.Sdf.TransformedSdf3D`1.#ctor(`0,Transform)">
            <summary>
            Helper struct returned by <see cref="P:Sandbox.Sdf.TransformedSdf3D`1.Transform"/>
            </summary>
        </member>
        <member name="P:Sandbox.Sdf.TransformedSdf3D`1.Item(Vector3)">
            <inheritdoc />
        </member>
        <member name="T:Sandbox.Sdf.TranslatedSdf3D`1">
            <summary>
            Helper struct returned by <see cref="M:Sandbox.Sdf.Sdf3DExtensions.Translate``1(``0,Vector3)"/>
            </summary>
        </member>
        <member name="M:Sandbox.Sdf.TranslatedSdf3D`1.#ctor(`0,Vector3)">
            <summary>
            Helper struct returned by <see cref="M:Sandbox.Sdf.Sdf3DExtensions.Translate``1(``0,Vector3)"/>
            </summary>
        </member>
        <member name="P:Sandbox.Sdf.TranslatedSdf3D`1.Bounds">
            <inheritdoc />
        </member>
        <member name="P:Sandbox.Sdf.TranslatedSdf3D`1.Item(Vector3)">
            <inheritdoc />
        </member>
        <member name="T:Sandbox.Sdf.ExpandedSdf3D`1">
            <summary>
            Helper struct returned by <see cref="M:Sandbox.Sdf.Sdf3DExtensions.Expand``1(``0,System.Single)"/>
            </summary>
        </member>
        <member name="M:Sandbox.Sdf.ExpandedSdf3D`1.#ctor(`0,System.Single)">
            <summary>
            Helper struct returned by <see cref="M:Sandbox.Sdf.Sdf3DExtensions.Expand``1(``0,System.Single)"/>
            </summary>
        </member>
        <member name="P:Sandbox.Sdf.ExpandedSdf3D`1.Bounds">
            <inheritdoc />
        </member>
        <member name="P:Sandbox.Sdf.ExpandedSdf3D`1.Item(Vector3)">
            <inheritdoc />
        </member>
        <member name="P:Sandbox.Sdf.IntersectedSdf3D`2.Item(Vector3)">
            <inheritdoc />
        </member>
        <member name="P:Sandbox.Sdf.BiasedSdf3D`2.Bounds">
            <inheritdoc />
        </member>
        <member name="P:Sandbox.Sdf.BiasedSdf3D`2.Item(Vector3)">
            <inheritdoc />
        </member>
        <member name="T:Sandbox.Sdf.Sdf3DArray">
            <summary>
            Networked array containing raw SDF samples for a <see cref="T:Sandbox.Sdf.Sdf3DChunk"/>.
            </summary>
        </member>
        <member name="M:Sandbox.Sdf.Sdf3DArray.#ctor">
            <summary>
            Networked array containing raw SDF samples for a <see cref="T:Sandbox.Sdf.Sdf3DChunk"/>.
            </summary>
        </member>
        <member name="M:Sandbox.Sdf.Sdf3DArray.CreateTexture">
            <inheritdoc />
        </member>
        <member name="M:Sandbox.Sdf.Sdf3DArray.UpdateTexture(Sandbox.Texture)">
            <inheritdoc />
        </member>
        <member name="M:Sandbox.Sdf.Sdf3DArray.AddAsync``1(``0)">
            <inheritdoc />
        </member>
        <member name="M:Sandbox.Sdf.Sdf3DArray.SubtractAsync``1(``0)">
            <inheritdoc />
        </member>
        <member name="T:Sandbox.Sdf.Sdf3DChunk">
            <summary>
            Represents chunks in a <see cref="T:Sandbox.Sdf.Sdf3DWorld"/>.
            Each chunk contains an SDF for a sub-region of one specific volume.
            </summary>
        </member>
        <member name="M:Sandbox.Sdf.Sdf3DChunk.OnAddAsync``1(``0)">
            <inheritdoc />
        </member>
        <member name="M:Sandbox.Sdf.Sdf3DChunk.OnSubtractAsync``1(``0)">
            <inheritdoc />
        </member>
        <member name="M:Sandbox.Sdf.Sdf3DChunk.OnUpdateMeshAsync">
            <inheritdoc />
        </member>
        <member name="T:Sandbox.Sdf.Sdf3DMeshWriter.CubeConfiguration">
            <summary>
            <code>
            Z = 0   Z = 1
            c - d   g - h
            |   |   |   |
            a - b   e - f
            </code>
            </summary>
        </member>
        <member name="T:Sandbox.Sdf.Sdf3DVolume">
            <summary>
            Controls the appearance and physical properties of a volume in a <see cref="T:Sandbox.Sdf.Sdf3DWorld"/>.
            </summary>
        </member>
        <member name="P:Sandbox.Sdf.Sdf3DVolume.Material">
            <summary>
            Material used to render this volume.
            </summary>
        </member>
        <member name="T:Sandbox.Sdf.Sdf3DWorld">
            <summary>
            Main entity for creating a 3D surface that can be added to and subtracted from.
            Multiple volumes can be added to this entity with different materials.
            </summary>
        </member>
        <member name="M:Sandbox.Sdf.Sdf3DWorld.GetAffectedChunks``1(``0,Sandbox.Sdf.WorldQuality)">
            <inheritdoc />
        </member>
        <member name="T:Sandbox.Sdf.SdfArray`1">
            <summary>
            Base class for networked arrays containing raw SDF samples as bytes.
            </summary>
            <typeparam name="TSdf">Interface for SDFs that can modify the array</typeparam>
        </member>
        <member name="F:Sandbox.Sdf.SdfArray`1.Margin">
            <summary>
            How far outside the chunk boundary should samples be stored.
            This is used to ensure generated normals are smooth when on a chunk boundary.
            </summary>
        </member>
        <member name="P:Sandbox.Sdf.SdfArray`1.Dimensions">
            <summary>
            Spacial dimensions of the array (2D / 3D).
            </summary>
        </member>
        <member name="P:Sandbox.Sdf.SdfArray`1.Quality">
            <summary>
            Quality settings, affecting the resolution of the array.
            </summary>
        </member>
        <member name="P:Sandbox.Sdf.SdfArray`1.BackBuffer">
            <summary>
            Actual raw samples, encoded as bytes. A value of 0 is -<see cref="P:Sandbox.Sdf.WorldQuality.MaxDistance"/>,
            255 is +<see cref="P:Sandbox.Sdf.WorldQuality.MaxDistance"/>, and 127.5 is on the surface.
            </summary>
        </member>
        <member name="P:Sandbox.Sdf.SdfArray`1.ArraySize">
            <summary>
            Number of samples stored in one dimension of this array.
            </summary>
        </member>
        <member name="P:Sandbox.Sdf.SdfArray`1.SampleCount">
            <summary>
            Total number of samples stored in the entire array. Equal to <see cref="P:Sandbox.Sdf.SdfArray`1.ArraySize"/> to the
            power of <see cref="P:Sandbox.Sdf.SdfArray`1.Dimensions"/>.
            </summary>
        </member>
        <member name="P:Sandbox.Sdf.SdfArray`1.UnitSize">
            <summary>
            Distance between samples in one axis.
            </summary>
        </member>
        <member name="P:Sandbox.Sdf.SdfArray`1.InvUnitSize">
            <summary>
            Inverse of <see cref="P:Sandbox.Sdf.SdfArray`1.UnitSize"/>.
            </summary>
        </member>
        <member name="P:Sandbox.Sdf.SdfArray`1.InvMaxDistance">
            <summary>
            Inverse of <see cref="P:Sandbox.Sdf.WorldQuality.MaxDistance"/>.
            </summary>
        </member>
        <member name="M:Sandbox.Sdf.SdfArray`1.#ctor(System.Int32)">
            <summary>
            Creates an array with a given number of spacial dimensions.
            </summary>
            <param name="dimensions">Spacial dimensions of the array (2D / 3D).</param>
        </member>
        <member name="M:Sandbox.Sdf.SdfArray`1.GetSampleRange(System.Single,System.Single)">
            <summary>
            Gets the min and max index for a local-space range of samples, clamped to the array bounds.
            </summary>
            <param name="localMin">Minimum position in local-space along the axis</param>
            <param name="localMax">Maximum position in local-space along the axis</param>
            <returns>Minimum (inclusive) and maximum (exclusive) indices</returns>
        </member>
        <member name="M:Sandbox.Sdf.SdfArray`1.Encode(System.Single)">
            <summary>
            Encodes a distance value to a byte.
            </summary>
            <param name="distance">Distance to encode.</param>
            <returns>-<see cref="P:Sandbox.Sdf.WorldQuality.MaxDistance"/> encodes to 0,
            +<see cref="P:Sandbox.Sdf.WorldQuality.MaxDistance"/> encodes to 255, and therefore 0 becomes ~128.</returns>
        </member>
        <member name="P:Sandbox.Sdf.SdfArray`1.Texture">
            <summary>
            Lazily creates / updates a texture containing the encoded samples for use in shaders.
            </summary>
        </member>
        <member name="M:Sandbox.Sdf.SdfArray`1.CreateTexture">
            <summary>
            Implements creating a texture containing the encoded samples.
            </summary>
            <returns>A 2D / 3D texture containing the samples</returns>
        </member>
        <member name="M:Sandbox.Sdf.SdfArray`1.UpdateTexture(Sandbox.Texture)">
            <summary>
            Implements updating a texture containing the encoded samples.
            </summary>
        </member>
        <member name="M:Sandbox.Sdf.SdfArray`1.AddAsync``1(``0)">
            <summary>
            Implements adding a local-space shape to the samples in this array.
            </summary>
            <typeparam name="T">SDF type</typeparam>
            <param name="sdf">Shape to add</param>
            <returns>True if any geometry was modified</returns>
        </member>
        <member name="M:Sandbox.Sdf.SdfArray`1.SubtractAsync``1(``0)">
            <summary>
            Implements subtracting a local-space shape from the samples in this array.
            </summary>
            <typeparam name="T">SDF type</typeparam>
            <param name="sdf">Shape to subtract</param>
            <returns>True if any geometry was modified</returns>
        </member>
        <member name="M:Sandbox.Sdf.SdfArray`1.Clear(System.Boolean)">
            <summary>
            Sets every sample to solid or empty.
            </summary>
            <param name="solid">Solidity to set each sample to.</param>
        </member>
        <member name="M:Sandbox.Sdf.SdfArray`1.MarkChanged">
            <summary>
            Invalidates the texture, and collision / render meshes for the chunk this array represents.
            This doesn't trigger a net write.
            </summary>
        </member>
        <member name="M:Sandbox.Sdf.SdfArray`1.Dispose">
            <inhertidoc />
        </member>
        <member name="T:Sandbox.Sdf.SdfChunk`6">
            <summary>
            Base class for chunks in a <see cref="T:Sandbox.Sdf.SdfWorld`6"/>.
            Each chunk contains an SDF for a sub-region of one specific volume / layer resource.
            </summary>
            <typeparam name="TWorld">Non-abstract world type</typeparam>
            <typeparam name="TChunk">Non-abstract chunk type</typeparam>
            <typeparam name="TResource">Volume / layer resource</typeparam>
            <typeparam name="TChunkKey">Integer coordinates used to index a chunk</typeparam>
            <typeparam name="TArray">Type of <see cref="T:Sandbox.Sdf.SdfArray`1"/> used to contain samples</typeparam>
            <typeparam name="TSdf">Interface for SDF shapes used to make modifications</typeparam>
        </member>
        <member name="P:Sandbox.Sdf.SdfChunk`6.Data">
            <summary>
            Array storing SDF samples for this chunk.
            </summary>
        </member>
        <member name="P:Sandbox.Sdf.SdfChunk`6.World">
            <summary>
            World that owns this chunk.
            </summary>
        </member>
        <member name="P:Sandbox.Sdf.SdfChunk`6.Resource">
            <summary>
            Volume or layer resource controlling the rendering and collision of this chunk.
            </summary>
        </member>
        <member name="P:Sandbox.Sdf.SdfChunk`6.Key">
            <summary>
            Position index of this chunk in the world.
            </summary>
        </member>
        <member name="P:Sandbox.Sdf.SdfChunk`6.Shape">
            <summary>
            If this chunk has collision, the generated physics mesh for this chunk.
            </summary>
        </member>
        <member name="P:Sandbox.Sdf.SdfChunk`6.Renderer">
            <summary>
            If this chunk is rendered, the scene object containing the generated mesh.
            </summary>
        </member>
        <member name="M:Sandbox.Sdf.SdfChunk`6.OnInit">
            <summary>
            Called after the chunk is added to the <see cref="P:Sandbox.Sdf.SdfChunk`6.World"/>.
            </summary>
        </member>
        <member name="M:Sandbox.Sdf.SdfChunk`6.ClearAsync(System.Boolean)">
            <summary>
            Sets every sample in this chunk's SDF to solid or empty.
            </summary>
            <param name="solid">Solidity to set each sample to.</param>
        </member>
        <member name="M:Sandbox.Sdf.SdfChunk`6.AddAsync``1(``0)">
            <summary>
            Add a world-space shape to this chunk.
            </summary>
            <typeparam name="T">SDF type</typeparam>
            <param name="sdf">Shape to add</param>
            <returns>True if any geometry was modified</returns>
        </member>
        <member name="M:Sandbox.Sdf.SdfChunk`6.SubtractAsync``1(``0)">
            <summary>
            Subtract a world-space shape from this chunk.
            </summary>
            <typeparam name="T">SDF type</typeparam>
            <param name="sdf">Shape to subtract</param>
            <returns>True if any geometry was modified</returns>
        </member>
        <member name="M:Sandbox.Sdf.SdfChunk`6.OnUpdateMeshAsync">
            <summary>
            Implements updating the render / collision meshes of this chunk.
            </summary>
            <returns>Task that completes when the meshes have finished updating.</returns>
        </member>
        <member name="M:Sandbox.Sdf.SdfChunk`6.UpdateCollisionMeshAsync(System.Collections.Generic.List{Vector3},System.Collections.Generic.List{System.Int32})">
            <summary>
            Asynchronously updates the collision shape to the defined mesh.
            </summary>
            <param name="vertices">Collision mesh vertices</param>
            <param name="indices">Collision mesh indices</param>
        </member>
        <member name="M:Sandbox.Sdf.SdfChunk`6.UpdateCollisionMesh(System.Collections.Generic.List{Vector3},System.Collections.Generic.List{System.Int32})">
            <summary>
            Updates the collision shape to the defined mesh. Must be called on the main thread.
            </summary>
            <param name="vertices">Collision mesh vertices</param>
            <param name="indices">Collision mesh indices</param>
        </member>
        <member name="M:Sandbox.Sdf.SdfChunk`6.UpdateRenderMeshes(Sandbox.Sdf.MeshDescription[])">
            <summary>
            Updates this chunk's model to use the given set of meshes. Must be called on the main thread.
            </summary>
            <param name="meshes">Set of meshes this model should use</param>
        </member>
        <member name="T:Sandbox.Sdf.TextureReference`1">
            <summary>
            References a layer or volume that will be used as a texture when rendering.
            </summary>
        </member>
        <member name="P:Sandbox.Sdf.TextureReference`1.TargetAttribute">
            <summary>
            Material attribute name to set for the materials used by this layer or volume.
            </summary>
        </member>
        <member name="P:Sandbox.Sdf.TextureReference`1.Source">
            <summary>
            Source layer or volume that will provide the texture. The texture will have a single channel,
            with 0 representing -<see cref="P:Sandbox.Sdf.WorldQuality.MaxDistance"/> of the source layer,
            and 1 representing +<see cref="P:Sandbox.Sdf.WorldQuality.MaxDistance"/>.
            </summary>
        </member>
        <member name="T:Sandbox.Sdf.SdfResource`1">
            <summary>
            Base class for SDF volume / layer resources.
            </summary>
            <typeparam name="T"></typeparam>
        </member>
        <member name="P:Sandbox.Sdf.SdfResource`1.IsTextureSourceOnly">
            <summary>
            If true, this layer or volume is only used as a texture source by other layers or volumes.
            This will disable collision shapes and render mesh generation for this layer or volume.
            </summary>
        </member>
        <member name="P:Sandbox.Sdf.SdfResource`1.CollisionTags">
            <summary>
            Tags that physics shapes created by this layer or volume should have, separated by spaces.
            If empty, no physics shapes will be created.
            </summary>
        </member>
        <member name="P:Sandbox.Sdf.SdfResource`1.SplitCollisionTags">
            <summary>
            Array of tags that physics shapes created by this layer or volume should have.
            If empty, no physics shapes will be created.
            </summary>
        </member>
        <member name="P:Sandbox.Sdf.SdfResource`1.HasCollision">
            <summary>
            If true, this resource will have a collision mesh. True if <see cref="P:Sandbox.Sdf.SdfResource`1.CollisionTags"/> has any items
            and <see cref="P:Sandbox.Sdf.SdfResource`1.IsTextureSourceOnly"/> is false.
            </summary>
        </member>
        <member name="P:Sandbox.Sdf.SdfResource`1.QualityLevel">
            <summary>
            Controls mesh visual quality, affecting performance and networking costs.
            </summary>
        </member>
        <member name="P:Sandbox.Sdf.SdfResource`1.ChunkResolution">
            <summary>
            How many rows / columns of samples are stored per chunk.
            Higher means more needs to be sent over the network, and more work for the mesh generator.
            Medium quality is 16 for 2D layers.
            </summary>
        </member>
        <member name="P:Sandbox.Sdf.SdfResource`1.ChunkSize">
            <summary>
            How wide / tall a chunk is in world space. If you'll always make small
            edits to this layer, you can reduce this to add detail.
            Medium quality is 256 for 2D layers.
            </summary>
        </member>
        <member name="P:Sandbox.Sdf.SdfResource`1.MaxDistance">
            <summary>
            Largest absolute value stored in a chunk's SDF.
            Higher means more samples are written to when doing modifications.
            I'd arbitrarily recommend ChunkSize / ChunkResolution * 4.
            </summary>
        </member>
        <member name="P:Sandbox.Sdf.SdfResource`1.ReferencedTextures">
            <summary>
            References to layers or volumes that will be used as textures when rendering this layer or volume.
            All referenced layers or volumes must have the same chunk size as this layer or volume.
            </summary>
        </member>
        <member name="T:Sandbox.Sdf.SdfWorld`6">
            <summary>
            Base type for entities representing a set of volumes / layers containing geometry generated from
            signed distance fields.
            </summary>
            <typeparam name="TWorld">Non-abstract world type</typeparam>
            <typeparam name="TChunk">Non-abstract chunk type</typeparam>
            <typeparam name="TResource">Volume / layer resource</typeparam>
            <typeparam name="TChunkKey">Integer coordinates used to index a chunk</typeparam>
            <typeparam name="TArray">Type of <see cref="T:Sandbox.Sdf.SdfArray`1"/> used to contain samples</typeparam>
            <typeparam name="TSdf">Interface for SDF shapes used to make modifications</typeparam>
        </member>
        <member name="P:Sandbox.Sdf.SdfWorld`6.Dimensions">
            <summary>
            Spacial dimensions. 2 for <see cref="T:Sandbox.Sdf.Sdf2DWorld"/>, 3 for <see cref="T:Sandbox.Sdf.Sdf3DWorld"/>.
            </summary>
        </member>
        <member name="P:Sandbox.Sdf.SdfWorld`6.ClearCount">
            <summary>
            How many times this world has been cleared.
            </summary>
        </member>
        <member name="P:Sandbox.Sdf.SdfWorld`6.ModificationCount">
            <summary>
            How many modifications have been applied since the last time this world was cleared.
            </summary>
        </member>
        <member name="M:Sandbox.Sdf.SdfWorld`6.ClearAsync">
            <summary>
            Removes all layers / volumes, making this equivalent to a brand new empty world.
            </summary>
        </member>
        <member name="M:Sandbox.Sdf.SdfWorld`6.ClearAsync(`2)">
            <summary>
            Removes the given layer or volume.
            </summary>
            <param name="resource">Layer or volume to clear</param>
        </member>
        <member name="M:Sandbox.Sdf.SdfWorld`6.AddAsync``1(``0@,`2)">
            <summary>
            Add a shape to the given layer or volume.
            </summary>
            <typeparam name="T">SDF type</typeparam>
            <param name="sdf">Shape to add</param>
            <param name="resource">Layer or volume to add to</param>
            <returns>True if any geometry was modified</returns>
        </member>
        <member name="M:Sandbox.Sdf.SdfWorld`6.SubtractAsync``1(``0@,`2)">
            <summary>
            Subtract a shape from the given layer or volume.
            </summary>
            <typeparam name="T">SDF type</typeparam>
            <param name="sdf">Shape to subtract</param>
            <param name="resource">Layer or volume to subtract from</param>
            <returns>True if any geometry was modified</returns>
        </member>
        <member name="M:Sandbox.Sdf.SdfWorld`6.SubtractAsync``1(``0)">
            <summary>
            Subtract a shape from all layers.
            </summary>
            <typeparam name="T">SDF type</typeparam>
            <param name="sdf">Shape to subtract</param>
            <returns>True if any geometry was modified</returns>
        </member>
        <member name="P:Sandbox.Sdf.SdfWorld`6.HasPhysics">
            <summary>
            Disable to not generate any collision meshes.
            </summary>
        </member>
        <member name="M:Sandbox.Sdf.SdfWorld`6.GetAffectedChunks``1(``0,Sandbox.Sdf.WorldQuality)">
            <summary>
            Implements getting the indices of chunks within the bounds of the given SDF.
            </summary>
            <typeparam name="T">SDF type.</typeparam>
            <param name="sdf">SDF to check the bounds of.</param>
            <param name="quality">Quality setting that affects chunk size.</param>
            <returns>Indices of possible affected chunks.</returns>
        </member>
        <member name="T:Sandbox.Sdf.WorldQualityPreset">
            <summary>
            Preset quality settings for <see cref="T:Sandbox.Sdf.SdfArray`1"/>.
            </summary>
        </member>
        <member name="F:Sandbox.Sdf.WorldQualityPreset.Low">
            <summary>
            Cheap and cheerful, suitable for frequent (per-frame) edits.
            </summary>
        </member>
        <member name="F:Sandbox.Sdf.WorldQualityPreset.Medium">
            <summary>
            Recommended quality for most cases.
            </summary>
        </member>
        <member name="F:Sandbox.Sdf.WorldQualityPreset.High">
            <summary>
            More expensive to update and network, but a much smoother result.
            </summary>
        </member>
        <member name="F:Sandbox.Sdf.WorldQualityPreset.Extreme">
            <summary>
            Only use this for small, detailed objects!
            </summary>
        </member>
        <member name="F:Sandbox.Sdf.WorldQualityPreset.Custom">
            <summary>
            Manually tweak quality parameters.
            </summary>
        </member>
        <member name="T:Sandbox.Sdf.WorldQuality">
            <summary>
            Quality settings for <see cref="T:Sandbox.Sdf.SdfArray`1"/>.
            </summary>
        </member>
        <member name="M:Sandbox.Sdf.WorldQuality.#ctor(System.Int32,System.Single,System.Single)">
            <summary>
            Quality settings for <see cref="T:Sandbox.Sdf.SdfArray`1"/>.
            </summary>
        </member>
        <member name="P:Sandbox.Sdf.WorldQuality.UnitSize">
            <summary>
            Distance between samples in one axis.
            </summary>
        </member>
        <member name="M:Sandbox.Sdf.WorldQuality.Read(Sandbox.ByteStream@)">
            <summary>
            Read an instance of <see cref="T:Sandbox.Sdf.WorldQuality"/> from a <see cref="!:NetRead"/>er.
            </summary>
        </member>
        <member name="M:Sandbox.Sdf.WorldQuality.Write(Sandbox.ByteStream@)">
            <summary>
            Write this instance to a <see cref="!:NetWrite"/>er. Can be read with <see cref="M:Sandbox.Sdf.WorldQuality.Read(Sandbox.ByteStream@)"/>.
            </summary>
        </member>
        <member name="T:Sandbox.Polygons.PolygonMeshBuilder">
            <summary>
            Helper class for building 3D meshes based on a 2D polygon. Supports
            concave polygons with holes, although edges must not intersect.
            </summary>
        </member>
        <member name="M:Sandbox.Polygons.PolygonMeshBuilder.Bevel(System.Single,System.Single)">
            <summary>
            Add faces starting at each active edge, traveling inwards and upwards to produce a bevel.
            If the bevel distance is large enough the mesh will become closed. Otherwise, you can use
            <see cref="M:Sandbox.Polygons.PolygonMeshBuilder.Fill"/> to add a flat face after the bevel.
            </summary>
            <param name="width">Total distance inwards.</param>
            <param name="height">Total distance upwards, away from the plane of the polygon.</param>
        </member>
        <member name="M:Sandbox.Polygons.PolygonMeshBuilder.Bevel(System.Single,System.Single,System.Single,System.Single)">
            <summary>
            Add faces starting at each active edge, traveling inwards and upwards to produce a bevel.
            Use <paramref name="prevAngle"/> and <paramref name="nextAngle"/> to control the normal directions
            at the start and end of the bevel faces. Angles are in radians, with 0 pointing outwards along
            the plane of the polygon, and PI/2 pointing upwards away from the plane.
            If the bevel distance is large enough the mesh will become closed. Otherwise, you can use
            <see cref="M:Sandbox.Polygons.PolygonMeshBuilder.Fill"/> to add a flat face after the bevel.
            </summary>
            <param name="width">Total distance inwards.</param>
            <param name="height">Total distance upwards, away from the plane of the polygon.</param>
            <param name="prevAngle">Angle, in radians, to use for normals at the outside of the bevel.</param>
            <param name="nextAngle"></param>
        </member>
        <member name="M:Sandbox.Polygons.PolygonMeshBuilder.CalculateSplitDistance(Sandbox.Polygons.PolygonMeshBuilder.Edge@,Sandbox.Polygons.PolygonMeshBuilder.Edge@,Sandbox.Polygons.PolygonMeshBuilder.Edge@,Vector2@,Sandbox.Polygons.PolygonMeshBuilder.MergeMode@)">
            <summary>
            Find when the start vertex of <paramref name="edge"/> would cut <paramref name="other"/>.
            </summary>
        </member>
        <member name="M:Sandbox.Polygons.PolygonMeshBuilder.Fill">
            <summary>
            Triangulate any remaining active edges so that the generated mesh is closed.
            </summary>
        </member>
        <member name="P:Sandbox.Polygons.PolygonMeshBuilder.CloseVertex.Delta">
            <summary>
            Difference to this vertex from the previous one.
            </summary>
        </member>
        <member name="M:Sandbox.Polygons.PolygonMeshBuilder.AddSvg(System.String,Sandbox.Polygons.AddSvgOptions,System.Nullable{Sandbox.Rect})">
            <summary>
            Add all supported paths from the given SVG document.
            </summary>
            <param name="contents">SVG document contents.</param>
            <param name="options">Options for generating vertices from paths.</param>
            <param name="targetBounds">Rescale and translate the imported SVG to fill the given bounds</param>
        </member>
        <member name="M:Sandbox.Polygons.PolygonMeshBuilder.AddPath(Sandbox.Utility.Svg.SvgPath,Sandbox.Polygons.AddSvgOptions)">
            <summary>
            Add an individual path from an SVG document, if supported.
            </summary>
            <param name="path">SVG path element.</param>
            <param name="options">Options for generating vertices from paths.</param>
            <param name="targetBounds">Rescale and translate the imported SVG to fill the given bounds</param>
        </member>
        <member name="P:Sandbox.Polygons.PolygonMeshBuilder.ActiveEdgeCount">
            <summary>
            Number of edges that will be affected by calls to methods like <see cref="M:Sandbox.Polygons.PolygonMeshBuilder.Bevel(System.Single,System.Single)"/>, <see cref="!:Round"/>, and <see cref="!:Close"/>.
            </summary>
        </member>
        <member name="P:Sandbox.Polygons.PolygonMeshBuilder.IsClosed">
            <summary>
            If true, no active edges remain because the mesh is fully closed.
            </summary>
        </member>
        <member name="P:Sandbox.Polygons.PolygonMeshBuilder.MaxSmoothAngle">
            <summary>
            Corners of the original polygon with an interior or exterior
            angle less than this (in radians) will have smooth normals.
            </summary>
        </member>
        <member name="P:Sandbox.Polygons.PolygonMeshBuilder.SkipNormals">
            <summary>
            If true, don't bother generating normals / tangents.
            </summary>
        </member>
        <member name="P:Sandbox.Polygons.PolygonMeshBuilder.Positions">
            <summary>
            Positions of each vertex in the generated mesh.
            </summary>
        </member>
        <member name="P:Sandbox.Polygons.PolygonMeshBuilder.Normals">
            <summary>
            Normals of each vertex in the generated mesh.
            </summary>
        </member>
        <member name="P:Sandbox.Polygons.PolygonMeshBuilder.Tangents">
            <summary>
            U-tangents, and the signs of the V-tangents, of each vertex in the generated mesh.
            </summary>
        </member>
        <member name="P:Sandbox.Polygons.PolygonMeshBuilder.Vertices">
            <summary>
            Positions, normals, and tangents of each vertex.
            </summary>
        </member>
        <member name="P:Sandbox.Polygons.PolygonMeshBuilder.Indices">
            <summary>
            Indices of vertices describing the triangulation of the generated mesh.
            </summary>
        </member>
        <member name="M:Sandbox.Polygons.PolygonMeshBuilder.Clear">
            <summary>
            Clear all geometry from this builder.
            </summary>
        </member>
        <member name="M:Sandbox.Polygons.PolygonMeshBuilder.Reset">
            <summary>
            Reset this builder to be like a new instance.
            </summary>
        </member>
        <member name="M:Sandbox.Polygons.PolygonMeshBuilder.AddEdgeLoop(System.Collections.Generic.IReadOnlyList{Vector2},System.Int32,System.Int32,System.Boolean)">
            <summary>
            Add a set of active edges forming a loop. Clockwise loops will be a solid polygon, and count-clockwise
            will form a hole. Holes must be inside of solid polygons, otherwise the mesh can't be closed correctly.
            </summary>
            <param name="vertices">List of vertices to read a range from.</param>
            <param name="offset">Index of the first vertex in the loop.</param>
            <param name="count">Number of vertices in the loop.</param>
            <param name="reverse">If true, reverse the order of the vertices in the loop.</param>
        </member>
        <member name="M:Sandbox.Polygons.PolygonMeshBuilder.AddEdges(System.Collections.Generic.IReadOnlyList{Vector2},System.Collections.Generic.IReadOnlyList{System.ValueTuple{System.Int32,System.Int32}})">
            <summary>
            Add a raw set of edges. Be careful to ensure that each loop of edges is fully closed.
            </summary>
            <param name="vertices">Positions of vertices to connect with edges.</param>
            <param name="edges">Indices of the start and end vertices of each edge.</param>
        </member>
        <member name="M:Sandbox.Polygons.PolygonMeshBuilder.Extrude(System.Single)">
            <summary>
            Add faces on each active edge extending upwards by the given height.
            </summary>
            <param name="height">Total distance upwards, away from the plane of the polygon.</param>
        </member>
        <member name="M:Sandbox.Polygons.PolygonMeshBuilder.Inset(System.Single)">
            <summary>
            Add faces on each active edge extending inwards by the given width. This will close the mesh if <paramref name="width"/> is large enough.
            </summary>
            <param name="width">Total distance inwards.</param>
        </member>
        <member name="M:Sandbox.Polygons.PolygonMeshBuilder.Mirror(System.Single)">
            <summary>
            Mirrors all previously created faces. The mirror plane is normal to the Z axis, with a given distance from the origin.
            </summary>
            <param name="z">Distance of the mirror plane from the origin.</param>
        </member>
        <member name="M:Sandbox.Polygons.PolygonMeshBuilder.Arc(System.Single,System.Int32,System.Boolean,System.Boolean)">
            <summary>
            Perform successive <see cref="M:Sandbox.Polygons.PolygonMeshBuilder.Bevel(System.Single,System.Single)"/>s so that the edge of the polygon curves inwards in a quarter circle arc.
            </summary>
            <param name="radius">Radius of the arc.</param>
            <param name="faces">How many bevels to split the rounded edge into.</param>
            <param name="smooth">If true, use smooth normals rather than flat shading.</param>
            <param name="convex">If true, the faces will be pointing outwards from the center of the arc.</param>
        </member>
        <member name="M:Sandbox.Polygons.PolygonMeshBuilder.Arc(System.Single,System.Single,System.Int32,System.Boolean,System.Boolean)">
            <summary>
            Perform successive <see cref="M:Sandbox.Polygons.PolygonMeshBuilder.Bevel(System.Single,System.Single)"/>s so that the edge of the polygon curves inwards in a quarter circle arc.
            </summary>
            <param name="width">Total distance inwards.</param>
            <param name="height">Total distance upwards, away from the plane of the polygon.</param>
            <param name="faces">How many bevels to split the rounded edge into.</param>
            <param name="smooth">If true, use smooth normals rather than flat shading.</param>
            <param name="convex">If true, the faces will be pointing outwards from the center of the arc.</param>
        </member>
        <member name="T:Sandbox.Polygons.AddSvgOptions">
            <summary>
            Options for <see cref="M:Sandbox.Polygons.PolygonMeshBuilder.AddSvg(System.String,Sandbox.Polygons.AddSvgOptions,System.Nullable{Sandbox.Rect})"/>.
            </summary>
        </member>
        <member name="P:Sandbox.Polygons.AddSvgOptions.ThrowIfNotSupported">
            <summary>
            If true, any unsupported path types will throw an exception. Defaults to false.
            </summary>
        </member>
        <member name="P:Sandbox.Polygons.AddSvgOptions.CurveResolution">
            <summary>
            Maximum distance between vertices on curved paths. Defaults to 1.
            </summary>
        </member>
        <member name="P:Sandbox.Polygons.PolygonModelRenderer.Svg">
            <summary>
            Scalable Vector Graphics source string for this model.
            </summary>
        </member>
    </members>
</doc>
