| Contents | Previous | Next |
You can use the Java 2D API transformation
and drawing mechanisms with text strings. In addition, the Java 2D
API provides text-related classes that support fine-grain font
control and sophisticated text layout. These include an enhanced
Font
class and the new TextLayout
class.
This chapter focuses on the new font and text
layout capabilities supported through interfaces and classes in
java.awt
, and java.awt.font
. For more information
about using these features, see the Working with Text APIs lesson in the Java Tutorials.
For information about text analysis and
internationalization, refer to the java.text
documentation and the “Writing
Global Programs” track in the Java Tutorial. For information
about using the text layout mechanisms implemented in Swing, see
the java.awt.swing.text
documentation
and “Using the JFC/Swing Packages” in the Java
Tutorial.
The following tables list the key font and text
layout interfaces and classes. Most of these interfaces and classes
are part of the java.awt.font
package.
Some, like Font
, are part of the
java.awt
package to maintain backward
compatibility with earlier versions of the JDK.
The Font
class has been
enhanced to support the specification of detailed font information
and enable the use of sophisticated typographic features.
A Font
object
represents an instance of a font face from the collection of font
faces available on the system. Examples of common font faces
include Helvetica Bold
and Courier Bold Italic
.
Three names are associated with a Font
—its logical name, family name, and font
face name:
Font
object’s logical name is a name mapped onto one of the
specific fonts available on the platform. When specifying a Font
, you should use the
font face name instead of the logical
name.You can get the logical name from the Font
by calling getName
.
To get a list of the logical names that are mapped onto the
specific fonts available on a platform, call java.awt.Toolkit.getFontList
.Font
object’s family name is the name of the font family that
determines the typographic design across several faces, such as
Helvetica. You retrieve the family name through the getFamily
method.Font
objects’ font face name refers to an actual font installed
on the system. This is the name you should use when specifying a
font in JDK. It’s often referred to as just the
font name. You can retrieve the font
name by calling getFontName
. To
determine which font faces are available on the system, you can
call GraphicsEnvironment.getAllFonts
.You can access information about a Font
through the getAttributes
method. A Font
’s attributes include its name, size,
transform, and font features such as weight and posture.
A LineMetrics
object
encapsulates the measurement information associated with a
Font
, such as its ascent, descent, and
leading:
This information is used to properly position
characters along a line, and to position lines relative to one
another. You can access these line metrics through the getAscent
, getDescent
,
and getLeading
methods. You can also
access information about a Font
’s
height, baseline, and underline and strikethrough characteristics
through LineMetrics
.
Before a piece of text can be displayed, it must be properly shaped and positioned using the appropriate glyphs and ligatures. This process is referred to as text layout. The text layout process involves:
The information used to lay out text is also necessary for performing text operations such as caret positioning, hit detection, and highlighting.
To develop software that can be deployed in international markets, text must be laid out in different languages in a way that conforms to the rules of the appropriate writing system.
A glyph is the visual representation of one or more characters. The shape, size, and position of a glyph is dependent on its context. Many different glyphs can be used to represent a single character or combination of characters, depending on the font and style.
For example, in handwritten cursive text, a particular character can take on different shapes depending on how it is connected to adjacent characters.
In some writing systems, particularly Arabic, the context of a glyph must always be taken into account. Unlike in English, cursive forms are mandatory in Arabic; it is unacceptable to present text without using cursive forms.
Depending on the context, these cursive forms can differ radically in shape. For example, the Arabic letter heh has the four cursive forms shown in Figure 4-2.
Although these four forms are quite different from one another, such cursive shape-changing is not fundamentally different from cursive writing in English.
In some contexts, two glyphs can change shape even more radically and merge to form a single glyph. This type of merged glyph is called a ligature. For example, most English fonts contain the ligature fi shown in Figure 4-3. The merged glyph takes into account the overhang on the letter f and combines the characters in a natural-looking way, instead of simply letting the letters collide.
Ligatures are also used in Arabic and the use of some ligatures is mandatory—it is unacceptable to present certain character combinations without using the appropriate ligature. When ligatures are formed from Arabic characters, the shapes change even more radically than they do in English. For example, Figure 4-4 illustrates how two Arabic characters are combined into a single ligature when they appear together.
In the Java programming language, text is encoded using Unicode character encoding. Text that uses Unicode character encoding is stored in memory in logical order. Logical order is the order in which characters and words are read and written. The logical order is not necessarily the same as the visual order, the order in which the corresponding glyphs are displayed.
The visual order for glyphs in a particular writing system (script) is called the script order. For example, the script order for Roman text is left-to-right and the script order for Arabic and Hebrew is right-to-left.
Some writing systems have rules in addition to script order for arranging glyphs and words on lines of text. For example, Arabic and Hebrew numbers run left to right, even though the letters run right to left. (This means that Arabic and Hebrew, even with no embedded English text, are truly bidirectional.)
A writing system’s visual order must be maintained even when languages are mixed together. This is illustrated in Figure 4-5, which displays an Arabic phrase embedded in an English sentence.
Note: In this and subsequent examples, Arabic and Hebrew text is represented by uppercase letters and spaces are represented by underscores. Each illustration contains two parts: a representation of the characters stored in memory (the characters in logical order) followed by a representation of how those characters are displayed (the characters in visual order). The numbers below the character boxes indicate the insertion offsets.
Even though they are part of an English sentence, the Arabic words are displayed in the Arabic script order, right-to-left. Because the italicized Arabic word is logically after the Arabic in plain text, it is visually to the left of the plain text.
When a line with a mixture of left-to-right and right-to-left text is displayed, the base direction is significant. The base direction is the script order of the predominant writing system. For example, if the text is primarily English with some embedded Arabic, then the base direction is left-to-right. If the text is primarily Arabic with some embedded English or numbers, then the base direction is right-to-left.
The base direction determines the order in which segments of text with a common direction are displayed. In the example shown in Figure 4-5, the base direction is left-to-right. There are three directional runs in this example: the English text at the beginning of the sentence runs left to right, the Arabic text runs right to left, and the period runs left to right.
Graphics are often embedded in the flow of text. These inline graphics behave like glyphs in terms of how they affect the text flow and line wrapping. Such inline graphics need to be positioned using the same bidirectional layout algorithm so that they appear in the proper location in the flow of characters.
For more information about the precise algorithm used to order glyphs within a line, see the description of the Bidirectional Algorithm in The Unicode Standard, Version 2.0, Section 3.11.
Unless you are working with a monospace font, different characters in a font have different widths. This means that all positioning and measuring of text has to take into account exactly which characters are used, not just how many. For example, to right-align a column of numbers displayed in a proportional font, you can’t simply use extra spaces to position the text. To properly align the column, you need to know the exact width of each number so that you can adjust accordingly.
Text is often displayed using multiple fonts and
styles, such as bold or italic. In this case, even the same
character can have different shapes and widths, depending on how it
is styled. To properly position, measure, and render text, you need
to keep track of each individual character and the style applied to that character.
Fortunately, TextLayout
does this for
you.
To properly display text in languages such as Hebrew and Arabic, each individual character needs to be measured and positioned within the context of neighboring characters. Because the shapes and positions of the characters can change depending on the context, measuring and positioning such text without taking the context into account produces unacceptable results.
To allow the user to edit the text that is displayed, you must be able to:
In editable text, a caret is used to graphically represent the current insertion point, the position in the text where new characters will be inserted. Typically, a caret is shown as a blinking vertical bar between two glyphs. New characters are inserted and displayed at the caret's location.
Calculating the caret position can be complicated, particularly for bidirectional text. Insertion offsets on directional boundaries have two possible caret positions because the two glyphs that correspond to the character offset are not displayed adjacent to one another. This is illustrated in Figure 4-6. In this figure, the carets are shown as square brackets to indicate the glyph to which the caret corresponds.
Character offset 8 corresponds to the location after the _ and before the A. If the user enters an Arabic character, its glyph is displayed to the right of (before) the A; if the user enters an English character, its glyph is displayed to the right of (after) the _.
To handle this situation, some systems display
dual carets, a strong (primary) caret and a weak (secondary) caret.
The strong caret indicates where an inserted character will be
displayed when that character's direction is the same as the
base direction of the text. The weak caret shows where an inserted
character will be displayed when the character's direction is
the opposite of the base direction. TextLayout
automatically supports dual carets;
JTextComponent
does not.
When you’re working with bidirectional text, you can’t simply add the widths of the glyphs before a character offset to calculate the caret position. If you did, the caret would be drawn in the wrong place, as shown in Figure 4-7.
For the caret to be properly positioned, the widths of the glyphs to the left of the offset need to be added and the current context taken into account. Unless the context is taken into account, the glyph metrics won’t necessarily match the display. (The context can affect which glyphs are used.)
All text editors allow the user to move the caret with the arrow keys. Users expect the caret to move in the direction of the pressed arrow key. In left-to-right text, moving the insertion offset is simple: the right arrow key increases the insertion offset by one and the left arrow key decreases it by one. In bidirectional text or in text with ligatures, this behavior would cause the caret to jump across glyphs at direction boundaries and move in the reverse direction within different directional runs.
To move the caret smoothly through bidirectional text, you need to take into account the direction of the text runs. You can’t simply increment the insertion offset when the right arrow key is pressed and decrement it when the left arrow key is pressed. If the current insertion offset is within a run of right-to-left characters, the right arrow key should decrease the insertion offset, and the left arrow key should increase it.
Moving the caret across a directional boundary is even more complicated. Figure 4-8 illustrates what happens when a directional boundary is crossed when the user is navigating with the arrow key. Stepping three positions to the right in the displayed text corresponds to moving to the character offsets 7, 19, then 18.
Certain glyphs should never have a caret between them; instead, the caret should move as though the glyphs represented a single character. For example, there should never be a caret between an o and an umlaut if they are represented by two separate characters. (See The Unicode Standard, Version 2.0, Chapter 5, for more information.)
TextLayout
provides
methods (getNextRightHit
and
getNextLeftHit
) that enable you to
easily move the caret smoothly through bidirectional text.
Often, a location in device space must be converted to a text offset. For example, when a user clicks the mouse on selectable text, the location of the mouse is converted to a text offset and used as one end of the selection range. Logically, this is the inverse of positioning a caret.
When you’re working with bidirectional text, a single visual location in the display can correspond to two different offsets in the source text, as shown in Figure 4-9.
Because a single visual location can correspond to two different offsets, hit testing bidirectional text isn’t just a matter of measuring glyph widths until the glyph at the correct location is found and then mapping that position back to a character offset. Detecting the side that the hit was on helps distinguish between the two alternatives.
You can perform hit testing using TextLayout.hitTestChar
. Hit information is
encapsulated in a TextHitInfo
object and
includes information about the side that the hit was on.
A selected range of characters is represented graphically by a highlight region, an area in which glyphs are displayed with inverse video or against a different background color.
Highlight regions, like carets, are more complicated for bidirectional text than for monodirectional text. In bidirectional text, a contiguous range of characters might not have a contiguous highlight region when displayed. Conversely, a highlight region showing a visually contiguous range of glyphs might not correspond to a single, contiguous range of characters.
This results in two strategies for highlighting selections in bidirectional text:
Logical highlighting is simpler to implement, since the selected characters are always contiguous in the text.
Depending on which Java APIs you use, you can have as little or as much control over text layout as you need:
JTextComponent
, which will perform the text layout
for you. JTextComponent
is designed to
handle the needs of most international applications and supports
bidirectional text For more information about JTextComponent
, see “Using the JFC/Swing
Packages” in the Java Tutorial.Graphics2D.drawString
and let Java
2D lay out the string for you. You can also use drawString
to render styled strings and strings that
contain bidirectional text. For more information about rendering
text through Graphics2D
, see “Rendering Graphics Primitives”.TextLayout
to manage text
layout, highlighting, and hit detection. The facilities provided by
TextLayout
handle most common cases,
including text strings with mixed fonts, mixed languages, and
bidirectional text. For more information about using TextLayout,
see “Managing Text
Layout”.GlyphVectors
using Font
and then render them through Graphics2D
.
For more information about implementing your own text layout
mechanism, see “Implementing
a Custom Text Layout Mechanism”.Generally, you do not need to perform text layout
operations yourself. For most applications, JTextComponent
is the best solution for displaying
static and editable text. However, JTextComponent
does not support the display of dual
carets or discontiguous selections in bidirectional text. If your
application requires these features, or you prefer to implement
your own text editing routines, you can use the Java 2D text layout
APIs.
The TextLayout
class
supports text that contains multiple styles and characters from
different writing systems, including Arabic and Hebrew. (Arabic and
Hebrew are particularly difficult to display because you must
reshape and reorder the text to achieve an acceptable
representation.)
TextLayout
simplifies
the process of displaying and measuring text even if you are
working with English-only text. By using TextLayout
, you can achieve high-quality typography
with no extra effort.
The TextLayout
class
manages the positioning and ordering of glyphs for you. You can use
TextLayout
to:
In some situations, you might want to compute the text layout yourself, so that you can control exactly which glyphs are used and where they are placed. Using information such as glyph sizes, kerning tables, and ligature information, you can construct your own algorithms for computing the text layout, bypassing the system’s layout mechanism. For more information, see “Implementing a Custom Text Layout Mechanism”.
TextLayout
automatically lays out text, including bidirectional (BIDI) text,
with the correct shaping and ordering. To correctly shape and order
the glyphs representing a line of text, TextLayout
must know the full context of the
text:
TextLayout
directly from the text.TextLayout
directly. You
must use a LineBreakMeasurer
to provide
sufficient context.The base direction of the text is normally set by
an attribute (style) on the text. If that attribute is missing,
TextLayout
follows the Unicode
bidirectional algorithm and derives the base direction from the
initial characters in the paragraph.
TextLayout
maintains
caret information such as the caret Shape
, position, and angle. You can use this
information to easily display carets in both monodirectional and
bidirectional text. When you’re drawing carets for
bidirectional text, using TextLayout
ensures that the carets will be positioned correctly.
TextLayout
provides
default caret Shapes
and automatically
supports dual carets. For italic and oblique glyphs, TextLayout
produces angled carets, as shown in
Figure 4-12. These caret
positions are also used as the boundaries between glyphs for
highlighting and hit testing, which helps produce a consistent user
experience.
Given an insertion offset, the getCaretShapes
method returns a two-element array of
Shapes
: element 0 contains the strong
caret and element 1 contains the weak caret, if one exists. To
display dual carets, you simply draw both caret Shapes
; the carets will be automatically be rendered
in the correct positions.
If you want to use custom caret Shapes
, you can retrieve the position and angle of
the carets from the TextLayout
and draw
them yourself.
In the following example, the default strong and
weak caret Shapes
are drawn in different
colors. This is a common way to differentiate dual carets.
Shape[] caretShapes = layout.getCaretShapes(hit); g2.setColor(PRIMARY_CARET_COLOR); g2.draw(caretShapes[0]); if (caretShapes[1] != null){ g2.setColor(SECONDARY_CARET_COLOR); g2.draw(caretShapes[1]); }
You can also use TextLayout
to determine the resulting insertion
offset when a user presses the left or right arrow key. Given a
TextHitInfo
object that represents the
current insertion offset, the getNextRightHit
method returns a TextHitInfo
object that represents the correct
insertion offset if the right arrow key is pressed. The
getNextLeftHit
method provides the same
information for the left arrow key.
In the following example, the current insertion offset is moved in response to a right arrow key.
TextHitInfo newInsertionOffset = layout.getNextRightHit(insertionOffset); if (newInsertionOffset != null) { Shape[] caretShapes = layout.getCaretShapes(newInsertionOffset); // draw carets ... insertionOffset = newInsertionOffset; }
TextLayout
provides a
simple mechanism for hit testing text. The hitTestChar
method takes x and y coordinates
from the mouse as arguments and returns a TextHitInfo
object. The TextHitInfo
contains the insertion offset for the
specified position and the side that the hit was on. The insertion
offset is the offset closest to the hit: if the hit is past the end
of the line, the offset at the end of the line is returned.
In the following example, hitTestChar
is called on a TextLayout
and then getInsertIndex
is used to retrieve the offset.
You can get a Shape
that represents the highlight region from the TextLayout
. TextLayout
automatically takes the context into account when calculating the
dimensions of the highlight region. TextLayout
supports both logical and visual
highlighting.
In the following example, the highlight region is
filled with the highlight color and then the TextLayout
is drawn over the filled region. This is
one simple way to display highlighted text.
Shape highlightRegion = layout.getLogicalHighlightShape(hit1, hit2); graphics.setColor(HIGHLIGHT_COLOR); graphics.fill(highlightRegion); graphics.drawString(layout, 0, 0);
TextLayout
provides
access to graphical metrics for the entire range of text it
represents. Metrics available from TextLayout
include the ascent, descent, leading,
advance, visible advance, and the bounding rectangle.
More than one Font
can
be associated with a TextLayout
:
different style runs can use different fonts. The ascent and
descent values for a TextLayout
are the
maximum values of all of the fonts used in the TextLayout
. The computation of the TextLayout
's leading is more complicated;
it’s not just the maximum leading value.
The advance of a TextLayout
is its length: the distance from the left
edge of the leftmost glyph to the right edge of the rightmost
glyph. The advance is sometimes referred to as the total advance. The visible
advance is the length of the TextLayout
without its trailing whitespace.
The bounding box of a TextLayout
encloses all of the text in the layout.
It includes all the visible glyphs and the caret boundaries. (Some
of these might hang over the origin or origin + advance). The
bounding box is relative to the origin of the TextLayout
, not to any particular screen
position.
In the following example, the text in a
TextLayout
is drawn within the
layout’s bounding box.
graphics.drawString(layout, 0, 0); Rectangle2D bounds = layout.getBounds(); graphics.drawRect(bounds.getX()-1, bounds.getY()-1, bounds.getWidth()+2, bounds.getHeight()+2);
TextLayout
can also be
used to display a piece of text that spans multiple lines. For
example, you might take a paragraph of text, line-wrap the text to
a certain width, and display the paragraph as multiple lines of
text.
To do this, you do not directly create the
TextLayouts
that represent each line of
text—LineBreakMeasurer
generates
them for you. Bidirectional ordering cannot always be performed
correctly unless all of the text in a paragraph is available.
LineBreakMeasurer
encapsulates enough
information about the context to produce correct TextLayouts
.
When text is displayed across multiple lines, the length of the lines is usually determined by the width of the display area. Line breaking (line wrapping) is the process of determining where lines begin and end, given a graphical width in which the lines must fit.
The most common strategy is to place as many words
on each line as will fit. This strategy is implemented in
LineBreakMeasurer
. Other more complex
line break strategies use hyphenation, or attempt to minimize the
differences in line length within paragraphs. The Java 2D
API does not provide implementations of these strategies.
To break a paragraph of text into lines, you
construct a LineBreakMeasurer
with the
entire paragraph and then call nextLayout
to step through the text and generate
TextLayouts
for each line.
To do this, LineBreakMeasurer
maintains an offset within the
text. Initially, the offset is at the beginning of the text. Each
call to nextLayout
moves the offset by
the character count of the TextLayout
that was created. When this offset reaches the end of the text,
nextLayout
returns null
.
The visible advance of each TextLayout
that the LineBreakMeasurer
creates doesn’t exceed the
specified line width. By varying the width you specify when you
call nextLayout
, you can break text to
fit complicated areas, such as an HTML page with images in fixed
positions or tab-stop fields. You can also pass in a BreakIterator
to tell LineBreakMeasurer
where valid breakpoints are; if
you don't supply one the BreakIterator
for the default locale is used.
In the following example, a bilingual text segment is drawn line by line. The lines are aligned to either to the left margin or right margin, depending on whether the base text direction is left-to-right or right-to-left.
Point2D pen = initialPosition; LineBreakMeasurer measurer = new LineBreakMeasurer(styledText, myBreakIterator); while (true) { TextLayout layout = measurer.nextLayout(wrappingWidth); if (layout == null) break; pen.y += layout.getAscent(); float dx = 0; if (layout.isLeftToRight()) dx = wrappingWidth - layout.getAdvance(); layout.draw(graphics, pen.x + dx, pen.y); pen.y += layout.getDescent() + layout.getLeading(); }
The GlyphVector
class
provides a way to display the results of custom layout mechanisms.
A GlyphVector
object can be thought of
as the output of an algorithm that takes a string and computes
exactly how the string should be displayed. The system has a
built-in algorithm and the Java 2D API lets advanced clients
define their own algorithms.
A GlyphVector
object is
basically an array of glyphs and glyph locations. Glyphs are used
instead of characters to provide total control over layout
characteristics such as kerning and ligatures. For example, when
displaying the string “final”, you might want to
replace the leading fi substring with the ligature fi. In this case, the
GlyphVector
object will have fewer
glyphs than the number of characters in the original string.
Figure 4-13 and Figure 4-14 illustrate how
GlyphVector
objects are used by layout
mechanisms. Figure 4-13
shows the default layout mechanism. When drawString
is called on a String
, the built-in layout algorithm:
Font
in the
Graphics2D
context to determine which
glyphs to use.GlyphVector
.GlyphVector
to a glyph
rendering routine that does the actual drawing.Figure 4-14 shows the process for using a custom layout algorithm. To use a custom layout algorithm, you must assemble all of the information necessary to lay out the text. The basic process is the same:
Font
, determine which
glyphs to useGlyphVector
To render the text, you pass the GlyphVector
to drawString
, which in turn passes it to the glyph
renderer. In Figure 4-14,
the custom layout algorithm replaces the fi substring with the
ligature fi.
Using the Font.deriveFont
methods, you can create a new
Font
object with different attributes
from an existing Font
object. Often, a
transform is applied to the existing Font
to create a new derived Font
. To do this, you:
Font
object.,AffineTransform
you want
to apply to the Font
.Font.deriveFont
, passing in the
AffineTransform
.In this way, you could easily create a
Font
in a custom size or a skewed
version of an existing Font
.
In the following code excerpt, an AffineTransform
is applied to create a skewed
version of the font Helvetica. The new derived font is then used to
render a string.
// Create a transformation for the font. AffineTransform fontAT = new AffineTransform(); fontAT.setToShear(-1.2, 0.0); // Create a Font Object. Font theFont = new Font("Helvetica", Font.PLAIN, 1); // Derive a new font using the shear transform theDerivedFont = theFont.deriveFont(fontAT); // Add the derived font to the Graphics2D context g2.setFont(theDerivedFont); // Render a string using the derived font g2.drawString(“Java”, 0.0f, 0.0f);
| Contents | Previous | Next |


Trump takes break from impeachment for another kind of fight
by JONATHAN LEMIREWASHINGTON (AP) - Politics can be a bruising business. But President Donald Trump plans to get a firsthand look at a different kind of blood sport on Saturday night.
Trump is set to return to his hometown of New York City to attend a high-profile UFC match at Madison Square Garden.
Trump has long been tight with Dana White, the UFC president. The pay-per-view spectacle is expected to draw several celebrities, including wrestler-turned-actor The Rock.
It’ll be Trump’s second sporting event in a week, and it’s an open question how he’ll be received.
The president was loudly booed days while attending a World Series game in Washington last Sunday.
Trump’s departure from New York on Sunday is expected to further snarl traffic during the city’s annual marathon.
Sign up for Daily Newsletters
Copyright © 2019 The Washington Times, LLC.
Please read our comment policy before commenting.


Register
Invalid email
Cannot be left empty
Cannot be left empty
Invalid username(Should have only a-z,0-9 and 5-20 chars)
Cannot be left empty
Cannot be left empty
password too small or invalid character
Cannot be left empty
Cannot be left empty
{{passtext}}
{{result}}


set checked attribute to no button YES NO delete disabled attribute button add "red" to class value remove "bold" to class value


instaGC
instaGC is a web app that allows you to earn extra cash on the side. You earn points by completing simple tasks, such as watching a video. With these points you can redeem them for any instant gift card that is available.
I recently redesigned the landing page and user interface but never got to impliment it. You can view the current design to see how much of an improvement it is.


I don't know about you, but I choke a bit when people say 'work remotely'
It's a simple matter of not being able to see what on Earth the other person is doing 50% of the time, and being unable to show/tell/sign/interpretive dance/communicate what you are trying to say. This inability is distracting - to say the least.
Yet, at the same time I keep hearing of wizards off elsewhere who manage to work only remotely!
I know it can be done, and I seriously slobber over the idea of working with anybody, anytime, anywhere, and creating pair-code. So I continue trying to find a way that will improve the experience.
The latest solution
floobits : a magical solution - my cousin ran into it while we were discussing working on GameSync
I had discussed with one of my co-workers during my time as an intern at ADM CRS the idea of modifying existing enterprise editors to sync them into a collaborative experience, and floobits is a better version of that idea, but just for programmers.
It touts a clean online editor for any users who would like to watch/help with your coding, as well as plugins for Sublime Text , Emacs , and Vim -- currently a plugin is in progress for IntelliJ .
I was able to simultaneously hook up emacs, sublime, and the online editor and watch myself code live - so let me tell you it works beautifully. Although there is some wierdness with the minibuffer in emacs - I am sure a better elisp wizard could fix it instantly.
Now I can work with people at the drop of a hat with my custom dvorak oriented keybindings on sublime! Enter voIP and I think we are approaching an excellent solution - Enter Chrome Remote Desktop, and I think I am finally ready
I will probably be back with a better, less hype-ey, blog when I finally have the experience I am looking for.


| 008:032 Khan | : |
And (remember) when they said: "O Allah! If this (the Qur'an) is indeed the truth (revealed) from You, then rain down stones on us from the sky or bring on us a painful torment." |
| 008:032 Maulana | : |
And when they said: O Allah, if this is indeed the truth from Thee, then rain down on us stones from heaven or inflict on us a painful chastisement. |
| 008:032 Pickthal | : |
And when they said: O Allah! If this be indeed the truth from Thee, then rain down stones on us or bring on us some painful doom! |
| 008:032 Rashad | : |
They also said, "Our god, if this is really the truth from You, then shower us with rocks from the sky, or pour upon us a painful punishment." |
| 008:032 Sarwar | : |
They also say, "Lord, if this (Quran) is the Truth from you, shower down stones on us from the sky instead of rain or send us a painful punishment". |
| 008:032 Shakir | : |
And when they said: O Allah! if this is the truth from Thee, then rain upon us stones from heaven or inflict on us a painful punishment. |
| 008:032 Sherali | : |
And remember the time when they said, 'O ALLAH, if this be indeed the truth from Thee, then rain down upon us stones from heaven or bring down upon us a grievous punishment.' |
| 008:032 Yusufali | : |
Remember how they said: "O Allah if this is indeed the Truth from Thee, rain down on us a shower of stones form the sky, or send us a grievous penalty." |
Concepts/Themes Covered: أركان الإسلام > التوحيد > الكافرون > تعنت الكفار واستعجالهم بالعذاب Pillars of Islam> Islamic> The Disbelievers> The Disbelievers' Stubbornness and their Acceleration to Torture أركان الإسلام > التوحيد > الكافرون > صفات الكفار Pillars of Islam> Islamic> The Disbelievers> The Characteristics of the Disbelievers
This tool uses eight English parallel translations for the Holy Quran imported from Mr. Clay Smith. You can also visit Qurany Concepts for browsing the Quran themes or topics. If you want to search the Holy Quran for keywords, please visit Qurany Keywords.


|
|||||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |
See:
Description
| Interface Summary | |
| ExternalContent | An ExternalContent implementation represents an
element in the SCXML document that may contain "body
content", which means an arbitrary number of child nodes
belonging to external namespaces. |
| NamespacePrefixesHolder | A NamespacePrefixesHolder is an entity that retains
namespace prefix information from the document for deferred XPath
evaluation. |
| PathResolverHolder | A PathResolverHolder is an entity that holds a
PathResolver . |
| Class Summary | |
| Action | An abstract base class for executable elements in SCXML, such as <assign>, <log> etc. |
| Assign | The class in this SCXML object model that corresponds to the <assign> SCXML element. |
| Cancel | The class in this SCXML object model that corresponds to the <cancel> SCXML element. |
| CustomAction | A custom action is simply a tuple consisting of a namespace URI,
the local name for the custom action and the corresponding
Action class. |
| Data | The class in this SCXML object model that corresponds to the SCXML <data> child element of the <datamodel> element. |
| Datamodel | The class in this SCXML object model that corresponds to the SCXML <datamodel> element. |
| Else | The class in this SCXML object model that corresponds to the <else> SCXML element. |
| ElseIf | The class in this SCXML object model that corresponds to the <elseif> SCXML element. |
| Event | The class in this SCXML object model that corresponds to the <event> SCXML element. |
| Executable | An abstract base class for containers of executable elements in SCXML, such as <onentry> and <onexit>. |
| Exit | The class in this SCXML object model that corresponds to the <exit> SCXML element, which is a shorthand notation for an empty anonymous final state. |
| Final | The class in this SCXML object model that corresponds to the <final> SCXML element. |
| Finalize | The class in this SCXML object model that corresponds to the <finalize> SCXML element. |
| History | The class in this SCXML object model that corresponds to the <history> SCXML pseudo state element. |
| If | The class in this SCXML object model that corresponds to the <if> SCXML element, which serves as a container for conditionally executed elements. |
| Initial | The class in this SCXML object model that corresponds to the <initial> SCXML pseudo state element. |
| Invoke | The class in this SCXML object model that corresponds to the <invoke> SCXML element. |
| Log | The class in this SCXML object model that corresponds to the <log> SCXML element. |
| OnEntry | The class in this SCXML object model that corresponds to the <onentry> SCXML element, which is an optional property holding executable content to be run upon entering the parent State or Parallel. |
| OnExit | The class in this SCXML object model that corresponds to the <onexit> SCXML element, which is an optional property holding executable content to be run upon exiting the parent State or Parallel. |
| Parallel | The class in this SCXML object model that corresponds to the <parallel> SCXML element, which is a wrapper element to encapsulate parallel state machines. |
| Param | The class in this SCXML object model that corresponds to the <param> SCXML element. |
| Path | A helper class for this SCXML implementation that represents the path taken to transition from one TransitionTarget to another in the SCXML document. |
| SCXML | The class in this SCXML object model that corresponds to the <scxml> root element, and serves as the "document root". |
| Send | The class in this SCXML object model that corresponds to the <send> SCXML element. |
| State | The class in this SCXML object model that corresponds to the <state> SCXML element. |
| Transition | The class in this SCXML object model that corresponds to the <transition> SCXML element. |
| TransitionTarget | An abstract base class for elements in SCXML that can serve as a <target> for a <transition>, such as State or Parallel. |
| Var | The class in this SCXML object model that corresponds to the <var> SCXML element. |
| Exception Summary | |
| ModelException | Exception that is thrown when the SCXML model supplied to the executor has a fatal flaw that prevents the executor from further interpreting the the model. |
A collection of classes needed to model SCXML documents.
|
|||||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |


WebGL v 0.98
Sulfurous, just like Phosphorus, runs your Scratch projects really fast by compiling them to JavaScript. Try it out by pasting a URL or project ID into the field below or choosing an example. You can also drag a local .sb2 or .sb3 project onto this page.
Sulfurous was created by Mittagskogel and further developed by
FRALEX as part of their work at the Alpen-Adria-University Klagenfurt. Sulfurous is based off Phosphorus, which
was created by Nathan Dinsmore. Its CPS-style compilation and overall
design was inspired by Rhys Simpson's sb2.js . It would have more bugs if not for Truman Kilen. It uses the JSZip
library, created by Stuart Knightley, David Duponchel, Franz Buchinger, and António Afonso, to read .sb2
files and compressed projects,
and the canvg library, created by Gabe Lerner, to render SVGs in
<canvas>
elements.
Sulfurous is released under the MIT license, the source code for Sulfurous is available on GitHub. See Phosphorus for the original version.
Sulfurous is still in development. Click here to report a problem with this project. If you are the creator of this Project please publish your project on scratch that we can see the code and debug it.


Biblio
Profile
Setting
Logout
DASHBOARD
BOOKS
LENDING
MEMBER
STATISTIC
Statistics
Books Avaliable
110
Total Members
220
Books Loaned
330
Books Overdue
440
Graph Statistic
Top 5 Most Active Members
#1 - Chan Ka Chun
#2 - Chan Ka Chun
#3 - Chan Ka Chun
#4 - Chan Ka Chun
#5 - Chan Ka Chun
Top 5 Most Frequently Loaned Book
#1
#2
#3
#4
#5
Genre of Books Own
Genre of Books Loaned Out


| Package | Description |
|---|---|
| scriptella.configuration |
Classes and interfaces to parse script files.
|
| scriptella.core |
Core classes for scripts execution.
|
| scriptella.driver.auto |
Autodiscovery Driver for Scriptella.
|
| scriptella.driver.script |
Scriptella bridge for the JSR 223: Scripting for the Java Platform.
|
| scriptella.execution |
Facade classes for xml scripts execution.
|
| scriptella.spi |
Service Provider Interface classes.
|
| scriptella.text |
Classes for formatting and parsing text.
|
| Class and Description |
|---|
| ConfigurationEl
TODO: Add documentation
|
| ConfigurationException
Thrown if configuration error is found.
|
| ConnectionEl
Connection configuration element.
|
| ContentEl
TODO: Add documentation
|
| DialectBasedContentEl
Represents dialect based content used inside query/script/onerror elements.
|
| FallbackEl
Contains alternate content to be used if the requested resource cannot be found.
|
| Location
Defines xml element location.
|
| OnErrorEl
Represents <onerror> xml element.
|
| ScriptingElement
Base class for queries and scripts.
|
| XmlConfigurable
Implemented by classes which support configuration from XML.
|
| XmlConfigurableBase
Base class for configuration elements.
|
| XmlElement
Represents XML element
|
| Class and Description |
|---|
| ConfigurationEl
TODO: Add documentation
|
| ConnectionEl
Connection configuration element.
|
| Location
Defines xml element location.
|
| OnErrorEl
Represents <onerror> xml element.
|
| QueryEl
TODO: Add documentation
|
| ScriptEl
TODO: Add documentation
|
| ScriptingElement
Base class for queries and scripts.
|
| Class and Description |
|---|
| ConfigurationException
Thrown if configuration error is found.
|
| Class and Description |
|---|
| ConfigurationException
Thrown if configuration error is found.
|
| Class and Description |
|---|
| ConfigurationEl
TODO: Add documentation
|
| Location
Defines xml element location.
|
| Class and Description |
|---|
| ConfigurationException
Thrown if configuration error is found.
|
| ConnectionEl
Connection configuration element.
|
| Class and Description |
|---|
| ConfigurationException
Thrown if configuration error is found.
|
Copyright © Copyright 2006-2019 The Scriptella Project Team.


Please read these terms of use carefully before you start to use the site. By using our site, you indicate that you accept these terms of use and that you agree to abide by them. If you do not agree to these terms of use, please refrain from using our site.
The materials contained on our site are provided for general information purposes only and do not claim to be or constitute legal or other professional advice and shall not be relied upon as such.
We do not accept any responsibility for any loss which may arise from accessing or reliance on the information on this site and to the fullest extent permitted by English law, we exclude all liability for loss or damages direct or indirect arising from use of this site.
[WEBSITE ADDRESS] is a site operated by [YOUR COMPANY NAME] ("We"); we are a [PARTNERSHIP / COMPANY / INDIVIDUAL] registered in England and Wales under registration number [REG NO.]. Our registered office is [OFFICE ADDRESS]. We have other offices at [OTHER OFFICES (IF APPLICABLE)]. Our VAT number is [VAT NUMBER].
We are regulated by the [REGULATORY BODY] and authorised and regulated by the [REGULATORY BODY].
Access to our site is permitted on a temporary basis, and we reserve the right to withdraw or amend the service we provide on our site without notice (see below). We will not be liable if for any reason our site is unavailable at any time or for any period.
We are the owner or the licensee of all intellectual property rights in our site, and in the material published on it. Those works are protected by copyright laws and treaties around the world. All such rights are reserved.
You may print off one copy, and may download extracts, of any page(s) from our site for your personal reference and you may draw the attention of others within your organisation to material posted on our site.
You must not modify the paper or digital copies of any materials you have printed off or downloaded in any way, and you must not use any illustrations, photographs, video or audio sequences or any graphics separately from any accompanying text.
Our status (and that of any identified contributors) as the authors of material on our site must always be acknowledged.
You must not use any part of the materials on our site for commercial purposes without obtaining a licence to do so from us or our licensors.
If you print off, copy or download any part of our site in breach of these terms of use, your right to use our site will cease immediately and you must, at our option, return or destroy any copies of the materials you have made.
We aim to update our site regularly, and may change the content at any time. If the need arises, we may suspend access to our site, or close it indefinitely. Any of the material on our site may be out of date at any given time, and we are under no obligation to update such material.
The material displayed on our site is provided without any guarantees, conditions or warranties as to its accuracy. To the extent permitted by law, we, and third parties connected to us hereby expressly exclude:
for any other loss or damage of any kind, however arising and whether caused by tort (including negligence), breach of contract or otherwise, even if foreseeable, provided that this condition shall not prevent claims for loss of or damage to your tangible property or any other claims for direct financial loss that are not excluded by any of the categories set out above.
This does not affect our liability for death or personal injury arising from our negligence, nor our liability for fraudulent misrepresentation or misrepresentation as to a fundamental matter, nor any other liability which cannot be excluded or limited under applicable law.
We process information about you in accordance with our privacy policy [INSERT A LINK TO SITE'S PRIVACY POLICY].
You must not misuse our site by knowingly introducing viruses, trojans, worms, logic bombs or other material which is malicious or technologically harmful. You must not attempt to gain unauthorised access to our site, the server on which our site is stored or any server, computer or database connected to our site. You must not attack our site via a denial-of-service attack or a distributed denial-of service attack.
By breaching this provision, you would commit a criminal offence under the Computer Misuse Act 1990. We will report any such breach to the relevant law enforcement authorities and we will co-operate with those authorities by disclosing your identity to them. In the event of such a breach, your right to use our site will cease immediately.
We will not be liable for any loss or damage caused by a distributed denial-of-service attack, viruses or other technologically harmful material that may infect your computer equipment, computer programs, data or other proprietary material due to your use of our site or to your downloading of any material posted on it, or on any website linked to it.
Where our site contains links to other sites and resources provided by third parties, these links are provided for your information only. We have no control over the contents of those sites or resources, and accept no responsibility for them or for any loss or damage that may arise from your use of them. When accessing a site via our website we advise you check their terms of use and privacy policies to ensure compliance and determine how they may use your information.
The English courts will have non-exclusive jurisdiction over any claim arising from, or related to, a visit to our site.
These terms of use and any dispute or claim arising out of or in connection with them or their subject matter or formation (including non-contractual disputes or claims) shall be governed by and construed in accordance with the law of England and Wales.
[TRADEMARK NAME] is a UK registered trade mark of [COMPANY NAME].
We may revise these terms of use at any time by amending this page. You are expected to check this page from time to time to take notice of any changes we made, as they are binding on you. Some of the provisions contained in these terms of use may also be superseded by provisions or notices published elsewhere on our site.
If you have any concerns about material which appears on our site, please contact [EMAIL ADDRESS].
Thank you for visiting our site.


Patrick Favre-Bulle built the Under The Hood Demo app as a open source app. This SERVICE is provided by Patrick Favre-Bulle at no cost and is intended for use as is.
This page is used to inform website visitors regarding my policies with the collection, use, and disclosure of Personal Information if anyone decided to use my Service.
If you choose to use my Service, then you agree to the collection and use of information in relation with this policy. The Personal Information that I collect are used for providing and improving the Service. I will not use or share your information with anyone except as described in this Privacy Policy.
The terms used in this Privacy Policy have the same meanings as in our Terms and Conditions, which is accessible at Under The Hood Demo, unless otherwise defined in this Privacy Policy.
Information Collection and Use
This app does not collect any data. Any permission is only for demo purposes to showcase the features of the Under the Hood lib. No data will be shared with any third party.
Changes to This Privacy Policy
I may update our Privacy Policy from time to time. Thus, you are advised to review this page periodically for any changes. I will notify you of any changes by posting the new Privacy Policy on this page. These changes are effective immediately, after they are posted on this page.
Contact Us
If you have any questions or suggestions about my Privacy Policy, do not hesitate to contact me.


|
Vc
0.7.5-dev
SIMD Vector Classes for C++
|
|
The main SIMD vector class.
are only specializations of this class. For the full documentation take a look at the specialized classes. For most cases there are no API differences for the specializations. Thus you can make use of Vector<T>
for generic programming.
#include <Vc/vector.h>
Public Types | |
| enum | { Size } |
| typedef uint_v | IndexType |
| The type of the vector used for indexes in gather and scatter operations. | |
| typedef T | EntryType |
| The type of the entries in the vector. | |
| typedef float_m | Mask |
| The type of the mask used for masked operations and returned from comparisons. |
Public Member Functions | |||||||||||
| Vector () | |||||||||||
| Construct an uninitialized vector. | |||||||||||
| Vector (Vc::Zero) | |||||||||||
| Construct a vector with the entries initialized to zero. | |||||||||||
| Vector (Vc::One) | |||||||||||
| Construct a vector with the entries initialized to one. | |||||||||||
| Vector (T *alignedMemory) | |||||||||||
Construct a vector loading its entries from alignedMemory . | |||||||||||
| template<typename OtherVector > | |||||||||||
| Vector (const OtherVector &) | |||||||||||
| Convert from another vector type. | |||||||||||
| Vector (T x) | |||||||||||
| Broadcast Constructor. | |||||||||||
| void | load (const T *memory, LoadStoreFlags align=Aligned) | ||||||||||
| Construct a vector from an array of vectors with different Size. | |||||||||||
| void | setZero () | ||||||||||
| Set all entries to zero. | |||||||||||
| void | setZero (const float_m &mask) | ||||||||||
| Set all entries to zero where the mask is set. | |||||||||||
| void | store (EntryType *memory, LoadStoreFlags align=Aligned) const | ||||||||||
Store the vector data to memory . | |||||||||||
| T & | operator[] (int index) | ||||||||||
| This operator can be used to modify scalar entries of the vector. | |||||||||||
| T | operator[] (int index) const | ||||||||||
| This operator can be used to read scalar entries of the vector. | |||||||||||
| MaskedVector | operator() (const float_m &mask) | ||||||||||
| Writemask the vector before an assignment. | |||||||||||
| Vector< T > | sorted () const | ||||||||||
| Return a sorted copy of the vector. | |||||||||||
| Vector< T > | copySign (Vector< T > reference) const | ||||||||||
Copies the sign of reference . | |||||||||||
| Vector< T > | exponent () const | ||||||||||
| Extracts the exponent. | |||||||||||
| float_m | isNegative () const | ||||||||||
| Check the sign bit of each vector entry. | |||||||||||
Gather and Scatter Functions | |||||||||||
The gather and scatter functions allow you to easily use vectors with structured data and random accesses. There are several variants:
All gather and scatter functions optionally take a mask as last argument. In that case only the entries that are selected in the mask are read in memory and copied to the vector. This allows you to have invalid indexes in the
The index type (IndexT) can either be a pointer to integers (array) or a vector of integers. Accessing values of a struct works like this: struct MyData {
float a;
int b;
};
void foo(MyData *data, uint_v indexes) {
const float_v v1(data, &MyData::a, indexes);
const int_v v2(data, &MyData::b, indexes);
v1.scatter(data, &MyData::a, indexes - float_v::Size);
v2.scatter(data, &MyData::b, indexes - 1);
}
| |||||||||||
| template<typename IndexT > | |||||||||||
| Vector (const T *array, const IndexT indexes) | |||||||||||
| gather constructor | |||||||||||
| template<typename IndexT > | |||||||||||
| Vector (const T *array, const IndexT indexes, const float_m &mask) | |||||||||||
| masked gather constructor, initialized to zero | |||||||||||
| template<typename IndexT > | |||||||||||
| void | gather (const T *array, const IndexT indexes) | ||||||||||
| gather | |||||||||||
| template<typename IndexT > | |||||||||||
| void | gather (const T *array, const IndexT indexes, const float_m &mask) | ||||||||||
| masked gather | |||||||||||
| template<typename IndexT > | |||||||||||
| void | scatter (T *array, const IndexT indexes) const | ||||||||||
| scatter | |||||||||||
| template<typename IndexT > | |||||||||||
| void | scatter (T *array, const IndexT indexes, const float_m &mask) const | ||||||||||
| masked scatter | |||||||||||
| template<typename S1 , typename IndexT > | |||||||||||
| Vector (const S1 *array, const T S1::*member1, const IndexT indexes) | |||||||||||
| struct member gather constructor | |||||||||||
| template<typename S1 , typename IndexT > | |||||||||||
| Vector (const S1 *array, const T S1::*member1, const IndexT indexes, const float_m &mask) | |||||||||||
| masked struct member gather constructor, initialized to zero | |||||||||||
| template<typename S1 , typename IndexT > | |||||||||||
| void | gather (const S1 *array, const T S1::*member1, const IndexT indexes) | ||||||||||
| struct member gather | |||||||||||
| template<typename S1 , typename IndexT > | |||||||||||
| void | gather (const S1 *array, const T S1::*member1, const IndexT indexes, const float_m &mask) | ||||||||||
| masked struct member gather | |||||||||||
| template<typename S1 , typename IndexT > | |||||||||||
| void | scatter (S1 *array, T S1::*member1, const IndexT indexes) const | ||||||||||
| struct member scatter | |||||||||||
| template<typename S1 , typename IndexT > | |||||||||||
| void | scatter (S1 *array, T S1::*member1, const IndexT indexes, const float_m &mask) const | ||||||||||
| masked struct member scatter | |||||||||||
| template<typename S1 , typename S2 , typename IndexT > | |||||||||||
| Vector (const S1 *array, const S2 S1::*member1, const T S2::*member2, const IndexT indexes) | |||||||||||
| struct member of struct member gather constructor | |||||||||||
| template<typename S1 , typename S2 , typename IndexT > | |||||||||||
| Vector (const S1 *array, const S2 S1::*member1, const T S2::*member2, const IndexT indexes, const float_m &mask) | |||||||||||
| masked struct member of struct member gather constructor, initialized to zero | |||||||||||
| template<typename S1 , typename S2 , typename IndexT > | |||||||||||
| void | gather (const S1 *array, const S2 S1::*member1, const T S2::*member2, const IndexT indexes) | ||||||||||
| struct member of struct member gather | |||||||||||
| template<typename S1 , typename S2 , typename IndexT > | |||||||||||
| void | gather (const S1 *array, const S2 S1::*member1, const T S2::*member2, const IndexT indexes, const float_m &mask) | ||||||||||
| masked struct member of struct member gather | |||||||||||
| template<typename S1 , typename S2 , typename IndexT > | |||||||||||
| void | scatter (S1 *array, S2 S1::*member1, T S2::*member2, const IndexT indexes) const | ||||||||||
| struct member of struct member scatter | |||||||||||
| template<typename S1 , typename S2 , typename IndexT > | |||||||||||
| void | scatter (S1 *array, S2 S1::*member1, T S2::*member2, const IndexT indexes, const float_m &mask) const | ||||||||||
| maksed struct member of struct member scatter | |||||||||||
Comparisons | |||||||||||
All comparison operators return a mask object. void foo(const float_v &a, const float_v &b) {
const float_m mask = a < b;
...
}
| |||||||||||
| float_m | operator== (const Vector< T > &x) const | ||||||||||
Returns mask that is true where vector entries are equal and false otherwise. | |||||||||||
| float_m | operator!= (const Vector< T > &x) const | ||||||||||
Returns mask that is true where vector entries are not equal and false otherwise. | |||||||||||
| float_m | operator> (const Vector< T > &x) const | ||||||||||
Returns mask that is true where the left vector entries are greater than on the right and false otherwise. | |||||||||||
| float_m | operator>= (const Vector< T > &x) const | ||||||||||
Returns mask that is true where the left vector entries are greater than on the right or equal and false otherwise. | |||||||||||
| float_m | operator< (const Vector< T > &x) const | ||||||||||
Returns mask that is true where the left vector entries are less than on the right and false otherwise. | |||||||||||
| float_m | operator<= (const Vector< T > &x) const | ||||||||||
Returns mask that is true where the left vector entries are less than on the right or equal and false otherwise. | |||||||||||
Arithmetic Operations | |||||||||||
The vector classes implement all the arithmetic and (bitwise) logical operations as you know from builtin types. void foo(const float_v &a, const float_v &b) {
const float_v product = a * b;
const float_v difference = a - b;
}
| |||||||||||
| Vector< T > | operator+ (Vector< T > x) const | ||||||||||
| Returns a new vector with the sum of the respective entries of the left and right vector. | |||||||||||
| Vector< T > & | operator+= (Vector< T > x) | ||||||||||
Adds the respective entries of x to this vector. | |||||||||||
| Vector< T > | operator- (Vector< T > x) const | ||||||||||
| Returns a new vector with the difference of the respective entries of the left and right vector. | |||||||||||
| Vector< T > & | operator-= (Vector< T > x) | ||||||||||
Subtracts the respective entries of x from this vector. | |||||||||||
| Vector< T > | operator* (Vector< T > x) const | ||||||||||
| Returns a new vector with the product of the respective entries of the left and right vector. | |||||||||||
| Vector< T > & | operator*= (Vector< T > x) | ||||||||||
Multiplies the respective entries of x from to vector. | |||||||||||
| Vector< T > | operator/ (Vector< T > x) const | ||||||||||
| Returns a new vector with the quotient of the respective entries of the left and right vector. | |||||||||||
| Vector< T > & | operator/= (Vector< T > x) | ||||||||||
Divides the respective entries of this vector by x . | |||||||||||
| Vector< T > | operator- () const | ||||||||||
| Returns a new vector with all entries negated. | |||||||||||
| Vector< T > | operator| (Vector< T > x) const | ||||||||||
| Returns a new vector with the binary or of the respective entries of the left and right vector. | |||||||||||
| Vector< T > | operator& (Vector< T > x) const | ||||||||||
| Returns a new vector with the binary and of the respective entries of the left and right vector. | |||||||||||
| Vector< T > | operator^ (Vector< T > x) const | ||||||||||
| Returns a new vector with the binary xor of the respective entries of the left and right vector. | |||||||||||
| void | fusedMultiplyAdd (Vector< T > factor, Vector< T > summand) | ||||||||||
Multiplies this vector with factor and then adds summand , without rounding between the multiplication and the addition. | |||||||||||
Horizontal Reduction Operations | |||||||||||
| T | min () const | ||||||||||
| Returns the smallest entry in the vector. | |||||||||||
| T | max () const | ||||||||||
| Returns the largest entry in the vector. | |||||||||||
| T | product () const | ||||||||||
| Returns the product of all entries in the vector. | |||||||||||
| T | sum () const | ||||||||||
| Returns the sum of all entries in the vector. | |||||||||||
Apply/Call/Fill Functions | |||||||||||
There are still many situations where the code needs to switch from SIMD operations to scalar execution. In this case you can, of course rely on operator[]. But there are also a number of functions that can help with common patterns. The apply functions expect a function that returns a scalar value, i.e. a function of the form "T f(T)". The call functions do not return a value and thus the function passed does not need a return value. The fill functions are used to serially set the entries of the vector from the return values of a function. Example: void foo(float_v v) {
float_v logarithm = v.apply(std::log);
float_v exponential = v.apply(std::exp);
}
Of course, with C++11, you can also use lambdas here: float_v power = v.apply([](float f) { return std::pow(f, 0.6f); })
| |||||||||||
| template<typename Functor > | |||||||||||
| Vector< T > | apply (Functor &f) const | ||||||||||
Return a new vector where each entry is the return value of f called on the current value. | |||||||||||
| template<typename Functor > | |||||||||||
| Vector< T > | apply (const Functor &f) const | ||||||||||
| Const overload of the above function. | |||||||||||
| template<typename Functor > | |||||||||||
| Vector< T > | apply (Functor &f, float_m mask) const | ||||||||||
As above, but skip the entries where mask is not set. | |||||||||||
| template<typename Functor > | |||||||||||
| Vector< T > | apply (const Functor &f, float_m mask) const | ||||||||||
| Const overload of the above function. | |||||||||||
| template<typename Functor > | |||||||||||
| void | call (Functor &f) const | ||||||||||
Call f with the scalar entries of the vector. | |||||||||||
| template<typename Functor > | |||||||||||
| void | call (const Functor &f) const | ||||||||||
| Const overload of the above function. | |||||||||||
| template<typename Functor > | |||||||||||
| void | call (Functor &f, float_m mask) const | ||||||||||
As above, but skip the entries where mask is not set. | |||||||||||
| template<typename Functor > | |||||||||||
| void | call (const Functor &f, float_m mask) const | ||||||||||
| Const overload of the above function. | |||||||||||
| void | fill (T(&f)()) | ||||||||||
| Fill the vector with the values [f(), f(), f(), ...]. | |||||||||||
| template<typename IndexT > | |||||||||||
| void | fill (T(&f)(IndexT)) | ||||||||||
| Fill the vector with the values [f(0), f(1), f(2), ...]. | |||||||||||
Swizzles | |||||||||||
Swizzles are a special form of shuffles that, depending on the target hardware and swizzle type, may be used without extra cost. The swizzles act on every successive four entries in the vector. Thus the swizzle [0, 1, 2, 3, 4, 5, 6, 7].dcba() results in [3, 2, 1, 0, 7, 6, 5, 4] . This implies a portability issue. The swizzles can only work on vectors where Size is a multiple of four. On Vc::Scalar all swizzles are implemented as no-ops. If a swizzle is used on a vector of Size == 2 compilation will fail. | |||||||||||
| const Vector< T > | abcd () const | ||||||||||
| Identity. | |||||||||||
| const Vector< T > | badc () const | ||||||||||
| Permute pairs. | |||||||||||
| const Vector< T > | cdab () const | ||||||||||
| Permute pairs of two / Rotate twice. | |||||||||||
| const Vector< T > | aaaa () const | ||||||||||
| Broadcast a. | |||||||||||
| const Vector< T > | bbbb () const | ||||||||||
| Broadcast b. | |||||||||||
| const Vector< T > | cccc () const | ||||||||||
| Broadcast c. | |||||||||||
| const Vector< T > | dddd () const | ||||||||||
| Broadcast d. | |||||||||||
| const Vector< T > | bcad () const | ||||||||||
| Rotate three: cross-product swizzle. | |||||||||||
| const Vector< T > | bcda () const | ||||||||||
| Rotate left. | |||||||||||
| const Vector< T > | dabc () const | ||||||||||
| Rotate right. | |||||||||||
| const Vector< T > | acbd () const | ||||||||||
| Permute inner pair. | |||||||||||
| const Vector< T > | dbca () const | ||||||||||
| Permute outer pair. | |||||||||||
| const Vector< T > | dcba () const | ||||||||||
| Reverse. | |||||||||||
Shift and Rotate | |||||||||||
These functions allow to shift or rotate the entries in a vector by the given Both functions support positive and negative numbers for the shift/rotate value. Example: using namespace Vc;
int_v x;
x = foo.shifted( 1); // [2, 3, 4, 0]
x = foo.shifted( 2); // [3, 4, 0, 0]
x = foo.shifted( 3); // [4, 0, 0, 0]
x = foo.shifted( 4); // [0, 0, 0, 0]
x = foo.shifted(-1); // [0, 1, 2, 3]
x = foo.shifted(-2); // [0, 0, 1, 2]
x = foo.shifted(-3); // [0, 0, 0, 1]
x = foo.shifted(-4); // [0, 0, 0, 0]
x = foo.rotated( 1); // [2, 3, 4, 1]
x = foo.rotated( 2); // [3, 4, 1, 2]
x = foo.rotated( 3); // [4, 1, 2, 3]
x = foo.rotated( 4); // [1, 2, 3, 4]
x = foo.rotated(-1); // [4, 1, 2, 3]
x = foo.rotated(-2); // [3, 4, 1, 2]
x = foo.rotated(-3); // [2, 3, 4, 1]
x = foo.rotated(-4); // [1, 2, 3, 4]
These functions are slightly related to the above swizzles. In any case, they are often useful for communication between SIMD lanes or binary decoding operations. | |||||||||||
| const Vector< T > | shifted (int amount) const | ||||||||||
Shift vector entries to the left by amount ; shifting in zeros. | |||||||||||
| const Vector< T > | rotated (int amount) const | ||||||||||
Rotate vector entries to the left by amount . |
Static Public Member Functions | |
| static Vector< T > | Zero () |
| Returns a vector with the entries initialized to zero. | |
| static Vector< T > | One () |
| Returns a vector with the entries initialized to one. | |
| static Vector< T > | Random () |
| Returns a vector with pseudo-random entries. |
| anonymous enum |
| Size |
The size of the vector. I.e. the number of scalar entries in the vector. Do not make any assumptions about the size of vectors. If you need a vector of float vs. integer of the same size make use of IndexType instead. Note that this still does not guarantee the same size (e.g. double_v on SSE has two entries but there exists no 64 bit integer vector type in Vc - which would have two entries; thus double_v::IndexType is uint_v). Also you can easily use if clauses that compare sizes. The compiler can statically evaluate and fully optimize dead code away (very much like #ifdef, but with syntax checking). |
| Vector | ( | T * | alignedMemory | ) |
Construct a vector loading its entries from alignedMemory
.
| alignedMemory | A pointer to data. The pointer must be aligned on a Vc::VectorAlignment boundary. |
| Vector | ( | T | x | ) |
Broadcast Constructor.
Constructs a vector with all entries of the vector filled with the given value.
| x | The scalar value to broadcast to all entries of the constructed vector. |
|
static |
Returns a vector with pseudo-random entries.
Currently the state of the random number generator cannot be modified and starts off with the same state. Thus you will get the same sequence of numbers for the same sequence of calls.
| void load | ( | const T * | memory, |
| LoadStoreFlags | align = Aligned |
||
| ) |
Construct a vector from an array of vectors with different Size.
E.g. convert from two double_v to one float_v.
E.g. convert from one float_v to two double_v.
This is the reverse of the above constructor. Load the vector entries from memory
, overwriting the previous values.
| memory | A pointer to data. |
| align | Determines whether memory is an aligned pointer or not. |
| void setZero | ( | const float_m & | mask | ) |
Set all entries to zero where the mask is set.
I.e. a 4-vector with a mask of 0111 would set the last three entries to 0.
| mask | Selects the entries to be set to zero. |
| void store | ( | EntryType * | memory, |
| LoadStoreFlags | align = Aligned |
||
| ) | const |
Store the vector data to memory
.
| memory | A pointer to memory, where to store. |
| align | Determines whether memory is an aligned pointer or not. |
| T& operator[] | ( | int | index | ) |
This operator can be used to modify scalar entries of the vector.
| index | A value between 0 and Size. This value is not checked internally so you must make/be sure it is in range. |
index
.| T operator[] | ( | int | index | ) | const |
This operator can be used to read scalar entries of the vector.
| index | A value between 0 and Size. This value is not checked internally so you must make/be sure it is in range. |
index
. | MaskedVector operator() | ( | const float_m & | mask | ) |
Writemask the vector before an assignment.
| mask | The writemask to be used. |
The returned object is only to be used for assignments and should not be assigned to a variable.
Examples:
Multiplies this vector with factor
and then adds summand
, without rounding between the multiplication and the addition.
| factor | The multiplication factor. |
| summand | The summand that will be added after multiplication. |
| Vector<T> sorted | ( | ) | const |
Return a sorted copy of the vector.
v[0] <= v[1] <= v[2] <= v[3] ...
Example:
With SSE the output would be:
[1513634383, -963914658,<PHONE_NUMBER>, -1285037745] [-1285037745, -963914658,<PHONE_NUMBER>,<PHONE_NUMBER>]
With the Scalar implementation:
[1513634383] [1513634383]
Copies the sign of reference
.
| reference | This values sign bit will be transferred. |
reference
. I.e. sign(v.copySign(r)) == sign(r). | Vector<T> exponent | ( | ) | const |
Extracts the exponent.
This function provides efficient access to the exponent of the floating point number. The returned value is a fast approximation to the logarithm of base 2. The absolute error of that approximation is between [0, 1[.
Examples:
value | exponent | log2 =======|==========|======= 1.0 | 0 | 0 2.0 | 1 | 1 3.0 | 1 | 1.585 3.9 | 1 | 1.963 4.0 | 2 | 2 4.1 | 2 | 2.036
You may use abs to apply this function to negative values:
| float_m isNegative | ( | ) | const |
Check the sign bit of each vector entry.
This function is especially useful to distinguish negative zero.


{% if action.action_type == 'COMMENT' %}
Commented on {% if action.comment.parent.question %}{% include 'eray/partials/_question_link.html' with question=action.comment.parent.question %}{% else %}{% include 'eray/partials/_question_link.html' with question=action.comment.parent.answer.parent %}{% endif %}.
{% elif action.action_type == 'ASK' %}
Asked {% include 'eray/partials/_question_link.html' with question=action.question %}.
{% elif action.action_type == 'ANSWER' %}
Answered {% include 'eray/partials/_question_link.html' with question=action.answer.parent %}.
{% elif action.action_type == 'ACCEPTED' %}
Accepted an answer on {% include 'eray/partials/_question_link.html' with question=action.answer.parent %}.
{% elif action.action_type == 'WAS_ACCEPTED' %}
Answer on {% include 'eray/partials/_question_link.html' with question=action.answer.parent %} was accepted.
{% endif %}


Welcome to the SketchUp Software Development Kit. We appreciate your interest in interacting with the SketchUp and LayOut applications. The SDK contains the following items:
- SketchUp C API- This API is used to read and write information to and from SketchUp models. This can take the form of a SketchUp importer or exporter plugin, or a third party standalone application.
- SketchUp C API Documentation - Documentation for the SketchUp C API and the Importer/Exporter interface. It can be found here.
- LayOut C API- This API is used to read and write information to and from LayOut documents. This can take the form of a third party standalone application, or be incorporated into a SketchUp Ruby Extension.
- LayOut C API Documentation - Documentation for the LayOut C API can be found here.
- Sample C++ Projects - These projects demonstrate various uses of the SketchUp C API and LayOut C API.
- Migration Guide - Document explaining the steps required to migrate an existing SkpReader or SkpWriter plugin to the new SketchUp C API Importer/Exporter interface. It can be found here.
- Trimble SketchUp APIs Terms of Service - Document describing the terms of service for using the SketchUp SDK. It can be found here.
This package contains the header files, binaries, reference documentation and examples you'll need to get started using the APIs.
|


Getting the sources
…using IntelliJ Idea
- Open IntelliJ Idea
- If previous project is opened, close it (menu File, Close project)
-
Click Check out from version control and select git
-
Enter “Git repository URL”:
https://github.com/sorcersoft/sorcer.git
Click Next.
-
Create directory for idea projects or use an existing one.
Click clone
-
Before compiling the whole project please set the environment variable SORCER_HOME and point it to the root directory to which you cloned the project.
-
You can compile the code from console by running mvn install.
…using (Windows) console
- Open Menu Start
- Click Run
- Enter cmd, click Run
-
In the shell execute
mkdir IdeaProjects cd IdeaProjects git clone https://github.com/sorcersoft/sorcer.git
-
Open IntelliJ Idea
- If previous project is opened, close it (menu File, Close project)
-
Click Import project
-
In the directory tree select newly created IdeaProjects/sorcer/pom.xml and click OK.
-
Click Next
-
Do not select any profiles, click Next
-
Make sure org.sorcersoft.sorcer:sorcer:version is selected
-
Select Java SDK, or setup one if there is none
-
(Leave the defaults) Clik Finish
-
Before compiling the whole project please set the environment variable SORCER_HOME and point it to the root directory to which you cloned the project.
-
You can compile the code from console by running mvn install.


If you click on me, I will disappear.
Click me away!
Click me too!
Click here to hide the P tag elements
Click here to test the Toggle Function
Enter Your name:
Enter Your age :


game server may be full or offline.
Let's play game five-chess-in-a-row.
I use BLACK chess
I use WHITE chess
start game
please choose chess color
X


{% extends "base.html" %} {% block main %}
Your password has been successfully changed, and you have finished resetting it! Now that we've finished that up, you can go ahead and log in to the student section.


Aston Martin DBX Lights Up The Night In New Teaser
Are you ready for the first Aston Martin SUV?
by Chris OkulaThe upcoming Aston Martin DBX SUV is almost here, but before it debuts on November 20th of 2019 we have a new teaser trailer to analyze. So without further waiting let's figure out what’s happening in this video.
Gallery: Aston Martin DBX Lights Up The Night In New Teaser
The scene opens, night time, Head on My Shoulders sung by Benedic Lamdin and Riaan Vosloo plays in the background. The Aston Martin DBX drives down a winding country backroad LED high beams cut through the pitch-black darkness. Cut as we enter a city at night, traffic lights reflect off the SUV. Cutaway shots of leather, low profile tires, and the Aston Martin badge flash across the screen. Finally, the DBX slips into the darkness of the night sporting tail lights very similar to the latest Vantage.
Aston Martin recently confirmed that the upcoming DBX will start at $192,086 which is very similar to the Lamborghini Urus SUV. Power will come from a Mercedes AMG based twin-turbo V8 which produces 542 horsepower and 516 lb-ft of torque and is mated to a 9-speed automatic transmission. This is a familiar combination seen on Mercedes AMG products which have proven to be very effective.
To keep all of this power in check, Aston Martin confirmed the DBX will use an adjustable suspension and electronic anti-roll bars. The DBX is said to be based on the DB11 coupe and features an aluminum bonded structure to help keep weight down. SUVs like the Bentley Betayga and Mercedes GLS use similar systems with great results.
Top DBX news
Based on the teaser we can see similar modern Aston Martin design cues from the DB11 and Vantage. Even with the quick shots in a dark setting, this SUV is unmistakably an Aston Martin. With the debut right around the corner, we’re very excited to finally see the DBX sans camouflage and report how it drives.
Source: Aston Martin


Public 成员函数 | |
| Vector2 () | |
| Vector2 (float x, float y) | |
| Vector2 (Vector2 toCopy) | |
| final void | setZero () |
| final Vector2 | set (float x, float y) |
| final Vector2 | set (Vector2 v) |
| final Vector2 | add (Vector2 v) |
| final Vector2 | sub (Vector2 v) |
| final Vector2 | mul (float a) |
| final Vector2 | negate () |
| final Vector2 | negateLocal () |
| final Vector2 | addLocal (Vector2 v) |
| final Vector2 | addLocal (float x, float y) |
| final Vector2 | subLocal (Vector2 v) |
| final Vector2 | mulLocal (float a) |
| final Vector2 | skew () |
| final void | skew (Vector2 out) |
| final float | length () |
| final float | lengthSquared () |
| final float | normalize () |
| final boolean | isValid () |
| final Vector2 | abs () |
| final void | absLocal () |
| final Vector2 | clone () |
| final String | toString () |
| int | hashCode () |
| boolean | equals (Object obj) |
静态 Public 成员函数 | |
| static final Vector2 | abs (Vector2 a) |
| static final void | absToOut (Vector2 a, Vector2 out) |
| static final float | dot (Vector2 a, Vector2 b) |
| static final float | cross (Vector2 a, Vector2 b) |
| static final Vector2 | cross (Vector2 a, float s) |
| static final void | crossToOut (Vector2 a, float s, Vector2 out) |
| static final void | crossToOutUnsafe (Vector2 a, float s, Vector2 out) |
| static final Vector2 | cross (float s, Vector2 a) |
| static final void | crossToOut (float s, Vector2 a, Vector2 out) |
| static final void | crossToOutUnsafe (float s, Vector2 a, Vector2 out) |
| static final void | negateToOut (Vector2 a, Vector2 out) |
| static final Vector2 | min (Vector2 a, Vector2 b) |
| static final Vector2 | max (Vector2 a, Vector2 b) |
| static final void | minToOut (Vector2 a, Vector2 b, Vector2 out) |
| static final void | maxToOut (Vector2 a, Vector2 b, Vector2 out) |
Public 属性 | |
| float | x |
A 2D column vector
| ygame.math.vector.Vector2.Vector2 | ( | ) |
| ygame.math.vector.Vector2.Vector2 | ( | float | x, |
| float | y | ||
| ) |
| ygame.math.vector.Vector2.Vector2 | ( | Vector2 | toCopy | ) |
| final Vector2 ygame.math.vector.Vector2.abs | ( | ) |
Return a new vector that has positive components.
| final void ygame.math.vector.Vector2.absLocal | ( | ) |
Return the sum of this vector and another; does not alter either one.
Add another vector to this one and returns result - alters this vector.
| final Vector2 ygame.math.vector.Vector2.addLocal | ( | float | x, |
| float | y | ||
| ) |
Adds values to this vector and returns result - alters this vector.
| final Vector2 ygame.math.vector.Vector2.clone | ( | ) |
Return a copy of this vector.
|
static |
|
static |
| boolean ygame.math.vector.Vector2.equals | ( | Object | obj | ) |
| int ygame.math.vector.Vector2.hashCode | ( | ) |
| final boolean ygame.math.vector.Vector2.isValid | ( | ) |
True if the vector represents a pair of valid, non-infinite floating point numbers.
| final float ygame.math.vector.Vector2.length | ( | ) |
Return the length of this vector.
| final float ygame.math.vector.Vector2.lengthSquared | ( | ) |
Return the squared length of this vector.
| final Vector2 ygame.math.vector.Vector2.mul | ( | float | a | ) |
Return this vector multiplied by a scalar; does not alter this vector.
| final Vector2 ygame.math.vector.Vector2.mulLocal | ( | float | a | ) |
Multiply this vector by a number and return result - alters this vector.
| final Vector2 ygame.math.vector.Vector2.negate | ( | ) |
Return the negation of this vector; does not alter this vector.
| final Vector2 ygame.math.vector.Vector2.negateLocal | ( | ) |
Flip the vector and return it - alters this vector.
| final float ygame.math.vector.Vector2.normalize | ( | ) |
Normalize this vector and return the length before normalization. Alters this vector.
| final Vector2 ygame.math.vector.Vector2.set | ( | float | x, |
| float | y | ||
| ) |
Set the vector component-wise.
| final void ygame.math.vector.Vector2.setZero | ( | ) |
Zero out this vector.
| final Vector2 ygame.math.vector.Vector2.skew | ( | ) |
Get the skew vector such that dot(skew_vec, other) == cross(vec, other)
| final void ygame.math.vector.Vector2.skew | ( | Vector2 | out | ) |
Get the skew vector such that dot(skew_vec, other) == cross(vec, other)
Return the difference of this vector and another; does not alter either one.
Subtract another vector from this one and return result - alters this vector.
| final String ygame.math.vector.Vector2.toString | ( | ) |
| float ygame.math.vector.Vector2.x |


WITNESS LIST
Transportation Committee
April 23, 2015 - 8:00 AM
For:
Burkeen, Daniel (Self; Limestone County)
Gerrick, Emily (Texas Fair Defemse Project)
Henson, Scott (Texas Criminal Justice Coalition)
Registering, but not testifying:
For:
Berry, Traci (Goodwill Central Texas)
Cummings, Patricia (Texas Criminal Defense Lawyers Association)
Henning, Lori (Texas Association of Goodwills)
Isett, Carl (Texas Criminal Justice Coalition)
Simpson, Matt (ACLU of Texas)
On:
Barton, John (Texas Department of Transportation)
Williams, Marc (Texas Department of Transportation)
For:
Shows, Dave (Vidor Police Department)
On:
Nordloh, Chris (Tx dps)
Registering, but not testifying:
Against:
Pacheco, Michael (Texas Farm Bureau)
On:
Barton, John (Texas Department of Transportation)
Williams, Marc (Texas Department of Transportation)
For:
Burkeen, Daniel (Self; Limestone County)
Duhon, Trey (Self; Waller County)
Leman, Ben (Self; Grimes County)
McDaniel, Bob (Self)
Registering, but not testifying:
For:
Agan, Dan (Self)
Ballard, Denise (Self)
Boudreaux, Joseph (Anderson alderman)
Boudreaux, Susan (Self)
1
WITNESS LIST
For:
Burns Porter, Desi (Texans against hsr)
Cain, Ann (Self)
Cain, Sandy (Self)
Calhoun, Randa (Self)
Cauley, Tiffany (Self; Texans Against High Speed Rail)
Cauley, Todd (Self; Texans Against High Speed Rail)
Comly, Frank (Self)
Cox, James (Self)
Cox, Shirley (Self)
Dincans, Kyle (Self)
DuBois, Tom (Self)
Finch, George (Self)
Fultz, Jon (Self; Grimes County, Texas)
Gleason, C. (Self)
Gleason III, Thomas (Self)
Grayson, Lane (Self; Ellis county)
Grepares, Jan (Self)
Gressett, Kevin (Self)
Hall, Terri (Self; Texas TURF & Texans for Toll-free Highways)
Johnston, Harvey (Self)
Johnston, Trish (Self)
Jordan, Rhonda Page (Self)
Kaufmann, Kathryn (TEXAS CENTRAL RAILWAY)
Leman, Sandy (Self)
Martin, Chuck (Self)
Mason, Sage (Self)
Mason, Sterling (Self)
McDaniel, Pam (Self)
Miles, Jim (Self)
Moore, Kathy (Self)
Moore, Tom (Self)
Robinson, Dennis (Ellis County)
Robinson, Howard (Self)
Skaggs, Jason (Texas and Southwestern Cattle Raisers Association)
Stanford, Dean (Self; Leon county)
Stewart, Cathy (Self)
Stewart, Keith (Self)
Surface, Morris (Self)
Timmerman, Clara (Self)
Timmerman sr, Roger (Self)
Watzek, Anne (Self)
Whittlesey, Vikki (Self)
Workman, Christen (Self; Texans against high speed rail)
2
WITNESS LIST
On:
Barton, John (Texas Department of Transportation)
Williams, Marc (Texas Department of Transportation)
For:
Agan, Dan (Self)
Burns Porter, Desi (Texans against hsr)
Calhoun, Randa (Self)
Dincans, Kyle (Self)
Duhon, Trey (Self; Waller County)
Finger, Jack m. (Self)
Fultz, Jon (Self; Grimes County, Texas)
Grayson, Lane (Self; Ellis county)
Gressett, Kevin (Self)
Hall, Terri (Self; Texas TURF & Texans for Toll-free Highways)
Jordan, Rhonda Page (Self)
Leman, Ben (Self; Grimes County)
Leman, Sandy (Self)
McDaniel, Bob (Self)
Miles, Jim (Self)
Robinson, Howard (Self)
Stanford, Dean (Self; Leon county)
Against:
Kaufman, Kathryn (TEXAS CENTRAL RAILWAY)
Kleinman, Lee (City of Dalla)
Registering, but not testifying:
For:
Ballard, Denise (Self)
Boudreaux, Joseph (Anderson alderman)
Boudreaux, Susan (Self)
Burkeen, Daniel (Self; Limestone County)
Cain, Ann (Self)
Cain, Sandy (Self)
Cauley, Tiffany (Self; Texans Against High Speed Rail)
Cauley, Todd (Self; Texans Against High Speed Rail)
Comly, Frank (Self)
Cox, James (Self)
Cox, Shirley (Self)
Dossey, Patrick (Self)
DuBois, Tom (Self)
Finch, George (Self)
Gleason, C. (Self)
Grepares, Jan (Self)
Harless, Barbara (Self; North Texas Citizens Lobby)
3
WITNESS LIST
For:
Johnston, Harvey (Self)
Johnston, Trish (Self)
Martin, Chuck (Self)
Mason, Sage (Self)
Mason, Sterling (Self)
McDaniel, Pam (Self)
Moore, Kathy (Self)
Moore, Tom (Self)
OMeara, Thomas (Self)
Robinson, Dennis (Ellis county)
Skaggs, Jason (Texas and Southwestern Cattle Raisers Association)
Stewart, Cathy (Self)
Stewart, Keith (Self)
Surface, Morris (Self)
Taylor, Cozetta (Self)
Taylor, Karyn (Self)
Timmerman, Clara (Self)
Timmerman sr, Roger (Self)
Watzek, Anne (Self)
Whittlesey, Vikki (Self)
Workman, Christen (Self; Texans against high speed rail)
Against:
Barksdale, Jay (Dallas Regional Chamber)
Bird, Brandi (Dallas Regional Mobility Coalition)
Bird, Brandi (Dallas Regional Mobility Coalition)
Boyer, Victor (San Antonio Mobility Coalition, Inc.)
Campbell, Drew (Dallas Regional Mobility Coalition)
Cobb, Vance (Self)
Eckels, Robert (TEXAS CENTRAL HIGH SPEED RAILWAY)
Geske, Matthew (Fort Worth Chamber of Commerce)
Glenn, Eric (TEXAS CENTRAL RAILWAY)
Hale, Cheryl (Self)
Janes, Brandon (Self)
Koplos, Greg (Self)
Lanagan, Lindsay (City of Houston)
Minick, Stephen (Texas Asssociation of Business)
Patterson, TJ (City of Fort Worth)
Suhm, Vic (Tarrant Regional Transportation Coalition)
On:
Barton, John (Texas Department of Transportation)
Williams, Marc (Texas Department of Transportation)
4
WITNESS LIST
For:
Sullivan, Mike (Self; Harris County Tax Assessor-Collector)
Against:
Carter, Dave (Self; City of Richardson)
Delagarza, Robert (Balcones heights police dept)
Registering, but not testifying:
Against:
Drain, Ed (City of Plano)
Embrey, Ty (City of Garland)
Franco, Brie (City of El Paso)
Kroll, John (City of Humble)
Lanagan, Lindsay (City of Houston)
On:
Barton, John (Texas Department of Transportation)
Kuntz, Jeremiah (Texas Department of Motor Vehicles)
Williams, Marc (Texas Department of Transportation)
For:
Day, Kenneth (Self; Almalgamated transit union 1338)
Registering, but not testifying:
For:
Christian, DeBoss (Self; A.T.U 1338)
Swaim, Richard (Self; ATU Local 1338)
On:
Barton, John (Texas Department of Transportation)
Williams, Marc (Texas Department of Transportation)
For:
Smith, Kayne (Self; Texas Association for Pupil Transportation)
On:
Nordloh, Chris (Tx dps)
Registering, but not testifying:
For:
Smith, Melinda (Combined Law Enforcement Associations of Texas)
Ward, Kyle (Texas PTA)
Williams, Nancy (City of Austin)
On:
Barton, John (Texas Department of Transportation)
5
WITNESS LIST
On:
Williams, Marc (Texas Department of Transportation)
Registering, but not testifying:
On:
Barton, John (Texas Department of Transportation)
Nordloh, Chris (Tx dps)
Williams, Marc (Texas Department of Transportation)
For:
Eriksson, Erik (Board of Pilot Commissioners for Harris County Ports)
Registering, but not testifying:
For:
Valdez, Jerry (Port of Houston Authority)
On:
Barton, John (Texas Department of Transportation)
Williams, Marc (Texas Department of Transportation)
For:
Dunn, Monty (Self; Us custom harvesters)
Registering, but not testifying:
For:
Mcwilliams, Dean (Us custom harvesters)
Neely, Osan (Self; Us custom harvesting assn)
Pacheco, Michael (Texas Farm Bureau)
Tufts, Kyle (Self; U. S. custom harvesters inc.)
On:
Archer, Jimmy (Texas Dept of Motor Vehicles)
Barton, John (Texas Department of Transportation)
McKee, Scott (Texas Dept. of Motor Vehicles)
Williams, Marc (Texas Department of Transportation)
For:
Hall, Terri (Self; Texas TURF & Texans for Toll-free Highways)
Registering, but not testifying:
For:
Agan, Dan (Self)
Baggett, Donnis (Self; Texas Press Association)
6
WITNESS LIST
For:
Dixon, Don (Self)
Dossey, Patrick (Self)
Finger, Jack m. (Self)
Harless, Barbara (Self; North Texas Citizens Lobby)
O'Reilly, Brian (Alamo RMA; Camino Real RMA; Cameron County RMA; Central Texas
RMA; Grayson County RMA; North East Texas RMA)
Shannon, Kelley (Freedom of Information Foundation of Texas)
On:
Barton, John (Texas Department of Transportation)
Williams, Marc (Texas Department of Transportation)
For:
Greytok, John (City of Stafford)
Jessup, Charles (Self; City of Meadows Place)
Tagliabue, Tom (City of Corpus Christi)
Against:
Dixon, Don (Self)
Hall, Terri (Self; Texas TURF & Texans for Toll-free Highways)
Hall, Terri (Self; Texas TURF & Texans for Toll-free Highways)
Newton, Chris (Texas Food & Fuel Association)
Registering, but not testifying:
For:
Boyer, Victor (San Antonio Mobility Coalition, Inc.)
Ellsesser, Stephen (Greater El Paso Chamber of Commerce)
Franco, Brie (City of El Paso)
French, Andrea (Self; Transportation Advocacy Group (TAG Houston))
Garcia, Jesus (The City of Alice)
Greytok, Marta (Self; City of austin)
Greytok, Marta (Self; City of stafford)
Janes, Brandon (Transportation Advocates of Texas)
Martinez, Larry (City of Alice)
Patterson, TJ (City of Fort Worth)
Suhm, Vic (Tarrant Regional Transportation Coalition)
Trevino, Pedro "Pete" (Jim Wells County)
Wynn, Monty (Texas Municipal League)
Against:
Agan, Dan (Self)
Finger, Jack m. (Self)
Minick, Stephen (Texas Asssociation of Business)
Perry, Steve (Chevron USA)
On:
Barton, John (Texas Department of Transportation)
7
WITNESS LIST
On:
Barton, Karey (Comptroller of Public Accounts)
Williams, Marc (Texas Department of Transportation)
For:
Allen Gray, Kelly (City of Fort Worth)
McElroy, Denis (City Of Fort Worth)
On:
Amos, Nancy (Fort Worth Transportation Authority)
Registering, but not testifying:
For:
Geske, Matthew (Fort Worth Chamber of Commerce)
Mendez, Mark (Tarrant County Commissioners Court)
Suhm, Vic (Tarrant Regional Transportation Coalition)
Valdez, Jerry (City of Richland Hills, Tx)
On:
Barton, John (Texas Department of Transportation)
Williams, Marc (Texas Department of Transportation)
Registering, but not testifying:
On:
Barton, John (Texas Department of Transportation)
Chrane, Justin (Texas DPS)
Nordloh, Chris (Tx dps)
Williams, Marc (Texas Department of Transportation)
For:
Niederhofee, Norma (Lonestar handicap vans, llc)
Niederhofer, Bill (Lonestar handicap vans)
Against:
Braziel, Robert (Texas Automobile Dealers Association)
On:
Lingo, Michelle (TXDMV)
Registering, but not testifying:
On:
Barton, John (Texas Department of Transportation)
Williams, Marc (Texas Department of Transportation)
8


New figures to sell, click here$500 Some strange alien thing with details about this and special offers
View
New figures to sell, click here£500 Some strange alien thing with details about this and special offers
...not quite sure what these are
...something to do with warhammer
...tanks in the desert and things