solvespace/cython/python_solvespace/slvs.pyi

348 lines
7.7 KiB
Python
Raw Normal View History

2019-05-28 12:00:15 +00:00
# -*- coding: utf-8 -*-
from typing import Tuple, List, Counter
from enum import IntEnum, auto
def quaternion_u(
qw: float,
qx: float,
qy: float,
qz: float
) -> Tuple[float, float, float]:
...
def quaternion_v(
qw: float,
qx: float,
qy: float,
qz: float
) -> Tuple[float, float, float]:
...
def quaternion_n(
qw: float,
qx: float,
qy: float,
qz: float
) -> Tuple[float, float, float]:
...
def make_quaternion(
ux: float,
uy: float,
uz: float,
vx: float,
vy: float,
vz: float
) -> Tuple[float, float, float, float]:
...
class Constraint(IntEnum):
# Expose macro of constraint types
POINTS_COINCIDENT = 100000
PT_PT_DISTANCE = auto()
PT_PLANE_DISTANCE = auto()
PT_LINE_DISTANCE = auto()
PT_FACE_DISTANCE = auto()
PT_IN_PLANE = auto()
PT_ON_LINE = auto()
PT_ON_FACE = auto()
EQUAL_LENGTH_LINES = auto()
LENGTH_RATIO = auto()
EQ_LEN_PT_LINE_D = auto()
EQ_PT_LN_DISTANCES = auto()
EQUAL_ANGLE = auto()
EQUAL_LINE_ARC_LEN = auto()
SYMMETRIC = auto()
SYMMETRIC_HORIZ = auto()
SYMMETRIC_VERT = auto()
SYMMETRIC_LINE = auto()
AT_MIDPOINT = auto()
HORIZONTAL = auto()
VERTICAL = auto()
DIAMETER = auto()
PT_ON_CIRCLE = auto()
SAME_ORIENTATION = auto()
ANGLE = auto()
PARALLEL = auto()
PERPENDICULAR = auto()
ARC_LINE_TANGENT = auto()
CUBIC_LINE_TANGENT = auto()
EQUAL_RADIUS = auto()
PROJ_PT_DISTANCE = auto()
WHERE_DRAGGED = auto()
CURVE_CURVE_TANGENT = auto()
LENGTH_DIFFERENCE = auto()
class ResultFlag(IntEnum):
# Expose macro of result flags
OKAY = 0
INCONSISTENT = auto()
DIDNT_CONVERGE = auto()
TOO_MANY_UNKNOWNS = auto()
class Params:
def __repr__(self) -> str:
...
class Entity:
FREE_IN_3D: Entity
NONE: Entity
params: Params
def is_3d(self) -> bool:
...
def is_none(self) -> bool:
...
def is_point_2d(self) -> bool:
...
def is_point_3d(self) -> bool:
...
def is_point(self) -> bool:
...
def is_normal_2d(self) -> bool:
...
def is_normal_3d(self) -> bool:
...
def is_normal(self) -> bool:
...
def is_distance(self) -> bool:
...
def is_work_plane(self) -> bool:
...
def is_line_2d(self) -> bool:
...
def is_line_3d(self) -> bool:
...
def is_line(self) -> bool:
...
def is_cubic(self) -> bool:
...
def is_circle(self) -> bool:
...
def is_arc(self) -> bool:
...
def __repr__(self) -> str:
...
class SolverSystem:
def __init__(self):
...
def clear(self) -> None:
...
def set_group(self, g: int) -> None:
...
def group(self) -> int:
...
def params(self, p: Params) -> Tuple[float, ...]:
...
def dof(self) -> int:
...
def constraints(self) -> Counter[str]:
...
def faileds(self) -> List[int]:
...
def solve(self) -> ResultFlag:
...
def create_2d_base(self) -> Entity:
...
def add_point_2d(self, u: float, v: float, wp: Entity) -> Entity:
...
def add_point_3d(self, x: float, y: float, z: float) -> Entity:
...
def add_normal_2d(self, wp: Entity) -> Entity:
...
def add_normal_3d(self, qw: float, qx: float, qy: float, qz: float) -> Entity:
...
def add_distance(self, d: float, wp: Entity) -> Entity:
...
def add_line_2d(self, p1: Entity, p2: Entity, wp: Entity) -> Entity:
...
def add_line_3d(self, p1: Entity, p2: Entity) -> Entity:
...
def add_cubic(self, p1: Entity, p2: Entity, p3: Entity, p4: Entity, wp: Entity) -> Entity:
...
def add_arc(self, nm: Entity, ct: Entity, start: Entity, end: Entity, wp: Entity) -> Entity:
...
def add_circle(self, nm: Entity, ct: Entity, radius: Entity, wp: Entity) -> Entity:
...
def add_work_plane(self, origin: Entity, nm: Entity) -> Entity:
...
def add_constraint(
self,
c_type: Constraint,
wp: Entity,
v: float,
p1: Entity,
p2: Entity,
e1: Entity,
e2: Entity,
e3: Entity = Entity.NONE,
e4: Entity = Entity.NONE,
other: int = 0,
other2: int = 0
) -> None:
...
def coincident(self, e1: Entity, e2: Entity, wp: Entity = Entity.FREE_IN_3D) -> None:
"""Coincident two entities."""
...
def distance(
self,
e1: Entity,
e2: Entity,
value: float,
wp: Entity = Entity.FREE_IN_3D
) -> None:
"""Distance constraint between two entities."""
...
def equal(self, e1: Entity, e2: Entity, wp: Entity = Entity.FREE_IN_3D) -> None:
"""Equal constraint between two entities."""
...
def equal_included_angle(
self,
e1: Entity,
e2: Entity,
e3: Entity,
e4: Entity,
wp: Entity
) -> None:
"""Constraint that point 1 and line 1, point 2 and line 2
must have same distance.
"""
...
def equal_point_to_line(
self,
e1: Entity,
e2: Entity,
e3: Entity,
e4: Entity,
wp: Entity
) -> None:
"""Constraint that line 1 and line 2, line 3 and line 4
must have same included angle.
"""
...
def ratio(self, e1: Entity, e2: Entity, value: float, wp: Entity) -> None:
"""The ratio constraint between two lines."""
...
def symmetric(
self,
e1: Entity,
e2: Entity,
e3: Entity = Entity.NONE,
wp: Entity = Entity.FREE_IN_3D
) -> None:
"""Symmetric constraint between two points."""
...
def symmetric_h(self, e1: Entity, e2: Entity, wp: Entity) -> None:
"""Symmetric constraint between two points with horizontal line."""
...
def symmetric_v(self, e1: Entity, e2: Entity, wp: Entity) -> None:
"""Symmetric constraint between two points with vertical line."""
...
def midpoint(
self,
e1: Entity,
e2: Entity,
wp: Entity = Entity.FREE_IN_3D
) -> None:
"""Midpoint constraint between a point and a line."""
...
def horizontal(self, e1: Entity, wp: Entity) -> None:
"""Horizontal constraint of a 2d point."""
...
def vertical(self, e1: Entity, wp: Entity) -> None:
"""Vertical constraint of a 2d point."""
...
def diameter(self, e1: Entity, value: float, wp: Entity) -> None:
"""Diameter constraint of a circular entities."""
...
def same_orientation(self, e1: Entity, e2: Entity) -> None:
"""Equal orientation constraint between two 3d normals."""
...
def angle(self, e1: Entity, e2: Entity, value: float, wp: Entity, inverse: bool = False) -> None:
"""Degrees angle constraint between two 2d lines."""
...
def perpendicular(self, e1: Entity, e2: Entity, wp: Entity, inverse: bool = False) -> None:
"""Perpendicular constraint between two 2d lines."""
...
def parallel(self, e1: Entity, e2: Entity, wp: Entity = Entity.FREE_IN_3D) -> None:
"""Parallel constraint between two lines."""
...
def tangent(self, e1: Entity, e2: Entity, wp: Entity = Entity.FREE_IN_3D) -> None:
"""Parallel constraint between two entities."""
...
def distance_proj(self, e1: Entity, e2: Entity, value: float) -> None:
"""Projected distance constraint between two 3d points."""
...
def dragged(self, e1: Entity, wp: Entity = Entity.FREE_IN_3D) -> None:
"""Dragged constraint of a point."""
...