I’ve got the following struct.
/// <summary>
/// One contact point between two collidables.
/// </summary>
/// <param name="Source">The collidable the contact handler is attached to.</param>
/// <param name="Other">The other collidable involved in the contact.</param>
/// <param name="Point">The contact point in world space.</param>
/// <param name="Normal">The contact normal in world space, pointing away from the source.</param>
/// <param name="Depth">Penetration depth at the contact point.</param>
public readonly record struct ContactInfo(
SBepu.CollidableComponent? Source,
SBepu.CollidableComponent? Other,
Vector3 Point,
Vector3 Normal,
float Depth)
{
/// <summary>The collidable the contact handler is attached to.</summary>
public SBepu.CollidableComponent? Source { get; init; } = Source;
/// <summary>The other collidable involved in the contact.</summary>
public SBepu.CollidableComponent? Other { get; init; } = Other;
/// <summary>The contact point in world space.</summary>
public Vector3 Point { get; init; } = Point;
/// <summary>The contact normal in world space, pointing away from the source.</summary>
public Vector3 Normal { get; init; } = Normal;
/// <summary>Penetration depth at the contact point.</summary>
public float Depth { get; init; } = Depth;
}
VVVV autogenerates a Split node for it which is nice but unfortunately that node does not show the documentation in the tooltips.
It works for other properties of the struct though.
I tried to “override” the autogenerated Split node by explicitly adding my own.
/// <summary>Splits the contact into its parts.</summary>
/// <param name="source">The collidable the contact handler is attached to.</param>
/// <param name="other">The other collidable involved in the contact.</param>
/// <param name="point">The contact point in world space.</param>
/// <param name="normal">The contact normal in world space, pointing away from the source.</param>
/// <param name="depth">Penetration depth at the contact point.</param>
public void Split(
out SBepu.CollidableComponent? source,
out SBepu.CollidableComponent? other,
out Vector3 point,
out Vector3 normal,
out float depth)
{
source = Source;
other = Other;
point = Point;
normal = Normal;
depth = Depth;
}
But this also does not work, the Nodebrowser no longer let’s me create the node. I guess because the autogenerated one and the one explicitly added have the same signature.
For now I’ve added some “dummy” parameter to the signature.
public void Split(
out SBepu.CollidableComponent? source,
out SBepu.CollidableComponent? other,
out Vector3 point,
out Vector3 normal,
out float depth,
[Pin(Visibility = PinVisibility.Hidden)] out ContactInfo contactInfo)
{
source = Source;
other = Other;
point = Point;
normal = Normal;
depth = Depth;
contactInfo = this;
}
}
Can the document feature be added to the autogenerated node (or a possibility to override it)?


