Useful Expressions

Parameters

  • center position ----------$CEX, $CEY, $CEZ
    • centroid("../node", 0) ------ 0-X 1-Y 2-Z
  • group center ------------$GCX, $GCY, $GCZ
  • number of points -------$NPT
    • npoints("../node")
  • number of primitive-----$NPR
  • how many primitive or point the group has ----$NGRP
  • bounding box -----------$BBX, $BBY, $BBZ
    • bbox("../node", 0) ------ 0-minX 1-minY 2-minZ 3-maxX 4-maxY 5-maxZ 6-sizeX 7-sizeY 8-sizeZ

Expression by VEX code Example(using Vector in float parm)

{

float $a = 10;

float $a = 10;

float $a = 10;

return length($a,$b,$c);

}

Channel frame expression

chf("channel", frame)

cht("channel", time)

Attribute

We can quickly select groups of stuff by using a condition such as:

@attribute>0

@attribute.x==0

@Cd.x>0.3

@id=="0 10 125 128 150-180"

Volume

volumeres("../node", prim number, axis)

Name

select name(group or attribute) exception

* ^aa ^bb

Global

  • $FPS----------------fps
  • $FSTART ----------start frame
  • $RFSTART ----------reference start frame
  • $FEND -------------start end
  • $RFEND -------------reference start end
  • $HIP ----------------directory
  • $HIPNAME ----------file name

String

Change lower case letter to Capital

`toupper(chs("attrib"))`

Path

open file from connection node

op:`opinputpath("..",1)` 

get the Number from node name

opdigits("..")

get image information from COPS

for attrbute

tex("op:obj/COPS/COPsnode(ex,Null1)", $MAPU, $MAPV, l)

for image pass

op:/obj/COPS/COPsnode

op:/img/comp1/vopcop2gen1

Detector

Point Distance form Rrimitive

pointdist("../nullPoint", $PT, "../nullPrim", -1, 0)

put -1 on Rrim number then you can detect closest Primitive.

* return_type = 0 returns the minimum distance.

* return_type = 1 returns the u parametric value at the point of minimum distance.

* return_type = 2 returns the v parametric value at the point of minimum distance.

* return_type = 3 returns the primitive number that was closest. Enter -1 as the <prim_num>.

Measure Curve Length

arclen("../curve1", 0, 0, 1)

arclen("../curve1", prim num, ustart, ustop)

SOP

how to access to the ramp parameter

ex. chramp("/obj/geo1/popnet1/color1", 0.33, 1)

If it is a just liner 0 to 1, returns the value 0.33

In I want to use it for stamps of copy, just like that!

chramp("ramp", stamp("../copy1","life",-1), 1)

For Each

Stamp

stamp("..", "FORVALUE",0)

Stamps when Group mask

opdigits(stamps("..", "FORVALUE",""))

DOP

dopoption & dopfield

sub network

dopoption("..",$OBJID,"Position","impactValue")

more inside

dopfield("..",$OBJID,"Impacts","Impacts",0,"impulse")

dopfield("..",$OBJID,"Impacts","Impacts",0,"positiony")

more more inside

dopfield("/obj/dopnet1", "obj0", "Forces/Gravity_gravity1", "Options", 0, "forcey")

how many points

dopnumrecords("..",$OBJID,"Impacts","Impacts")

access to geometry in Dop

detail("..:$OBJID/Geometry", "inGRP", 0)

detail("/obj/AutoDopNetwork:$OBJID/Geometry", "inGRP", 0)

collision division on RDB

bbox("..:$OBJID/Geometry", 6)

bbox("..:$OBJID/Geometry", 7)

bbox("..:$OBJID/Geometry", 8)

Centroid

centroid("..:$OBJID/Geometry", 0)