Alright, so I decided to flesh out some of the other viewer elements first.
Firstly, I added .a8s embedded support. What this does is embed the contents of a .a8s file directly within the post with syntax highlighting.
I also added the asl tags so that you can embed ASL just by copying and pasting into those tags. The syntax would be
[asl title="optional"]ASL Script[/asl]If a title isn't given, "ASL Snippet" is used instead. Please note that the syntax highlighter isn't very mature yet, and will be fleshed out over time.
Finally, I added options for the video attachments. You can now set to enable/disable the controls, autoplay, or loop.
Related to that, I'm replacing "an8={}" for the more universal "options={}". Please use that instead (first post will be updated to reflect this).
Examples.a8s Attachment:
[attach]1[/attach]ASL code snippet:
[asl]ASL Text (not shown in full here)[/asl]ASL Snippet
- /** 
-  * @author Randall Bezant (aka Raxx) 
-  * @attribution "Fast, Minimum Storage Ray/Triangle Intersection" by Tomas Moller and Ben Trumbore: 
-  * http://www.cs.virginia.edu/~gfx/Courses/2003/ImageSynthesis/papers/Acceleration/Fast%20MinimumStorage%20RayTriangle%20Intersection.pdf 
-  *  
-  * @param <point3> $v0, $v1, $v2 - The three points of the colliding triangle in clockwise direction 
-  * @param <point3> $rSource - Ray source point 
-  * @param <point3> $rDir - Ray Direction 
-  * 
-  * @return point2 - If collision, returns the length along the ray direction (known as t), 
-  * and collided indicator of 1 for a value of (1, t). Otherwise returns (0, 0). If t is negative, 
-  * that means it collided in the opposite direction of the specified ray direction, behind the 
-  * ray source. 
-  *  
-  * Single-sided ray/triangle intersection method. To get the point of intersection on the triangle, 
-  * use this formula: 
-  * 
-  * pI = p + t*d 
-  * 
-  * pI: Point of intersection (point3) 
-  * p: Ray source (point3) 
-  * t: length along ray (float) 
-  * d: Ray direction (point3) 
-  * 
- */ 
- point2 $rayTriangleIntersect (point3 $V0, point3 $V1, point3 $V2, point3 $rSource, point3 $rDir) 
- { 
- 	// Determinant 
- 	point3 $pvec, $tvec, $qvec, $edge1, $edge2; 
- 	float $determinant, $triangleV, $triangleU; 
-   
- 	$edge1 = $V1 - $V0; 
- 	$edge2 = $V2 - $V0; 
-   
- 	$pvec = cross($rDir, $edge2); 
- 	$determinant = dot($edge1, $pvec); 
-   
- 	if ($determinant < 0.000001) 
- 		return (0,0); 
-   
- 	$tvec = $rSource - $V0; 
- 	$triangleU = dot($tvec, $pvec); 
-   
- 	if($triangleU < 0.0 || $triangleU > $determinant) 
- 		return (0,0); 
-   
- 	$qvec = cross($tvec, $edge1); 
- 	$triangleV = dot($rDir, $qvec); 
-   
- 	if ($triangleV < 0.0 || $triangleU + $triangleV > $determinant) 
- 		return (0,0); 
-   
- 	return (1, dot($edge2, $qvec) / $determinant); 
-   
- }