gradientDisplayManager.ts 1.1 KB

1234567891011121314151617181920212223242526272829
  1. import { IDisplayManager } from './displayManager';
  2. import { NodeMaterialBlock } from 'babylonjs/Materials/Node/nodeMaterialBlock';
  3. import { GradientBlock } from 'babylonjs/Materials/Node/Blocks/gradientBlock';
  4. export class GradientDisplayManager implements IDisplayManager {
  5. public getHeaderClass(block: NodeMaterialBlock) {
  6. return "";
  7. }
  8. public shouldDisplayPortLabels(block: NodeMaterialBlock): boolean {
  9. return false;
  10. }
  11. public getHeaderText(block: NodeMaterialBlock): string {
  12. return block.name;
  13. }
  14. public getBackgroundColor(block: NodeMaterialBlock): string {
  15. let gradientBlock = block as GradientBlock;
  16. let gradients = gradientBlock.colorSteps.map(c => `rgb(${c.color.r * 255}, ${c.color.g * 255}, ${c.color.b * 255}) ${c.step * 100}%`);
  17. return gradients.length ? `linear-gradient(90deg, ${gradients.join(", ")})` : 'black';
  18. }
  19. public updatePreviewContent(block: NodeMaterialBlock, contentArea: HTMLDivElement): void {
  20. contentArea.classList.add("gradient-block");
  21. }
  22. }