codesimian
Class Pixels2d

java.lang.Object
  extended by codesimian.CS<CSGeneric>
      extended by codesimian.DefaultCS
          extended by codesimian.Pixels2d
All Implemented Interfaces:
CodeSimian
Direct Known Subclasses:
Pixels2d.BrightnessFraction

public class Pixels2d
extends DefaultCS

Execute a Pixels2d as a number to get the width of its image (how many pixels wide). Execute it as a java.awt.BufferedImage to get the BufferedImage. Set its value as a BufferedImage to replace the image and therefore the width.

Until more code is finished, you can not set the value of any pixels, you can only get them.

For example, the following code creates a Pixels2d for a rectangle of pixels around the mouse: thisComputersScreen(pixels2d -(mouseXPos .05) -(mouseYPos .05) .1 .1)


Nested Class Summary
static class Pixels2d.BrightnessFraction
          example code: thisComputersScreen(pixels2dBrightnessFraction -(mouseXPos .05) -(mouseYPos .05) .1 .1)
 
Field Summary
 java.awt.image.BufferedImage image
           
 
Fields inherited from class codesimian.CS
DESCRIPTION, END, EXECPROXY, HEAP, JAVACODE, MYFUEL, NAME, NEWINSTANCE, NULL, PARENT, PARSEPRIORITY, PREV, TESTER, THIS
 
Constructor Summary
Pixels2d()
           
 
Method Summary
 int countP()
          changes if you replace the Image
 double DForProxy()
          Execute this CS and cast to double.
static int eraseAlpha(int rgb)
           
static void eraseAlpha(int[] rgb)
           
 java.lang.String keyword()
          For the CodeSimian language as a String.
CodeSimian language keyword, like "+" "*" "max" ">" etc.

Override this function if you want to specify a keyword other than how I derive them from the class name, like + for Add.

Some CSs might never be intended to be used in the language by their keyword.
The best example (4/05) is Num, because it is used in the language like "3.4" instead of "num()".
 java.lang.Object LForProxy(java.lang.Class c)
          the default implementation can use many Class parameters.
 java.lang.Object LForProxy(int start, java.lang.Class c, int size)
          by default, only works if castToThisType==CS[].class or is a String or List.
 int minP()
          changes if you replace the Image.
 CS P(int index)
          WARNING: if add CSs then delete them, they are still in the param[] array and can be returned in this function, despite them being out of valid range: index at least countP().
 double PD(int index)
          Returns a param as a double.
 int PI(int index)
           
 boolean setL(java.lang.Object o)
          setL setD setF setJ setI setS setC setB setZ are functions that SET THE VALUE OF THIS CS to some object, primitive, or array.
 
Methods inherited from class codesimian.DefaultCS
B, C, decrementMyFuel, deleteP, description, F, fuel, getExec, getObject, heap, I, indexP, indexPName, insertB, insertC, insertD, insertF, insertI, insertJ, insertL, insertL, insertL1, insertP, insertS, insertZ, J, javaCode, myFuel, name, newInstance, objectToCS, objectToCSArray, objectToCSArray, prevD, prevL, PType, S, setB, setC, setCountP, setD, setD, setExec, setF, setFuel, setI, setJ, setL, setL, setL1, setMyFuel, setName, setObject, setP, setPrevExec, setPType, setS, setZ, start, toString, V, Z
 
Methods inherited from class codesimian.CS
addB, addC, addD, addF, addI, addJ, addL, addP, addP, addP, addP, addP, addS, addZ, BForProxy, CForProxy, clone, cost, D, deleteP, FForProxy, GETB, GETC, GETD, GETF, GETI, GETJ, GETL, GETS, GETZ, IForProxy, isIllusion, JForProxy, L, L, L, L, L, maxD, maxP, minD, overwrites, parent, parsePriority, PB, PC, PF, PJ, PL, prevB, prevC, prevF, prevI, prevJ, prevS, prevZ, proxyOf, PS, PZ, reflect, reflect, reflect6, setB, SETB, setC, SETC, setCost, SETD, setDescription, setF, SETF, setHeap, setI, SETI, setJ, SETJ, SETL, setL, setL, setParent, setParsePriority, setProxyOf, setS, SETS, setTester, setZ, SETZ, SForProxy, tester, toJavaCode, VForProxy, voidReflect, ZForProxy
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

image

public java.awt.image.BufferedImage image
Constructor Detail

Pixels2d

public Pixels2d()
Method Detail

DForProxy

public double DForProxy()
Description copied from class: CS
Execute this CS and cast to double.

D() and DForProxy() are the 2 most important functions in CS. They execute this CS. All other execute functions, by default, return DForProxy cast to their own type.

For example, J() calls the proxy which calls JForProxy() which calls DForProxy(). D() calls the proxy which calls DForProxy().

By default, all other primitive EXECUTE functions defer to D.
Functions that EXECUTE this CS: L(Class) L(int,Class,int) Z() B() C() S() I() J() F() D() V()

Specified by:
DForProxy in class DefaultCS

PI

public int PI(int index)
Overrides:
PI in class CS
See Also:
CS.PD(int)

PD

public double PD(int index)
Description copied from class: CS
Returns a param as a double. Same as P(paramIndex).D()

Why not just use P(paramIndex).D() instead? Its not just for convenience. Some CSs store their params as doubles or other primitives (or any type of Object, usually String or CS), and if you predict correctly how params are stored, PD(paramIndex) is much faster than P(paramIndex).D(), but BEWARE: if you predict incorrectly its a little slower. It calculates the same double either way.

For all paramIndex: P(paramIndex).D() == PD(paramIndex)

Overrides:
PD in class CS

P

public CS P(int index)
Description copied from class: DefaultCS
WARNING: if add CSs then delete them, they are still in the param[] array and can be returned in this function, despite them being out of valid range: index at least countP().

Overrides:
P in class DefaultCS
Parameters:
index - range 0 (or neg?) to countP()-1 inclusive
See Also:
CS.heap()

LForProxy

public java.lang.Object LForProxy(java.lang.Class c)
Description copied from class: DefaultCS
the default implementation can use many Class parameters. If you override but do not know what to return, return super.LForProxy(Class). All EXEC objects must override L(Class) the same way they override D(), reversed.

TODO: add ability to return List, or should I make every CS be a list?

Overrides:
LForProxy in class DefaultCS
See Also:
execProxy(), setExecProxy(CS)

LForProxy

public java.lang.Object LForProxy(int start,
                                  java.lang.Class c,
                                  int size)
Description copied from class: DefaultCS
by default, only works if castToThisType==CS[].class or is a String or List. TODO: add more types, including all types L(Class) can use.

Overrides:
LForProxy in class DefaultCS
See Also:
CS.L(int,Class,int)

setL

public boolean setL(java.lang.Object o)
Description copied from class: CS
setL setD setF setJ setI setS setC setB setZ are functions that SET THE VALUE OF THIS CS to some object, primitive, or array.

Overrides:
setL in class DefaultCS

keyword

public java.lang.String keyword()
Description copied from class: DefaultCS
For the CodeSimian language as a String.
CodeSimian language keyword, like "+" "*" "max" ">" etc.

Override this function if you want to specify a keyword other than how I derive them from the class name, like + for Add.

Some CSs might never be intended to be used in the language by their keyword.
The best example (4/05) is Num, because it is used in the language like "3.4" instead of "num()".
Default: Returns class name, minus package name (and its dots), and change the first letter to lowercase.

For example, CS.MaxParams does not override keyword(), which returns "maxP".

Overrides:
keyword in class DefaultCS
See Also:
CS.parent(), CS.newInstance(), CS.name()

countP

public int countP()
changes if you replace the Image

Overrides:
countP in class DefaultCS

minP

public int minP()
changes if you replace the Image. !!! why return countP()? !!!

Overrides:
minP in class DefaultCS

eraseAlpha

public static void eraseAlpha(int[] rgb)

eraseAlpha

public static int eraseAlpha(int rgb)