Class: Layout::Style
| Relationships | |
| Inherits: | Object |
Overview
References a collection of style attributes that determine the visual appearance of Entity
s. Style
attributes are those attributes which the user can manipulate in LayOut’s inspector windows. For example, shape style attributes that define stroke and fill, or text style attributes that define the font for FormattedText
. The Document
maintains a default style for various types of Entity
s, and it is possible to apply the style of one entity to another. Style
objects are transient and do not belong to a Document
.
Constant Summary
-
ALIGN_CENTER =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 18
Constants
nil
-
ALIGN_LEFT =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 19
Stub value.
nil
-
ALIGN_RIGHT =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 20
Stub value.
nil
-
ANCHOR_BOTTOM =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 22
Stub value.
nil
-
ANCHOR_CENTER =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 23
Stub value.
nil
-
ANCHOR_TOP =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 24
Stub value.
nil
-
ARCHITECTURAL_INCHES =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 26
Stub value.
nil
-
ARROW_FILLED_CIRCLE =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 28
Stub value.
nil
-
ARROW_FILLED_DIAMOND =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 29
Stub value.
nil
-
ARROW_FILLED_SKINNY_TRIANGLE =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 30
Stub value.
nil
-
ARROW_FILLED_SQUARE =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 31
Stub value.
nil
-
ARROW_FILLED_TRIANGLE =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 32
Stub value.
nil
-
ARROW_NONE =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 33
Stub value.
nil
-
ARROW_OPEN_ARROW_120 =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 34
Stub value.
nil
-
ARROW_OPEN_ARROW_90 =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 35
Stub value.
nil
-
ARROW_OPEN_CIRCLE =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 36
Stub value.
nil
-
ARROW_OPEN_DIAMOND =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 37
Stub value.
nil
-
ARROW_OPEN_SKINNY_TRIANGLE =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 38
Stub value.
nil
-
ARROW_OPEN_SQUARE =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 39
Stub value.
nil
-
ARROW_OPEN_TRIANGLE =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 40
Stub value.
nil
-
ARROW_OVERRUN =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 41
Stub value.
nil
-
ARROW_SLASH_LEFT =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 42
Stub value.
nil
-
ARROW_SLASH_RIGHT =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 43
Stub value.
nil
-
ARROW_STAR =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 44
Stub value.
nil
-
ARROW_T =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 45
Stub value.
nil
-
ARROW_UNDERRUN =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 46
Stub value.
nil
-
CAP_STYLE_FLAT =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 48
Stub value.
nil
-
CAP_STYLE_ROUND =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 49
Stub value.
nil
-
CAP_STYLE_SQUARE =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 50
Stub value.
nil
-
DECIMAL_CENTIMETERS =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 61
Stub value.
nil
-
DECIMAL_FEET =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 62
Stub value.
nil
-
DECIMAL_INCHES =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 63
Stub value.
nil
-
DECIMAL_METERS =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 64
Stub value.
nil
-
DECIMAL_MILLIMETERS =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 65
Stub value.
nil
-
DECIMAL_POINTS =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 66
Stub value.
nil
-
DEGREES =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 68
Stub value.
nil
-
DIMENSION_END_EXTENSION_LINE =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 70
Stub value.
nil
-
DIMENSION_LEADER_LINE =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 71
Stub value.
nil
-
DIMENSION_LINE =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 72
Stub value.
nil
-
DIMENSION_START_EXTENSION_LINE =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 73
Stub value.
nil
-
DIMENSION_TEXT =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 74
Stub value.
nil
-
DIMENSION_TEXT_ABOVE =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 52
Stub value.
nil
-
DIMENSION_TEXT_BELOW =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 53
Stub value.
nil
-
DIMENSION_TEXT_CENTER =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 54
Stub value.
nil
-
DIMENSION_TEXT_HORIZONTAL =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 55
Stub value.
nil
-
DIMENSION_TEXT_OFFSET =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 56
Stub value.
nil
-
DIMENSION_TEXT_PARALLEL =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 57
Stub value.
nil
-
DIMENSION_TEXT_PERPENDICULAR =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 58
Stub value.
nil
-
DIMENSION_TEXT_VERTICAL =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 59
Stub value.
nil
-
ENGINEERING_FEET =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 76
Stub value.
nil
-
FRACTIONAL_INCHES =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 78
Stub value.
nil
-
JOIN_STYLE_BEVEL =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 80
Stub value.
nil
-
JOIN_STYLE_MITER =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 81
Stub value.
nil
-
JOIN_STYLE_ROUND =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 82
Stub value.
nil
-
LABEL_LEADER_LINE =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 84
Stub value.
nil
-
LABEL_TEXT =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 85
Stub value.
nil
-
NORMAL_SCRIPT =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 87
Stub value.
nil
-
RADIANS =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 89
Stub value.
nil
-
STROKE_PATTERN_CENTER =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 91
Stub value.
nil
-
STROKE_PATTERN_DASH =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 92
Stub value.
nil
-
STROKE_PATTERN_DASH_DASH_DOT =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 93
Stub value.
nil
-
STROKE_PATTERN_DASH_DASH_DOT_DOT =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 94
Stub value.
nil
-
STROKE_PATTERN_DASH_DASH_DOT_DOT_DOT =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 95
Stub value.
nil
-
STROKE_PATTERN_DASH_DOT =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 96
Stub value.
nil
-
STROKE_PATTERN_DASH_DOT_DOT =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 97
Stub value.
nil
-
STROKE_PATTERN_DASH_DOT_DOT_DOT =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 98
Stub value.
nil
-
STROKE_PATTERN_DASH_SPACE =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 99
Stub value.
nil
-
STROKE_PATTERN_DOT =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 100
Stub value.
nil
-
STROKE_PATTERN_PHANTOM =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 101
Stub value.
nil
-
STROKE_PATTERN_SHORT_DASH =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 102
Stub value.
nil
-
STROKE_PATTERN_SOLID =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 103
Stub value.
nil
-
SUB_SCRIPT =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 107
Stub value.
nil
-
SUPER_SCRIPT =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 105
Stub value.
nil
-
UNDERLINE_DOUBLE =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 109
Stub value.
nil
-
UNDERLINE_NONE =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 110
Stub value.
nil
-
UNDERLINE_SINGLE =
# File 'lib/sketchup-api-stubs/stubs/Layout/Style.rb', line 111
Stub value.
nil
Class Method Summary
-
.arrow_type_filled?(arrow_type) ⇒ Boolean
The .arrow_type_filled? method returns whether the specified arrow type is filled or not.
-
.new ⇒ Layout::Style
constructor
The
#initialize
method creates a newStyle
.
Instance Attribute Summary
-
#dimension_rotation_alignment ⇒ Integer?
rw
The #dimension_rotation_alignment method returns the rotational text alignment for
LinearDimension
text, ornil
if theStyle
does not have a value for that setting. -
#dimension_rotation_alignment=(alignment_type)
rw
The #dimension_rotation_alignment= method sets the rotational text alignment.
-
#dimension_vertical_alignment ⇒ Integer?
rw
The #dimension_vertical_alignment method returns the vertical text alignment for
LinearDimension
text, ornil
if theStyle
does not have a value for that setting. -
#dimension_vertical_alignment=(alignment_type)
rw
The #dimension_vertical_alignment= method sets the vertical text alignment for
LinearDimension
text. -
#end_arrow_size ⇒ Float?
rw
The #end_arrow_size method returns the size of the end arrow, or
nil
if theStyle
does not have a value for that setting. -
#end_arrow_size=(arrow_size)
rw
The #end_arrow_size= method sets the size of the end arrow.
-
#end_arrow_type ⇒ Integer?
rw
The #end_arrow_type method returns the type of end arrow, or
nil
if theStyle
does not have a value for that setting. -
#end_arrow_type=(arrow_type)
rw
The #end_arrow_type= method sets the type of end arrow.
-
#fill_color ⇒ Sketchup::Color?
rw
The #fill_color method returns the solid file color, or
nil
if theStyle
does not have a value for that setting. -
#fill_color=(fill_color)
rw
The #fill_color= method sets the solid fill color.
-
#font_family ⇒ String?
rw
The #font_family method returns the text font name, or
nil
if theStyle
does not have a value for that setting. -
#font_family=(font_family)
rw
The #font_family= method sets the text font name.
-
#font_size ⇒ Float?
rw
The #font_size method returns the font size, or
nil
if theStyle
does not have a value for that setting. -
#font_size=(font_size)
rw
The #font_size= method sets the font size.
-
#pattern_fill_origin ⇒ Geom::Point2d?
rw
The #pattern_fill_origin method returns the starting piont for the pattern fill, or
nil
if theStyle
does not have a value for that setting. -
#pattern_fill_origin=(origin)
rw
The #pattern_fill_origin= method sets the starting point for the pattern fill.
-
#pattern_fill_path ⇒ String?
rw
The #pattern_fill_path method returns the file path to the pattern fill image, or
nil
if theStyle
does not have a value for that setting. -
#pattern_fill_path=(path)
rw
The #pattern_fill_path= method sets the path to the image to use for the pattern fill.
-
#pattern_fill_rotation ⇒ Float?
rw
The #pattern_fill_rotation method returns the rotation of the pattern fill image in degrees, or
nil
if theStyle
does not have a value for that setting. -
#pattern_fill_rotation=(rotation)
rw
The #pattern_fill_rotation= method sets the rotation in degrees of the pattern fill image.
-
#pattern_fill_scale ⇒ Float?
rw
The #pattern_fill_scale method returns the pattern fill scale, or
nil
if theStyle
does not have a value for that setting. -
#pattern_fill_scale=(scale)
rw
The #pattern_fill_scale= method sets the pattern fill scale.
-
#pattern_filled ⇒ Boolean?
rw
The #pattern_filled method returns whether the
Style
has a pattern fill, ornil
if theStyle
does not have a value for that setting. -
#pattern_filled=(filled)
rw
The #pattern_filled= method sets whether the
Style
has a pattern fill. -
#solid_filled ⇒ Boolean?
rw
The #solid_filled method returns whether the
Style
has a solid fill, ornil
if theStyle
does not have a value for that setting. -
#solid_filled=(filled)
rw
The #solid_filled= method sets whether the
Style
has a solid fill. -
#start_arrow_size ⇒ Float?
rw
The #start_arrow_size method returns the size of the start arrow, or
nil
if theStyle
does not have a value for that setting. -
#start_arrow_size=(arrow_size)
rw
The #start_arrow_size= method sets the size of the start arrow.
-
#start_arrow_type ⇒ Integer?
rw
The #start_arrow_type method returns the type of start arrow, or
nil
if theStyle
does not have a value for that setting. -
#start_arrow_type=(arrow_type)
rw
The #start_arrow_type= method sets the type of start arrow.
-
#stroke_cap_style ⇒ Integer?
rw
The #stroke_cap_style method returns the stroke cap style, or
nil
if theStyle
does not have a value for that setting. -
#stroke_cap_style=(cap_style)
rw
The #stroke_cap_style= method sets the stroke cap style.
-
#stroke_color ⇒ Sketchup::Color?
rw
The #stroke_color method returns the stroke color, or
nil
if theStyle
does not have a value for that setting. -
#stroke_color=(stroke_color)
rw
The #stroke_color= method sets the stroke color.
-
#stroke_join_style ⇒ Integer?
rw
The #stroke_join_style method returns the stroke join style, or
nil
if theStyle
does not have a value for that setting. -
#stroke_join_style=(join_style)
rw
The #stroke_join_style= method sets the stroke join style.
-
#stroke_pattern ⇒ Integer?
rw
The #stroke_pattern method returns the stroke pattern, or
nil
if theStyle
does not have a value for that setting. -
#stroke_pattern=(pattern)
rw
The #stroke_pattern= method sets the stroke pattern.
-
#stroke_pattern_scale ⇒ Float?
rw
The #stroke_pattern_scale method returns the stroke pattern scale, or
nil
if theStyle
does not have a value for that setting. -
#stroke_pattern_scale=(scale)
rw
The #stroke_pattern_scale= method sets the stroke pattern scale.
-
#stroke_width ⇒ Float?
rw
The #stroke_width method returns the stroke width, or
nil
if theStyle
does not have a value for that setting. -
#stroke_width=(stroke_width)
rw
The #stroke_width= method sets the stroke width.
-
#stroked ⇒ Boolean?
rw
The #stroked method returns whether the
Style
has a stroke, ornil
if theStyle
does not have a value for that setting. -
#stroked=(stroked)
rw
The #stroked= method sets whether the
Style
has a stroke. -
#suppress_dimension_units ⇒ Boolean?
rw
The #suppress_dimension_units method returns whether the units for dimensions are suppressed, or
nil
if theStyle
does not have a value for that setting. -
#suppress_dimension_units=(suppress)
rw
The #suppress_dimension_units= method sets whether the units for dimensions are suppressed.
-
#text_alignment ⇒ Integer?
rw
The #text_alignment method returns the text alignment, or
nil
if theStyle
does not have a value for that setting. -
#text_alignment=(alignment_type)
rw
The #text_alignment= method sets the text alignment.
-
#text_anchor ⇒ Integer?
rw
The #text_anchor method returns the text anchor type, or
nil
if theStyle
does not have a value for that setting. -
#text_anchor=(anchor_type)
rw
The #text_anchor= method sets the text anchor type.
-
#text_bold ⇒ Boolean?
rw
The #text_bold method returns whether text is bold, or
nil
if theStyle
does not have a value for that setting. -
#text_bold=(bold)
rw
The #text_bold= method sets whether text is bold.
-
#text_color ⇒ Sketchup::Color?
rw
The #text_color method returns the text color, or
nil
if theStyle
does not have a value for that setting. -
#text_color=(color)
rw
The #text_color= method sets the text color.
-
#text_elevation ⇒ Integer?
rw
The #text_elevation method returns the text elevation, or
nil
if theStyle
does not have a value for that setting. -
#text_elevation=(elevation_type)
rw
The #text_elevation= method sets the text elevation.
-
#text_italic ⇒ Boolean?
rw
The #text_italic method returns whether text is italic, or
nil
if theStyle
does not have a value for that setting. -
#text_italic=(italic)
rw
The #text_italic= method sets whether text is italic.
-
#text_underline ⇒ Integer?
rw
The #text_underline method returns the text underline type, or
nil
if theStyle
does not have a value for that setting. -
#text_underline=(underline_type)
rw
The #text_underline= method sets the text underline type.
Instance Method Summary
-
#dimension_units ⇒ Array(Integer, Float)?
The #dimension_units method returns the unit format and precision for dimensions, or
nil
if theStyle
does not have a value for that setting. -
#get_sub_style(type) ⇒ Layout::Style
The #get_sub_style method returns the
Style
for a sub-entity from theStyle
. -
#set_dimension_units(units, precision)
The #set_dimension_units method sets the unit format and precision for dimensions.
-
#set_sub_style(type, sub_style)
The #set_sub_style method adds a
Style
to apply to aEntity
‘s sub-entity.
Constructor Details
.new ⇒ Style
The #initialize
method creates a new Style
.
Class Method Details
.arrow_type_filled?(arrow_type) ⇒ Boolean
The .arrow_type_filled?
method returns whether the specified arrow type is filled or not.
The arrow type can be one of the following values:
Layout::Style::ARROW_NONE
Layout::Style::ARROW_FILLED_TRIANGLE
Layout::Style::ARROW_OPEN_TRIANGLE
Layout::Style::ARROW_FILLED_SKINNY_TRIANGLE
Layout::Style::ARROW_OPEN_SKINNY_TRIANGLE
Layout::Style::ARROW_OPEN_ARROW_90
Layout::Style::ARROW_OPEN_ARROW_120
Layout::Style::ARROW_FILLED_CIRCLE
Layout::Style::ARROW_OPEN_CIRCLE
Layout::Style::ARROW_FILLED_SQUARE
Layout::Style::ARROW_OPEN_SQUARE
Layout::Style::ARROW_FILLED_DIAMOND
Layout::Style::ARROW_OPEN_DIAMOND
Layout::Style::ARROW_STAR
Layout::Style::ARROW_T
Layout::Style::ARROW_SLASH_RIGHT
Layout::Style::ARROW_SLASH_LEFT
Layout::Style::ARROW_UNDERRUN
Layout::Style::ARROW_OVERRUN
Instance Attribute Details
#dimension_rotation_alignment ⇒ Integer
? (rw)
The #dimension_rotation_alignment
method returns the rotational text alignment for LinearDimension
text, or nil
if the Style
does not have a value for that setting.
The rotational alignment type can be one of the following values:
Layout::Style::DIMENSION_TEXT_HORIZONTAL
Layout::Style::DIMENSION_TEXT_VERTICAL
Layout::Style::DIMENSION_TEXT_PARALLEL
Layout::Style::DIMENSION_TEXT_PERPENDICULAR
#dimension_rotation_alignment=(alignment_type) (rw)
The #dimension_rotation_alignment=
method sets the rotational text alignment.
The rotational alignment type can be one of the following values:
Layout::Style::DIMENSION_TEXT_HORIZONTAL
Layout::Style::DIMENSION_TEXT_VERTICAL
Layout::Style::DIMENSION_TEXT_PARALLEL
Layout::Style::DIMENSION_TEXT_PERPENDICULAR
#dimension_vertical_alignment ⇒ Integer
? (rw)
The #dimension_vertical_alignment
method returns the vertical text alignment for LinearDimension
text, or nil
if the Style
does not have a value for that setting.
The vertical alignment type can be one of the following values:
Layout::Style::DIMENSION_TEXT_ABOVE
Layout::Style::DIMENSION_TEXT_CENTER
Layout::Style::DIMENSION_TEXT_BELOW
Layout::Style::DIMENSION_TEXT_OFFSET
#dimension_vertical_alignment=(alignment_type) (rw)
The #dimension_vertical_alignment=
method sets the vertical text alignment for LinearDimension
text.
The vertical alignment type can be one of the following values:
Layout::Style::DIMENSION_TEXT_ABOVE
Layout::Style::DIMENSION_TEXT_CENTER
Layout::Style::DIMENSION_TEXT_BELOW
Layout::Style::DIMENSION_TEXT_OFFSET
#end_arrow_size ⇒ Float
? (rw)
The #end_arrow_size
method returns the size of the end arrow, or nil
if the Style
does not have a value for that setting.
#end_arrow_size=(arrow_size) (rw)
The #end_arrow_size=
method sets the size of the end arrow. The minimum size is 0.25.
#end_arrow_type ⇒ Integer
? (rw)
The #end_arrow_type
method returns the type of end arrow, or nil
if the Style
does not have a value for that setting.
The arrow type can be one of the following values:
Layout::Style::ARROW_NONE
Layout::Style::ARROW_FILLED_TRIANGLE
Layout::Style::ARROW_OPEN_TRIANGLE
Layout::Style::ARROW_FILLED_SKINNY_TRIANGLE
Layout::Style::ARROW_OPEN_SKINNY_TRIANGLE
Layout::Style::ARROW_OPEN_ARROW_90
Layout::Style::ARROW_OPEN_ARROW_120
Layout::Style::ARROW_FILLED_CIRCLE
Layout::Style::ARROW_OPEN_CIRCLE
Layout::Style::ARROW_FILLED_SQUARE
Layout::Style::ARROW_OPEN_SQUARE
Layout::Style::ARROW_FILLED_DIAMOND
Layout::Style::ARROW_OPEN_DIAMOND
Layout::Style::ARROW_STAR
Layout::Style::ARROW_T
Layout::Style::ARROW_SLASH_RIGHT
Layout::Style::ARROW_SLASH_LEFT
Layout::Style::ARROW_UNDERRUN
Layout::Style::ARROW_OVERRUN
#end_arrow_type=(arrow_type) (rw)
The #end_arrow_type=
method sets the type of end arrow.
The arrow type can be one of the following values:
Layout::Style::ARROW_NONE
Layout::Style::ARROW_FILLED_TRIANGLE
Layout::Style::ARROW_OPEN_TRIANGLE
Layout::Style::ARROW_FILLED_SKINNY_TRIANGLE
Layout::Style::ARROW_OPEN_SKINNY_TRIANGLE
Layout::Style::ARROW_OPEN_ARROW_90
Layout::Style::ARROW_OPEN_ARROW_120
Layout::Style::ARROW_FILLED_CIRCLE
Layout::Style::ARROW_OPEN_CIRCLE
Layout::Style::ARROW_FILLED_SQUARE
Layout::Style::ARROW_OPEN_SQUARE
Layout::Style::ARROW_FILLED_DIAMOND
Layout::Style::ARROW_OPEN_DIAMOND
Layout::Style::ARROW_STAR
Layout::Style::ARROW_T
Layout::Style::ARROW_SLASH_RIGHT
Layout::Style::ARROW_SLASH_LEFT
Layout::Style::ARROW_UNDERRUN
Layout::Style::ARROW_OVERRUN
#fill_color ⇒ Sketchup::Color? (rw)
The #fill_color
method returns the solid file color, or nil
if the Style
does not have a value for that setting.
#fill_color=(fill_color) (rw)
The #fill_color=
method sets the solid fill color.
#font_family ⇒ String? (rw)
The #font_family
method returns the text font name, or nil
if the Style
does not have a value for that setting.
#font_family=(font_family) (rw)
The #font_family=
method sets the text font name.
#font_size ⇒ Float
? (rw)
The #font_size
method returns the font size, or nil
if the Style
does not have a value for that setting.
#font_size=(font_size) (rw)
The #font_size=
method sets the font size.
#pattern_fill_origin ⇒ Geom::Point2d? (rw)
The #pattern_fill_origin
method returns the starting piont for the pattern fill, or nil
if the Style
does not have a value for that setting.
#pattern_fill_origin=(origin) (rw)
The #pattern_fill_origin=
method sets the starting point for the pattern fill.
#pattern_fill_path ⇒ String? (rw)
The #pattern_fill_path
method returns the file path to the pattern fill image, or nil
if the Style
does not have a value for that setting.
#pattern_fill_path=(path) (rw)
The #pattern_fill_path=
method sets the path to the image to use for the pattern fill.
#pattern_fill_rotation ⇒ Float
? (rw)
The #pattern_fill_rotation
method returns the rotation of the pattern fill image in degrees, or nil
if the Style
does not have a value for that setting.
#pattern_fill_rotation=(rotation) (rw)
The #pattern_fill_rotation=
method sets the rotation in degrees of the pattern fill image.
#pattern_fill_scale ⇒ Float
? (rw)
The #pattern_fill_scale
method returns the pattern fill scale, or nil
if the Style
does not have a value for that setting.
#pattern_fill_scale=(scale) (rw)
The #pattern_fill_scale=
method sets the pattern fill scale.
#pattern_filled ⇒ Boolean
? (rw)
The #pattern_filled
method returns whether the Style
has a pattern fill, or nil
if the Style
does not have a value for that setting.
#pattern_filled=(filled) (rw)
The #pattern_filled=
method sets whether the Style
has a pattern fill.
#solid_filled ⇒ Boolean
? (rw)
The #solid_filled
method returns whether the Style
has a solid fill, or nil
if the Style
does not have a value for that setting.
#solid_filled=(filled) (rw)
The #solid_filled=
method sets whether the Style
has a solid fill.
#start_arrow_size ⇒ Float
? (rw)
The #start_arrow_size
method returns the size of the start arrow, or nil
if the Style
does not have a value for that setting.
#start_arrow_size=(arrow_size) (rw)
The #start_arrow_size=
method sets the size of the start arrow. The minimum size is 0.25.
#start_arrow_type ⇒ Integer
? (rw)
The #start_arrow_type
method returns the type of start arrow, or nil
if the Style
does not have a value for that setting.
The arrow type can be one of the following values:
Layout::Style::ARROW_NONE
Layout::Style::ARROW_FILLED_TRIANGLE
Layout::Style::ARROW_OPEN_TRIANGLE
Layout::Style::ARROW_FILLED_SKINNY_TRIANGLE
Layout::Style::ARROW_OPEN_SKINNY_TRIANGLE
Layout::Style::ARROW_OPEN_ARROW_90
Layout::Style::ARROW_OPEN_ARROW_120
Layout::Style::ARROW_FILLED_CIRCLE
Layout::Style::ARROW_OPEN_CIRCLE
Layout::Style::ARROW_FILLED_SQUARE
Layout::Style::ARROW_OPEN_SQUARE
Layout::Style::ARROW_FILLED_DIAMOND
Layout::Style::ARROW_OPEN_DIAMOND
Layout::Style::ARROW_STAR
Layout::Style::ARROW_T
Layout::Style::ARROW_SLASH_RIGHT
Layout::Style::ARROW_SLASH_LEFT
Layout::Style::ARROW_UNDERRUN
Layout::Style::ARROW_OVERRUN
#start_arrow_type=(arrow_type) (rw)
The #start_arrow_type=
method sets the type of start arrow.
The arrow type can be one of the following values:
Layout::Style::ARROW_NONE
Layout::Style::ARROW_FILLED_TRIANGLE
Layout::Style::ARROW_OPEN_TRIANGLE
Layout::Style::ARROW_FILLED_SKINNY_TRIANGLE
Layout::Style::ARROW_OPEN_SKINNY_TRIANGLE
Layout::Style::ARROW_OPEN_ARROW_90
Layout::Style::ARROW_OPEN_ARROW_120
Layout::Style::ARROW_FILLED_CIRCLE
Layout::Style::ARROW_OPEN_CIRCLE
Layout::Style::ARROW_FILLED_SQUARE
Layout::Style::ARROW_OPEN_SQUARE
Layout::Style::ARROW_FILLED_DIAMOND
Layout::Style::ARROW_OPEN_DIAMOND
Layout::Style::ARROW_STAR
Layout::Style::ARROW_T
Layout::Style::ARROW_SLASH_RIGHT
Layout::Style::ARROW_SLASH_LEFT
Layout::Style::ARROW_UNDERRUN
Layout::Style::ARROW_OVERRUN
#stroke_cap_style ⇒ Integer
? (rw)
The #stroke_cap_style
method returns the stroke cap style, or nil
if the Style
does not have a value for that setting.
The cap style can be one of the following:
Layout::Style::CAP_STYLE_FLAT
Layout::Style::CAP_STYLE_ROUND
Layout::Style::CAP_STYLE_SQUARE
#stroke_cap_style=(cap_style) (rw)
The #stroke_cap_style=
method sets the stroke cap style.
The cap style can be one of the following:
Layout::Style::CAP_STYLE_FLAT
Layout::Style::CAP_STYLE_ROUND
Layout::Style::CAP_STYLE_SQUARE
#stroke_color ⇒ Sketchup::Color? (rw)
The #stroke_color
method returns the stroke color, or nil
if the Style
does not have a value for that setting.
#stroke_color=(stroke_color) (rw)
The #stroke_color=
method sets the stroke color.
#stroke_join_style ⇒ Integer
? (rw)
The #stroke_join_style
method returns the stroke join style, or nil
if the Style
does not have a value for that setting.
The join style can be one of the following:
Layout::Style::JOIN_STYLE_MITER
Layout::Style::JOIN_STYLE_ROUND
Layout::Style::JOIN_STYLE_BEVEL
#stroke_join_style=(join_style) (rw)
The #stroke_join_style=
method sets the stroke join style.
The join style can be one of the following:
Layout::Style::JOIN_STYLE_MITER
Layout::Style::JOIN_STYLE_ROUND
Layout::Style::JOIN_STYLE_BEVEL
#stroke_pattern ⇒ Integer
? (rw)
The #stroke_pattern
method returns the stroke pattern, or nil
if the Style
does not have a value for that setting.
The stroke pattern can be one of the following:
Layout::Style::STROKE_PATTERN_SOLID
Layout::Style::STROKE_PATTERN_DASH
Layout::Style::STROKE_PATTERN_DOT
Layout::Style::STROKE_PATTERN_DASH_DOT
Layout::Style::STROKE_PATTERN_DASH_DOT_DOT
Layout::Style::STROKE_PATTERN_DASH_SPACE
Layout::Style::STROKE_PATTERN_DASH_DOT_DOT_DOT
Layout::Style::STROKE_PATTERN_DASH_DASH_DOT
Layout::Style::STROKE_PATTERN_DASH_DASH_DOT_DOT
Layout::Style::STROKE_PATTERN_DASH_DASH_DOT_DOT_DOT
Layout::Style::STROKE_PATTERN_CENTER
Layout::Style::STROKE_PATTERN_PHANTOM
#stroke_pattern=(pattern) (rw)
The #stroke_pattern=
method sets the stroke pattern.
The stroke pattern can be one of the following:
Layout::Style::STROKE_PATTERN_SOLID
Layout::Style::STROKE_PATTERN_DASH
Layout::Style::STROKE_PATTERN_DOT
Layout::Style::STROKE_PATTERN_DASH_DOT
Layout::Style::STROKE_PATTERN_DASH_DOT_DOT
Layout::Style::STROKE_PATTERN_DASH_SPACE
Layout::Style::STROKE_PATTERN_DASH_DOT_DOT_DOT
Layout::Style::STROKE_PATTERN_DASH_DASH_DOT
Layout::Style::STROKE_PATTERN_DASH_DASH_DOT_DOT
Layout::Style::STROKE_PATTERN_DASH_DASH_DOT_DOT_DOT
Layout::Style::STROKE_PATTERN_CENTER
Layout::Style::STROKE_PATTERN_PHANTOM
#stroke_pattern_scale ⇒ Float
? (rw)
The #stroke_pattern_scale
method returns the stroke pattern scale, or nil
if the Style
does not have a value for that setting.
#stroke_pattern_scale=(scale) (rw)
The #stroke_pattern_scale=
method sets the stroke pattern scale.
#stroke_width ⇒ Float
? (rw)
The #stroke_width
method returns the stroke width, or nil
if the Style
does not have a value for that setting.
#stroke_width=(stroke_width) (rw)
The #stroke_width=
method sets the stroke width.
#stroked ⇒ Boolean
? (rw)
The #stroked
method returns whether the Style
has a stroke, or nil
if the Style
does not have a value for that setting.
#stroked=(stroked) (rw)
The #stroked=
method sets whether the Style
has a stroke.
#suppress_dimension_units ⇒ Boolean
? (rw)
The #suppress_dimension_units
method returns whether the units for dimensions are suppressed, or nil
if the Style
does not have a value for that setting.
#suppress_dimension_units=(suppress) (rw)
The #suppress_dimension_units=
method sets whether the units for dimensions are suppressed.
#text_alignment ⇒ Integer
? (rw)
The #text_alignment
method returns the text alignment, or nil
if the Style
does not have a value for that setting.
The alignment type can be one of the following values:
Layout::Style::ALIGN_LEFT
Layout::Style::ALIGN_RIGHT
Layout::Style::ALIGN_CENTER
#text_alignment=(alignment_type) (rw)
The #text_alignment=
method sets the text alignment.
The alignment type can be one of the following values:
Layout::Style::ALIGN_LEFT
Layout::Style::ALIGN_RIGHT
Layout::Style::ALIGN_CENTER
#text_anchor ⇒ Integer
? (rw)
The #text_anchor
method returns the text anchor type, or nil
if the Style
does not have a value for that setting.
The anchor type can be one of the following values:
Layout::Style::ANCHOR_TOP
Layout::Style::ANCHOR_CENTER
Layout::Style::ANCHOR_BOTTOM
#text_anchor=(anchor_type) (rw)
The #text_anchor=
method sets the text anchor type.
The anchor type can be one of the following values:
Layout::Style::ANCHOR_TOP
Layout::Style::ANCHOR_CENTER
Layout::Style::ANCHOR_BOTTOM
#text_bold ⇒ Boolean
? (rw)
The #text_bold
method returns whether text is bold, or nil
if the Style
does not have a value for that setting.
#text_bold=(bold) (rw)
The #text_bold=
method sets whether text is bold.
#text_color ⇒ Sketchup::Color? (rw)
The #text_color
method returns the text color, or nil
if the Style
does not have a value for that setting.
#text_color=(color) (rw)
The #text_color=
method sets the text color.
#text_elevation ⇒ Integer
? (rw)
The #text_elevation
method returns the text elevation, or nil
if the Style
does not have a value for that setting.
The elevation type can be one of the following values:
Layout::Style::NORMAL_SCRIPT
Layout::Style::SUPER_SCRIPT
Layout::Style::SUB_SCRIPT
#text_elevation=(elevation_type) (rw)
The #text_elevation=
method sets the text elevation.
The elevation type can be one of the following values:
Layout::Style::NORMAL_SCRIPT
Layout::Style::SUPER_SCRIPT
Layout::Style::SUB_SCRIPT
#text_italic ⇒ Boolean
? (rw)
The #text_italic
method returns whether text is italic, or nil
if the Style
does not have a value for that setting.
#text_italic=(italic) (rw)
The #text_italic=
method sets whether text is italic.
#text_underline ⇒ Integer
? (rw)
The #text_underline
method returns the text underline type, or nil
if the Style
does not have a value for that setting.
The underline type can be one of the following values:
Layout::Style::UNDERLINE_NONE
Layout::Style::UNDERLINE_SINGLE
Layout::Style::UNDERLINE_DOUBLE
#text_underline=(underline_type) (rw)
The #text_underline=
method sets the text underline type.
The underline type can be one of the following values:
Layout::Style::UNDERLINE_NONE
Layout::Style::UNDERLINE_SINGLE
Layout::Style::UNDERLINE_DOUBLE
Instance Method Details
#dimension_units ⇒ Array(Integer
, Float
)?
The #dimension_units
method returns the unit format and precision for dimensions, or nil
if the Style
does not have a value for that setting. Units may be for either LinearDimension
s or AngularDimension
s, but not both.
The units can be one of the following values:
Layout::Style::FRACTIONAL_INCHES
Layout::Style::ARCHITECTURAL_INCHES
Layout::Style::ENGINEERING_FEET
Layout::Style::DECIMAL_INCHES
Layout::Style::DECIMAL_FEET
Layout::Style::DECIMAL_MILLIMETERS
Layout::Style::DECIMAL_CENTIMETERS
Layout::Style::DECIMAL_METERS
Layout::Style::DECIMAL_POINTS
Layout::Style::DEGREES
Layout::Style::RADIANS
#get_sub_style(type) ⇒ Style
The #get_sub_style
method returns the Style
for a sub-entity from the Style
. This would be used to get the current style of a LinearDimension
‘s text, for example.
#set_dimension_units(units, precision)
The #set_dimension_units
method sets the unit format and precision for dimensions. Units may be for either LinearDimension
s or AngularDimension
s, but not both.
The units can be one of the following values:
Layout::Style::FRACTIONAL_INCHES
Layout::Style::ARCHITECTURAL_INCHES
Layout::Style::ENGINEERING_FEET
Layout::Style::DECIMAL_INCHES
Layout::Style::DECIMAL_FEET
Layout::Style::DECIMAL_MILLIMETERS
Layout::Style::DECIMAL_CENTIMETERS
Layout::Style::DECIMAL_METERS
Layout::Style::DECIMAL_POINTS
Layout::Style::DEGREES
Layout::Style::RADIANS
#set_sub_style(type, sub_style)
The #set_sub_style
method adds a Style
to apply to a Entity
‘s sub-entity. This would be used to set the arrow type for extension lines of a LinearDimension
, for example.


A real voltage controlled oscillator uses modulates electrical signals and transforms them into sound. This is a simple replica built using Javascript. Use the keyboard keys printed below (or your mouse) to play the instrument.
|
A
|
S
|
D
|
F
|
J
|
K
|
L
|
;
|


My third post dives into the importance of user testing and showcases the testing that I conducted on the Lime website.
A quick overview of Lime is it's a company that looks to offer transportation options (mobility) to all communities.
I used the following test script for my usability test:
- The Home Page Tour – I showed the participant the home page and asked them to say aloud the following: what strikes you about it, whose site you think it is, what can you do here, what it’s for?
- Question 1 – Let’s assume that you are interested in learning more about Lime, can you find out if Lime is available in your area?
- Question 2 – Now that you’ve seen Lime is available in Seattle, are you able to find the rider options available in Seattle?
- Question 3 – Are you able to locate any information on how to get a safety helmet since its proper rider safety to always wear a helmet and Seattle law that all bicycle and scooter riders wear a helmet?
- Question 4 – Are you able to find the download button for your preferred mobile device?
I view it as important that visitors can and should expect their websites to include a clear, easy to understand description of their product, how to use their product or service, and clear explanation of the features for their offered product. This needs to be done strategically to eliminate the requirement of the visitor to search on their own.
The purpose of my test was to see if three participants could easily work through four test prompts that I myself encountered when first browsing the website.
User Testing
I performed a usability test specifically the “First Click Testing” by allowing the participant to use my personal MacBook with a screen recorder and microphone to record the test while walking each person separately through the test script shown above stating when they could click links on the site or simply just scroll up/down the home page. I used three participants for this test; two female and one male, all three Caucasian, ages ranging from 25 to 60.
I will summarize the results using qualitative data as I took minimal notes to observe when the participant became frustrated and would speak aloud when they were becoming impatient.
Summary of Results
The Home Page
- All three participants had heard of Lime since they’ve seen the green scooters and/or bikes in the area and knew they were for rental purposes.
- One participant assumed the website was more of a gateway to download the app that would provide the visitor with more information.
Question 1
- All three participants were able to correctly verify that Seattle was a location with Lime available.
Question 2
- None of the participants were able to verify which rider options they could use in Seattle.
Question 3
- All three participants were unable to find information on obtaining safety/rider helmets however one did say they would use their own.
Question 4
- All three participants said they would use the App Store to download the app and two of the participants were able to locate the download buttons on the site after.
Top three usability problems
- No way to search the website
- Too much functionality that requires user registration
- Concept is Unclear
Looking back on the three different test subjects, I would change the order of the questions and move the last question ato the front as I noticed people would become lost after searching for answers to my questions and forget to go back to the home page. I would also look to create a word by word script to stick to as I realized my wording wasn’t the same for each task when reading to a different participant.
Suggestions for Improvement
- Add Google’s search plug in to the Lime web domain index.html file to create a search option
- Add relevant information to the locations page so entice visitors that Lime is a good option where they live or worth Voting to bring Lime to their city
- Provide a mission statement for Lime so visitors know exactly what Lime is and the purpose for the company


In this section i will share what tools, frameworks, and technologies i used for this project.
VSCode is a great code editor, relatively easy to use, and pleasant to look at.
What is even a webapp without these 2 huh? You can find JavaScript pretty much all over the front and backend space. It makes things... dynamic.
A lot of people hate these 2, but they deserve some respect.
And here we have the king of all good things. Bootstrap is a CSS framework that makes your frontent not that much of a pain. And it basically defines this project, just go to the repo... you'll see


Maihama Migueldora
(LastaFlute Example)
Products
Members
Withdrawal
Welcome,
Mr.Guest
Profile
Sign out
Sign In
Account
Password
Remember Me?


MechMania is a 24-hour Game AI hackathon held during the Reflection Projection conference at the University of Illinois at Urbana-Champaign. The first competition was held in 1995 and has run annually since then. Teams write an autonomous program to compete in a round-robin tournament playing against other bots in an original video game. More information can be found on the Wikipedia page.
I competed in MechMania during 2016 and 2017 as a solo team.
A last team standing three-on-three battle set in a gladiatorial arena. It was inspired by games like World of Warcraft with similar scenarios. Each team writes an AI routine to control three characters having them either move, attack, or use a special ability each turn. The game features a cast of eight character classes to construct a team from. For further game rules check out the mm22 wiki.
A total of 37 teams participated MechMania 22. Each team played the 36 other teams twice meaning they play a total of 72 games. My team finished second winning 59 games, only 1 game away from first place. My code can be found here.
A domination style three-on-three battle with a science fiction setting. Each team controls a team of soldiers competing to capture three objectives. The information available is limited to the cone of vision of each solider. Victory is achieved by the team that first scores 500 points. Points are awarded for controlling objectives, killing enemies, and getting score pickups. The game runs in 3D using Unity as a game engine. For further documentation and game files check out the mm23 webpage.
A total of 40 teams participated MechMania 23. The results from round-robin tournament of 40 were a little unstable, so the top 10 teams played 4 double round-robin tournaments playing 72 games each. My team finished sixth winning 31 games. My code can be found here.
The MechMania team recorded six highlight matches featuring close games. The video featured below shows the closest match of the highlighted games with the winner winning by 0.1 seconds (6 frames @ 60 Hz). I am the red team.
Following is a writeup of the strategy I used for MechMania 23.
My main strategy was to use a load-out of three long range characters to snipe from afar. Each character is assigned an objective that they are trying to take. As the characters spawn, they approach the objectives from an angle that provides a long line of sight. If they see an enemy, they keep their distance and snipe from a distance. Otherwise they cap the objective and retreat to their designated camping spot. Here they wait for an enemy to come and then snipe then if they try to take the objective.
Fire priority for all characters was set to LOWHP. When fighting multiple characters, it is important to guarantee kills. Once the first enemy is dead there will be less enemies firing at you and it gives you 5 points.
If one of our characters is camping our owned objective and a character next to him dies, the character will be reassigned to the new objective. Also, this can be done simply by exchanging references of the two characters.
If their character is close to an item, they will go and get it. Close is defined as 40 units for points items and 20 units for other items. If the character is fighting an enemy, capping an objective, or full on health when the item is health, then the character will not try to pick up an item.
The character will target any enemy that it sees or is attacked by. It targets the enemy by looking at it and then moving to the camping spot to get some distance. The exception is when the character is capping a point they will hold their ground and face the enemy.
If the character is far from the objective (>35 units) or capping the objective, they will spin to try to detect any enemies. Otherwise the character looks at its assigned objective. Of course, looking at an enemy takes priority over both of these.
For each camping spot there is a predetermined duck and cover position. After the character takes a shot the character ducks behind cover while reloading.
One strategy others employed was to hide in the corners and either snipe or ambush those who try to take any of the outside objectives. To counteract this, as the character is approaching one of the outside objectives, they look to the corners to detect if anyone is hiding. Additionally, the outside character will spin along the edge when they are not focused of the objective or enemy. If they see someone, they go to a special position on the inside corner of the objective to snipe from as far away as they can. This location also has a designated duck and cover spot.
This last strategy is a little complicated and not obvious at all. Before I describe it I have to explain how the games visibility detection works. Visibility detection is accomplished by tracing rays (20 for long range) and seeing if they collide with another character. You can see these rays in unity if you go to the scene view. However, at the end of our range these rays spread out. This allows the possibility for a character to be positioned between the rays without touching them. This effect is worsened since there are an even number of rays. Meaning there is no central ray, so if you approach another character head on they will automatically slip into the gap. As demonstrated in this gif.
To prevent this from happening, we can oscillate the character's desired angle to catch a character that would otherwise slip through the gap.
By doing this we are more likely to get the first hit sooner and therefore survive longer. If you look very closely at one of my matches or the first gif you can notice that the vision cone for my characters vibrates when focusing on something.


Mini tornado damages eight houses in Alor Star
ALOR STAR, Nov 17 — Eight homes were badly damaged by a mini tornado that hit Kampung Padang, Mukim Tajar, near here, yesterday afternoon.
Kota Setar district civil defence force officer Captain Md Zain Baharom the agency received a report on the incident at 6.30pm and rushed to the scene to provide assistance.
“This morning, we went to the site to meet the penghulu (headman) of Mukim Tajar to discuss the assistance for the affected residents. Alhamdulillah (Praise be to Allah) no injuries has been reported so far,” he told Bernama here today.
Meanwhile, one of the affected residents, Zulkisfali Salleh, 60, said the strong wind only lasted a minute but it had ripped apart the roof of his house.
“It was cloudy afternoon and we were relaxing while waiting for the call of Asar prayers when suddenly there was loud bang accompanied by strong wind and in the blink of an eye the entire roof was blown away,” he said that storm had caused him to suffer almost RM8,000 in losses.
Meanwhile, another resident Ahmad Basir Harun, 49, who was away in Kuala Kedah when the incident occurred, said he knew about it after being informed by his daughter Siti Nur Faizah, 16, who was nearly injured by fallen wood.
“I am thankful that my daughter quickly dashed out of the house, otherwise she would have been hit by broken bricks and woods after the roof was blown away. Although damage is estimated to be more than RM10,000, I am just thankful that my daughter is safe,” he said. — Bernama