|
Panda3D
|
Defines a pfm file, a 2-d table of floating-point numbers, either 3-component or 1-component, or with a special extension, 2- or 4-component. More...
Public Member Functions | |
| int | __getbuffer__ (PyBuffer view, int flags) |
| __init__ () | |
| __init__ (const PfmFile copy) | |
| addSubImage (const PfmFile copy, int xto, int yto, int xfrom, int yfrom, int x_size, int y_size, float pixel_scale) | |
| Behaves like copy_sub_image(), except the copy pixels are added to the pixels of the destination, after scaling by the specified pixel_scale. More... | |
| apply1dLut (int channel, const PfmFile lut, PNFloat32 x_scale) | |
| Assumes that lut is an X by 1, 1-component PfmFile whose X axis maps points to target points. More... | |
| applyCrop (int x_begin, int x_end, int y_begin, int y_end) | |
| Reduces the PFM file to the cells in the rectangle bounded by (x_begin, x_end, y_begin, y_end), where the _end cells are not included. More... | |
| applyExponent (float c0_exponent, float c1_exponent, float c2_exponent) | |
| Adjusts each channel of the image by raising the corresponding component value to the indicated exponent, such that L' = L ^ exponent. More... | |
| applyExponent (float c0_exponent, float c1_exponent, float c2_exponent, float c3_exponent) | |
| Adjusts each channel of the image by raising the corresponding component value to the indicated exponent, such that L' = L ^ exponent. More... | |
| applyExponent (float gray_exponent) | |
| Adjusts each channel of the image by raising the corresponding component value to the indicated exponent, such that L' = L ^ exponent. More... | |
| applyExponent (float gray_exponent, float alpha_exponent) | |
| Adjusts each channel of the image by raising the corresponding component value to the indicated exponent, such that L' = L ^ exponent. More... | |
| applyMask (const PfmFile other) | |
| Wherever there is missing data in the other PfmFile, set this the corresponding point in this PfmFile to missing as well, so that this PfmFile has only points where both files have points. More... | |
| boxFilterFrom (float radius, const PfmFile copy) | |
| Makes a resized copy of the indicated image into this one using the indicated filter. More... | |
| bool | calcAutocrop (LVecBase4d range) |
| Computes the minimum range of x and y across the PFM file that include all points. More... | |
| bool | calcAutocrop (LVecBase4f range) |
| Computes the minimum range of x and y across the PFM file that include all points. More... | |
| bool | calcAveragePoint (LPoint3f result, PNFloat32 x, PNFloat32 y, PNFloat32 radius) |
| Computes the unweighted average point of all points within the box centered at (x, y) with the indicated Manhattan-distance radius. More... | |
| bool | calcBilinearPoint (LPoint3f result, PNFloat32 x, PNFloat32 y) |
| Computes the weighted average of the four nearest points to the floating- point index (x, y). More... | |
| bool | calcMinMax (LVecBase3f min_points, LVecBase3f max_points) |
| Calculates the minimum and maximum x, y, and z depth component values, representing the bounding box of depth values, and places them in the indicated vectors. More... | |
| bool | calcTightBounds (LPoint3f min_point, LPoint3f max_point) |
| Calculates the minimum and maximum vertices of all points within the table. More... | |
| clear () | |
| Eliminates all data in the file. More... | |
| clear (int x_size, int y_size, int num_channels) | |
| Resets to an empty table with a specific size. More... | |
| clearNoDataValue () | |
| Removes the special value that means "no data" when it appears in the pfm file. More... | |
| clearToTexcoords (int x_size, int y_size) | |
| Replaces this PfmFile with a new PfmFile of size x_size x y_size x 3, containing the x y 0 values in the range 0 . More... | |
| BoundingHexahedron | computePlanarBounds (const LPoint2d center, PNFloat32 point_dist, PNFloat32 sample_radius, bool points_only) |
| Computes the minmax bounding volume of the points in 3-D space, assuming the points represent a mostly-planar surface. More... | |
| BoundingHexahedron | computePlanarBounds (const LPoint2f center, PNFloat32 point_dist, PNFloat32 sample_radius, bool points_only) |
| Computes the minmax bounding volume of the points in 3-D space, assuming the points represent a mostly-planar surface. More... | |
| computeSamplePoint (LPoint3f result, PNFloat32 x, PNFloat32 y, PNFloat32 sample_radius) | |
| Computes the average of all the point within sample_radius (manhattan distance) and the indicated point. More... | |
| copyChannel (int to_channel, const PfmFile other, int from_channel) | |
| Copies just the specified channel values from the indicated PfmFile (which could be same as this PfmFile) into the specified channel of this one. More... | |
| copyChannelMasked (int to_channel, const PfmFile other, int from_channel) | |
| Copies just the specified channel values from the indicated PfmFile, but only where the other file has a data point. More... | |
| copySubImage (const PfmFile copy, int xto, int yto, int xfrom, int yfrom, int x_size, int y_size) | |
| Copies a rectangular area of another image into a rectangular area of this image. More... | |
| divideSubImage (const PfmFile copy, int xto, int yto, int xfrom, int yfrom, int x_size, int y_size, float pixel_scale) | |
| Behaves like copy_sub_image(), except the copy pixels are divided into the pixels of the destination, after scaling by the specified pixel_scale. More... | |
| fill (const LPoint2f value) | |
| Fills the table with all of the same value. More... | |
| fill (const LPoint3f value) | |
| Fills the table with all of the same value. More... | |
| fill (const LPoint4f value) | |
| Fills the table with all of the same value. More... | |
| fill (PNFloat32 value) | |
| Fills the table with all of the same value. More... | |
| fillChannel (int channel, PNFloat32 value) | |
| Fills the indicated channel with all of the same value, leaving the other channels unchanged. More... | |
| fillChannelMasked (int channel, PNFloat32 value) | |
| Fills the indicated channel with all of the same value, but only where the table already has a data point. More... | |
| fillChannelMaskedNan (int channel) | |
| Fills the indicated channel with NaN, but only where the table already has a data point. More... | |
| fillChannelNan (int channel) | |
| Fills the indicated channel with NaN, leaving the other channels unchanged. More... | |
| fillNan () | |
| Fills the table with all NaN. More... | |
| fillNoDataValue () | |
| Fills the table with the current no_data value, so that the table is empty. More... | |
| flip (bool flip_x, bool flip_y, bool transpose) | |
| Reverses, transposes, and/or rotates the table in-place according to the specified parameters. More... | |
| forwardDistort (const PfmFile dist, PNFloat32 scale_factor) | |
| Applies the distortion indicated in the supplied dist map to the current map. More... | |
| gammaCorrect (float from_gamma, float to_gamma) | |
| Assuming the image was constructed with a gamma curve of from_gamma in the RGB channels, converts it to an image with a gamma curve of to_gamma in the RGB channels. More... | |
| gammaCorrectAlpha (float from_gamma, float to_gamma) | |
| Assuming the image was constructed with a gamma curve of from_gamma in the alpha channel, converts it to an image with a gamma curve of to_gamma in the alpha channel. More... | |
| gaussianFilterFrom (float radius, const PfmFile copy) | |
| Makes a resized copy of the indicated image into this one using the indicated filter. More... | |
| PNFloat32 | getChannel (int x, int y, int c) |
| Returns the cth channel of the point value at the indicated point. More... | |
| const LPoint4f | getNoDataValue () |
| If has_no_data_value() returns true, this returns the particular "no data" value. More... | |
| const LPoint3f | getPoint (int x, int y) |
| Returns the 3-component point value at the indicated point. More... | |
| PNFloat32 | getPoint1 (int x, int y) |
| Returns the 1-component point value at the indicated point. More... | |
| const LPoint2f | getPoint2 (int x, int y) |
| Returns the 2-component point value at the indicated point. More... | |
| const LPoint3f | getPoint3 (int x, int y) |
| Returns the 3-component point value at the indicated point. More... | |
| const LPoint4f | getPoint4 (int x, int y) |
| Returns the 4-component point value at the indicated point. More... | |
| object | getPoints () |
| PNFloat32 | getScale () |
| The "scale" is reported in the pfm header and is probably meaningless. More... | |
| bool | hasNoDataThreshold () |
| Returns whether a "no data" threshold value has been established by set_no_data_threshold(). More... | |
| bool | hasNoDataValue () |
| Returns whether a "no data" value has been established by set_no_data_value(). More... | |
| bool | hasPoint (int x, int y) |
| Returns true if there is a valid point at x, y. More... | |
| indirect1dLookup (const PfmFile index_image, int channel, const PfmFile pixel_values) | |
| index_image is a WxH 1-channel image, while pixel_values is an Nx1 image with any number of channels. More... | |
| bool | isColumnEmpty (int x, int y_begin, int y_end) |
| Returns true if all of the points on column x, from [y_begin, y_end), are the no_data value, or false if any one of these points has a value. More... | |
| bool | isRowEmpty (int y, int x_begin, int x_end) |
| Returns true if all of the points on row y, in the range [x_begin, x_end), are the no_data value, or false if any one of these points has a value. More... | |
| bool | isValid () |
| bool | load (const PNMImage pnmimage) |
| Fills the PfmFile with the data from the indicated PNMImage, converted to floating-point values. More... | |
| merge (const PfmFile other) | |
| Wherever there is missing data in this PfmFile (that is, wherever has_point() returns false), copy data from the other PfmFile, which must be exactly the same dimensions as this one. More... | |
| LPoint3f | modifyPoint (int x, int y) |
| Returns a modifiable 3-component point value at the indicated point. More... | |
| LPoint2f | modifyPoint2 (int x, int y) |
| Returns a modifiable 2-component point value at the indicated point. More... | |
| LPoint3f | modifyPoint3 (int x, int y) |
| Returns a modifiable 3-component point value at the indicated point. More... | |
| LPoint4f | modifyPoint4 (int x, int y) |
| Returns a modifiable 4-component point value at the indicated point. More... | |
| multSubImage (const PfmFile copy, int xto, int yto, int xfrom, int yfrom, int x_size, int y_size, float pixel_scale) | |
| Behaves like copy_sub_image(), except the copy pixels are multiplied to the pixels of the destination, after scaling by the specified pixel_scale. More... | |
| PfmFile | operator*= (float multiplier) |
| PfmFile | operator= (const PfmFile copy) |
| output (Ostream out) | |
| int | pullSpot (const LPoint4f delta, float xc, float yc, float xr, float yr, float exponent) |
| Applies delta * t to the point values within radius (xr, yr) distance of (xc, yc). More... | |
| quickFilterFrom (const PfmFile copy) | |
| Resizes from the given image, with a fixed radius of 0.5. More... | |
| bool | read (const Filename fullpath) |
| Reads the PFM data from the indicated file, returning true on success, false on failure. More... | |
| bool | read (Istream in, const Filename fullpath) |
| Reads the PFM data from the indicated stream, returning true on success, false on failure. More... | |
| bool | read (PNMReader reader) |
| Reads the PFM data using the indicated PNMReader. More... | |
| resize (int new_x_size, int new_y_size) | |
| Applies a simple filter to resample the pfm file in-place to the indicated size. More... | |
| reverseDistort (const PfmFile dist, PNFloat32 scale_factor) | |
| Applies the distortion indicated in the supplied dist map to the current map. More... | |
| reverseRows () | |
| Performs an in-place reversal of the row (y) data. More... | |
| setChannel (int x, int y, int c, PNFloat32 value) | |
| Replaces the cth channel of the point value at the indicated point. More... | |
| setNoDataChan4 (bool chan4) | |
| Sets the no_data_chan4 flag. More... | |
| setNoDataNan (int num_channels) | |
| Sets the no_data_nan flag. More... | |
| setNoDataThreshold (const LPoint4d no_data_value) | |
| Sets the special threshold value. More... | |
| setNoDataThreshold (const LPoint4f no_data_value) | |
| Sets the special threshold value. More... | |
| setNoDataValue (const LPoint4d no_data_value) | |
| Sets the special value that means "no data" when it appears in the pfm file. More... | |
| setNoDataValue (const LPoint4f no_data_value) | |
| Sets the special value that means "no data" when it appears in the pfm file. More... | |
| setPoint (int x, int y, const LVecBase3d point) | |
| Replaces the 3-component point value at the indicated point. More... | |
| setPoint (int x, int y, const LVecBase3f point) | |
| Replaces the 3-component point value at the indicated point. More... | |
| setPoint1 (int x, int y, PNFloat32 point) | |
| Replaces the 1-component point value at the indicated point. More... | |
| setPoint2 (int x, int y, const LVecBase2d point) | |
| Replaces the 2-component point value at the indicated point. More... | |
| setPoint2 (int x, int y, const LVecBase2f point) | |
| Replaces the 2-component point value at the indicated point. More... | |
| setPoint3 (int x, int y, const LVecBase3d point) | |
| Replaces the 3-component point value at the indicated point. More... | |
| setPoint3 (int x, int y, const LVecBase3f point) | |
| Replaces the 3-component point value at the indicated point. More... | |
| setPoint4 (int x, int y, const LVecBase4d point) | |
| Replaces the 4-component point value at the indicated point. More... | |
| setPoint4 (int x, int y, const LVecBase4f point) | |
| Replaces the 4-component point value at the indicated point. More... | |
| setScale (PNFloat32 scale) | |
| The "scale" is reported in the pfm header and is probably meaningless. More... | |
| setZeroSpecial (bool zero_special) | |
| Sets the zero_special flag. More... | |
| bool | store (PNMImage pnmimage) |
| Copies the data to the indicated PNMImage, converting to RGB values. More... | |
| bool | storeMask (PNMImage pnmimage) |
| Stores 1 or 0 values into the indicated PNMImage, according to has_point() for each pixel. More... | |
| bool | storeMask (PNMImage pnmimage, const LVecBase4f min_point, const LVecBase4f max_point) |
| Stores 1 or 0 values into the indicated PNMImage, according to has_point() for each pixel. More... | |
| bool | write (const Filename fullpath) |
| Writes the PFM data to the indicated file, returning true on success, false on failure. More... | |
| bool | write (Ostream out, const Filename fullpath) |
| Writes the PFM data to the indicated stream, returning true on success, false on failure. More... | |
| bool | write (PNMWriter writer) |
| Writes the PFM data using the indicated PNMWriter. More... | |
| xform (const LMatrix4d transform) | |
| Applies the indicated transform matrix to all points in-place. More... | |
| xform (const LMatrix4f transform) | |
| Applies the indicated transform matrix to all points in-place. More... | |
| Public Member Functions inherited from PNMImageHeader | |
| __init__ () | |
| __init__ (const PNMImageHeader copy) | |
| ColorSpace | getColorSpace () |
| Returns the color space that the image is encoded in, or CS_unspecified if unknown. More... | |
| PNMImageHeader::ColorType | getColorType () |
| Returns the image type of the image, as an enumerated value. More... | |
| str | getComment () |
| Gets the user comment from the file. More... | |
| Xelval | getMaxval () |
| Returns the maximum channel value allowable for any pixel in this image; for instance, 255 for a typical 8-bit-per-channel image. More... | |
| int | getNumChannels () |
| Returns the number of channels in the image. More... | |
| LVecBase2i | getSize () |
| Returns the number of pixels in each direction. More... | |
| PNMFileType | getType () |
| If the file type is known (e.g. More... | |
| int | getXSize () |
| Returns the number of pixels in the X direction. More... | |
| int | getYSize () |
| Returns the number of pixels in the Y direction. More... | |
| bool | hasAlpha () |
| Returns true if the image includes an alpha channel, false otherwise. More... | |
| bool | hasType () |
| Returns true if the PNMImageHeader knows what type it is, false otherwise. More... | |
| bool | isGrayscale () |
| Returns false if the image is a full-color image, and has red, green, and blue components; true if it is a grayscale image and has only a gray component. More... | |
| PNMReader | makeReader (const Filename filename, PNMFileType type, bool report_unknown_type) |
| Returns a newly-allocated PNMReader of the suitable type for reading from the indicated image filename, or NULL if the filename cannot be read for some reason. More... | |
| PNMReader | makeReader (Istream file, bool owns_file, const Filename filename, str magic_number, PNMFileType type, bool report_unknown_type) |
| Returns a newly-allocated PNMReader of the suitable type for reading from the already-opened image file, or NULL if the file cannot be read for some reason. More... | |
| PNMWriter | makeWriter (const Filename filename, PNMFileType type) |
| Returns a newly-allocated PNMWriter of the suitable type for writing an image to the indicated filename, or NULL if the filename cannot be written for some reason. More... | |
| PNMWriter | makeWriter (Ostream file, bool owns_file, const Filename filename, PNMFileType type) |
| Returns a newly-allocated PNMWriter of the suitable type for writing to the already-opened image file, or NULL if the file cannot be written for some reason. More... | |
| PNMImageHeader | operator= (const PNMImageHeader copy) |
| output (Ostream out) | |
| bool | readHeader (const Filename filename, PNMFileType type, bool report_unknown_type) |
| Opens up the image file and tries to read its header information to determine its size, number of channels, etc. More... | |
| bool | readHeader (Istream data, str filename, PNMFileType type, bool report_unknown_type) |
| Reads the image header information only from the indicated stream. More... | |
| setComment (str comment) | |
| Writes a user comment string to the image (header). More... | |
| setType (PNMFileType type) | |
| Sets the file type of this PNMImage. More... | |
Public Attributes | |
| PNFloat32 | scale |
| The "scale" is reported in the pfm header and is probably meaningless. More... | |
| bool | valid |
| Public Attributes inherited from PNMImageHeader | |
| ColorSpace | color_space |
| Returns the color space that the image is encoded in, or CS_unspecified if unknown. More... | |
| String | comment |
| Gets the user comment from the file. More... | |
| Xelval | maxval |
| Returns the maximum channel value allowable for any pixel in this image; for instance, 255 for a typical 8-bit-per-channel image. More... | |
| int | num_channels |
| Returns the number of channels in the image. More... | |
| LVecBase2i | size |
| Returns the number of pixels in each direction. More... | |
| PNMFileType | type |
| If the file type is known (e.g. More... | |
Additional Inherited Members | |
| Public Types inherited from PNMImageHeader | |
| enum | ColorType { CT_invalid = 0, CT_grayscale = 1, CT_two_channel = 2, CT_color = 3, CT_four_channel = 4 } |
| Static Public Member Functions inherited from PNMImageHeader | |
| static bool | hasAlpha (PNMImageHeader::ColorType color_type) |
| This static variant of has_alpha() returns true if the indicated image type includes an alpha channel, false otherwise. More... | |
| static bool | isGrayscale (PNMImageHeader::ColorType color_type) |
| This static variant of is_grayscale() returns true if the indicated image type represents a grayscale image, false otherwise. More... | |
Defines a pfm file, a 2-d table of floating-point numbers, either 3-component or 1-component, or with a special extension, 2- or 4-component.
| int __getbuffer__ | ( | PyBuffer | view, |
| int | flags | ||
| ) |
| __init__ | ( | ) |
| __init__ | ( | const PfmFile | copy | ) |
| addSubImage | ( | const PfmFile | copy, |
| int | xto, | ||
| int | yto, | ||
| int | xfrom, | ||
| int | yfrom, | ||
| int | x_size, | ||
| int | y_size, | ||
| float | pixel_scale | ||
| ) |
Behaves like copy_sub_image(), except the copy pixels are added to the pixels of the destination, after scaling by the specified pixel_scale.
| apply1dLut | ( | int | channel, |
| const PfmFile | lut, | ||
| PNFloat32 | x_scale | ||
| ) |
Assumes that lut is an X by 1, 1-component PfmFile whose X axis maps points to target points.
For each point in this pfm file, computes: p(u, v)[channel] = lut(p(u, v)[channel] * x_scale, 0)[0]
| applyCrop | ( | int | x_begin, |
| int | x_end, | ||
| int | y_begin, | ||
| int | y_end | ||
| ) |
Reduces the PFM file to the cells in the rectangle bounded by (x_begin, x_end, y_begin, y_end), where the _end cells are not included.
| applyExponent | ( | float | c0_exponent, |
| float | c1_exponent, | ||
| float | c2_exponent | ||
| ) |
Adjusts each channel of the image by raising the corresponding component value to the indicated exponent, such that L' = L ^ exponent.
For a grayscale image, the blue_exponent value is used for the grayscale value, and red_exponent and green_exponent are unused.
| applyExponent | ( | float | c0_exponent, |
| float | c1_exponent, | ||
| float | c2_exponent, | ||
| float | c3_exponent | ||
| ) |
Adjusts each channel of the image by raising the corresponding component value to the indicated exponent, such that L' = L ^ exponent.
| applyExponent | ( | float | gray_exponent | ) |
Adjusts each channel of the image by raising the corresponding component value to the indicated exponent, such that L' = L ^ exponent.
| applyExponent | ( | float | gray_exponent, |
| float | alpha_exponent | ||
| ) |
Adjusts each channel of the image by raising the corresponding component value to the indicated exponent, such that L' = L ^ exponent.
| applyMask | ( | const PfmFile | other | ) |
| boxFilterFrom | ( | float | radius, |
| const PfmFile | copy | ||
| ) |
Makes a resized copy of the indicated image into this one using the indicated filter.
The image to be copied is squashed and stretched to match the dimensions of the current image, applying the appropriate filter to perform the stretching.
| bool calcAutocrop | ( | LVecBase4d | range | ) |
Computes the minimum range of x and y across the PFM file that include all points.
If there are no points with no_data_value in the grid–that is, all points are included–then this will return (0, get_x_size(), 0, get_y_size()).
| bool calcAutocrop | ( | LVecBase4f | range | ) |
Computes the minimum range of x and y across the PFM file that include all points.
If there are no points with no_data_value in the grid–that is, all points are included–then this will return (0, get_x_size(), 0, get_y_size()).
| bool calcAveragePoint | ( | LPoint3f | result, |
| PNFloat32 | x, | ||
| PNFloat32 | y, | ||
| PNFloat32 | radius | ||
| ) |
Computes the unweighted average point of all points within the box centered at (x, y) with the indicated Manhattan-distance radius.
Missing points are assigned the value of their nearest neighbor. Returns true if successful, or false if the point value cannot be determined.
| bool calcBilinearPoint | ( | LPoint3f | result, |
| PNFloat32 | x, | ||
| PNFloat32 | y | ||
| ) |
Computes the weighted average of the four nearest points to the floating- point index (x, y).
Returns true if the point has any contributors, false if the point is unknown.
| bool calcMinMax | ( | LVecBase3f | min_points, |
| LVecBase3f | max_points | ||
| ) |
Calculates the minimum and maximum x, y, and z depth component values, representing the bounding box of depth values, and places them in the indicated vectors.
Returns true if successful, false if the mesh contains no points.
Calculates the minimum and maximum vertices of all points within the table.
Assumes the table contains 3-D points.
The return value is true if any points in the table, or false if none are.
| clear | ( | ) |
Eliminates all data in the file.
| clear | ( | int | x_size, |
| int | y_size, | ||
| int | num_channels | ||
| ) |
Resets to an empty table with a specific size.
The case of num_channels == 0 is allowed only in the case that x_size and y_size are also == 0; and this makes an empty (and invalid) PfmFile.
| clearNoDataValue | ( | ) |
Removes the special value that means "no data" when it appears in the pfm file.
All points will thus be considered valid.
| clearToTexcoords | ( | int | x_size, |
| int | y_size | ||
| ) |
| BoundingHexahedron computePlanarBounds | ( | const LPoint2d | center, |
| PNFloat32 | point_dist, | ||
| PNFloat32 | sample_radius, | ||
| bool | points_only | ||
| ) |
Computes the minmax bounding volume of the points in 3-D space, assuming the points represent a mostly-planar surface.
This algorithm works by sampling the (square) sample_radius pixels at the four point_dist corners around the center (cx - pd, cx + pd) and so on, to approximate the plane of the surface. Then all of the points are projected into that plane and the bounding volume of the entire mesh within that plane is determined. If points_only is true, the bounding volume of only those four points is determined.
center, point_dist and sample_radius are in UV space, i.e. in the range 0..1.
| BoundingHexahedron computePlanarBounds | ( | const LPoint2f | center, |
| PNFloat32 | point_dist, | ||
| PNFloat32 | sample_radius, | ||
| bool | points_only | ||
| ) |
Computes the minmax bounding volume of the points in 3-D space, assuming the points represent a mostly-planar surface.
This algorithm works by sampling the (square) sample_radius pixels at the four point_dist corners around the center (cx - pd, cx + pd) and so on, to approximate the plane of the surface. Then all of the points are projected into that plane and the bounding volume of the entire mesh within that plane is determined. If points_only is true, the bounding volume of only those four points is determined.
center, point_dist and sample_radius are in UV space, i.e. in the range 0..1.
| computeSamplePoint | ( | LPoint3f | result, |
| PNFloat32 | x, | ||
| PNFloat32 | y, | ||
| PNFloat32 | sample_radius | ||
| ) |
Computes the average of all the point within sample_radius (manhattan distance) and the indicated point.
The point coordinates are given in UV space, in the range 0..1.
| copyChannel | ( | int | to_channel, |
| const PfmFile | other, | ||
| int | from_channel | ||
| ) |
| copyChannelMasked | ( | int | to_channel, |
| const PfmFile | other, | ||
| int | from_channel | ||
| ) |
Copies just the specified channel values from the indicated PfmFile, but only where the other file has a data point.
| copySubImage | ( | const PfmFile | copy, |
| int | xto, | ||
| int | yto, | ||
| int | xfrom, | ||
| int | yfrom, | ||
| int | x_size, | ||
| int | y_size | ||
| ) |
Copies a rectangular area of another image into a rectangular area of this image.
Both images must already have been initialized. The upper-left corner of the region in both images is specified, and the size of the area; if the size is omitted, it defaults to the entire other image, or the largest piece that will fit.
| divideSubImage | ( | const PfmFile | copy, |
| int | xto, | ||
| int | yto, | ||
| int | xfrom, | ||
| int | yfrom, | ||
| int | x_size, | ||
| int | y_size, | ||
| float | pixel_scale | ||
| ) |
Behaves like copy_sub_image(), except the copy pixels are divided into the pixels of the destination, after scaling by the specified pixel_scale.
dest(x, y) = dest(x, y) / (copy(x, y) * pixel_scale).
| fill | ( | const LPoint2f | value | ) |
Fills the table with all of the same value.
| fill | ( | const LPoint3f | value | ) |
Fills the table with all of the same value.
| fill | ( | const LPoint4f | value | ) |
Fills the table with all of the same value.
| fill | ( | PNFloat32 | value | ) |
Fills the table with all of the same value.
| fillChannel | ( | int | channel, |
| PNFloat32 | value | ||
| ) |
Fills the indicated channel with all of the same value, leaving the other channels unchanged.
| fillChannelMasked | ( | int | channel, |
| PNFloat32 | value | ||
| ) |
Fills the indicated channel with all of the same value, but only where the table already has a data point.
Leaves empty points unchanged.
| fillChannelMaskedNan | ( | int | channel | ) |
Fills the indicated channel with NaN, but only where the table already has a data point.
Leaves empty points unchanged.
| fillChannelNan | ( | int | channel | ) |
Fills the indicated channel with NaN, leaving the other channels unchanged.
| fillNan | ( | ) |
Fills the table with all NaN.
| fillNoDataValue | ( | ) |
Fills the table with the current no_data value, so that the table is empty.
| flip | ( | bool | flip_x, |
| bool | flip_y, | ||
| bool | transpose | ||
| ) |
Reverses, transposes, and/or rotates the table in-place according to the specified parameters.
If flip_x is true, the x axis is reversed; if flip_y is true, the y axis is reversed. Then, if transpose is true, the x and y axes are exchanged. These parameters can be used to select any combination of 90-degree or 180-degree rotations and flips.
| forwardDistort | ( | const PfmFile | dist, |
| PNFloat32 | scale_factor | ||
| ) |
Applies the distortion indicated in the supplied dist map to the current map.
The dist map is understood to be a mapping of points in the range 0..1 in the first two dimensions.
The operation can be expressed symbolically as:
this(u, v) = this(dist(u, v))
If scale_factor is not 1, it should be a value > 1, and it specifies the factor to upscale the working table while processing, to reduce artifacts from integer truncation.
By convention, the y axis is inverted in the distortion map relative to the coordinates here. A y value of 0 in the distortion map corresponds with a v value of 1 in this file.
| gammaCorrect | ( | float | from_gamma, |
| float | to_gamma | ||
| ) |
Assuming the image was constructed with a gamma curve of from_gamma in the RGB channels, converts it to an image with a gamma curve of to_gamma in the RGB channels.
Does not affect the alpha channel.
| gammaCorrectAlpha | ( | float | from_gamma, |
| float | to_gamma | ||
| ) |
Assuming the image was constructed with a gamma curve of from_gamma in the alpha channel, converts it to an image with a gamma curve of to_gamma in the alpha channel.
Does not affect the RGB channels.
| gaussianFilterFrom | ( | float | radius, |
| const PfmFile | copy | ||
| ) |
Makes a resized copy of the indicated image into this one using the indicated filter.
The image to be copied is squashed and stretched to match the dimensions of the current image, applying the appropriate filter to perform the stretching.
| PNFloat32 getChannel | ( | int | x, |
| int | y, | ||
| int | c | ||
| ) |
Returns the cth channel of the point value at the indicated point.
| const LPoint4f getNoDataValue | ( | ) |
If has_no_data_value() returns true, this returns the particular "no data" value.
| const LPoint3f getPoint | ( | int | x, |
| int | y | ||
| ) |
Returns the 3-component point value at the indicated point.
In a 1-channel image, the channel value is in the x component.
| PNFloat32 getPoint1 | ( | int | x, |
| int | y | ||
| ) |
Returns the 1-component point value at the indicated point.
| const LPoint2f getPoint2 | ( | int | x, |
| int | y | ||
| ) |
Returns the 2-component point value at the indicated point.
In a 1-channel image, the channel value is in the x component.
| const LPoint3f getPoint3 | ( | int | x, |
| int | y | ||
| ) |
Returns the 3-component point value at the indicated point.
In a 1-channel image, the channel value is in the x component.
| const LPoint4f getPoint4 | ( | int | x, |
| int | y | ||
| ) |
Returns the 4-component point value at the indicated point.
In a 1-channel image, the channel value is in the x component.
| object getPoints | ( | ) |
| PNFloat32 getScale | ( | ) |
The "scale" is reported in the pfm header and is probably meaningless.
| bool hasNoDataThreshold | ( | ) |
Returns whether a "no data" threshold value has been established by set_no_data_threshold().
| bool hasNoDataValue | ( | ) |
Returns whether a "no data" value has been established by set_no_data_value().
| bool hasPoint | ( | int | x, |
| int | y | ||
| ) |
Returns true if there is a valid point at x, y.
This always returns true unless a "no data" value has been set, in which case it returns false if the point at x, y is the "no data" value.
index_image is a WxH 1-channel image, while pixel_values is an Nx1 image with any number of channels.
Typically pixel_values will be a 256x1 image.
Fills the PfmFile with a new image the same width and height as index_image, with the same number of channels as pixel_values.
Each pixel of the new image is computed with the formula:
new_image(x, y) = pixel_values(index_image(x, y)[channel], 0)
At present, no interpolation is performed; the nearest value in pixel_values is discovered. This may change in the future.
| bool isColumnEmpty | ( | int | x, |
| int | y_begin, | ||
| int | y_end | ||
| ) |
Returns true if all of the points on column x, from [y_begin, y_end), are the no_data value, or false if any one of these points has a value.
| bool isRowEmpty | ( | int | y, |
| int | x_begin, | ||
| int | x_end | ||
| ) |
Returns true if all of the points on row y, in the range [x_begin, x_end), are the no_data value, or false if any one of these points has a value.
| bool isValid | ( | ) |
| bool load | ( | const PNMImage | pnmimage | ) |
| merge | ( | const PfmFile | other | ) |
| LPoint3f modifyPoint | ( | int | x, |
| int | y | ||
| ) |
Returns a modifiable 3-component point value at the indicated point.
| LPoint2f modifyPoint2 | ( | int | x, |
| int | y | ||
| ) |
Returns a modifiable 2-component point value at the indicated point.
| LPoint3f modifyPoint3 | ( | int | x, |
| int | y | ||
| ) |
Returns a modifiable 3-component point value at the indicated point.
| LPoint4f modifyPoint4 | ( | int | x, |
| int | y | ||
| ) |
Returns a modifiable 4-component point value at the indicated point.
| multSubImage | ( | const PfmFile | copy, |
| int | xto, | ||
| int | yto, | ||
| int | xfrom, | ||
| int | yfrom, | ||
| int | x_size, | ||
| int | y_size, | ||
| float | pixel_scale | ||
| ) |
Behaves like copy_sub_image(), except the copy pixels are multiplied to the pixels of the destination, after scaling by the specified pixel_scale.
| PfmFile operator*= | ( | float | multiplier | ) |
| output | ( | Ostream | out | ) |
| int pullSpot | ( | const LPoint4f | delta, |
| float | xc, | ||
| float | yc, | ||
| float | xr, | ||
| float | yr, | ||
| float | exponent | ||
| ) |
Applies delta * t to the point values within radius (xr, yr) distance of (xc, yc).
The t value is scaled from 1.0 at the center to 0.0 at radius (xr, yr), and this scale follows the specified exponent. Returns the number of points affected.
| quickFilterFrom | ( | const PfmFile | copy | ) |
Resizes from the given image, with a fixed radius of 0.5.
This is a very specialized and simple algorithm that doesn't handle dropping below the Nyquist rate very well, but is quite a bit faster than the more general box_filter(), above.
| bool read | ( | const Filename | fullpath | ) |
Reads the PFM data from the indicated file, returning true on success, false on failure.
This can also handle reading a standard image file supported by PNMImage; it will be quietly converted to a floating-point type.
Reads the PFM data from the indicated stream, returning true on success, false on failure.
This can also handle reading a standard image file supported by PNMImage; it will be quietly converted to a floating-point type.
| bool read | ( | PNMReader | reader | ) |
Reads the PFM data using the indicated PNMReader.
The PNMReader is always deleted upon completion, whether successful or not.
| resize | ( | int | new_x_size, |
| int | new_y_size | ||
| ) |
Applies a simple filter to resample the pfm file in-place to the indicated size.
Don't confuse this with applying a scale to all of the points via xform().
| reverseDistort | ( | const PfmFile | dist, |
| PNFloat32 | scale_factor | ||
| ) |
Applies the distortion indicated in the supplied dist map to the current map.
The dist map is understood to be a mapping of points in the range 0..1 in the first two dimensions.
The operation can be expressed symbolically as:
this(u, v) = dist(this(u, v))
If scale_factor is not 1, it should be a value > 1, and it specifies the factor to upscale the working table while processing, to reduce artifacts from integer truncation.
By convention, the y axis in inverted in the distortion map relative to the coordinates here. A y value of 0 in the distortion map corresponds with a v value of 1 in this file.
| reverseRows | ( | ) |
Performs an in-place reversal of the row (y) data.
| setChannel | ( | int | x, |
| int | y, | ||
| int | c, | ||
| PNFloat32 | value | ||
| ) |
Replaces the cth channel of the point value at the indicated point.
| setNoDataChan4 | ( | bool | chan4 | ) |
Sets the no_data_chan4 flag.
When this flag is true, and the pfm file has 4 channels, then a negative value in the fourth channel indicates no data. When it is false, all points are valid.
This is a special case of set_no_data_value().
| setNoDataNan | ( | int | num_channels | ) |
Sets the no_data_nan flag.
When num_channels is nonzero, then a NaN value in any of the first num_channels channels indicates no data for that point. If num_channels is zero, then all points are valid.
This is a special case of set_no_data_value().
| setNoDataThreshold | ( | const LPoint4d | no_data_value | ) |
Sets the special threshold value.
Points that are below this value in all components are considered "no value".
| setNoDataThreshold | ( | const LPoint4f | no_data_value | ) |
Sets the special threshold value.
Points that are below this value in all components are considered "no value".
| setNoDataValue | ( | const LPoint4d | no_data_value | ) |
Sets the special value that means "no data" when it appears in the pfm file.
| setNoDataValue | ( | const LPoint4f | no_data_value | ) |
Sets the special value that means "no data" when it appears in the pfm file.
| setPoint | ( | int | x, |
| int | y, | ||
| const LVecBase3d | point | ||
| ) |
Replaces the 3-component point value at the indicated point.
In a 1-channel image, the channel value is in the x component.
| setPoint | ( | int | x, |
| int | y, | ||
| const LVecBase3f | point | ||
| ) |
Replaces the 3-component point value at the indicated point.
In a 1-channel image, the channel value is in the x component.
| setPoint1 | ( | int | x, |
| int | y, | ||
| PNFloat32 | point | ||
| ) |
Replaces the 1-component point value at the indicated point.
| setPoint2 | ( | int | x, |
| int | y, | ||
| const LVecBase2d | point | ||
| ) |
Replaces the 2-component point value at the indicated point.
In a 1-channel image, the channel value is in the x component.
| setPoint2 | ( | int | x, |
| int | y, | ||
| const LVecBase2f | point | ||
| ) |
Replaces the 2-component point value at the indicated point.
In a 1-channel image, the channel value is in the x component.
| setPoint3 | ( | int | x, |
| int | y, | ||
| const LVecBase3d | point | ||
| ) |
Replaces the 3-component point value at the indicated point.
In a 1-channel image, the channel value is in the x component.
| setPoint3 | ( | int | x, |
| int | y, | ||
| const LVecBase3f | point | ||
| ) |
Replaces the 3-component point value at the indicated point.
In a 1-channel image, the channel value is in the x component.
| setPoint4 | ( | int | x, |
| int | y, | ||
| const LVecBase4d | point | ||
| ) |
Replaces the 4-component point value at the indicated point.
In a 1-channel image, the channel value is in the x component.
| setPoint4 | ( | int | x, |
| int | y, | ||
| const LVecBase4f | point | ||
| ) |
Replaces the 4-component point value at the indicated point.
In a 1-channel image, the channel value is in the x component.
| setScale | ( | PNFloat32 | scale | ) |
The "scale" is reported in the pfm header and is probably meaningless.
| setZeroSpecial | ( | bool | zero_special | ) |
Sets the zero_special flag.
When this flag is true, values of (0, 0, 0) in the pfm file are treated as a special case, and are not processed.
This is a special case of set_no_data_value().
| bool store | ( | PNMImage | pnmimage | ) |
Copies the data to the indicated PNMImage, converting to RGB values.
| bool storeMask | ( | PNMImage | pnmimage | ) |
Stores 1 or 0 values into the indicated PNMImage, according to has_point() for each pixel.
Each valid point gets a 1 value; each nonexistent point gets a 0 value.
| bool storeMask | ( | PNMImage | pnmimage, |
| const LVecBase4f | min_point, | ||
| const LVecBase4f | max_point | ||
| ) |
Stores 1 or 0 values into the indicated PNMImage, according to has_point() for each pixel.
Each valid point gets a 1 value; each nonexistent point gets a 0 value.
This flavor of store_mask also checks whether the valid points are within the specified min/max range. Any valid points without the condition min_point[c] <= value[c] <= max_point[c], for any c, are stored with a 0 in the mask.
| bool write | ( | const Filename | fullpath | ) |
Writes the PFM data to the indicated file, returning true on success, false on failure.
If the type implied by the filename extension supports floating-point, the data will be written directly; otherwise, the floating-point data will be quietly converted to the appropriate integer type.
Writes the PFM data to the indicated stream, returning true on success, false on failure.
| bool write | ( | PNMWriter | writer | ) |
Writes the PFM data using the indicated PNMWriter.
The PNMWriter is always deleted upon completion, whether successful or not.
| xform | ( | const LMatrix4d | transform | ) |
Applies the indicated transform matrix to all points in-place.
| xform | ( | const LMatrix4f | transform | ) |
Applies the indicated transform matrix to all points in-place.
| PNFloat32 scale |
The "scale" is reported in the pfm header and is probably meaningless.
| bool valid |


Iconic Algerian raï singer Cheikha Rimitti gets square named after her in Paris
DUBAI: It’s no secret that Celine Dion reveres designers from the region. The Canadian crooner has sported looks from Middle Eastern talent on numerous occasions — who can forget that canary-colored Maison Rabih Kayrouz power suit she wore last year? So it hardly comes as a surprise that Dion donned earrings from Lebanese fine jewelry designer Ralph Masri on the campaign shots for her newly-released album, “Courage".
The singer who gave us “My Heart Will Go On” rocked the Phoenician Script Bolt Earrings with Diamonds in the album artwork in addition to a fold-out poster that comes tucked inside the CD.
The Canadian crooner rocked Ralph Masri's Phoenician Script Bolt Earrings with Diamonds. Supplied
“This is so special to me on so many levels. First, for the obvious reason that Celine Dion is an icon I’ve always loved and this is an incredible honor,” the Beirut-based jeweler told Vogue Arabia.
The Central Saint Martins graduate, who launched his eponymous label in 2014, is known for his sophisticated, statement pieces. His geometric designs have been worn by the likes of Queen Rania Al-Abdullah, Gigi Hadid and Nicki Minaj.
Those who wish to take a style cue from the pop superstar will be pleased to know that the diamond earrings are available at his newly-opened Beirut flagship store.


@import template._ @this(standardPage: standardPage) @() @standardPage("Logged Out", Some(Html("You're signed out"))) { } {
You have been successfully signed out.


An open journal-- some of it written for you, but most of it is for me.
Jquery-air-intermediate
Retriving the href
12
$('#tabs ul li:last a').attr('href')$('#tabs ul li:last a').data('flights')//this would be from an html5 data tag
event delegation-
it can be method chained and performs faster than live
’$(document).delegate’
Don’t forget the brackets on the selector!!
eq selector
eq(element#) - a selector
1
$('ol.economy-class li.row:eq(1) ol li:eq(3)').html()
123
$('ol.economy-class li.row:eq(1) ol li:eq(3) a').attr('href');// to access the href you need to specify the a tag$('ol.economy-class li.row:eq(1) ol li:eq(3) a').data('seat');
This allows you to list multiple events for each element. NOTE the different syntax, this becomes like a MAP now (very similar to a hash)
Unbind Element
Let’s imagine the following scenario…
The user clicks on a “vote” button.
Some AJAX calls are performed.
After a successful AJAX call you setup a cookie to deny further votes from this machine.
So one possible solution is to unbind the click event…
Have something happen on a click event, but only once! Unbind the click handler after the element has been clicked once.
Once and only once…
1234
$('#my-selector').bind('click',function(){$(this).unbind('click');alert('Clicked and unbound!');});
Jquery Air
123456789
functionselectSeat(e){e.preventDefault();$('.selected').removeClass('selected');$(this).addClass('selected').unbind("click",selectSeat);$('#seatSelected').text($(this).data('seat'));$('#confirm-seat').show();}$('div.seating-chart li a.available').click(selectSeat);
Live will look for that event now or in the future and will catch it and call the right function
Delegate
Delegate > live
123456
$('#flights a').live("click",selectFlight);// is the same as$(document).delegate("#flights a","click",selectFlight);// this is too general. It would be better if you just checked inside a specific element$(#tabsdiv).delegate("#flights a","click",selectFlight);// check inside the element rather than the entire page
Delegate can be method chained and it is more performant
Ajax
Video2
$.get and $.ajax are alternatives. $.ajax is slightly more
cache: false option ensures that your browser won’t cache the html for every request
Error handling
Loading div - call beforeSend the AJAX invoked then hide it in the complete:
If it returns successfully - success: and if not - error:
Mistake I keep making
12345678910
functionfetchFirstClassConfirm(){varflight_id=815;varurl='/flights/'+flight_id$.ajax(url,{success:function(result){$('#confirm-first-class').html(result).show();//I have a big problem missing the '' in the selector!}});}


Enter device here if an item is repaired.
Would you like to view the repair jobs that have the status UNDER_REPAIR?
Would you like to view the repair log?
Enter two dates (year-month-date, XXXX-XX-XX) to show the revenue generated between those times.


--- layout: default title: Home ---
With over 20 years IT experience, I can help you and your business grow.
Neil Millard is a successful entrepreneur, speaker and trainer. A recognised expert on cloud and automated server infrastructures, he assists businesses to embrace new technology to move faster, become more automated and respond more quickly to their customers’ wants and needs. Having spent many years in the financial sector with clients such as Barclays, HMRC and AXA, he is now on a mission to help grow companies, through DevOps and Platforms, helping the world.


White Boy Rick
White Boy Rick is a movie starring Matthew McConaughey, Richie Merritt, and Bel Powley. The story of teenager Richard Wershe Jr., who became an undercover informant for the FBI during the 1980s and was ultimately arrested for...


| Created: | 6/27/2020 7:02:57 AM |
| Modified: | 6/27/2020 7:02:57 AM |
| Project: | |
| Advanced: |
| Attribute |
|
Public serial id |
|
Details:
|
|
Public integer draw_remittance_advice_form_id |
|
Details:
|
|
Public integer fdr_appropriation_reference_id |
|
Details:
|
|
Public varchar(255) federal_catalog |
|
Details:
|
|
Public varchar(255) rev_obj |
|
Details:
|
|
Public varchar(255) description |
|
Details:
|
|
Public varchar(255) created_by |
|
Details:
|
|
Public varchar(255) updated_by |
|
Details:
|
|
Public timestamp with time zone(0) created_at |
|
Details:
|
|
Public timestamp with time zone(0) updated_at |
|
Details:
|
|
Public timestamp with time zone(0) start_date |
|
Details:
|
|
Public timestamp with time zone(0) end_date |
|
Details:
|
|
Public integer bucket_id |
|
Details:
|
|
Public boolean is_mchip |
|
Details:
|
| Operation | ||
|
Public draw_remittance_advice_form_lines_pkey( id: serial, |
||
|
Details:
<<PK>>
|
| Element | Source Role | Target Role |
|
«table» draw_remittance_advice_form_line_versions Table «FK» |
Name: draw_remittance_advice_form_line_versions_dr... |
Name: draw_remittance_advice_form_lines_pkey |
|
Details:
|
| Tag | Value |
| Owner | public |
|
Details:
|
| Property | Value |
| isFinalSpecialization: | 0 |


«
Devrecord
one blog at a time
starslam
An obligation to collaboration
Sympathy for my fingers
A small thought about time


Documentation
Contents
- Introduction
- How it works
- Browser compatibility
- Basic usage with JavaScript
- Unobtrusively with CSS classes
- jQuery
Introduction [top]
Below is a short explanation of how the Pixastic library works and how to use it. There are also pages with details on the individual actions and effects available through Pixastic. These pages also feature small live demos where you can see the library in action.
How it works [top]
Most of the Pixastic actions work by accessing the pixel data of the image and manipulating the image on pixel by pixel basis. This is done via the getImageData()
/ putImageData()
methods available on the HTML5 canvas
element. The methods are currently only fully supported by Firefox, Opera and Safari with a recent WebKit nightly build.
The core Pixastic functions take care of creating a canvas
element, draws the image on this element and retrieves the image data. This data is then passed on to the relevant action which does "its thing" before returning the data. Finally, the modified data is put back into the canvas
and the process is complete. If the original image element has a parent node, Pixastic automatically replaces the original image with the new canvas
element. When doing so, the script tries to transfer the element id, CSS styling and other important properties to the new canvas
.
Each action may have a number of options that can be used to control various parameters of the effect. See the individual action pages for details. Many effects also support an extra parameter which specifies a rectangular region where you want the effect to be applied.
Browser compatibility [top]
So that explains how things are done when canvas
support is available, but since we don't want to forget Internet Explorer completely, a few of the effects have been simulated using the proprietary IE filters. These include Blur, Desaturate, Lighten, Flip Horizontally and Flip Vertically. These filters are very fast but as you can see, the list is also rather short.
Internet Explorer also does not support the rectangular region option, meaning that you can only apply effects to the entire image. Pixastic will usually convert the image to a canvas
element, but this obviously won't fly on IE so the original img
element is always returned in IE.
Since some actions may be supported on one browser and not on others, please refer to the individual action pages for compatibility information. For full compatibility, a browser with canvas
(with ImageData
) support should be used. Currently that means either Firefox 2+, Opera 9.5+ or Safari with a recent WebKit nightly.
You should also be aware that, due to security restrictions in the canvas
element, Pixastic will only work with images that reside on the same host as the page you're using it on.
At this moment, Pixastic has only been tested extensively on Windows, although I assume Macs to be ok too. There have been reports of trouble with Linux that may have something to do with nVidia drivers.
Basic usage with JavaScript [top]
First include the JavaScript files. You need at least the core module and the specific action files you are going to use. If you've downloaded a custom build, you only need to include that one file.

When you've included the Pixastic .js file(s), a single global object called Pixastic will be available. This object has one interesting method, Pixastic.process
, which is used to call all the actions. If everything went right, the new modified element is returned, if something went wrong the function returns false
.
The first argument to this function should be a valid image element or a canvas
element. The second argument is the name of the action, eg. "blur", "emboss", etc.
These first two arguments are (perhaps obviously) required, but the third argument is optional. This is an "options" object that contains any optional parameters for the specific action. The actual parameters naturally vary from action to action and are described on the individual action pages.
Example code:
var img = document.getElement("myImage"); // get the image element if (img.complete) { // make sure the image is fully loaded var newimg = Pixastic.process( img, "brightness", // brightness/contrast adjustment { // options object "brightness" : 60, // set brightness option value to 60 "contrast" : 0.5, // set contrast option value to 0.5, "rect" : { // apply the effect to this region only "left" : 100, "right" : 100, "width" : 200, "height" : 150 } } ) }
And that's really all there's to it!
Note: If you want Pixastic.process
to return the new element, you must make sure that the image is completely loaded before sending it to Pixastic, ie. check if the [img].complete
property is set to true
or, alternatively, call Pixastic.process
from the onload
event on the image. You can also supply a callback function as the fourth argument to Pixastic.process
, this function will then be called (with the resulting element as its first and only argument) when the effect has been applied.
var fnDone = function(newImage) { // newImage is the new canvas/image element } Pixastic.process( img, "blur", null, function() { } );
The last solution is to use the options object. If an options object is passed to Pixastic.process
, the resulting canvas can be found in a property called resultCanvas
on the options object. Example:
var options = {}; Pixastic.process(image, "action", options); options.resultCanvas; // <- holds new canvas
Unobtrusively with CSS classes [top]
You can also make Pixastic automatically apply effects to specific images when the page has loaded.
This way, you can use the class
attribute on an
element to control the effects. Here's an example:

However, this feature needs to be enabled manually since we don't want to unnecessarily search the DOM in case you're only using the JavaScript interface. To enable it you must declare and set the variable pixastic_parseonload = true
before loading the Pixastic JavaScript file(s) (or simply add it to the beginning file pixastic.core.js):

Note that this procedure has changed recently with pixastic.core.js version 0.1.3 and any old pages using the previous method involving Pixastic.parseOnLoad
must be updated.
Original image:
Image with class="pixastic pixastic-invert(rect=50,50,150,150)"
:
jQuery [top]
Pixastic also has some very simple jQuery functionality. If you choose to include the jQuery part of Pixastic, Pixastic will still work the same as just described, but will also function as a jQuery plugin. This means that you can use jQuery code such as this:
// invert the image with id="prettyface" $("#prettyface").pixastic("invert"); // convert all images with class="photo" to greyscale $(".photo").pixastic("desaturate"); // chained blur and a regional emboss, see image further down $("#myimage") .pixastic("blurfast", {amount:0.2}) .pixastic("emboss", {direction:"topleft", rect:{left:50,top:50,width:150,height:150}});
As you might have guessed, the jQuery plugin is basically a very thin wrapper for the Pixastic.process
function. The plugin code checks if jQuery is available before registering itself, so it's safe to include even if jQuery is not available. When chaining actions, it's especially important that you ensure that the image is fully loaded before calling the pixastic()
method, so it might be wise to put the Pixastic code in an onload
event or similar.
Image changed with jQuery:


chevron_left
Homepage
Encode
PNG image:
Encode type:
UTF-8 Text
Binary file
Encoded text
Encoded files
Password (Optional)
Submit
send


I am a meteorologist turned software engineer turned devops engineer. For the past 3 years I've been embracing the world of AWS and have gained a fascination for automating all the things.
Help developers utilize the "infrastructure as code" nature of AWS by utilizing common sense CI/CD workflows. I've migrated web server applications from local datacenters to containerized cloud microservices. I Manage multiple AWS accounts and all associated infrastructure. My current day to day is a mixed bag of helping setup project build automation, maintaining the build infrastructure, and consulting on project architecture.
Collaborated on a small team to build out a number of APIs serving meteorological data in various formats using a NGINX/UWSGI/Python-Flask stack. Built numerous data ingest/formatting pipelines for extremely large, dynamic geo-spatial/temporal datasets.
Utilized Python and ArcGIS to design, develop, and implement live updating weather layers for ESRI platform users. Fully trained and managed team of 4 employees, coordinating development efforts, goals, and tasking.
Scripted creation of Climatology products for hail-fall and lightning. Assisted customers by disseminating complex meteorological information in a usable and understandable format via reports or on the phone discussion.
When not at work, you can often find me out enjoying the natural world. My wife and I hike and camp frequently with our two puppies, and have traveled and camped all over the country. I'm also a pretty avid triathlete, perpetually in training, but rarely actually competing.
If I'm not outside it means I'm probably in my office playing League of Legends or hacking away at some awful piece of code to try and learn some new technology.


Posts about “Movies”
Netflix Canada has been busy releasing tons of new stuff, so I’ve given up detailing every single new release. Instead, here are my top picks based on movies I’ve either seen and recommend (especially flicks I consider to be “classic”), or movies I want to see because I’ve heard or read that they are good. These are based on the last few months of new releases.
The Fog Seen it: classic
There’s not a lot to recommend in the latest releases. If you really want to watch a Thor movie, avoid this stinker and shell out the extra bucks for the excellent version that’s in the cinema right now. But if I had to pick, I’d go with the critic darling Waltz with Bashir, even though it looks like a bit of a downer.
Almighty Thor Flixster Audience Rating: 6%
My top pick for today is Noise. Not the highest rated movie, but Tim robbins and William Hurt are both fantastic actors and the plot of this indie flick looks intriguing. Of course, the proof is in the pudding, as I haven’t watched any of my top picks yet!
June 5 Noise Rotten Tomatoes Rating: 57%
Desperate for some peace and quiet, New York attorney David Owen (Tim Robbins) takes matters into his own hands.
Good morning people. Here are the latest releases and ratings for Netflix Canada. My top pick today is 24 City. This looks like a very timely and relevant Chinese movie with a unique directing style and is our highest rated for today.
June 02 While She Was Out Rotten Tomatoes Rating: 33%
What starts out as a Christmas Eve trip to the mall ends up as an exercise in terror for suburban mom Della Myers (Kim Basinger) when she finds herself stranded in a forest and pursued by a quartet of thugs – all because she’s left an angry note on their car.
I love Netflix, but it’s hard to tell when new movies come out and whether they’re any good or not. So, here are the latest releases for June 1st and their Rotten Tomatoes / Flixster rating. I’ll also be giving my top pick for the day for a movie I think is the number one worth watching out of the batch… And my top pick today is Knight and Day.


Artist of the decade Taylor Swift dominates the American Music Awards
She overtook Michael Jackson as the most successful artist in AMAs history.
Taylor Swift reflected on a year of highs and lows as she dominated the American Music Awards.
The pop superstar was named artist of the decade, an honour announced before the ceremony, and scooped the biggest prize of the night – artist of the year.
Accepting the latter, an emotional Swift said the previous 12 months had given her “some of the most amazing times”, as well as “the hardest things I’ve gone through in my life”.
She has been embroiled in a high-profile feud with prominent talent manager Scooter Braun and her former record label over her back catalogue.
“This industry is really weird,” Swift said.
She thanked her fans, adding: “This year for me has been a lot. It’s been a lot of good, it’s been a lot of really complicated.”
Swift won artist of the year ahead of Drake, Ariana Grande, Halsey and Post Malone. It capped a night of celebration for the performer, who had already been named artist of the decade.
Before she accepted that prize, a video retrospective of 29-year-old Swift’s already glittering career played. She then treated fans inside Los Angeles’s Microsoft Theater to a medley of some of her biggest hits.
Swift decided against overt references to her dispute with Braun, but did open her performance with a brief portion of her song The Man, which debates how much more successful she would be if she were a male.
Fans also noted Swift wore a white button-down jacket featuring the titles of her old albums including Speak Now, Red and Fearless.
During her acceptance speech, Swift reduced many in the audience to tears – including her mother Andrea – and said the honour celebrated 10 years of “hard work and of art and of fun and memories”.
She added: “All that matters to me is the memories I have had with you guys, with you the fans, over the years.
“We’ve had fun, incredible, exhilarating, extraordinary times together and may it continue.”
“I am so lucky to get to do this,” Swift added.
Swift won a total of six awards on the night, including favourite female artist in the pop/rock category and favourite pop/rock album for Lover.
It means she surpasses the late King Of Pop Michael Jackson as the most successful artist in AMAs history, with a total of 29 wins.
Elsewhere, teenager Billie Eilish continued her year to remember by scooping best new artist.
The 17-year-old appeared emotional as she thanked fans for the award, her second of the night after her win for alternative rock artist.
Rapper Post Malone, whose seven nominations were the most on the night, won favourite rap/hip-hop album for his effort Hollywood’s Bleeding.
Pop star Halsey won the prize for favourite pop/rock song for her hit Without Me.
Carrie Underwood won favourite country artist and country album of the year.
The AMAs, one of the major music awards shows of the year, boasted a star-studded line-up of performers
Singer Toni Braxton, 25 years after winning her first AMA, performed her hit Un-Break My Heart while new artist of the year nominee Lizzo treated fans to her single Jerome.
Country music star Thomas Rhett and celebrity couple Camila Cabello and Shawn Mendes were also among the performers.
Before the show officially kicked off, Dan + Shay were named favourite duo or group in the country category, while K-pop favourites BTS won in the pop/rock category.
Ozzy Osboune, who spent much of 2019 recovering from injuries he suffered in a fall at home, returned to the stage later to perform Take What You Want alongside Malone and Travis Scott.
Canadian singer-songwriter Shania Twain closed the night with a medley of songs – mashing up the biggest hits of recent years with some of her own best-known tracks, including That Don’t Impress Me Much.


We have more than 2315 dentists registered on our website and we've bring more than 10 000 european patients to europeans dentists
We bring more than 10 000 patients to dentists from the eastern europe. This is the best way for a new profitable bussines approach
Some nice content should be here to describe the entire system of the application. This will need to be completed in the future to keep this box.


Excel Skills for Business: Essentials
Coursera
Issued Nov 2020 - No Expiration Date
See credentialStudent of ICFAI business school, Gurgaon.I see financial issues from a psychological perspective. Human behavior has always fascinated me.
Currently I am a 1st year MBA student and have developed my keen interest in understanding people's thought process while taking financial decisions.
Excel Skills for Business Specialization, Intermediate & Advanced Level
Data Analysis and Visualization Foundations Specialization
Systematic Review and Meta-Analysis, Behind the Statistics
Feburary 2021 - Present
Portfolio Managment
Responsible for creating and managing investment allocations for private clients,
designing customized solutions
for the clients.
Feburary 2021 - Present
Portfolio Managment
Responsible for creating and managing investment allocations for private clients,
designing customized solutions
for the clients.
January 2021 - Present
Social Media Managment
Manages all social media channels, team members, campaigns
Includes the
creation of contents that drives their brand and engages customers.
April 2020 - Present
- MBA - Field Of Study : Finance, Marketing
Ständiges Verbessern des agilen Entwicklungsprozesses beispielsweise durch Grunt,
Yeoman, GIT, JIRA und BrowserStack.
june 2016 - April 2019
BA - Field Of Study : psychology and economics
Konzeption, Design und Produktion von Digitalen Magazinen mit InDesign, der Adobe Digital Publishing Suite und HTML5. Co-Autorin der Fachbücher "Digitales Publizieren für Tablets" und "Adobe Digital Publishing Suite" erschienen im dpunkt.verlag.
April 2014 - April 2016
- Business/Commerce, General Grade - 80%
Konzeption und Modellierung von Systemen und APIs für Digital Publishing und
Entitlement nach SOA
Coursera
Issued Jan 2020 - No Expiration Date
See credentialCoursera
Issued Jan 2020 - No Expiration Date
See credential


CSS Position Property
position: inherit - Inherits from its parent element.
position: initial - Sets to its default value. (no IE)
position: static - Default value. Elements render in order, as they appear in the document flow
position: absolute
position: relative
position: fixed
x-index: N


Webhook Deployer v{{version}}
Your auto-deploy companion
username:
password:
login
error!
repo
branch
{{#deploys}}
{{deploy.repo}}
{{deploy.branch}}
{{/deploys}}
Log:
{{log}}


The amount of memory available to the locking system is specified using the DB_ENV->set_memory_max() method. Sizing of the enviroment using the DB_ENV->set_memory_max() method is discussed in Sizing a database environment. Here we will discuss how to estimate the number of objects your application is likely to lock. Since running out of memory for locking structures is a fatal error requiring reconfiguration and restarting the environment it is best to overestimate the numbers.
When configuring a Berkeley DB Concurrent Data Store application, the number of lock objects needed is two per open database (one for the database lock, and one for the cursor lock when the DB_CDB_ALLDB option is not specified). The number of locks needed is one per open database handle plus one per simultaneous cursor or non-cursor operation.
Configuring a Berkeley DB Transactional Data Store application is more complicated. The recommended algorithm for selecting the number of locks, lockers, and lock objects is to run the application under stressful conditions and then review the lock system's statistics to determine the number of locks, lockers, and lock objects that were used. Then, double these values for safety. However, in some large applications, finer granularity of control is necessary in order to minimize the size of the Lock subsystem.
The number of lockers can be estimated as follows:
The number of lock objects needed for a transaction can be estimated as follows:
For each access to a non-Queue database, one lock object is needed for each page that is read or updated.
For the Queue access method you will need one lock object per record that is read or updated. Deleted records skipped by a DB_NEXT or DB_PREV operation do not require a separate lock object.
For Btree and Recno databases additional lock objects may be needed for each node in the btree that has to be split due to an update.
For Hash and Queue databases, every access must obtain a lock on the metadata page for the duration of the access. This is not held to the end of the transaction.
If the transaction performs an update that needs to allocate a page to the database then a lock object for the metadata page will be needed to the end of the transaction.
Note that transactions accumulate locks over the transaction lifetime, and the lock objects required by a single transaction is the total lock objects required by all of the database operations in the transaction. However, a database page (or record, in the case of the Queue access method), that is accessed multiple times within a transaction only requires a single lock object for the entire transaction. So if a transaction in your application typically accesses 10 records, that transaction will require about 10 lock objects (it may be a few more if it splits btree nodes). If you have up to 10 concurrent threads in your application, then you need to configure your system to have about 100 lock objects. It is always better to configure more than you need so that you don't run out of lock objects. The memory overhead of over-allocating lock objects is minimal as they are small structures.
The number of locks required by an application cannot be easily estimated. It is possible to calculate a number of locks by multiplying the number of lockers, times the number of lock objects, times two (two for the two possible lock modes for each object, read and write). However, this is a pessimal value, and real applications are unlikely to actually need that many locks. Reviewing the Lock subsystem statistics is the best way to determine this value.
By default a minimum number of locking objects are allocated at startup. To avoid contention due to allocation the application may use the DB_ENV->set_memory_init() method to preallocate and initialize the following lock structures:
DB_MEM_LOCK
Specifies the number of locks that can be simultaneously requested in the system.
DB_MEM_LOCKER
Specifies the number of lockers that can simultaneously request locks in the system.
DB_MEM_LOCKOBJECTS
Specifies the number of objects that can simultaneously be locked in the system.
In addition to the above structures, sizing your locking subsystem also requires specifying the number of lock table partitions. You do this using the DB_ENV->set_lk_partitions() method. Each partition may be accessed independently by a thread. More partitions can lead to higher levels of concurrency. The default is to set the number of partitions to be 10 times the number of cpus that the operating system reports at the time the environment is created. Having more than one partition when there is only one cpu is not beneficial because the locking system is more efficient when there is a single partition. Some operating systems (Linux, Solaris) may report thread contexts as cpus, and so it may be necessary to override the default to force a single partition on a single hyperthreaded cpu system. Objects and locks are divided among the partitions so it is best to allocate several locks and objects per partition. The system will force there to be at least one per partition. If a partition runs out of locks or objects it will steal what is needed from the other partitions. This operation could impact performance if it occurs too often. The final values specified for the locks and lock objects should be more than or equal to the number of lock table partitions.


Cascading Style Sheet 1 as defined by the W3c provides powerful page layout facilities...CSS is language that describes the style of an HTML document.CSS is language that describes the style of an HTML document.CSS is language that describes the style of an HTML document.CSS is language that describes the style of an HTML document.CSS is language that describes the style of an HTML document.CSS is language that describes the style of an HTML document.
Cascading Style Sheet 1 as defined by the W3c provides powerful page layout facilities...CSS is language that describes the style of an HTML document.CSS is language that describes the style of an HTML document.CSS is language that describes the style of an HTML document.CSS is language that describes the style of an HTML document.CSS is language that describes the style of an HTML document.CSS is language that describes the style of an HTML document.
Cascading Style Sheet 1 as defined by the W3c provides powerful page layout facilities...CSS offers reusability


This is a blog post title
Kick up litter mew. Swat at dog hopped up on catnip, and claw drapes always hungry, nap all day, cat slap dog in face yet if it fits, i sits. Chase red laser dot. Where is my slave? i'm getting hungry loves cheeseburgers intently stare at the same spot if it fits, i sits or play time kick up litter under the bed. Play time climb leg use lap as chair, for stretch. Destroy couch spread kitty litter all over house. Need to chase tail climb leg, yet make meme, make cute face my left donut is missing, as is my right or under the bed.


Lets Play Pig Dice
Player 1
Add player
Roll Dice
Hold
Player 2
Add player
Roll Dice
Hold
Player one Score
Player two Score
The Winner is:


EVO HTML to PDF Converter allows you to attach external files and streams to a PDF document. You can save the created PDF document to a file, a stream or in a memory buffer.
The file attachments can be marked or not in PDF document by icons. You can attach files from local file system or from a stream.


This is how big the 'perfect' chip should be
by Iain LynnSkinny, curly and crimped fries might seem all the rage, but a classic straight cut, served piping hot, is still the chip of choice - with Maris Piper the most popular potato.
The ‘perfect chip’ should be precisely 7cm long and 1.2cm wide - straight cut - crispy on the outside and soft in the middle.
Brits believe chips should have a sprinkle of salt - no pepper - with ketchup considered the best topping (49 per cent), followed closely by vinegar (47 per cent) and mayonnaise (32 per cent).
Curry sauce is crowned the winner over gravy or cheese, with one fifth of Brits not considering their chips to be perfect without it.
READ MORE: Restaurant Review: The Green Man, Inglewhite
The study of 2,000 adults, by the Food Advisory Board, also found those in the south remain loyal to curry sauce while people in the north prefer gravy.
Only East Anglia and the South West residents opt for cheesy chips instead.
It also emerged 40 per cent agreed chips are their favourite food, and a quarter admit that they would eat them for every meal if they could.
Food Advisory Board expert Professor Robert Pickard said: “When the skin is left on, and they are prepared and cooked the right way, for example in the oven with minimal added fat, chips can be included in a healthy, balanced diet.
"When cooking up chips, it’s best to opt for thick-cut potatoes as opposed to thinly cut chips, so that you avoid absorbing too much cooking fat."
While some see chips as a treat, when looking at the nutritional value of potatoes, spuds with the skin on are actually a source of potassium, fibre and thiamin.
But the study, conducted via OnePoll, found just under half recognise that potatoes with the skin on are a source of fibre.
Only one third noted they are a source of potassium, and just one quarter knew they were low in sugar.
Robert Pickard added: "Potato wedges can be a healthy way to cook potatoes, by ensuring you keep the skin on, and baking them in a small amount of unsaturated oil, such as rapeseed oil it will help maintain the potatoes nutrients.
"Wedges are also very versatile, simply throw them in a tray bake with some lean meat and veggies for a healthy and balanced dinner time dish.”


You have to choose between two modes for your application :
Please note that this choice is permanent.


Know Your Triangles!
This site allows you to detect the type of triangle that you have based on the dimensions that you put in me. Click on the button to try it now
Enter Values


Iframe Second Page
In 3 seconds it will go back to the "Index" page escaping iframe, but it should not!


new Scatterplot()
- Version:
- 1.0
- Source:
Example
var x = Scatterplot()
.parent(d3.selectAll(".container"))
.seriesNames(["blue","pink"])
.margin("auto")
.data([
[
[30,26],
[10,15],
[12,0]
],
[
[3,2],
[1,1],
[1,0]
]
])
.draw()
Extends
Methods
className(valueopt)
Defines a class to be added to all DOM elements within the SVG
If value is specified, sets the class name.If value is not specified, return the current set value
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
value |
String |
<optional> |
random |
- Inherited From:
- Source:
colors(valueopt)
Defines the custom colors for dots on the canvas
If value is specified, sets the color groups.If value is not specified, return the current color groups
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
value |
function |
<optional> |
- Source:
data(valueopt)
Adds / Updates the data bound to the plot
If value is specified, sets the data.If value is not specified, returns the currently bound data
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
value |
Array |
<optional> |
Array with data |
- Inherited From:
- Source:
duration(valueopt)
Defines the duration for transitions
If value is specified, sets the length of transitions (in ms).If value is not specified, return the current set value
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
value |
Integer |
<optional> |
300 |
- Inherited From:
- Source:
events(valueopt)
Defines custom event listeners
Not yet implementedParameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
value |
Object |
<optional> |
Key=>value of events to listen and responding callbacks |
- Inherited From:
- Source:
finished()
Defines a callback to be called whenever transitions finish
Not yet implemented- Inherited From:
- Source:
header(valueopt)
Defines the header to be printed above the plot
If value is specified, sets the plot header.If value is not specified, return the current set value
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
value |
String |
<optional> |
"EsbmePlot" | Header |
- Inherited From:
- Source:
height(valueopt)
Defines the total height of the SVG
If value is specified, sets the height.If value is not specified, return the currentlt set height
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
value |
Int |
<optional> |
height in px |
- Inherited From:
- Source:
highlightColor(RGB_Color)
Defines color of highlighted points
Parameters:
| Name | Type | Description |
|---|---|---|
RGB_Color |
String |
- Source:
highlightRadius(radius)
Defines radius of highlighted points
Parameters:
| Name | Type | Description |
|---|---|---|
radius |
Int |
- Source:
highlights(highlightsopt)
Defines data points to be highlighted
Data needs to be passed an Array of highlightEach highlight is [x-Value, y-Value, Text, labelPosition]
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
highlights |
Array |
<optional> |
- Source:
info(valueopt)
Defines extra info that is stored in the DOM
If value is specified, sets the info.If value is not specified, return the current set value
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
value |
Array.<Object> |
<optional> |
Must have the same format as data. Final elements can be any kind of object |
- Inherited From:
- Source:
margin(valueopt)
Defines the margin of the plot
Margin is used to print labels and axes, so it should either be set large enough or left to be determined automatically. If value is specified, sets the margins.If value is not specified, return the current set value
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
value |
Int | Array.<Int> | Object |
<optional> |
"auto" | Margins in same format as with CSS |
- Inherited From:
- Source:
Example
plot.margin(20)
=> {top: 20, right: 20, bottom: 20, left: 20}
plot.margin("auto")
=> {top: "auto", right: "auto", bottom: "auto", left: "auto"}
plot.margin(20,10)
=> {top: 20, right: 10, bottom: 20, left: 10}
plot.margin(5,10,15,20)
=> {top: 5, right: 10, bottom: 15, left: 20}
plot.margin({ top: 5, right: 10, bottom: 15, left: 20 })
=> {top: 5, right: 10, bottom: 15, left: 20}
parent(valueopt)
Defines or returns the parent DOM element onto which the svg will be appended
If value is specified, sets the parent.If value is not specified, return the current set value
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
value |
D3Selection |
<optional> |
d3.js Selection |
- Inherited From:
- Source:
radius(valueopt)
Defines the radius of the dots
If value is specified, sets the value.If value is not specified, returns the current value
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
value |
Integer |
<optional> |
0 |
- Source:
radius(valueopt)
Defines whether to draw on a canvas or SVG
If value is specified, sets the value.If value is not specified, returns the current value
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
value |
String |
<optional> |
"auto" | Allowed values: auto|svg|canvas |
- Source:
radius(valueopt)
If `canvas` is set to `auto` sets the limit of data points to draw on an SVG
If more data points than `maxDots` are present, plot is drawn as canvas.This might not work well with adding more data etc. In this case use canvas as default
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
value |
Integer |
<optional> |
100 |
- Source:
scaleX(valueopt)
Defines the custom Scatterplot specifc scale for the x-axis
If value is specified, sets the x-axis scale.If value is not specified, return the current scale Should not be used as setter in most cases
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
value |
function |
<optional> |
- Source:
scaleY(valueopt)
Defines the custom Scatterplot specifc scale for the y-axis
If value is specified, sets the y-axis scale.If value is not specified, return the current scale Should not be used as setter in most cases
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
value |
function |
<optional> |
- Source:
seriesNames(valueopt)
Defines the class names to be added to each series
If value is specified, sets the series names.If value is not specified, return the current series names
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
value |
Array.<String> |
<optional> |
["Series1","Series2","Series3","Series4","Series5","Series6","Series7","Series8","Series9","Series10"] |
- Inherited From:
- Source:
svg(valueopt)
Defines the svg element
This value should rarely be used for setting the svg element and mainly used as a getter If value is specified, sets the parent.If value is not specified, return the current set value
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
value |
D3Selection |
<optional> |
- Inherited From:
- Source:
width(valueopt)
Defines the total width of the SVG
If value is specified, sets the width.If value is not specified, return the currently set width
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
value |
Int |
<optional> |
width in px |
- Inherited From:
- Source:
xDomain(valueopt)
Defines the domain for the X-axis
If value is specified, sets the x-axis domain.If value is not specified, return the current set value
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
value |
String |
<optional> |
- Inherited From:
- Source:
xLabel(valueopt)
Defines the label to be printed below the X-axis
If value is specified, sets the x-axis label.If value is not specified, return the current set value
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
value |
String |
<optional> |
- Inherited From:
- Source:
yDomain(valueopt)
Defines the domain for the y-axis
If value is specified, sets the y-axis domain.If value is not specified, return the current set value
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
value |
String |
<optional> |
- Inherited From:
- Source:
yLabel(valueopt)
Defines the label to be printed alongside the Y-axis
If value is specified, sets the y-axis label.If value is not specified, return the current set value
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
value |
String |
<optional> |
- Inherited From:
- Source:


@(employee: Employee)
Employee Name : @employee.name
Employee Designation : @employee.designation
Employee salary : @employee.salary


Upcoming Workshops - Register Now!!!
Hyderabad 17 & 18 Sept
Bangalore 24 & 25 Sept
Pune 15 & 16 Oct
Training & Workshop
Full Name
*
Mobile Number
*
Email
*
Training
Choose Your Course
Puppet Training & Workshop (Fundamental + Advance)
Chef Training & Workshop (Fundamental + Advance)
Devops Using Git, Maven, Nexus, Jenkins & Chef
Devops Using Git, Maven, Nexus, Jenkins & Puppet
Advance Docker Training & Workshop
Location
Choose Your Location
Hyderabad
Bangalore
Pune
Delhi
Mumbai
Amsterdam
London
Singapore
San Francisco
Message
×
Submit


Back
Analysis
Choose a representative
No representatives
Search
Start Date
End Date
Search
No sales
Date
Representative Name
Representative Username
Customer
Phone Number
Product Name
Category
Price
Quantity
Total Price


Simplify engineering documentation
Take notes of interesting code snippets. It's normal to find yourself searching for the same helper method. Do yourself a favor and save it.
Suggested saved search Stackoverflow
Librarian will automatically group your Stackoverflow related documents togetherDocument workflows for faster onboarding, happier new hires
Pro teams need pro documentation. Create documentation for your workflows as you run through them. Your new hire will appreciate following these paved roads.
Suggested saved searches Azure, AWS or Trello
Librarian will automatically group together documentation related to the tooling you're using.Remember important papers you want to read.
Adding papers to your to-read list is a single key away. Librarian organizes papers according to source or context. Just make sure to capture that abstract!
Suggested saved search arxiv OR nips.
Librarian can search for multiple keywords at the same time just make sure to OR them in the search.Suggested saved search adversarial.
It's easy to divide your content up by topics.Librarian offers a new way to look at note taking and documentation. Teams usually struggle with discovery or lack of documentation, Librarian seems to solve this problem with an out of the box approach.


Psalms 125:2
As the mountains are round about Jerusalem, so the LORD is round about his people from henceforth even for ever.


Smartisan OS Lands on the Smartisan Nut Pro 3, Brings Step 3.0 Feature - Gizchina.com
by PierreRate this post
On October 31st, Chinese phone maker Smartisan officially announced the new Smartisan Nut Pro 3 flagship phone and as we said back then, the handset has its main selling point in this operative system. Today, the brand pushed out an update for the device, updating its OS to Smartisan OS 7.12. The new OS version adds a Step 3.0 sidebar split screen function; let’s have a closer look!
The Step 3.0 feature by Smartisan is basically a new take at the split screen enigma. This feature comes into action by pulling down from the two corners at the top of the screen, or it can be activated by pressing the shortcut and volume down buttons at the same time.
Once the split screen interface is started, it’s possible to choose the main app along with three sub-apps. In other words, we have a large portion of the screen used by an app; while the other three apps share a smaller part of the display.
This allows users to have a total of four apps running at the same time. Although it’d probably be worth starting a discussion on the actual usability of this configuration.
Chinese media suggests that this software feature also pushed the brand to avoid making a 6GB RAM variant. The Smartisan Nut Pro 3 is indeed only available with a minimum of 8GB. Plus there’s even a 12GB for those who take multi-tasking very seriously.
Needless to say that with the large amount of RAM, there shouldn’t be any memory-related problems.
But the new Nut Pro 3 isn’t the only device getting this feature. The older Nut R1 and Nut Pro 2S are supposedly going to receive the update as well. Smartisan OS 7.2 in its stable version should land on the two devices in early 2020.


I do yoga, woodworking, skating, writing, and programming.
My studio
Yoga stuff
The home page
Esme is my hobby too
Recent stuff


Try out the spotlight canvas experiment here!
Type text in the box below and it will display in the canvas!
Enter the text you want to see:


Submitted by Eric_AMANN on Sat, 01/03/2014 - 10:58
Hi all,
I'm doing gas monitoring with success using an emontxV3. After one week, the index displayed in my Emoncms account is exactly the same displayed on my gas meter ! So I am glad to give you some feedbacks.
My gas meter is a G4 Gallus 2000. Millions of units have been installed worldwild for years. By luck, this meter had already been equipped with a pulse generator by my gas furnisher. This pulse generator which has been designed for my gas meter is basically a reed switch normally opened. You can purchase it here in France.
If you have a different gas meter or if you don't want to buy this pulse generator you can made your own pulse generator using a reed switch (search for gas monitoring on the forum and have a look in the building block section)
In the emontxV3 pulse sketch or in the wiki, one can read that it may be needed to add a pull-down resistor onto the emonTx V3 PCB (R31). I didn't do it as the PCB is already equipped with this resistor. I guess it's a copy paste error coming from the emontxV2. So I directly connect my pulse generator into emonTx V3 terminal block port 4 (IRQ 0 / Digital 2) and block port 2 (3.3V)
First, I tried to use the emontxV3 pulse sketch available on github. It was not working as expected because I got a lot of bounces and glitches.See attached graphs. It tried to filter the signal directly in the sketch with an appropriate interrupt service routine. It worked fine for glitches but not well for bounces. I guess some interrupts were ignored because my filtering ISR was too long.
So I wrote another sketch to smooth the pulse signal without using interrupts. It reads the state of the signal each seconds and detects real state changes. The number of real pulses is sent every ten seconds. It is difficult for me to explain how it works in english but the code is really easy to understand (see below). It works very well with my pulse signal that does not switch faster than every 6 secondes. You may adapt the duration between two read to meet your needs
I realized later that it is possible to filter such a signal using a hardware method. A simple RC circuit well designed should work fine. Look for debouncing circuit in google. For sure, it will free your arduino to do something else....
Regards,
Eric
****************************************
void loop()
{
emontx_sleep(1);
val_2=val_1; // value read 2 sec ago
val_1=val; // value read 1 sec ago
val = digitalRead(2); // value of the pin 2
if (debug==1) {Serial.print(val_2);Serial.print(val_1);Serial.println(val);}
if ((val_2 & val_1 & val & !state) or (!val_2 & !val_1 & !val & state)){
state=!state;
emontx.pulse=emontx.pulse++;
if (debug==1) {Serial.print(" Pulse = ");Serial.println(emontx.pulse);}
}
mesure++;
if (mesure==10){
if (debug==1) {Serial.print(" send Pulse = ");Serial.println(emontx.pulse);}
send_rf_data();
mesure=0;
emontx.pulse=0;
}
digitalWrite(LEDpin, HIGH); delay(2); digitalWrite(LEDpin, LOW); // flash LED
}
Gas monitoring - direct pulse with EmontxV3
Submitted by Eric_AMANN on Sat, 01/03/2014 - 10:58Hi all,
I'm doing gas monitoring with success using an emontxV3. After one week, the index displayed in my Emoncms account is exactly the same displayed on my gas meter ! So I am glad to give you some feedbacks.
My gas meter is a G4 Gallus 2000. Millions of units have been installed worldwild for years. By luck, this meter had already been equipped with a pulse generator by my gas furnisher. This pulse generator which has been designed for my gas meter is basically a reed switch normally opened. You can purchase it here in France.
If you have a different gas meter or if you don't want to buy this pulse generator you can made your own pulse generator using a reed switch (search for gas monitoring on the forum and have a look in the building block section)
In the emontxV3 pulse sketch or in the wiki, one can read that it may be needed to add a pull-down resistor onto the emonTx V3 PCB (R31). I didn't do it as the PCB is already equipped with this resistor. I guess it's a copy paste error coming from the emontxV2. So I directly connect my pulse generator into emonTx V3 terminal block port 4 (IRQ 0 / Digital 2) and block port 2 (3.3V)
First, I tried to use the emontxV3 pulse sketch available on github. It was not working as expected because I got a lot of bounces and glitches.See attached graphs. It tried to filter the signal directly in the sketch with an appropriate interrupt service routine. It worked fine for glitches but not well for bounces. I guess some interrupts were ignored because my filtering ISR was too long.
So I wrote another sketch to smooth the pulse signal without using interrupts. It reads the state of the signal each seconds and detects real state changes. The number of real pulses is sent every ten seconds. It is difficult for me to explain how it works in english but the code is really easy to understand (see below). It works very well with my pulse signal that does not switch faster than every 6 secondes. You may adapt the duration between two read to meet your needs
I realized later that it is possible to filter such a signal using a hardware method. A simple RC circuit well designed should work fine. Look for debouncing circuit in google. For sure, it will free your arduino to do something else....
Regards,
Eric
****************************************
void loop()
{
emontx_sleep(1);
val_2=val_1; // value read 2 sec ago
val_1=val; // value read 1 sec ago
val = digitalRead(2); // value of the pin 2
if (debug==1) {Serial.print(val_2);Serial.print(val_1);Serial.println(val);}
if ((val_2 & val_1 & val & !state) or (!val_2 & !val_1 & !val & state)){
state=!state;
emontx.pulse=emontx.pulse++;
if (debug==1) {Serial.print(" Pulse = ");Serial.println(emontx.pulse);}
}
mesure++;
if (mesure==10){
if (debug==1) {Serial.print(" send Pulse = ");Serial.println(emontx.pulse);}
send_rf_data();
mesure=0;
emontx.pulse=0;
}
digitalWrite(LEDpin, HIGH); delay(2); digitalWrite(LEDpin, LOW); // flash LED
}