TQ3BoxData |
typedef struct TQ3BoxData { TQ3Point3D origin; TQ3Vector3D orientation; TQ3Vector3D majorAxis; TQ3Vector3D minorAxis; TQ3AttributeSet _Nullable * _Nullable faceAttributeSet; TQ3AttributeSet _Nullable boxAttributeSet; } TQ3BoxData;
Data describing the state of a box object.
- origin
- Origin of the box (one of the corners).
- orientation
- Orientation vector of the box.
- majorAxis
- Major axis of the box.
- minorAxis
- Minor axis of the box.
- faceAttributeSet
- Array of attribute set objects for the 6 faces. This field may be NULL, or individual sets in the array may be NULL.
- boxAttributeSet
- Attribute set object holding attributes that apply to all of the faces. May be NULL.
TQ3ConeData |
typedef struct TQ3ConeData { TQ3Point3D origin; TQ3Vector3D orientation; TQ3Vector3D majorRadius; TQ3Vector3D minorRadius; float uMin; float uMax; float vMin; float vMax; TQ3EndCap caps; TQ3AttributeSet _Nullable interiorAttributeSet; TQ3AttributeSet _Nullable faceAttributeSet; TQ3AttributeSet _Nullable bottomAttributeSet; TQ3AttributeSet _Nullable coneAttributeSet; } TQ3ConeData;
Data describing the state of a cone object. The orientation, major radius,
and minor radius vectors need not be orthogonal, though they should be
independent. Normally these vectors (in that order) should form a right-handed system.
If they form a left-handed system, then the cone is "inside out", i.e., the front face
is inside.
The values uMin
, uMax
, vMin
, and vMax
allow partial cones, e.g., a cone with a wedge cut out of it or with its tip cut off.
This feature was not implemented in QuickDraw 3D. See the discussion of
TQ3EllipseData
for notes on the interpretation of uMin
and
uMax
.
If vMax
< 1, so that the tip is cut off, the top disk is considered part of
an interior face, rather than a top cap.
- origin
- The center of the base of the cone.
- orientation
- Vector from the origin to the tip of the cone.
- majorRadius
- A vector from the origin to a point on the perimeter of the base.
- minorRadius
- A vector from the origin to a point on the perimeter of the base.
- uMin
- Minimum value of the u parameter, which goes around the base. Typically 0.
- uMax
- Maximum value of the u parameter, which goes around the base. Typically 1.
- vMin
- Minimum value of the v parameter, which goes from base to tip. Typically 0.
- vMax
- Minimum value of the v parameter, which goes from base to tip. Typically 1.
- caps
- End cap masks, determining whether there is a bottom cap, and in the case of partial cones, determining whether there is an interior face.
- interiorAttributeSet
- Interior attributes. Unused by QD3D.
- faceAttributeSet
- Attributes that affect the face but not the bottom. May be nullptr.
- bottomAttributeSet
- Attributes that affect the bottom end cap. May be nullptr.
- coneAttributeSet
- Attributes for all parts of the cone. May be nullptr.
TQ3CylinderData |
typedef struct TQ3CylinderData { TQ3Point3D origin; TQ3Vector3D orientation; TQ3Vector3D majorRadius; TQ3Vector3D minorRadius; float uMin; float uMax; float vMin; float vMax; TQ3EndCap caps; TQ3AttributeSet _Nullable interiorAttributeSet; TQ3AttributeSet _Nullable topAttributeSet; TQ3AttributeSet _Nullable faceAttributeSet; TQ3AttributeSet _Nullable bottomAttributeSet; TQ3AttributeSet _Nullable cylinderAttributeSet; } TQ3CylinderData;
Data describing the state of a cylinder object. The orientation, major radius,
and minor radius vectors need not be orthogonal, though they should be
independent. Ordinarily, the vectors (orientation, major axis, minor axis)
should form a right-handed coordinate system. If they form a left-handed system,
then the cylinder is "inside out", i.e., the front face is inside.
The values uMin
, uMax
, vMin
, and vMax
allow partial cylinders, e.g., a cylinder with a wedge cut out of it.
This feature was not implemented in QuickDraw 3D. See the discussion of
TQ3EllipseData
for notes on the interpretation of uMin
and
uMax
.
- origin
- The center of the base of the cylinder.
- orientation
- Vector from the origin to the center of the opposite end.
- majorRadius
- A vector from the origin to a point on the perimeter of the base.
- minorRadius
- A vector from the origin to a point on the perimeter of the base.
- uMin
- Starting value of the u parameter, which goes around the base counterclockwise. Typically 0.
- uMax
- Ending value of the u parameter, which goes around the base counterclockwise. Typically 1.
- vMin
- Minimum value of the v parameter, which goes from the base to the other end. Typically 0.
- vMax
- Maximum value of the v parameter, which goes from the base to the other end. Typically 1.
- caps
- End cap masks, determining whether the cylinder is closed on one end, the other, or both.
- interiorAttributeSet
- Interior attributes. May be nullptr. Unused by QD3D.
- topAttributeSet
- Attributes that affect the top end cap. May be nullptr.
- faceAttributeSet
- Attributes that affect the face but not the bottom or top. May be nullptr.
- bottomAttributeSet
- Attributes that affect the bottom end cap. May be nullptr.
- cylinderAttributeSet
- Attributes for all parts of the cylinder. May be nullptr.
TQ3DiskData |
typedef struct TQ3DiskData { TQ3Point3D origin; TQ3Vector3D majorRadius; TQ3Vector3D minorRadius; float uMin; float uMax; float vMin; float vMax; TQ3AttributeSet _Nullable diskAttributeSet; } TQ3DiskData;
Data describing the state of a disk object (a filled ellipse). The major radius
and minor radius vectors need not be orthogonal, though they should be independent.
The direction of the front face is the cross product of the major and minor axes.
The values uMin
, uMax
, vMin
, and vMax
allow partial disks, e.g., a slice of pie (partial range of u values) or a washer
(partial range of v values). This feature was never implemented in QuickDraw 3D,
although it was planned. See the discussion of TQ3EllipseData
for notes
on the interpretation of uMin
and uMax
.
The u and v limits here do not have anything to do with the uv parametrization used by
shaders.
- origin
- The center of the disk.
- majorRadius
- A vector from the origin to a point on the perimeter of the disk.
- minorRadius
- A vector from the origin to a point on the perimeter of the disk.
- uMin
- Starting value of the u parameter, which goes around the perimeter counterclockwise. Typically 0, must be in the range [0, 1].
- uMax
- Ending value of the u parameter, which goes around the perimeter counterclockwise. Typically 1, must be in the range [0, 1].
- vMin
- Minimum value of the v parameter, which goes from the perimeter to the origin. Typically 0, must be in the range [0, 1].
- vMax
- Maximum value of the v parameter, which goes from the perimeter to the origin. Typically 1, must be in the range [0, 1].
- diskAttributeSet
- Attributes for the disk. May be nullptr.
TQ3EllipseData |
typedef struct TQ3EllipseData { TQ3Point3D origin; TQ3Vector3D majorRadius; TQ3Vector3D minorRadius; float uMin; float uMax; TQ3AttributeSet _Nullable ellipseAttributeSet; } TQ3EllipseData;
Data describing the state of an ellipse. The major radius and minor radius
vectors need not be orthogonal, though they should be independent.
You can make a partial ellipse by using values other than 0 and 1 for the
uMin
and uMax
fields. The ellipse travels
counterclockwise from the uMin
to the uMax
value.
It is permissible for uMin
to be greater than uMax
.
For example, if uMin
= 7/8 and uMax
= 1/8, then the
ellipse covers a range of 45 degrees, including the zero angle.
- origin
- Center of the ellipse.
- majorRadius
- A vector from the origin to a point on the curve.
- minorRadius
- Another vector from the origin to a point on the curve.
- uMin
- Starting value of the u parameter. Typically 0.
- uMax
- Ending value of the u parameter. Typically 1.
- ellipseAttributeSet
- Attributes for the ellipse. May be nullptr.
TQ3EllipsoidData |
typedef struct TQ3EllipsoidData { TQ3Point3D origin; TQ3Vector3D orientation; TQ3Vector3D majorRadius; TQ3Vector3D minorRadius; float uMin; float uMax; float vMin; float vMax; TQ3EndCap caps; TQ3AttributeSet _Nullable interiorAttributeSet; TQ3AttributeSet _Nullable ellipsoidAttributeSet; } TQ3EllipsoidData;
Data describing the state of an ellipsoid. The major axis, minor axis, and
orientation vectors need not be orthogonal, but should be independent, i.e.,
not coplanar.
The ellipsoid can be expressed by a parametric equation
f(u,v) = origin - cos(πv)orientation + sin(πv)(cos(2πu)majorRadius + sin(2πu)minorRadius)
where u and v range from 0 to 1.
The values uMin
, uMax
, vMin
, and vMax
allow partial ellipsoids, e.g., an ellipsoid with a wedge cut out of it.
Partial ellipsoids were not implemented in QuickDraw 3D.
- origin
- Center of the ellipsoid.
- orientation
- A vector from the origin to a point on the ellipsoid.
- majorRadius
- A vector from the origin to a point on the ellipsoid.
- minorRadius
- A vector from the origin to a point on the ellipsoid.
- uMin
- Minimum value of the u parameter, which goes around the perimeter (the ellipse determined by the major and minor axes). Typically 0.
- uMax
- Maximum value of the u parameter. Typically 1.
- vMin
- Minimum value of the v parameter, which goes from the south pole (origin - orientation) to the north pole (origin + orientation). Typically 0.
- vMax
- Minimum value of the v parameter. Typically 1.
- caps
- Style of caps to be used on partial ellipsoids.
- interiorAttributeSet
- Interior attributes, used for end or interior caps. May be nullptr.
- ellipsoidAttributeSet
- Attributes for the ellipsoid surface. May be nullptr.
TQ3GeneralPolygonContourData |
typedef struct TQ3GeneralPolygonContourData { TQ3Uns32 numVertices; TQ3Vertex3D * _Nonnull vertices; } TQ3GeneralPolygonContourData;
An ordered list of vertices forming a contour of a general polygon.
Used within the TQ3GeneralPolygonData
structure.
- numVertices
- Number of vertices. Must be at least 3.
- vertices
- Array of vertices.
TQ3GeneralPolygonData |
typedef struct TQ3GeneralPolygonData { TQ3Uns32 numContours; TQ3GeneralPolygonContourData * _Nullable contours; TQ3GeneralPolygonShapeHint shapeHint; TQ3AttributeSet _Nullable generalPolygonAttributeSet; } TQ3GeneralPolygonData;
Data describing a general polygon. A general polygon is a closed figure defined by one or more coplanar closed curves called contours. If there are holes, the even-odd rule determines which parts are inside.
- numContours
- Number of contours in the following array. Must be at least 1.
- contours
- Array of contours.
- shapeHint
- Information about the shape of the general polygon, which may be used by the renderer to optimize drawing.
- generalPolygonAttributeSet
- Set of attributes for the polygon. May be nullptr.
TQ3LayerShifts |
typedef struct TQ3LayerShifts { TQ3Uns32 numPoints; TQ3Float32 coords[]; } TQ3LayerShifts;
- numPoints
- Number of points (vertices) in the TriMesh.
- coords
- Array of coordinate data. The number of values here must be numPoints, or in other words the data size is 4 * numPoints bytes.
TQ3LineData |
typedef struct TQ3LineData { TQ3Vertex3D vertices[2]; TQ3AttributeSet _Nullable lineAttributeSet; } TQ3LineData;
Data describing a line.
- vertices
- Array of two vertices, the ends of the line.
- lineAttributeSet
- Set of attributes for the line. May be nullptr.
TQ3MarkerData |
typedef struct TQ3MarkerData { TQ3Point3D location; TQ3Int32 xOffset; TQ3Int32 yOffset; TQ3Bitmap bitmap; TQ3AttributeSet _Nullable markerAttributeSet; } TQ3MarkerData;
Data describing a bitmap marker, a 2-dimensional image drawn on top of a scene at a specified location.
- location
- Location of the marker, in local coordinates.
- xOffset
- Horizontal offset from the
location
to the upper left corner of the marker, in pixels.- yOffset
- Vertical offset from the
location
to the upper left corner of the marker, in pixels.- bitmap
- A bitmap. Each bit corresponds to a pixel in the image.
- markerAttributeSet
- Marker attributes, which can for instance modify the color or transparency of the 1 bits. May be nullptr.
TQ3MeshContourData |
typedef struct TQ3MeshContourData { TQ3Uns32 numVertices; TQ3Uns32 * _Nullable vertexIndices; } TQ3MeshContourData;
Data describing a contour within a mesh face.
Note that a TQ3MeshContourData
is an external data structure
for use with the Q3Mesh_Set/Get/EmptyData
functions.
In contrast, a TQ3MeshContour
is a pointer to an opaque internal
data structure, which is most likely not a TQ3MeshContourData
.
This structure is not available in QD3D.
- numVertices
- Number of vertices. Must be at least 3.
- vertexIndices
- Indices of the vertices of the contour.
TQ3MeshCornerData |
typedef struct TQ3MeshCornerData { TQ3Uns32 numFaces; TQ3Uns32 * _Nonnull faceIndices; TQ3AttributeSet _Nonnull cornerAttributeSet; } TQ3MeshCornerData;
Data describing a corner for a mesh vertex.
Note that a TQ3MeshCornerData
is an external data structure
for use with the Q3Mesh_Set/Get/EmptyData
functions.
This structure is not available in QD3D.
- numFaces
- Number of faces. Must be at least 1.
- faceIndices
- Indices of the faces.
- cornerAttributeSet
- Set of attributes for the corner. Should not be nullptr.
TQ3MeshData |
typedef struct TQ3MeshData { TQ3Uns32 numVertices; TQ3MeshVertexData * _Nullable vertices; TQ3Uns32 numEdges; TQ3MeshEdgeData * _Nullable edges; TQ3Uns32 numFaces; TQ3MeshFaceData * _Nullable faces; TQ3AttributeSet _Nullable meshAttributeSet; } TQ3MeshData;
Data describing a mesh.
Note that a TQ3MeshData
is an external data structure
for use with the Q3Mesh_Set/Get/EmptyData
functions.
This structure is not available in QD3D.
- numVertices
- Number of vertices in the following array.
- vertices
- Pointer to array of vertices of the mesh.
- numEdges
- Number of edges in the following array. May be 0 if you do not want to specify any edges.
- edges
- Pointer to an array of edges. May be nullptr if you also specify 0 for
numEdges
.- numFaces
- Number of faces in the mesh.
- faces
- Pointer to an array of faces.
- meshAttributeSet
- Set of attributes for the mesh. May be nullptr.
TQ3MeshEdgeData |
typedef struct TQ3MeshEdgeData { TQ3Uns32 vertexIndices[2]; TQ3AttributeSet _Nullable edgeAttributeSet; } TQ3MeshEdgeData;
Data describing an edge within a mesh.
Used within the TQ3MeshData
structure.
Note that a TQ3MeshEdgeData
is an external data structure
for use with the Q3Mesh_Set/Get/EmptyData
functions.
In contrast, a TQ3MeshEdge
is a pointer to an opaque internal
data structure, which is most likely not a TQ3MeshEdgeData
.
This structure is not available in QD3D.
- vertexIndices
- Indices of the two vertices that are ends of the edge.
- edgeAttributeSet
- Set of attributes for the edge. May be nullptr.
TQ3MeshFaceData |
typedef struct TQ3MeshFaceData { TQ3Uns32 numContours; TQ3MeshContourData * _Nullable contours; TQ3AttributeSet _Nullable faceAttributeSet; } TQ3MeshFaceData;
Data describing a face within a mesh.
Note that a TQ3MeshFaceData
is an external data structure
for use with the Q3Mesh_Set/Get/EmptyData
functions.
In contrast, a TQ3MeshFace
is a pointer to an opaque internal
data structure, which is most likely not a TQ3MeshFaceData
.
This structure is not available in QD3D.
- numContours
- Number of contours. Must be at least 1.
- contours
- Contours of the face.
- faceAttributeSet
- Set of attributes for the face. May be nullptr.
TQ3MeshIterator |
typedef struct TQ3MeshIterator { void * _Null_unspecified var1; void * _Null_unspecified var2; void * _Null_unspecified var3; struct { void * _Null_unspecified field1; char field2[4]; } var4;
This structure is used for iterating through various parts of a Mesh. You should consider it opaque, because the meanings of the fields are not documented.
TQ3MeshVertexData |
typedef struct TQ3MeshVertexData { TQ3Point3D point; TQ3Uns32 numCorners; TQ3MeshCornerData * _Nullable corners; TQ3AttributeSet _Nullable attributeSet; } TQ3MeshVertexData;
Data describing a vertex within a mesh.
Note that a TQ3MeshVertexData
is an external data structure
for use with the Q3Mesh_Set/Get/EmptyData
functions.
In contrast, a TQ3MeshVertex
is a pointer to an opaque internal
data structure, which is most likely not a TQ3MeshVertexData
.
This structure is not available in QD3D.
- point
- Location of the vertex.
- numCorners
- Number of corners in the following array. May be 0 if you do not want to specify any corners.
- corners
- Pointer to an array of corners. May be nullptr if you also specify 0 for
numCorners
.- attributeSet
- Attribute set for the vertex.
TQ3NURBCurveData |
typedef struct TQ3NURBCurveData { TQ3Uns32 order; TQ3Uns32 numPoints; TQ3RationalPoint4D * _Nonnull controlPoints; float * _Nonnull knots; TQ3AttributeSet _Nullable curveAttributeSet; } TQ3NURBCurveData;
Data defining a NURBS curve, a 3-dimensional curve represented by a nonuniform rational B-spline equation.
- order
- The order of the curve, one more than the degree of the polynomials defining the curve. Must be greater than one.
- numPoints
- Number of control points. Must be greater than or equal to the order.
- controlPoints
- Array of rational 4-dimensional control points.
- knots
- Array of knots that define the curve. The number of knots must equal the sum of
order
andnumPoints
. The values must be nondecreasing.- curveAttributeSet
- Set of attributes for the curve. May be nullptr.
TQ3NURBPatchData |
typedef struct TQ3NURBPatchData { TQ3Uns32 uOrder; TQ3Uns32 vOrder; TQ3Uns32 numRows; TQ3Uns32 numColumns; TQ3RationalPoint4D * _Nonnull controlPoints; float * _Nonnull uKnots; float * _Nonnull vKnots; TQ3Uns32 numTrimLoops; TQ3NURBPatchTrimLoopData * _Nullable trimLoops; TQ3AttributeSet _Nullable patchAttributeSet; } TQ3NURBPatchData;
Data describing a NURB patch, a surface defined by a ratio of B-spline surfaces.
- uOrder
- Order of the NURB patch in the u parametric direction. The order is one greater than the degree of the polynomial functions involved, and must be greater than one.
- vOrder
- Order of the NURB patch in the v parametric direction. The order is one greater than the degree of the polynomial functions involved, and must be greater than one.
- numRows
- Number of control points in the u parametric equation. Must be greater than 1.
- numColumns
- Number of control points in the v parametric equation. Must be greater than 1.
- controlPoints
- Array of rational 4-dimensional control points. They are listed first in the direction of increasing u and then in the direction of increasing v. The number of control points is
numRows
timesnumColumns
.- uKnots
- Array of knots in the u parametric direction. The number of these knots is the sum of
uOrder
andnumColumns
. The values must be nondecreasing.- vKnots
- Array of knots in the v parametric direction. The number of these knots is the sum of
vOrder
andnumRows
. The values must be nondecreasing.- numTrimLoops
- Number of trim loops in the following array. Currently this should be 0.
- trimLoops
- Pointer to an array of trim loop structures. Currently this should be nullptr.
- patchAttributeSet
- Set of attributes for the patch. May be nullptr.
TQ3NURBPatchTrimCurveData |
typedef struct TQ3NURBPatchTrimCurveData { TQ3Uns32 order; TQ3Uns32 numPoints; TQ3RationalPoint3D * _Nonnull controlPoints; float * _Nonnull knots; } TQ3NURBPatchTrimCurveData;
Curve that trims a NURB patch. Note that this is similar to TQ3NURBCurveData, but lacks an attribute set.
- order
- The order of the curve, one more than the degree of the polynomials defining the curve. Must be greater than one.
- numPoints
- Number of control points. Must be greater than or equal to the order.
- controlPoints
- Array of rational 4-dimensional control points.
- knots
- Array of knots that define the curve. The number of knots must equal the sum of
order
andnumPoints
. The values must be nondecreasing.
TQ3NURBPatchTrimLoopData |
typedef struct TQ3NURBPatchTrimLoopData { TQ3Uns32 numTrimCurves; TQ3NURBPatchTrimCurveData * _Nonnull trimCurves; } TQ3NURBPatchTrimLoopData;
Data describing curves that trim a NURB patch.
- numTrimCurves
- Number of curves in the following array.
- trimCurves
- Pointer to an array of curves.
TQ3PixmapMarkerData |
typedef struct TQ3PixmapMarkerData { TQ3Point3D position; TQ3Int32 xOffset; TQ3Int32 yOffset; TQ3StoragePixmap pixmap; TQ3AttributeSet _Nullable pixmapMarkerAttributeSet; } TQ3PixmapMarkerData;
Data describing a pixmap marker, a 2-dimensional color image drawn on top of a scene at a specified location.
- position
- Location of the marker, in local coordinates.
- xOffset
- Horizontal offset from the
position
to the upper left corner of the marker, in pixels.- yOffset
- Vertical offset from the
position
to the upper left corner of the marker, in pixels.- pixmap
- A pixmap.
- pixmapMarkerAttributeSet
- A set of attributes for the marker. May be nullptr.
TQ3PointData |
typedef struct TQ3PointData { TQ3Point3D point; TQ3AttributeSet _Nullable pointAttributeSet; } TQ3PointData;
Data describing a point object.
- point
- Location of the point.
- pointAttributeSet
- Set of attributes for the point. May be nullptr.
TQ3PolyLineData |
typedef struct TQ3PolyLineData { TQ3Uns32 numVertices; TQ3Vertex3D * _Nonnull vertices; TQ3AttributeSet _Nullable * _Nullable segmentAttributeSet; TQ3AttributeSet _Nullable polyLineAttributeSet; } TQ3PolyLineData;
Data describing a connected but not closed curve made up of several straight line segments.
- numVertices
- Number of vertices of the curve (one more than the number of line segments). Must be at least 2.
- vertices
- Pointer to an array of vertices.
- segmentAttributeSet
- Pointer to an array of attribute sets, one for each segment. If you do not want to assign attributes to any segment, this pointer may be nullptr.
- polyLineAttributeSet
- Set of attributes for the whole curve. May be nullptr.
TQ3PolygonData |
typedef struct TQ3PolygonData { TQ3Uns32 numVertices; TQ3Vertex3D * _Nonnull vertices; TQ3AttributeSet _Nullable polygonAttributeSet; } TQ3PolygonData;
Data describing a simple convex polygon.
- numVertices
- Number of vertices. Must be at least 3.
- vertices
- Pointer to an array of vertices.
- polygonAttributeSet
- Set of attributes for the polygon. May be nullptr.
TQ3PolyhedronData |
typedef struct TQ3PolyhedronData { TQ3Uns32 numVertices; TQ3Vertex3D * _Nullable vertices; TQ3Uns32 numEdges; TQ3PolyhedronEdgeData * _Nullable edges; TQ3Uns32 numTriangles; TQ3PolyhedronTriangleData * _Nonnull triangles; TQ3AttributeSet _Nullable polyhedronAttributeSet; } TQ3PolyhedronData;
Data describing a polyhedron.
- numVertices
- Number of vertices in the following array.
- vertices
- Pointer to array of vertices of the polyhedron.
- numEdges
- Number of edges in the following array. May be 0 if you do not want to specify any edges.
- edges
- Pointer to an array of edges. May be nullptr if you also specify 0 for
numEdges
.- numTriangles
- Number of triangles (faces) in the polygon.
- triangles
- Pointer to an array of triangles.
- polyhedronAttributeSet
- Set of attributes for the polyhedron. May be nullptr.
TQ3PolyhedronEdgeData |
typedef struct TQ3PolyhedronEdgeData { TQ3Uns32 vertexIndices[2]; TQ3Uns32 triangleIndices[2]; TQ3AttributeSet _Nullable edgeAttributeSet; } TQ3PolyhedronEdgeData;
Data describing an edge within a polyhedron.
- vertexIndices
- Indices of the two vertices that are ends of the edge.
- triangleIndices
- Indices of the two triangles that contain the edge.
- edgeAttributeSet
- Set of attributes for the edge. May be nullptr.
TQ3PolyhedronTriangleData |
typedef struct TQ3PolyhedronTriangleData { TQ3Uns32 vertexIndices[3]; TQ3PolyhedronEdge edgeFlag; TQ3AttributeSet _Nullable triangleAttributeSet; } TQ3PolyhedronTriangleData;
Data describing a triangle within a polyhedron.
- vertexIndices
- Indices of the 3 vertices of the triangle.
- edgeFlag
- Flags indicating which edges of the triangle should be rendered. See
TQ3PolyhedronEdgeMasks
.- triangleAttributeSet
- Set of attributes for the triangle. May be nullptr.
TQ3TorusData |
typedef struct TQ3TorusData { TQ3Point3D origin; TQ3Vector3D orientation; TQ3Vector3D majorRadius; TQ3Vector3D minorRadius; float ratio; float uMin; float uMax; float vMin; float vMax; TQ3EndCap caps; TQ3AttributeSet _Nullable interiorAttributeSet; TQ3AttributeSet _Nullable torusAttributeSet; } TQ3TorusData;
Data describing a generalized torus. A torus is a surface formed by rotating an
ellipse about an axis that is in the same plane as the ellipse but does not pass
through the ellipse.
To express the torus as a parametric equation, we first define the
elliptical central axis by the equation
axis(u) = cos(2πu) majorRadius + sin(2πu) minorRadius
where majorRadius and minorRadius are independent vectors, and u varies
from 0 to 1. Then we define the torus surface by
f(u,v) = origin + axis(u) - sin(2πv) orientation -
(cos(2πv) * ratio * |orientation| / |axis(u)|) axis(u)
where v also varies from 0 to 1 and vertical bars indicate length of a
vector.
The kind of torus usually encountered in elementary mathematics, with circular
cross sections, would be one where the orientation
, majorRadius
,
and minorRadius
vectors are mutually orthogonal, where
majorRadius
and minorRadius
have the same length, and where
ratio
is 1.
The values uMin
, uMax
, vMin
, and
vMax
allow one to create partial tori, e.g., a torus with
a wedge cut out of it. QuickDraw 3D did not implement this feature.
- origin
- Center of rotation.
- orientation
- Vector whose direction is the axis of rotation, and whose length is the length of the radius of the cross-sectional ellipse in the direction of the axis of rotation.
- majorRadius
- Vector from the origin to the center of the ellipse.
- minorRadius
- Vector from the origin to the center of a different cross-sectional ellipse.
- ratio
- The ratio between the radius of the cross-sectional ellipse in the direction of
majorRadius
, and the length oforientation
.- uMin
- Minimum value in the u parametric direction (the long way around.) Normally 0, must be in interval [0, 1].
- uMax
- Maximum value in the u parametric direction (the long way around.) Normally 1, must be in interval [0, 1].
- vMin
- Minimum value in the v parametric direction (the short way around.) Normally 0, must be in interval [0, 1].
- vMax
- Maximum value in the v parametric direction (the short way around.) Normally 1, must be in interval [0, 1].
- caps
- Cap style. Should be kQ3EndCapNone.
- interiorAttributeSet
- Interior attribute set. Not currently used.
- torusAttributeSet
- Overall attribute set.
TQ3TriGridData |
typedef struct TQ3TriGridData { TQ3Uns32 numRows; TQ3Uns32 numColumns; TQ3Vertex3D * _Nonnull vertices; TQ3AttributeSet _Nullable * _Nullable facetAttributeSet; TQ3AttributeSet _Nullable triGridAttributeSet; } TQ3TriGridData;
Data describing a TriGrid object. A TriGrid is defined by a grid of points in 3-dimensional space. Each set of 4 adjacent points (in the mth and (m+1)st row and nth and (n+1)st column) defines a quadrilateral that can be subdivided into triangles in 2 natural ways. This subdivision is done in an alternating way, such that the vertex in the first row and first column belongs to two triangles.
- numRows
- Number of rows of vertices. Should be at least 2.
- numColumns
- Number of columns of vertices. Should be at least 2.
- vertices
- Pointer to an array of vertices, listed in rectangular order, first by increasing columns and then by increasing rows. The number of vertices should be
numRows
timesnumColumns
.- facetAttributeSet
- Pointer to an array of triangle attributes. May be nullptr, but otherwise should point to an array of 2×(
numRows
-1)×(numColumns
-1) attribute sets.- triGridAttributeSet
- Set of attributes for the whole TriGrid object. May be nullptr.
TQ3TriMeshAttributeData |
typedef struct TQ3TriMeshAttributeData { TQ3AttributeType attributeType; void * _Nullable data; char * _Nullable attributeUseArray; } TQ3TriMeshAttributeData;
A structure holding an array of attribute data of a particular type.
- attributeType
- Type of the attribute.
- data
- Pointer to an array of attribute data. The number of members in the array is determined by context in the enclosing
TQ3TriMeshData
structure; for instance, if these are vertex attributes, the number of members is the number of vertices. The size of each member depends on the attribute type.- attributeUseArray
- For non-custom attribute types, this must be nullptr. For custom attribute types, it can point to an array of 1-byte 0s and 1s, with 1s indicating which items have the custom attribute.
TQ3TriMeshData |
typedef struct TQ3TriMeshData { TQ3AttributeSet _Nullable triMeshAttributeSet; TQ3Uns32 numTriangles; TQ3TriMeshTriangleData * _Nonnull triangles; TQ3Uns32 numTriangleAttributeTypes; TQ3TriMeshAttributeData * _Nullable triangleAttributeTypes; TQ3Uns32 numEdges; TQ3TriMeshEdgeData * _Nullable edges; TQ3Uns32 numEdgeAttributeTypes; TQ3TriMeshAttributeData * _Nullable edgeAttributeTypes; TQ3Uns32 numPoints; TQ3Point3D * _Nullable points; TQ3Uns32 numVertexAttributeTypes; TQ3TriMeshAttributeData * _Nullable vertexAttributeTypes; TQ3BoundingBox bBox; } TQ3TriMeshData;
Structure describing a TriMesh object, which is an object composed of vertices, edges, and triangular faces. The main difference between a TriMesh and a Polyhedron is that attribute data for vertices, edges, and faces are not stored in attribute sets, but in arrays of attribute data. This is normally more efficient, so long as you are going to be assigning an attribute to every vertex, or every edge, or every face.
- triMeshAttributeSet
- Set of attributes for the whole object. May be nullptr.
- numTriangles
- Number of triangles in the following array.
- triangles
- Pointer to an array of triangle data.
- numTriangleAttributeTypes
- Number of triangle attribute types listed in the following array.
- triangleAttributeTypes
- Pointer to an array of attribute data for triangles (faces). May be nullptr, if
numTriangleAttributeTypes
is 0.- numEdges
- Number of edges in the following array.
- edges
- Pointer to an array of edge data. If you do not wish to specify any edges, you can set this to nullptr, and set
numEdges
to 0.- numEdgeAttributeTypes
- Number of edge attribute types in the following array.
- edgeAttributeTypes
- Pointer to an array of edge attribute types. May be nullptr, provided that
numEdgeAttributeTypes
is 0.- numPoints
- Number of points (vertices).
- points
- Pointer to an array of points.
- numVertexAttributeTypes
- Number of vertex attribute types in the following array.
- vertexAttributeTypes
- Pointer to an array of vertex attribute data. May be nullptr, so long as
numVertexAttributeTypes
is 0.- bBox
- Bounding box of the TriMesh.
TQ3TriMeshEdgeData |
typedef struct TQ3TriMeshEdgeData { TQ3Uns32 pointIndices[2]; TQ3Uns32 triangleIndices[2]; } TQ3TriMeshEdgeData;
Data defining an edge within a TriMesh.
- pointIndices
- Array of 2 indices into the TriMesh array of points, the ends of the edge.
- triangleIndices
- Array of 2 indices into the TriMesh array of triangles, the triangles containing the edge. One index may be the special value
kQ3ArrayIndexNULL
if the edge is only incident to one triangle.
TQ3TriMeshTriangleData |
typedef struct TQ3TriMeshTriangleData { TQ3Uns32 pointIndices[3]; } TQ3TriMeshTriangleData;
Data defining a triangle within a TriMesh.
- pointIndices
- Array of 3 indices into the TriMesh array of points.
TQ3TriangleData |
typedef struct TQ3TriangleData { TQ3Vertex3D vertices[3]; TQ3AttributeSet _Nullable triangleAttributeSet; } TQ3TriangleData;
Data defining a single triangle.
- vertices
- The 3 vertices of the triangle.
- triangleAttributeSet
- Set of attributes for the triangle. May be nullptr.
© 1999-2023 Quesa Developers (Last Updated 1/27/2023)


Congrats on the internet loading request.
Make request according to standard protocol
Sorry!There was a problem with your request
Feel free to look around. Detailed documentation will follow soon


Academics
I am a student in the Department of Physics, IIT Bombay pursuing a B.Tech in Engineering Physics. I have completed seven semesters of my B.Tech and have a cumulative performance index of 9.70 out of 10. I have been awarded the Institute Academic Prize for exemplary performance in the academic year 2020-21 and 2021-22.
I have been a teaching assistant for the course PH 107 (Quantum physics and application) where I conducted weekly tutorial sessions for a class of 40 first year students and correct course quizzes and exams.
Courses I have been a TA for
- Quantum Physics and Application (PH 107), Department of Physics IIT Bombay. Course instructor: Prof. CV Tomy. Some notes I made for it
Relevant Courses I have taken or am taking
Physics courses
- EE 755 - Quantum Transport in Nanoscale Devices
- PH 534 - Quantum Information and Computing
- PH 563 - Group Theory Methods
- PH 567 - Non linear Dynamics
- PH 544 - General Theory of Relativity
- PH 515 - Introduction to Atomic and Molecular Physics*
- PH 517 - Methods in Analytical Techniques*
- PH 505 - Introduction to Nuclear & Particle Physics*
- PH 436 - Introduction to Condensed Matter Physics
- PH 444 - Electromagnetic Theory
- PH 438 - Statistical Physics
- PH 421 - Photonics
- PH 423 - Quantum Mechanics II
- PH 204 - Quantum Mechanics I
- PH 202 - Waves & Oscillations & Optics
Computer science courses
- CS 419 - Introducing to Machine Learning
- CS 218 - Design and Analysis of Algorithms
- CS 213 - Data Structures and Algorithms
- CS 228 - Logic in CS
- CS 101 - Computer Programming and Utilization
Mathematics courses
- MA 214 - Introduction to Numerical Analysis
- MA 207 - Differential Equations 2
- MA 205 - Complex Analysis
- MA 106 - Linear Algebra
- MA 105 - Calculus
Other courses
- PH 447 - Physics Lab (Optics and Spectroscopy)
- PH 446 - Physics Laboratory (Solid state and Nuclear Physics)
- PH 435 - Electronics Lab IV (Microprocessors)
- PH 230 - Electronics Lab III (Digital Electronics)
- PH 233 - Electronics Lab II (Op amp circuits)
- PH 231 - Electronics Lab I (Basic circuits)
- HS 301 - Introduction to Philosophy
- HS 101 - Economics
- EE 224 - Digital Systems
- CH 107 - Physical Chemistry
MOOCs
- Deeplearning Specialization of deeplearning.ai (Coursera)


public class ActionBarActivity
extends android.support.v4.app.FragmentActivity
implements android.support.v4.app.TaskStackBuilder.SupportParentable, android.support.v4.app.ActionBarDrawerToggle.DelegateProvider
You can add an ActionBar
to your activity when running on API level 7 or higher
by extending this class for your activity and setting the activity theme to
Theme.AppCompat
or a similar theme.
For information about how to use the action bar, including how to add action items, navigation modes and more, read the Action Bar API guide.
| Constructor and Description |
|---|
ActionBarActivity() |
| Modifier and Type | Method and Description |
|---|---|
void |
addContentView(View view,
ViewGroup.LayoutParams params) |
android.support.v4.app.ActionBarDrawerToggle.Delegate |
getDrawerToggleDelegate() |
MenuInflater |
getMenuInflater() |
ActionBar |
getSupportActionBar()
Support library version of
Activity#getActionBar . |
android.support.v4.app.FragmentManager |
getSupportFragmentManager() |
Intent |
getSupportParentActivityIntent()
Obtain an
Intent that will launch an explicit target activity
specified by sourceActivity's NavUtils.PARENT_ACTIVITY <meta-data>
element in the application's manifest. |
void |
onBackPressed() |
void |
onConfigurationChanged(Configuration newConfig) |
void |
onContentChanged()
Use
onSupportContentChanged() instead. |
boolean |
onCreatePanelMenu(int featureId,
Menu menu) |
View |
onCreatePanelView(int featureId) |
void |
onCreateSupportNavigateUpTaskStack(android.support.v4.app.TaskStackBuilder builder)
Support version of
#onCreateNavigateUpTaskStack(android.app.TaskStackBuilder) . |
boolean |
onMenuItemSelected(int featureId,
android.view.MenuItem item) |
boolean |
onPreparePanel(int featureId,
View view,
Menu menu) |
void |
onPrepareSupportNavigateUpTaskStack(android.support.v4.app.TaskStackBuilder builder)
Support version of
#onPrepareNavigateUpTaskStack(android.app.TaskStackBuilder) . |
void |
onSupportActionModeFinished(ActionMode mode)
Notifies the activity that a support action mode has finished.
|
void |
onSupportActionModeStarted(ActionMode mode)
Notifies the Activity that a support action mode has been started.
|
void |
onSupportContentChanged()
This hook is called whenever the content view of the screen changes.
|
boolean |
onSupportNavigateUp()
This method is called whenever the user chooses to navigate Up within your application's
activity hierarchy from the action bar.
|
void |
setContentView(int layoutResID) |
void |
setContentView(View view) |
void |
setContentView(View view,
ViewGroup.LayoutParams params) |
void |
setSupportProgress(int progress)
Support library version of
Activity#setProgress(int) . |
void |
setSupportProgressBarIndeterminate(boolean indeterminate)
Support library version of
Activity#setProgressBarIndeterminate(boolean)
Sets whether the horizontal progress bar in the title should be indeterminate (the
circular is always indeterminate). |
void |
setSupportProgressBarIndeterminateVisibility(boolean visible)
Support library version of
Activity#setProgressBarIndeterminateVisibility(boolean)
Sets the visibility of the indeterminate progress bar in the title. |
void |
setSupportProgressBarVisibility(boolean visible)
Support library version of
Activity#setProgressBarVisibility(boolean)
Sets the visibility of the progress bar in the title. |
ActionMode |
startSupportActionMode(ActionMode.Callback callback) |
void |
supportInvalidateOptionsMenu() |
void |
supportNavigateUpTo(Intent upIntent)
Navigate from sourceActivity to the activity specified by upIntent, finishing sourceActivity
in the process. upIntent will have the flag
Intent#FLAG_ACTIVITY_CLEAR_TOP set
by this method, along with any others required for proper up navigation as outlined
in the Android Design Guide. |
boolean |
supportRequestWindowFeature(int featureId)
Enable extended support library window features.
|
boolean |
supportShouldUpRecreateTask(Intent targetIntent)
Returns true if sourceActivity should recreate the task when navigating 'up'
by using targetIntent.
|
dump, getLastCustomNonConfigurationInstance, getSupportFragmentManager, getSupportLoaderManager, onAttachFragment, onCreateView, onKeyDown, onLowMemory, onPanelClosed, onRetainCustomNonConfigurationInstance, onRetainNonConfigurationInstance, startActivityForResult, startActivityFromFragment
public ActionBar getSupportActionBar()
Activity#getActionBar
.
Retrieve a reference to this activity's ActionBar.
public MenuInflater getMenuInflater()
public void setContentView(int layoutResID)
public void setContentView(View view)
public void setContentView(View view, ViewGroup.LayoutParams params)
public void addContentView(View view, ViewGroup.LayoutParams params)
public void onConfigurationChanged(Configuration newConfig)
onConfigurationChanged
in class android.support.v4.app.FragmentActivity
public View onCreatePanelView(int featureId)
public final boolean onMenuItemSelected(int featureId, android.view.MenuItem item)
onMenuItemSelected
in class android.support.v4.app.FragmentActivity
public boolean supportRequestWindowFeature(int featureId)
This is a convenience for calling
getWindow().requestFeature()
.
featureId
- The desired feature as defined in
android.view.Window
or WindowCompat
.android.app.Activity#requestWindowFeature
,
android.view.Window#requestFeature
public void supportInvalidateOptionsMenu()
supportInvalidateOptionsMenu
in class android.support.v4.app.FragmentActivity
public void onSupportActionModeStarted(ActionMode mode)
mode
- The new action mode.public void onSupportActionModeFinished(ActionMode mode)
mode
- The action mode that just finished.public ActionMode startSupportActionMode(ActionMode.Callback callback)
public boolean onCreatePanelMenu(int featureId, Menu menu)
onCreatePanelMenu
in class android.support.v4.app.FragmentActivity
public boolean onPreparePanel(int featureId, View view, Menu menu)
onPreparePanel
in class android.support.v4.app.FragmentActivity
public void onBackPressed()
onBackPressed
in class android.support.v4.app.FragmentActivity
public void setSupportProgressBarVisibility(boolean visible)
Activity#setProgressBarVisibility(boolean)
Sets the visibility of the progress bar in the title.
In order for the progress bar to be shown, the feature must be requested
via supportRequestWindowFeature(int)
.
visible
- Whether to show the progress bars in the title.public void setSupportProgressBarIndeterminateVisibility(boolean visible)
Activity#setProgressBarIndeterminateVisibility(boolean)
Sets the visibility of the indeterminate progress bar in the title.
In order for the progress bar to be shown, the feature must be requested
via supportRequestWindowFeature(int)
.
visible
- Whether to show the progress bars in the title.public void setSupportProgressBarIndeterminate(boolean indeterminate)
Activity#setProgressBarIndeterminate(boolean)
Sets whether the horizontal progress bar in the title should be indeterminate (the circular is always indeterminate).
In order for the progress bar to be shown, the feature must be requested
via supportRequestWindowFeature(int)
.
indeterminate
- Whether the horizontal progress bar should be indeterminate.public void setSupportProgress(int progress)
Activity#setProgress(int)
.
Sets the progress for the progress bars in the title.
In order for the progress bar to be shown, the feature must be requested
via supportRequestWindowFeature(int)
.
progress
- The progress for the progress bar. Valid ranges are from
0 to 10000 (both inclusive). If 10000 is given, the progress
bar will be completely filled and will fade out.public void onCreateSupportNavigateUpTaskStack(android.support.v4.app.TaskStackBuilder builder)
#onCreateNavigateUpTaskStack(android.app.TaskStackBuilder)
.
This method will be called on all platform versions.
Define the synthetic task stack that will be generated during Up navigation from
a different task.
The default implementation of this method adds the parent chain of this activity
as specified in the manifest to the supplied TaskStackBuilder
. Applications
may choose to override this method to construct the desired task stack in a different
way.
This method will be invoked by the default implementation of #onNavigateUp()
if #shouldUpRecreateTask(Intent)
returns true when supplied with the intent
returned by #getParentActivityIntent()
.
Applications that wish to supply extra Intent parameters to the parent stack defined
by the manifest should override
onPrepareSupportNavigateUpTaskStack(TaskStackBuilder)
.
builder
- An empty TaskStackBuilder - the application should add intents representing
the desired task stackpublic void onPrepareSupportNavigateUpTaskStack(android.support.v4.app.TaskStackBuilder builder)
#onPrepareNavigateUpTaskStack(android.app.TaskStackBuilder)
.
This method will be called on all platform versions.
Prepare the synthetic task stack that will be generated during Up navigation
from a different task.
This method receives the TaskStackBuilder
with the constructed series of
Intents as generated by onCreateSupportNavigateUpTaskStack(TaskStackBuilder)
.
If any extra data should be added to these intents before launching the new task,
the application should override this method and add that data here.
builder
- A TaskStackBuilder that has been populated with Intents by
onCreateNavigateUpTaskStack.public boolean onSupportNavigateUp()
If a parent was specified in the manifest for this activity or an activity-alias to it,
default Up navigation will be handled automatically. See
getSupportParentActivityIntent()
for how to specify the parent. If any activity
along the parent chain requires extra Intent arguments, the Activity subclass
should override the method onPrepareSupportNavigateUpTaskStack(TaskStackBuilder)
to supply those arguments.
See Tasks and Back Stack from the developer guide and Navigation from the design guide for more information about navigating within your app.
See the TaskStackBuilder
class and the Activity methods
getSupportParentActivityIntent()
, supportShouldUpRecreateTask(Intent)
, and
supportNavigateUpTo(Intent)
for help implementing custom Up navigation.
public Intent getSupportParentActivityIntent()
Intent
that will launch an explicit target activity
specified by sourceActivity's NavUtils.PARENT_ACTIVITY
<meta-data>
element in the application's manifest. If the device is running
Jellybean or newer, the android:parentActivityName attribute will be preferred
if it is present.getSupportParentActivityIntent
in interface android.support.v4.app.TaskStackBuilder.SupportParentable
public boolean supportShouldUpRecreateTask(Intent targetIntent)
If this method returns false the app can trivially call
supportNavigateUpTo(Intent)
using the same parameters to correctly perform
up navigation. If this method returns false, the app should synthesize a new task stack
by using TaskStackBuilder
or another similar mechanism to perform up navigation.
targetIntent
- An intent representing the target destination for up navigationpublic void supportNavigateUpTo(Intent upIntent)
Intent#FLAG_ACTIVITY_CLEAR_TOP
set
by this method, along with any others required for proper up navigation as outlined
in the Android Design Guide.
This method should be used when performing up navigation from within the same task
as the destination. If up navigation should cross tasks in some cases, see
supportShouldUpRecreateTask(Intent)
.
upIntent
- An intent representing the target destination for up navigationpublic final android.support.v4.app.ActionBarDrawerToggle.Delegate getDrawerToggleDelegate()
getDrawerToggleDelegate
in interface android.support.v4.app.ActionBarDrawerToggle.DelegateProvider
public final void onContentChanged()
onSupportContentChanged()
instead.public void onSupportContentChanged()
android.app.Activity#onContentChanged()
public android.support.v4.app.FragmentManager getSupportFragmentManager()


What is it?
- Cross-Site Request Forgery CSRF (or XSRF) is an attack that tricks an authenticated victim into submitting a malicious request.
- These attacks are also known as One-click attack or Session Riding
How do they work (cont.)
- The forged request contains all the the information sent by the browser and so it can
ride on the back of the authenticated session.
- Therefore, using only cookies and session data to prove the users authenticity is not sufficient.
How is it relevant to us?
- When working with Scala/Play our applications are vulnerable to CSRF attacks.
- We need guarantee a request has been triggered intentionally by a user and is not forged; this can be achieved by:
- Synchronizer Token design pattern.
- Global CSRF Filter
Synchronizer Token
- When the user logs in a randomized string (token) is placed in the users session.
- Every form that is used to post requests to the server includes a hidden field containing the token.
- The request handler validates that the submitted token matches the token stored in the session.
Global CSRF Filter
- Play provides a global CSRF filter than can be applied to all requests.
- This implements the Synchronizer Token design pattern. More information here.
- Play even provides some template helpers to add a CSRF Token to a form.
@form(routes.ItemsController.save()) {
@CSRF.formField
...
}
<form method="POST" action="/items">
<input type="hidden" name="csrfToken" value="1234567890abcdef"/>
...
</form>
CSRF protected form with Synchronizer Token
Play validates the token and processes the transfer successfully
Malicious Forged Request with no Synchronizer Token
Play traps that there is no token and rejects the request


IDF Attacks Hamas Targets in Gaza After More ‘Ceasefire Rocket Fire’
by Hana Levi JulianThe IDF launched an attack on Hamas terrorist targets Saturday in the Gaza Strip in response to rocket fire launched from the enclave into Israel on Friday night.
An IDF spokesman said that during the night, IDF fighter jets and aircraft attacked “several” of the terror organization’s positions in Gaza.
Among the targets attacked were a military training camp and a military compound that served the terrorist organization’s naval force. An underground infrastructure (read: tunnel) was also attacked.
The IDF carried out a similar attack against targets of the Islamic Jihad terror organization in the Gaza Strip overnight Thursday into Friday. The attacks took place about three hours after a barrage of Islamic Jihad rockets that were fired at and around Sderot.
Iron Dome Shoots Down 2 Rockets Over Sderot as ‘Ceasefire’ Continues
The IDF reported that fighter jets and other aircraft attacked a military compound that was used, among other things, as a site for manufacturing rocket components, as well as the headquarters of the Khan Yunis Brigade of the Islamic Jihad, which houses several commanders’ offices.
“The Hamas terrorist organization is responsible for everything that is done in and out of the Gaza Strip, and it will carry the consequences of the terrorist acts carried out against Israeli citizens,” the IDF Spokesperson said once again on Saturday.
“The IDF views the shooting with extreme gravity and is in high readiness for any scenario,” he added.


Fire TV goes beyond television, giving you access to millions of
songs available through Amazon Music, Apple Music,
Spotify, Pandora,
and iHeartRadio.
Discover new experiences
like cooking classes with Food Network Kitchen,
fitness classes with Daily Burn,
and exciting games like Lego Star Wars.
Plus enjoy tens of thousands of Alexa skills
including Uber, Dominos, and Weather.
Subscription fees may apply.


First American Title
Lead Quality Engineer • March, 2022 — present
Quality Engineering Lead for real estate transction application
- Build and lead a team of Quality Engineers for a secure, modern, React Application
- Write test automation for API and front-end
- Triage and help resolve issues in delivery pipelines
- Coach and mentor Quality Engineers across multiple feature teams
- Coordinate and strategize around quality initiatives with product stakeholders
- Grow healthy, engaged team culture during and after large team migrations and re-orgs
- Cypress.io, JEST, Typescript, React, GQL, Azure DevOps, AWS
Faithlife, LLC
Software Test Engineer • June, 2021 — March, 2022
First Test Engineer hired to improve quality and testability of a fully-featured online-community management app:
- Migrate aging Selenium tests to Cypress for the React front-end
- Work across multiple feature teams in areas of exploratory eesting and release support
- Improve Quality position through analysis of existing processes and consult on appropriate areas of QA-integration
- Mentor junior QA Testers in areas of testing philosophy, execution, and skill development
- Cypress.io, React, C#, Postman
Brooks Running Inc
QA Engineer • May, 2020 — May 2021
Key QA Engineer on a small team supporting a large and growing E-Commerce website:
- Plan and execute extensive exploratory eesting around new features, 3rd party integrations, and bug fixes
- Augment existing UI functional test automation coverage in webdriver.io
- Explore and demo alternate\emerging technologies and tools to leverage into the QA space (Postman, Cypress)
- Partner with the Team in building a quality-culture through coaching, test-pairing, and brown-bag presentations, all in a remote working environment
- webdriver.io, SalesForce Commerce Cloud, CyberSource, Postman, Cypress
Rubica Inc
Software QA Manager • Mar, 2017 — March 2020
Strategic and functional test lead for Rubica mobile and desktop applications:
- Implemented a flexible and disciplined testing approach to the Rubica App-landscape including desktop, mobile apps, and web-portal
- Composed and maintained extensive library of manual and automated test cases and test plans for all supported platforms
- Evaluated and implemented tooling for automated API and UI testing
- Developed internal process and skills matrices for effective interviews\hires
- Drove UX and App performance improvements through close collaboration with Product and Engineering teams
- Remote pair-testing\debugging with developers
- Postman, Katalon Studio, Javascript, Python, MySQL, iOS Simulator, Android Emulator
FONS | Teach Well
Software Test Engineer • Jan, 2017 — Mar, 2017
Primary Test\QA resource for the FONS web and mobile apps:
- Extensive exploratory testing of all FONS app functionality through a migration to React-Native
- Contribute design\UEX feedback implemented into production app
- Formulate and document user workflows for test automation
- Developed automated API integration tests with Postman\Newman
- Remote pair-testing and debugging with developers
- iOS Simulator, Android Emulator, PostgreSQL, Postman\Newman
CenturyLink Cloud (Formerly Tier3 Inc.)
Platform Engineer • Jun, 2015 — Nov 2016
Member of a TDD-focused, pair-programming DevOps team responsible for evolving and integrating the billing system for a SAAS\IAAS Cloud provider:
- Developed improvements to invoicing systems to dramatically improve accuracy and speed.
- Developed automation for data center deployment and management using Ansible
- Continued expansion of automated API testing tools and processes with Postman
- Served in on-call rotation for diagnosing and resolving Platform outages and issue escalations.
- C#, Couchbase, Elastic, Kibana, XUnit, SQL Server, Ansible, Postman, Newman
Tier3 Inc.
SDET • April 2012 — Jun, 2015
Test-Engineer on a small team responsible for measurably increasing quality on the full Tier3 SAAS\IAAS stack via exploratory and automated testing:
- Developed automated API test suites adopted into team-wide use.
- Contribute to an automated suite of coded-UI Tests (C# + Selenium Grid).
- Serve as a test-pair with developers especially in areas of feature integration.
- Continuous quality improvement through triaging and expanding a backlog of exploratory testing charters.
- Provide active, engaged support and smoke-testing for platform releases.
- Leveraged extensive domain knowledge to test integration with Centurylink systems during and post-acquisition.
- Serve in on-call rotation for diagnosing and resolving Platform outages and issue escalations.
- C#, Couchbase, Elastic, Kibana, SQL Server, HTML, CSS, Javascript, JQuery, Selenium WebDriver, Postman, Newman
Cole&Weber United
QA Specialist (Sr Test Engineer) • July 2009 — April 2012
Sole Testing\QA resource for the Digital Team tasked with bringing visibility and robustness to the QA Process. Established QA Best Practices to inform testing approaches for a variety of client projects:
- Measurably increased test coverage and confidence of project releases through test case creation and maintenance
- Researched and implemented various testing tools including building a framework for automated UX testing (Selenium RC, C#).
- Worked closely with Project Management to refine and clarify requirements and schedule at all phases of project life-cycle.
- Built and maintained multiple Test environments for Integration and UI testing.
- Regularly wrote and optimized SQL queries for evaluating Data Integrity for Lead Generation System and report validation.
- SQL Server, C#, Selenium RC, HTML, CSS, Javascript, AJAX, Flex, Flash
LexisNexis Courtlink
Sr Software Test Analyst • October 2007 — June 2009
Ensured timely, accurate integration of Appelate Court data into the networked, searchable Courtlink System:
- Performed extensive Data Integrity validation through writing and optimizing SQL Queries\Views.
- Thoroughly tested UX experience and performance of Courtlink's proprietary court system search tools.
- Provided on-hand testing support for scheduled releases and hotfixes.
- Identified inefficiencies in test automation and initiated team efforts to correct the issues.
- Collaborated closely with PM team to refine roject Requirements and delivery schedule.
- SQL Server, HTML, Javascript, Quality Center
{% endif %} {% if site.resume_section_education %}
University of Washington Extension
Certificate, Software Testing Automation with C#
SQE Training
Certificate, Mastering Test Design
{% endif %} {% if site.resume_section_projects %}
Founder & Primary Developer • 2012 — Present
Donut Locator is an open source node/ember app that lets users find donuts within a defined radius from their home.
Springfield Donut Eater's User Group
Co-Founder & Organizer • 2007 — Present
DEUG is a local monthly meetup in Springfield where we share all the latest tips and tricks for dat donut lifestyle. I organize the group, and typically eat most of the donuts.
{% endif %} {% if site.resume_section_recognition %}
Springfield Nuclear Power Plant
Outstanding Achievement • 2010
Awarded for stopping a nuclear meltdown, even though I also started it.
Duff Beer Customer of the year
1997 — 2001, 2003, 2008 — 2012
Honored by Duff Beer for being an outstanding customer several years straight. Qualifications included most beer consumed at a bar, most beer purchased, and most beer ralphed.
Moe's Patron of the Month
12/2001, 8/2004
Specifically this prestigious awarded twice for stopping a robber with my belly.
{% endif %} {% if site.resume_section_associations %}
Volunteer • 2008 — Present
Organized fund drives and participated in fundraising events for the benefit of families in third world countries without proper access to malt beverages.
Springfield Nuclear Workers Labor Union
Member in Good Standin • 1994 — Present
Founding member of the local nuclear workers labor union.
{% endif %} {% if site.resume_section_links %}


Home
@ionic/angular package for Stripe
About me
Who am I ?
Ezéchiel Amen AGBLA
✅ Electronics and Embedded Systems Engineer
✅ Chief Operations Officer and Fullstack JavaScript Developer
at Vyconsulting
✅ Teacher at Private University of Fez (Morocco)
github.com/amilamen
Vyconsulting
Vyconsulting
What is Vyconsulting
What is Vyconsulting ?
Vyconsulting is a company which develops digital solutions
with representation in France and Africa.
Our main stacks are:
✅
Angular, Vue & Ionic
✅ Laravel
& Nestjs
Stripe
Stripe
What is Stripe ?
What is Stripe ?
✅ Payments infrastructure for the internet
✅ Allow checkout payment, subscription payment using credit card
or bank account
Ionic Framework
Ionic Framework
What is Ionic ?
What is it ?
✅ UI Components for native mobile apps, PWAs, and even
Desktop
✅ Pre-built Gestures and Animations
✅ Platform Continuity for iOS and Material Design
✅ Full access to all Native APIs and Plugins
✅ A large, vibrant world-wide community
What is Ionic ?
What is it ?
✅ Framework/components are open source (MIT)
✅ Native layers (Cordova/Capacitor) also open source
✅ Open Web Standards - available to everyone
What is Ionic ?
What is it ?
How it works ?
How it works ?
How it works ?
How it works ?
✅ Community driven plugin ecosystem
✅ Cordova
✅ Capacitor
Ionic and Stripe, what’s connection ?
Ionic and Stripe, what’s connection ?
✅ Many Ionic apps are built in e-commerce
✅ Use Stripe in your Ionic app to allow secure payments
Stripe
Integration of Stripe in Ionic (before our package)
1st method
1st method
Use Cordova
$ ionic cordova plugin add cordova-plugin-stripe
$ npm install @ionic-native/stripe
2nd method
2nd method
✅ Use
Stripe SDK JS
✅ Hard integration
for many developers
✅ Need solid knowledges in JS
(DOM manipulation)
3nd method
3nd method
✅ Use
ngx-stripepackage on NPM
✅ ngx-stripe
is a thin wrapper around Stripe Elements (Stripe SDK JS)
✅ Allows the use of almost all features
Stripe
Integration of Stripe in Ionic with
ionic-stripe-checkout
What are motivations ?
What are motivations ?
✅ We often use Stripe for our customers projects at
Vyconsulting
✅ Cordova plugin Stripe doesn’t have an UI for payment and
APIs are limited
✅ Use Ionic components to build Stripe forms for payment like
Stripe SDK forms without native plugins
How it works ?
How it works ?
Installation of package from NPM
npm install --save @vyconsulting/ionic-stripe-checkout
< ion-stripe-checkout
[amount]="100"
[currency]="'EUR'"
(checkout)="onPay($event)"
>
ion-stripe-checkout>
How it works ?
How it works ?
Setup of development mode
Once installed you need to import our module firstly in
app.module.ts
:
import { IonicStripeCheckoutModule } from '@vyconsulting/ionic-stripe-checkout';
@NgModule({
...
imports: [IonicStripeCheckoutModule.forRoot({
stripe_secret_key: "YOUR_STRIPE_SECRET_KEY",
}), ...],
...
})
export class AppModule {
}
How it works ?
How it works ?
Setup of development mode
After do this, in your page where you want to use this
component, you will do this:
import { IonicStripeCheckoutModule } from '@vyconsulting/ionic-stripe-checkout';
@NgModule({
...
imports: [IonicStripeCheckoutModule, ...],
...
})
export class YourModule {
}
How it works ?
How it works ?
Setup of production mode
Once installed you need to import our module firstly in
app.module.ts
:
import { IonicStripeCheckoutModule } from '@vyconsulting/ionic-stripe-checkout';
@NgModule({
...
imports: [IonicStripeCheckoutModule.forRoot({
stripe_publishable_key: "YOUR_STRIPE_PUBLISHABLE_KEY",
url_create_payment: "http://YOUR_DOMAIN/YOUR_END_POINT_FOR_CREATE_PAYMENT",
url_token_card: "http://YOUR_DOMAIN/YOUR_END_POINT_FOR_CREATE_TOKEN",
}), ...],
...
})
export class AppModule {
}
How it works ?
How it works ?
Setup of production mode
After do this, in your page where you want to use this
component, you will do this:
import { IonicStripeCheckoutModule } from '@vyconsulting/ionic-stripe-checkout';
@NgModule({
...
imports: [IonicStripeCheckoutModule, ...],
...
})
export class YourModule {
}
How it works ?
How it works ?
Setup of production mode
Finally, you must use some APIs from your backend to
complete.
Express.js example
...
app.post("/create-token", async (req, res) => {
const token = await stripe.tokens.create({
card: {
number: req.body.cardNumber,
exp_month: req.body.cardMonth,
exp_year: req.body.cardYear,
cvc: req.body.cardCVC,
},
});
res.json({ token });
});
app.post("/create-payment", async (request, response) => {
stripe.charges.create({
amount: request.body.amount,
currency: request.body.currency,
source: request.body.source,
})
.then((charge) => {
response.json({ charge });
})
.catch((error) => {
response.json({ error });
});
});
...
How many use it ?
What do they think about ?
What do they think about ?
What do they think about ?
What do they think about ?
What do they think about ?
What do they think about ?
What do they think about ?
What do they think about ?
What do they think about ?
What do they think about ?
What do they think about ?
What do they think about ?
What do they think about ?
What do they think about ?
Demo Time
Demo Time
Warnings
Warnings
Warnings
Warnings
Why you should use production mode ?
Features
Features
Features
3D Secure
✅ Mandatory in Europe from December 31st
✅ More security for payment
Features
Methods of Stripe SDK for JS
✅ Add all methods possible of Stripe SDK for JS
Features
Better documentation
✅ Create a website for documentation
✅ Add many examples for backend implementation
✅ Multi-languages of website: English and French
Questions
< /presentation>
Questions ?


[SYMBOL]
[A]
[B]
[C]
[D]
[E]
[F]
[G]
[H]
[I]
[J]
[K]
[L]
[M]
[N]
[O]
[P]
[Q]
[R]
[S]
[T]
[U]
[V]
[W]
[X]
[Y]
[Z]
-d option, command-line
-D option, command-line
daemon processes, Squid as
squid_start script
date field, store.log
dead_peer_timeout directive
debug_options directive
cache.log
debugging access controls
Address already in use
assertions and
bus errors and
cache.log
cache.log and
core dumps and
DNS name lookup and
filedescriptors and
fully qualified hostname message
hostnames and
HTTP interception
icmpRecv and
replicating problems and
reporting bugs
segmentation violations and
stack traces and
swap directory error
system speed
delay pools configuration
monitoring
overview
subnetting scheme and
delay, cache manager page
delay_access ACL
delay_access directive
2nd
delay_class directive
2nd
delay_initial_bucket_level directive
2nd
delay_parameters directive
2nd
delay_pools directive
2nd
deny_info directive
DEVEL releases
developers, devel.squid-cache.org site
devices, interception caching and
diffs, applying
Digest authentication
API
auth_param directive, parameters supported
digest_bits_per_entry directive
digest_generation directive
digest_rebuild_chunk_percentage directive
digest_rebuild_period directive
digest_rewrite_period directive
digest_stats, cache manager page
digest_swapout_chunk_size directive
digestauthenticator, cache manager page
direct options
directories cache directories, initialization
disk cache, object allocation
directory argument, cache_dir directive
directory number field, store.log
disk cache cache_dir directive
cache_replacement_policy directive
cache_swap_high directive
cache_swap_low directive
directories, object allocation
I/O bottleneck
object removal
object size
refresh_pattern directive
replacement policy
usage
disk space, process size and
disk spindles, benchmarks and
diskd storage scheme
diskd, cache manager page
diskd_program directive
DNS name lookup tests failed message, debugging and
dns, cache manager page
dns_children directive
dns_defnames directive
dns_nameservers directive
dns_retransmit_interval directive
dns_testnames directive
dns_timeout directive
domain names, ACLs
dst ACL type
dst_as ACL type
dstdom_regex ACL type
dstdomain ACL type
|


With this animation I wanted to make a hover mechanic for the squares by putting shadows below it so they look like they're floating. So I made them into figures of the size of 150 x 150. I used hover mechanics like "top" to actually make the square float and various transform mechanics like "rotate". I used box shadows so the floating looks more natural. I used different number percentages for each square, so the lower squares float higher.


READLINK
Section: Linux Programmer's Manual (2)
Updated: 2014-08-19
Index
Return to Main Contents
NAME
readlink, readlinkat - read value of a symbolic link
SYNOPSIS
#include <unistd.h>
ssize_t readlink(const char *pathname, char *buf, size_t bufsiz);
#include <fcntl.h> /* Definition of AT_* constants */
#include <unistd.h>
ssize_t readlinkat(int dirfd, const char *pathname,
char *buf, size_t bufsiz);
Feature Test Macro Requirements for glibc (see
feature_test_macros(7)):
readlink():
-
_BSD_SOURCE || _XOPEN_SOURCE >= 500 ||
_XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED || _POSIX_C_SOURCE >= 200112L
readlinkat():
-
- Since glibc 2.10:
-
_XOPEN_SOURCE >= 700 || _POSIX_C_SOURCE >= 200809L
- Before glibc 2.10:
-
_ATFILE_SOURCE
DESCRIPTION
readlink()
places the contents of the symbolic link
pathname
in the buffer
buf,
which has size
bufsiz.
readlink()
does not append a null byte to
buf.
It will truncate the contents (to a length of
bufsiz
characters), in case the buffer is too small to hold all of the contents.
readlinkat()
The
readlinkat()
system call operates in exactly the same way as
readlink(),
except for the differences described here.
If the pathname given in
pathname
is relative, then it is interpreted relative to the directory
referred to by the file descriptor
dirfd
(rather than relative to the current working directory of
the calling process, as is done by
readlink()
for a relative pathname).
If
pathname
is relative and
dirfd
is the special value
AT_FDCWD,
then
pathname
is interpreted relative to the current working
directory of the calling process (like
readlink()).
If
pathname
is absolute, then
dirfd
is ignored.
Since Linux 2.6.39,
pathname
can be an empty string,
in which case the call operates on the file referred to by
dirfd
(which may have been obtained using the
open(2)
O_PATH
flag).
In this case,
dirfd
can refer to any type of file, not just a directory.
See
openat(2)
for an explanation of the need for
readlinkat().
RETURN VALUE
On success, these calls return the number of bytes placed in
buf.
On error, -1 is returned and
errno
is set to indicate the error.
ERRORS
- EACCES
-
Search permission is denied for a component of the path prefix.
(See also
path_resolution(7).)
- EFAULT
-
buf
extends outside the process's allocated address space.
- EINVAL
-
bufsiz
is not positive.
- EINVAL
-
The named file is not a symbolic link.
- EIO
-
An I/O error occurred while reading from the filesystem.
- ELOOP
-
Too many symbolic links were encountered in translating the pathname.
- ENAMETOOLONG
-
A pathname, or a component of a pathname, was too long.
- ENOENT
-
The named file does not exist.
- ENOMEM
-
Insufficient kernel memory was available.
- ENOTDIR
-
A component of the path prefix is not a directory.
The following additional errors can occur for
readlinkat():
- EBADF
-
dirfd
is not a valid file descriptor.
- ENOTDIR
-
pathname
is relative and
dirfd
is a file descriptor referring to a file other than a directory.
VERSIONS
readlinkat()
was added to Linux in kernel 2.6.16;
library support was added to glibc in version 2.4.
CONFORMING TO
readlink():
4.4BSD
(readlink()
first appeared in 4.2BSD),
POSIX.1-2001, POSIX.1-2008.
readlinkat():
POSIX.1-2008.
NOTES
In versions of glibc up to and including glibc 2.4, the return type of
readlink()
was declared as
int.
Nowadays, the return type is declared as
ssize_t,
as (newly) required in POSIX.1-2001.
Using a statically sized buffer might not provide enough room for the
symbolic link contents.
The required size for the buffer can be obtained from the
stat.st_size
value returned by a call to
lstat(2)
on the link.
However, the number of bytes written by
readlink()
and
readlinkat()
should be checked to make sure that the size of the
symbolic link did not increase between the calls.
Dynamically allocating the buffer for
readlink()
and
readlinkat()
also addresses a common portability problem when using
PATH_MAX
for the buffer size,
as this constant is not guaranteed to be defined per POSIX
if the system does not have such limit.
Glibc notes
On older kernels where
readlinkat()
is unavailable, the glibc wrapper function falls back to the use of
readlink().
When
pathname
is a relative pathname,
glibc constructs a pathname based on the symbolic link in
/proc/self/fd
that corresponds to the
dirfd
argument.
EXAMPLE
The following program allocates the buffer needed by
readlink()
dynamically from the information provided by
lstat(),
making sure there's no race condition between the calls.
#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int
main(int argc, char *argv[])
{
struct stat sb;
char *linkname;
ssize_t r;
if (argc != 2) {
fprintf(stderr, "Usage: %s <pathname>\n", argv[0]);
exit(EXIT_FAILURE);
}
if (lstat(argv[1], &sb) == -1) {
perror("lstat");
exit(EXIT_FAILURE);
}
linkname = malloc(sb.st_size + 1);
if (linkname == NULL) {
fprintf(stderr, "insufficient memory\n");
exit(EXIT_FAILURE);
}
r = readlink(argv[1], linkname, sb.st_size + 1);
if (r == -1) {
perror("readlink");
exit(EXIT_FAILURE);
}
if (r > sb.st_size) {
fprintf(stderr, "symlink increased in size "
"between lstat() and readlink()\n");
exit(EXIT_FAILURE);
}
linkname[r] = '\0';
printf("'%s' points to '%s'\n", argv[1], linkname);
exit(EXIT_SUCCESS);
}
SEE ALSO
readlink(1),
lstat(2),
stat(2),
symlink(2),
path_resolution(7),
symlink(7)
Index
- NAME
-
- SYNOPSIS
-
- DESCRIPTION
-
- readlinkat()
-
- RETURN VALUE
-
- ERRORS
-
- VERSIONS
-
- CONFORMING TO
-
- NOTES
-
- Glibc notes
-
- EXAMPLE
-
- SEE ALSO
-
This document was created by
man2html,
using the manual pages.
Time: 02:54:47 GMT, September 18, 2014


Projects
-
Party
A web app to facilitate guest engagement at your parties.
-
Runaway from enigma!
A web-based runaway script. Bringing the sexy back to runaway scripts.
-
duk-vis
A JavaScript driven music visualizer.
-
YouTunes
Turn YouTube into your own personal music player.
-
Animatum
An application providing a simpler alternative for animating RCT3 custom scenery.
-
libASE-sharp
A C# port of
libASE.
-
InsultBot
An IRC bot that insults its users.
-
DictionaryBot
An IRC bot that defines words.


This is the end (Awesome)
More info
close
This website will not be available after one week. Thanks! We will miss you.


Consists of many convolutional layers, each having a hundred or more feature channels
- Our TensorFlow.js Google I/O talk is up! We walk through the TensorFlow.js APIs, show what you can build with some fun demos, and announce Node.js bindings so you can use JavaScript with the full power of TensorFlow! https://t.co/qsHR0Jtjd2 (https://twitter.com/nsthorat/status/994604210124570625?s=03) - node backend: https://twitter.com/nkreeger/status/988549533192765442 - Style transfer: https://twitter.com/zaidalyafeai/status/988898548170346496 - https://magenta.tensorflow.org/js - Mnist in Observable und erst ganz am Ende - Kürzen von 60 auf 45 Minuten - auf aktuellste Version updaten
Everyone can be educated, they just need a browser and internet
Concepts are much easier to grok when you can play around with them
Built using deeplearn.js (predecessor of tensorflow.js)
https://teachablemachine.withgoogle.com/
Where it all started - Playing with Neural Networks without any installation
Most obvious reason: JavaScript is the language you are most comfortable with
You just happen to develop for the browser
You are intrigued by how JavaScript development works
Combination with interactive visualizations and other browser features (like audio and video)
It's all about matrix operations
const a = tf.tensor1d([1, 2, 3]);
const b = tf.scalar(2);
// a is not modified, result is a new tensor
const result = a.add(b);
const data = await result.data();
console.log(data); // Float32Array([3, 4, 5]
Getting an impression of how to code and how the turnaround cycle works
If you have ever seen Keras, you will feel right at home
const model = tf.sequential();
model.add(tf.layers.dense({units: 10}));
model.add(tf.layers.conv2d({
inputShape: [28, 28, 1],
kernelSize: 5,
filters: 8,
activation: 'relu'
}));
Browser games can benefit from Machine Learning
JavaScript might be the only language around
because all you have is a browser
How would you rank me (47) for a car with 160 km/h top speed?
const model = await tf.loadModel('model.json');
// max speed, age, thousand kilometers per year
const example = tf.tensor([[150, 45, 10]]);
const prediction = model.predict(example);
const value = await prediction.data();
// softmax
// # 0: red
// # 1: green
// # 2: yellow
console.log(value);
// [0.0937359631061554,
0.7274655699729919,
0.17879831790924072]
https://djcordhose.github.io/ai/js/tensorflow-sandbox/load_model.html
inputs = tf.keras.Input(name='input', shape=(3, ))
x = tf.keras.layers.Dense(100)(inputs)
x = tf.keras.layers.Dense(100)(x)
predictions =
tf.keras.layers.Dense(3, activation='softmax')(x)
model =
tf.keras.models.Model(inputs=inputs,
outputs=predictions)
model.compile(optimizer='adam',
loss='categorical_crossentropy',
metrics=['accuracy'])
This is Python, but tensorflow.js code almost is indistinguishable
tensorflow.js browser apps
Educate, Visualize, Develop, Play, Deploy with tensforflow.js, enterjs 2018
Oliver Zeigermann / @DJCordhose
http://bit.ly/enterjs-tensorflow-js


Accessibility carries with it financial benefits, It has many social benefits, the public relation benefits can help grow a company or institution, it avoids potential legal issues and, optimizes search engine results and, BTW, it is the morally correct choice. According to the CDC one in five americans has trouble hearing and one in ten have trouble with vision. This alone accounts for 58 million americans. Having a site that is that leaves out 20% of potential clients carries with it financial repercussions. (Emma Grant)
The social benefits can reap both ethical and financial rewards. Building an accessible website can also help your reputation.
Legally speaking, it is better to make sure your site lives up to at least the ADA. “Retail giant Target was sued over accessibility, opting to settle the matter out of court, it is only a matter of time before more commercial website owners could find themselves in a similar situation.” (Emma Grant) You may also want to consider not losing out on all of the government work or work for educational institutions. They both have standards for accessibility.
Having an accessible page means that people with disabilities can use your site. “More specifically, Web accessibility means that people with disabilities can perceive, understand, navigate, and interact with the Web, and that they can contribute to the Web. Web accessibility also benefits others, including older people with changing abilities due to aging” (W3C) The reality is that when your site is not accessible it means that some people can not use it and that is simply not fair.


SUCCESS! Data differ successfully finished.
RUNNING! Job is running now.
ERROR! Json is not correct.
REASON! Json is not correct.
EXCEPTION!
Stats
| Source Records Matching : |
|
| Destination Records Matching : |
|
Detail Results
| Book ID |
Book Name |
Category |
Item Price |


The club has 3 Senior Divisions (First team, Second team, and Third Team), 3 Junior teams (Under 16, Under 19, and Under 21) and it also has 2 Ladies Senior teams and 2 Junior teams. Most of our Junior boys and girls represent Western Province Rugby. The Club is affiliated under Western Province Club Rugby and we playing in the City League. Our main sponsor is Boland Market, hence our 1st team is called Boland Mark. Busy Bee. That is what we offer to our sponsor in return to market their brand.
The Club has 5 feeder schools from Langa, and that is where we scout young talent. We also scout some of our players from the Tournaments like Easter Tournament that rotates every year around South Africa depending on the Club that is hosting.
For the past 5 years the Club managed to create a good relationship with Bishops College where our Junior players attend after classes for Maths, Science, English, and rugby skills. They also offer Scholarships to the top students.
The Club working together with the sponsor organise residence and jobs to players who are coming from outside Western Cape. We believe by investing in our youth through education, sport which is Rugby, and Life Skills one day they will be better citizens and represent our Country, “a child in sport, is a child out of court!”.