Add an alternate constructor for axis-aligned 2D grids
This commit is contained in:
parent
457d1fc2f9
commit
a713967911
@ -3,7 +3,7 @@
|
|||||||
instances of an object .
|
instances of an object .
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from typing import Union, Dict, Optional, Sequence, Any
|
from typing import Union, Dict, Optional, Sequence, Any, Type
|
||||||
import copy
|
import copy
|
||||||
from abc import ABCMeta, abstractmethod
|
from abc import ABCMeta, abstractmethod
|
||||||
|
|
||||||
@ -106,6 +106,28 @@ class Grid(LockableImpl, Repetition, metaclass=AutoSlots):
|
|||||||
self.b_count = b_count
|
self.b_count = b_count
|
||||||
self.locked = locked
|
self.locked = locked
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def aligned(
|
||||||
|
cls: Type,
|
||||||
|
x: float,
|
||||||
|
y: float,
|
||||||
|
x_count: int,
|
||||||
|
y_count: int,
|
||||||
|
) -> 'Grid':
|
||||||
|
"""
|
||||||
|
Simple constructor for an axis-aligned 2D grid
|
||||||
|
|
||||||
|
Args:
|
||||||
|
x: X-step
|
||||||
|
y: Y-step
|
||||||
|
x_count: count of columns
|
||||||
|
y_count: count of rows
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
An Grid instance with the requested values
|
||||||
|
"""
|
||||||
|
return cls(a_vector=(x, 0), b_vector=(0, y), a_count=x_count, b_count=y_count)
|
||||||
|
|
||||||
def __copy__(self) -> 'Grid':
|
def __copy__(self) -> 'Grid':
|
||||||
new = Grid(a_vector=self.a_vector.copy(),
|
new = Grid(a_vector=self.a_vector.copy(),
|
||||||
b_vector=copy.copy(self.b_vector),
|
b_vector=copy.copy(self.b_vector),
|
||||||
|
Loading…
Reference in New Issue
Block a user