Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const e1 = EIGHT.Geometric3.e1()
- const e2 = EIGHT.Geometric3.e2()
- const e3 = EIGHT.Geometric3.e3()
- export interface Bivector extends EIGHT.Renderable {
- a: EIGHT.Geometric3;
- b: EIGHT.Geometric3;
- }
- export default function bivector(contextManager: EIGHT.ContextManager): Bivector {
- let sceneName: string;
- const arrow = new EIGHT.Arrow({contextManager});
- const darea = new EIGHT.Parallelepiped(contextManager);
- darea.a = e1
- darea.b = e2
- darea.c = 0.01 * e3
- darea.opacity = 0.5
- darea.transparent = true;
- const color = EIGHT.Color.blueviolet.clone().scale(0.05)
- darea.colors[0] = color
- darea.colors[1] = color
- darea.colors[2] = color
- darea.colors[3] = color
- darea.colors[4] = color
- darea.colors[5] = color
- let refCount = 0;
- const addRef = function(): number {
- refCount++;
- return refCount;
- }
- const release = function(): number {
- refCount--;
- if (refCount === 0) {
- }
- return refCount;
- }
- const render = function(ambients: EIGHT.Facet[]): void {
- // TODO: We really need a parameter that tells us whether
- // this is the non-transparent pass (1st), or transparent pass (2nd)
- arrow.h = darea.a;
- arrow.X = darea.X - 0.5 * darea.a - 0.5 * darea.b
- arrow.color = EIGHT.Color.red;
- arrow.render(ambients);
- arrow.h = darea.b;
- arrow.X = darea.X + 0.5 * darea.a - 0.5 * darea.b
- arrow.color = EIGHT.Color.blue;
- arrow.render(ambients);
- darea.render(ambients);
- }
- const that: Bivector = {
- a: darea.a,
- b: darea.b,
- get name(): string {
- return sceneName;
- },
- get transparent(): boolean {
- return false;
- },
- addRef,
- release,
- render
- }
- return Object.freeze(that);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement