MarkerBatchPrimitiveSet Method (IEnumerableCartesian, MarkerBatchPrimitiveOptionalParameters) |
Namespace: AGI.Foundation.Graphics
public void Set( IEnumerable<Cartesian> positions, MarkerBatchPrimitiveOptionalParameters optionalParameters )
Exception | Condition |
---|---|
ArgumentNullException | positions is null. |
ArgumentException | Each per-marker parameter in optionalParameters must have the same number of elements as positions. |
ArgumentException | Cannot provide per-marker sizes because the marker batch was not constructed with MarkerBatchSizeSource.UserDefined. |
CouldNotCreateVideoCardResourceException | Could not allocate video memory for positions. |
This call overwrites the primitive's previous markers. To update a subset of markers, use SetPartial(IEnumerableCartesian, IEnumerableInt32).
When a per-marker parameter is not specified in optionalParameters, its corresponding per-batch value is used. For example, if optionalParameters did not have a texture array defined with MarkerBatchPrimitiveOptionalParameters.SetTextures, each marker uses the batch's Texture.
If this method is called frequently, it is recommended to construct the primitive with Frequent, which is the default. If this method will be called only once or infrequently, construct the primitive with Infrequent. See the Set Hint topic for more information.
If the primitive's AutomaticallyComputeBoundingSphere property is , the primitive's BoundingSphere is computed based on positions. Otherwise, it is the caller's responsibility to update the primitive's BoundingSphere to a sphere that encompasses all the positions.