PackedFloat64Array
A packed array of 64-bit floating-point values.
PackedFloat64Array.swift:21class PackedFloat64Array
An array specifically designed to hold 64-bit floating-point values (double). Packs data tightly, so it saves memory for large array sizes.
If you only need to pack 32-bit floats tightly, see PackedFloat32Array
for a more memory-friendly alternative.
Differences between packed arrays, typed arrays, and untyped arrays: Packed arrays are generally faster to iterate on and modify compared to a typed array of the same type (e.g. PackedFloat64Array
versus Arrayfloat
). Also, packed arrays consume less memory. As a downside, packed arrays are less flexible as they don’t offer as many convenience methods such as Array/map(method:)
. Typed arrays are in turn faster to iterate on and modify than untyped arrays.
Citizens in SwiftGodot
Conformances
protocol BidirectionalCollection<Element>
A collection that supports backward as well as forward traversal.
protocol Collection<Element>
A sequence whose elements can be traversed multiple times, nondestructively, and accessed by an indexed subscript.
protocol ContentVariantRepresentable
Some of Godot’s builtin classes use ContentType for storage. This needs to be public because it affects their initialization, but SwiftGodot users should never need to conform their types to
ContentVariantRepresentable
.protocol Copyable
A type whose values can be implicitly or explicitly copied.
protocol Equatable
A type that can be compared for value equality.
protocol Escapable
protocol RandomAccessCollection<Element>
A collection that supports efficient random-access index traversal.
protocol Sequence<Element>
A type that provides sequential, iterated access to its elements.
protocol VariantRepresentable
Types that conform to VariantRepresentable can be stored directly in
Variant
with no conversion. These include all of the Variant types from Godot (for exampleGString
,Rect
,Plane
), Godot objects (those that subclass SwiftGodot.Object) as well as the built-in Swift types UInt8, Int64 and Double.protocol VariantStorable
Types that conform to VariantStorable can be stored in a Variant and can be extracted back out of a Variant.
Typealiases
Type members
init(
) Constructs an empty
PackedFloat64Array
.init([Double]
) Initializes a PackedByteArray from an array of Double values.
init(alreadyOwnedContent: ContentType
) init(content: ContentType
) init(from: PackedFloat64Array
) Constructs a
PackedFloat64Array
as a copy of the givenPackedFloat64Array
.init(from: GArray
) Constructs a new
PackedFloat64Array
. Optionally, you can pass in a genericGArray
that will be converted.static var godotType: Variant.GType
static let zero: ContentType
static func != (lhs: PackedFloat64Array, rhs: PackedFloat64Array
) -> Bool Returns
true
if contents of the arrays differ.static func + (lhs: PackedFloat64Array, rhs: PackedFloat64Array
) -> PackedFloat64Array Returns a new
PackedFloat64Array
with contents ofright
added at the end of this array. For better performance, consider usingappendArray(array:)
instead.static func == (lhs: PackedFloat64Array, rhs: PackedFloat64Array
) -> Bool Returns
true
if contents of both arrays are the same, i.e. they have all equal doubles at the corresponding indices.
Instance members
var content: ContentType
var count: Int
The number of elements in the array
var endIndex: Int
var startIndex: Int
subscript(Int
) -> Double Accesses a specific element in the
PackedFloat64Array
func append(Double
) -> Bool Appends an element at the end of the array (alias of
pushBack(value:)
).func appendArray(PackedFloat64Array
) Appends a
PackedFloat64Array
at the end of this array.func bsearch(value: Double, before: Bool
) -> Int64 Finds the index of an existing value (or the insertion index that maintains sorting order, if the value is not yet present in the array) using binary search. Optionally, a
before
specifier can be passed. Iffalse
, the returned index comes after all existing entries of the value in the array.func clear(
) Clears the array. This is equivalent to using
resize(newSize:)
with a size of0
.func count(value: Double
) -> Int64 Returns the number of times an element is in the array.
func duplicate(
) -> PackedFloat64Array Creates a copy of the array, and returns it.
func fill(value: Double
) Assigns the given value to all elements in the array. This can typically be used together with
resize(newSize:)
to create an array with a given size and initialized elements.func find(value: Double, from: Int64
) -> Int64 Searches the array for a value and returns its index or
-1
if not found. Optionally, the initial search index can be passed.func has(value: Double
) -> Bool Returns
true
if the array containsvalue
.func index(after: Int
) -> Int func index(before: Int
) -> Int func insert(atIndex: Int64, value: Double
) -> Int64 Inserts a new element at a given position in the array. The position must be valid, or at the end of the array (
idx == size()
).func isEmpty(
) -> Bool Returns
true
if the array is empty.func pushBack(value: Double
) -> Bool Appends an element at the end of the array.
func removeAt(index: Int64
) Removes an element from the array by index.
func resize(newSize: Int64
) -> Int64 Sets the size of the array. If the array is grown, reserves elements at the end of the array. If the array is shrunk, truncates the array to the new size. Calling
resize(newSize:)
once and assigning the new values is faster than adding new elements one by one.func reverse(
) Reverses the order of the elements in the array.
func rfind(value: Double, from: Int64
) -> Int64 Searches the array in reverse order. Optionally, a start search index can be passed. If negative, the start index is considered relative to the end of the array.
func set(index: Int64, value: Double
) Changes the float at the given index.
func size(
) -> Int64 Returns the number of elements in the array.
func slice(begin: Int64, end: Int64
) -> PackedFloat64Array Returns the slice of the
PackedFloat64Array
, frombegin
(inclusive) toend
(exclusive), as a newPackedFloat64Array
.func sort(
) Sorts the elements of the array in ascending order.
func toByteArray(
) -> PackedByteArray Returns a copy of the data converted to a
PackedByteArray
, where each element have been encoded as 8 bytes.
Show obsolete interfaces (1)
Hide obsolete interfaces
Type features
init?(Variant
) static func makeOrUnwrap(Variant
) -> Self? Unwraps an object from a variant.
static func makeOrUnwrap(Variant
) -> Self? Unwraps an object from a variant. This is useful when you want one method to call that will return the unwrapped Variant, regardless of whether it is a SwiftGodot.Object or not.
static func != (lhs: Self, rhs: Self
) -> Bool Returns a Boolean value indicating whether two values are not equal.
Instance features
var first: Self.Element?
The first element of the collection.
var isEmpty: Bool
A Boolean value indicating whether the collection is empty.
var last: Self.Element?
The last element of the collection.
var lazy: LazySequence<Self>
A sequence containing the same elements as this sequence, but on which some operations, such as
map
andfilter
, are implemented lazily.var underestimatedCount: Int
A value less than or equal to the number of elements in the collection.
func allSatisfy((Self.Element) throws -> Bool
) rethrows -> Bool Returns a Boolean value indicating whether every element of a sequence satisfies a given predicate.
func compactMap<ElementOfResult>((Self.Element) throws -> ElementOfResult?
) rethrows -> [ElementOfResult] Returns an array containing the non-
nil
results of calling the given transformation with each element of this sequence.func compare<Comparator>(Comparator.Compared, Comparator.Compared
) -> ComparisonResult If
lhs
is ordered beforerhs
in the ordering described by the given sequence ofSortComparator
sfunc contains(Self.Element
) -> Bool Returns a Boolean value indicating whether the sequence contains the given element.
func contains(where: (Self.Element) throws -> Bool
) rethrows -> Bool Returns a Boolean value indicating whether the sequence contains an element that satisfies the given predicate.
func count<E>(where: (Self.Element)
throws Returns the number of elements in the sequence that satisfy the given predicate.
func difference<C>(from: C
) -> CollectionDifference<Self.Element> Returns the difference needed to produce this collection’s ordered elements from the given collection.
func difference<C>(from: C, by: (C.Element, Self.Element) -> Bool
) -> CollectionDifference<Self.Element> Returns the difference needed to produce this collection’s ordered elements from the given collection, using the given predicate as an equivalence test.
func drop(while: (Self.Element) throws -> Bool
) rethrows -> Self.SubSequence Returns a subsequence by skipping elements while
predicate
returnstrue
and returning the remaining elements.func dropFirst(Int
) -> Self.SubSequence Returns a subsequence containing all but the given number of initial elements.
func dropLast(Int
) -> Self.SubSequence Returns a subsequence containing all but the specified number of final elements.
func elementsEqual<OtherSequence>(OtherSequence
) -> Bool Returns a Boolean value indicating whether this sequence and another sequence contain the same elements in the same order.
func elementsEqual<OtherSequence>(OtherSequence, by: (Self.Element, OtherSequence.Element) throws -> Bool
) rethrows -> Bool Returns a Boolean value indicating whether this sequence and another sequence contain equivalent elements in the same order, using the given predicate as the equivalence test.
func enumerated(
) -> EnumeratedSequence<Self> Returns a sequence of pairs (n, x), where n represents a consecutive integer starting at zero and x represents an element of the sequence.
func filter((Self.Element) throws -> Bool
) rethrows -> [Self.Element] Returns an array containing, in order, the elements of the sequence that satisfy the given predicate.
func filter(Predicate<Self.Element>
) throws -> [Self.Element] func first(where: (Self.Element) throws -> Bool
) rethrows -> Self.Element? Returns the first element of the sequence that satisfies the given predicate.
func firstIndex(of: Self.Element
) -> Self.Index? Returns the first index where the specified value appears in the collection.
func firstIndex(where: (Self.Element) throws -> Bool
) rethrows -> Self.Index? Returns the first index in which an element of the collection satisfies the given predicate.
func firstRange<C>(of: C
) -> Range<Self.Index>? Finds and returns the range of the first occurrence of a given collection within this collection.
func firstRange<C>(of: C
) -> Range<Self.Index>? Finds and returns the range of the first occurrence of a given collection within this collection.
func flatMap<SegmentOfResult>((Self.Element) throws -> SegmentOfResult
) rethrows -> [SegmentOfResult.Element] Returns an array containing the concatenated results of calling the given transformation with each element of this sequence.
func forEach((Self.Element) throws -> Void
) rethrows Calls the given closure on each element in the sequence in the same order as a
for
-in
loop.func formIndex(inout Self.Index, offsetBy: Int
) Offsets the given index by the specified distance.
func formIndex(inout Self.Index, offsetBy: Int, limitedBy: Self.Index
) -> Bool Offsets the given index by the specified distance, or so that it equals the given limiting index.
func formIndex(after: inout Self.Index
) Replaces the given index with its successor.
func formIndex(before: inout Self.Index
) func formatted<S>(S
) -> S.FormatOutput func index(Self.Index, offsetBy: Int, limitedBy: Self.Index
) -> Self.Index? Returns an index that is the specified distance from the given index, unless that distance is beyond a given limiting index.
func indices(of: Self.Element
) -> RangeSet<Self.Index> Returns the indices of all the elements that are equal to the given element.
func indices(where: (Self.Element) throws -> Bool
) rethrows -> RangeSet<Self.Index> Returns the indices of all the elements that match the given predicate.
func last(where: (Self.Element) throws -> Bool
) rethrows -> Self.Element? Returns the last element of the sequence that satisfies the given predicate.
func lastIndex(of: Self.Element
) -> Self.Index? Returns the last index where the specified value appears in the collection.
func lastIndex(where: (Self.Element) throws -> Bool
) rethrows -> Self.Index? Returns the index of the last element in the collection that matches the given predicate.
func lexicographicallyPrecedes<OtherSequence>(OtherSequence
) -> Bool Returns a Boolean value indicating whether the sequence precedes another sequence in a lexicographical (dictionary) ordering, using the less-than operator (
<
) to compare elements.func lexicographicallyPrecedes<OtherSequence>(OtherSequence, by: (Self.Element, Self.Element) throws -> Bool
) rethrows -> Bool Returns a Boolean value indicating whether the sequence precedes another sequence in a lexicographical (dictionary) ordering, using the given predicate to compare elements.
func makeIterator(
) -> IndexingIterator<Self> Returns an iterator over the elements of the collection.
func map<T, E>((Self.Element)
throws Returns an array containing the results of mapping the given closure over the sequence’s elements.
func map<T, E>((Self.Element)
throws Returns an array containing the results of mapping the given closure over the sequence’s elements.
func max(
) -> Self.Element? Returns the maximum element in the sequence.
func max(by: (Self.Element, Self.Element) throws -> Bool
) rethrows -> Self.Element? Returns the maximum element in the sequence, using the given predicate as the comparison between elements.
func min(
) -> Self.Element? Returns the minimum element in the sequence.
func min(by: (Self.Element, Self.Element) throws -> Bool
) rethrows -> Self.Element? Returns the minimum element in the sequence, using the given predicate as the comparison between elements.
func prefix(Int
) -> Self.SubSequence Returns a subsequence, up to the specified maximum length, containing the initial elements of the collection.
func prefix(through: Self.Index
) -> Self.SubSequence Returns a subsequence from the start of the collection through the specified position.
func prefix(upTo: Self.Index
) -> Self.SubSequence Returns a subsequence from the start of the collection up to, but not including, the specified position.
func prefix(while: (Self.Element) throws -> Bool
) rethrows -> Self.SubSequence Returns a subsequence containing the initial elements until
predicate
returnsfalse
and skipping the remaining elements.func randomElement(
) -> Self.Element? Returns a random element of the collection.
func randomElement<T>(using: inout T
) -> Self.Element? Returns a random element of the collection, using the given generator as a source for randomness.
func ranges<C>(of: C
) -> [Range<Self.Index>] Finds and returns the ranges of the all occurrences of a given sequence within the collection.
func reduce<Result>(Result, (Result, Self.Element) throws -> Result
) rethrows -> Result Returns the result of combining the elements of the sequence using the given closure.
func reduce<Result>(into: Result, (inout Result, Self.Element) throws -> ()
) rethrows -> Result Returns the result of combining the elements of the sequence using the given closure.
func removingSubranges(RangeSet<Self.Index>
) -> DiscontiguousSlice<Self> Returns a collection of the elements in this collection that are not represented by the given range set.
func reversed(
) -> ReversedCollection<Self> Returns a view presenting the elements of the collection in reverse order.
func shuffled(
) -> [Self.Element] Returns the elements of the sequence, shuffled.
func shuffled<T>(using: inout T
) -> [Self.Element] Returns the elements of the sequence, shuffled using the given generator as a source for randomness.
func sorted(
) -> [Self.Element] Returns the elements of the sequence, sorted.
func sorted(by: (Self.Element, Self.Element) throws -> Bool
) rethrows -> [Self.Element] Returns the elements of the sequence, sorted using the given predicate as the comparison between elements.
func sorted<Comparator>(using: Comparator
) -> [Self.Element] Returns the elements of the sequence, sorted using the given comparator to compare elements.
func sorted<S, Comparator>(using: S
) -> [Self.Element] Returns the elements of the sequence, sorted using the given array of
SortComparator
s to compare elements.func split(maxSplits: Int, omittingEmptySubsequences: Bool, whereSeparator: (Self.Element) throws -> Bool
) rethrows -> [Self.SubSequence] Returns the longest possible subsequences of the collection, in order, that don’t contain elements satisfying the given predicate.
func split(separator: Self.Element, maxSplits: Int, omittingEmptySubsequences: Bool
) -> [Self.SubSequence] Returns the longest possible subsequences of the collection, in order, around elements equal to the given element.
func starts<PossiblePrefix>(with: PossiblePrefix
) -> Bool Returns a Boolean value indicating whether the initial elements of the sequence are the same as the elements in another sequence.
func starts<PossiblePrefix>(with: PossiblePrefix, by: (Self.Element, PossiblePrefix.Element) throws -> Bool
) rethrows -> Bool Returns a Boolean value indicating whether the initial elements of the sequence are equivalent to the elements in another sequence, using the given predicate as the equivalence test.
func suffix(Int
) -> Self.SubSequence Returns a subsequence, up to the given maximum length, containing the final elements of the collection.
func suffix(from: Self.Index
) -> Self.SubSequence Returns a subsequence from the specified position to the end of the collection.
func toVariantRepresentable(
) -> Self func trimmingPrefix<Prefix>(Prefix
) -> Self.SubSequence Returns a new collection of the same type by removing
prefix
from the start of the collection.func trimmingPrefix(while: (Self.Element) throws -> Bool
) rethrows -> Self.SubSequence func withContiguousStorageIfAvailable<R>((UnsafeBufferPointer<Self.Element>) throws -> R
) rethrows -> R?
Show obsolete interfaces (2)
Hide obsolete interfaces
func flatMap<ElementOfResult>((Self.Element) throws -> ElementOfResult?
) rethrows -> [ElementOfResult] func index(of: Self.Element
) -> Self.Index? Returns the first index where the specified value appears in the collection.