Bezier2Segment.st
author Claus Gittinger <cg@exept.de>
Sat, 02 May 2020 21:40:13 +0200
changeset 5476 7355a4b11cb6
parent 1303 6ca5f36cdc63
permissions -rw-r--r--
#FEATURE by cg class: Socket class added: #newTCPclientToHost:port:domain:domainOrder:withTimeout: changed: #newTCPclientToHost:port:domain:withTimeout:
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1303
6ca5f36cdc63 category
Claus Gittinger <cg@exept.de>
parents: 765
diff changeset
     1
"{ Package: 'stx:libbasic2' }"
6ca5f36cdc63 category
Claus Gittinger <cg@exept.de>
parents: 765
diff changeset
     2
763
765361446bb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
LineSegment subclass:#Bezier2Segment
765361446bb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
	instanceVariableNames:'via'
765361446bb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
	classVariableNames:''
765361446bb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	poolDictionaries:''
1303
6ca5f36cdc63 category
Claus Gittinger <cg@exept.de>
parents: 765
diff changeset
     7
	category:'Graphics-Geometry-Objects'
763
765361446bb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
!
765361446bb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
765
dec594969fd9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
    10
!Bezier2Segment class methodsFor:'documentation'!
dec594969fd9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
    11
dec594969fd9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
    12
documentation
dec594969fd9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
    13
"
dec594969fd9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
    14
    borrowed from Squeak2.4
dec594969fd9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
    15
dec594969fd9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
    16
    This class represents a quadratic bezier segment between two points
dec594969fd9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
    17
dec594969fd9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
    18
    Instance variables:
dec594969fd9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
    19
        via             <Point> The additional control point (OFF the curve)
dec594969fd9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
    20
"
dec594969fd9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
    21
! !
763
765361446bb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
765361446bb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
!Bezier2Segment class methodsFor:'instance creation'!
765361446bb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
765361446bb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
from:startPoint via:viaPoint to:endPoint 
765361446bb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
    ^ self new from:startPoint to:endPoint via:viaPoint
765361446bb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
765361446bb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
! !
765361446bb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
765361446bb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
!Bezier2Segment methodsFor:'accessing'!
765361446bb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
765361446bb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
via
765361446bb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
    "Return the control point"
765361446bb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
    ^ via
765361446bb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
765361446bb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
! !
765361446bb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
765361446bb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
!Bezier2Segment methodsFor:'initialization'!
765361446bb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
765361446bb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
from:start to:end
765361446bb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
    "Initialize the receiver as straight line"
765361446bb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
765361446bb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
    startPoint := start.
765361446bb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
    endPoint := end.
765361446bb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
    via := (start + end) // 2.
765361446bb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
765361446bb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
!
765361446bb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
765361446bb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
from:start to:end via:viaPoint
765361446bb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
    "Initialize the receiver"
765361446bb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
765361446bb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
    startPoint := start.
765361446bb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
    endPoint := end.
765361446bb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
    via := viaPoint.
765361446bb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
! !
765361446bb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
765361446bb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
!Bezier2Segment methodsFor:'testing'!
765361446bb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
765361446bb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
isBezier2Segment
765361446bb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
    "return true, if the receiver is a quadratic bezier segment"
765361446bb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
765361446bb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
    ^ true
765361446bb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
765361446bb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
765361446bb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
! !
765361446bb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
765361446bb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
!Bezier2Segment class methodsFor:'documentation'!
765361446bb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
765361446bb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
version
1303
6ca5f36cdc63 category
Claus Gittinger <cg@exept.de>
parents: 765
diff changeset
    70
    ^ '$Header: /cvs/stx/stx/libbasic2/Bezier2Segment.st,v 1.3 2003-08-29 17:32:22 cg Exp $'
763
765361446bb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
! !